Своё поведение кнопки Сформировать. СКД. #612779


#0 by Wobland
Исходная задача: показать диаграмму, используя в качестве данных свою ТЗ. Почему так и нельзя ли сделать по-человечески пока трогать не будем, просто есть ТЗ. Как это сделать? Берём СКД, подсовываем ей в качестве объекта нашу ТЗ - опля, готово. Это была преамбула, амбула такова. "Подсовывание" и все последующие действия делаются программно. Соответственно, нужна своя кнопка. Плюс свойство у формы Автоотображение состояния. Коллега утверждает, что такие вот вещи - это "костыль", ибо мы не победили отчёт, а убрали/подменили лишнее своим. Теперь вопрос: своя кнопка Сформировать и запрет отображения состояние - это костыль или использование штатных механизмов СКД?
#0 by Wobland
Исходная задача: показать диаграмму, используя в качестве данных свою ТЗ. Почему так и нельзя ли сделать по-человечески пока трогать не будем, просто есть ТЗ. Как это сделать? Берём СКД, подсовываем ей в качестве объекта нашу ТЗ - опля, готово. Это была преамбула, амбула такова. "Подсовывание" и все последующие действия делаются программно. Соответственно, нужна своя кнопка. Плюс свойство у формы Автоотображение состояния. Коллега утверждает, что такие вот вещи - это "костыль", ибо мы не победили отчёт, а убрали/подменили лишнее своим. Теперь вопрос: своя кнопка Сформировать и запрет отображения состояние - это костыль или использование штатных механизмов СКД?
#1 by DrShad
штатно имхо
#2 by DrShad
и собственно
#3 by Cube
Голосовалку прикрути)))))))) Своя кнопка "Сформировать" - это не костыль. Самолеты летают на автопилоте, но можно ведь и вручную управлять - это тоже костыли?)
#4 by Cube
О, голосовалка!)
#5 by Wobland
моё имхо, ждём оппонента ;)
#6 by Cube
Ник? Ну чтоб знать, кого какашками закидывать... :)
#7 by Wobland
мда.. об этом я не подумал ;)
#8 by Любопытная
Меня закидывайте, я оппонент. К сожалению, решить проблему я не смогла, пришлось изворачиваться. Нифига это не штатно - прятать стандартные кнопки и вместо них свои рисовать.
#9 by Любопытная
Ты не то сравниваешь. Представь, что тебе надо перепрограммировать автопилот. Но ты не смог этого сделать, поэтому прикрутил свой, а кнопку для включения дефолтного закрасил в цвет панели, чтобы летчик не увидел. Считаешь это нормальным решением?
#10 by Cube
А что по твоему штатно? когда вот так: ? Ты же макет не сама рисуешь...
#11 by Cube
Хорошо, погнали в эту тему. Ты не доконца рассказала историю. Ведь автопилот не получилось запрограммировать не потому, что умений не хватило, а потому, что это самолет для авиашоу в честь ВВС - нужно всякие бочки вертеть, мертвые петли и т.п. Автопилот не справится, нужно ручное управление. Это не костыли.
#12 by Любопытная
А я считаю, что у меня именно умения не хватило
#13 by Wobland
конструкторы автопилота не могут в принципе предусмотреть всяческие бочки, мёртвые петли и т.п. поэтому умелый пилот берёт напильник, допиливает автопилот на земле под себя и спокойно взлетает
#14 by Cube
Ну, возможно, твоё кунг-фу ещё не достаточно сильное, чтобы убивать противника с одного удара и приходится бить два раза, но это всё равно кунг-фу. Ты же не бьешь противника костылем... :)
#15 by Любопытная
Это не ручное управление
#16 by Конфигуратор1с
не совсем правильный подход. Заполнение скд из таблицы значений рисуется программно, в чем костыль? было бы у скд реквизит - брать данные из этой таблицы, было бы другое дело.
#17 by Cube
А ручное управление самолетом - это не штатная функция управления самолетом что-ли?)) Я же свои тросики для управления закрылками не протягиваю. Все рычаги и кнопки с завода изготовителя... Всё штатно.
#18 by Любопытная
Хорошо. Тогда расскажите мне, гуру-специалисты. Для чего используется метод ПриКомпоновкеРезультата, предусмотренный в модуле отчета?
#19 by Cube
Ну как тебе объяснить... Вот для чего используется метод ПриОткрытии в формах? Однозначного ответа нет. Так и тут. Для чего приспособишь, для того и будет. Ну вот, например:
#20 by Любопытная
Этот метод отрабатывает при нажатии стандартной кнопки Сформировать. Почему оттуда у меня отчет не формируется? Код проходит без ошибок, но отчет не формируется
#21 by SoulPower
ПриКомпоновкеРезультата решает задачу в . Тч в этом случае конечно
#22 by Cube
"Пилите, Шура, пилите. Она золотая!" (c)
#23 by Megas
Не костыль конечно, любой более менее сложный отчёт на СКД приходится выводить программно. В типовых говорят сплошь и рядом (БП 8.2)
#24 by Wobland
а ты где-то при стандартном пути подсунула свою ТЗ?
#25 by SoulPower
+ Насчет отображения состояния не костыль кстати. Но вот нафига кнопку рисовать не ясно.
#26 by Любопытная
Естественно! Я процедуру заполнения ТЗ перетащила в модуль объекта и она чудесно заполняется. Я же говорю - код отрабатывается без ошибок, но результата не дает
#27 by Wobland
кнопку я придумал, чтобы генерировать ТЗ и отдавать её в СКД. можно без своей кнопки?
#28 by Любопытная
А как без кнопки?
#29 by Wobland
откуда у тебя СКД прознало про твою ТЗ?
#30 by Любопытная
У меня простой отчет
#31 by Любопытная
она реквизит отчета.
#32 by Wobland
и чо? пусть их будет 80. какую брать?
#33 by Любопытная
которую я сказала, в чем проблема?
#34 by Wobland
в этом и заключался вопрос
#35 by Любопытная
в чем?
#36 by Wobland
-откуда у тебя СКД прознало про твою ТЗ? -она реквизит отчета. -какую из имеющихся брать? -которую я сказала -откуда ты это сказала?
#37 by Любопытная
Ну так может кто-нибудь поможет разобраться ПриКомпоновкеРезультата? Хочу таки через нее отчет вывести
#38 by acsent
в 8.2 есть событие модуля ПриКомпоновке
#39 by Любопытная
Я заполнила ТЗ, потом подложила это ТЗ в ВнешниеНаборыДанных.Вставить. Разве не так?
#40 by Любопытная
оно и есть
#41 by Cube
Собсна этим, надеюсь, я ответил на все вопросы: Файл отчета без формы, но с внешним набором данных: А вот и единственная процедура из модуля этого отчета:
#42 by Cube
+ Абсолютно то же самое, можно сделать в форме отчета, нарисовав свою кнопку "Сформировать". И оба этих варианта - штатные механизмы. Никаких костылей тут нет и быть не может.
#43 by Любопытная
А если без НачатьВывод и ЗакончитьВывод?
#44 by Wobland
спасибо, поучил
#45 by Cube
не понял вопроса.
#46 by Wobland
аллах запрещает?
#47 by Cube
Сам в первый раз делал, до этого я кнопу "Сформировать" рисовал :)
#48 by Wobland
я не заметил ДокументРезультат в параметрах ;)
#49 by Любопытная
Мне не нравится цикл для вывода. Можно пачкой всю ТЗ вывести?)
#50 by Wobland
действительно, а зачем там циклический вывод? не проще ль
#51 by Wobland
ну, не Результат...
#52 by sanja26
#53 by Cube
Да пожалуйста, я не против) Просто я взял свой старый отчет со своей кнопкой "Сформировать" и внешним набором данных и скопипастил код.
#54 by Cube
+ Кстати, этот код я не сам придумал. Может из Хрусталевой взял?...
#55 by SoulPower
->
#56 by Любопытная
Всем грандиозное спасибо! , отдельное спасибо за наводку! Макс, спасибо за ветку! :-*
#57 by Cube
Спасибо, кэп!))
#58 by SoulPower
Спросили, ответил. И да, пожалуйста.
#59 by Cube
Ну так это, ты всё ещё считаешь, что своя кнопка "Сформировать" это костыли?)
#60 by Wobland
я вот тут подумал... до этого я делал свою кнопку, заставлял её работать по-своему. а можно проще - перехватить компоновку, наделать там нужного и отдать обратно. так что ...
#61 by Любопытная
Воооот! Таки на мой взгляд, это правильнее. Смотри :)
#62 by Cube
А какая разница, где мы это делаем? Механизмы юзаем одни и те же. Так что, это одно и то же.
#63 by Cube
+ Код один и тот же...
#64 by Любопытная
но в разных местах
#65 by PiVa123
Если бы еще показали - как впихнуть эти самые "ВнешниеНаборыДанных", а остальное не делать (т.е. Вывод - пусть сам делается) тогда было бы круто.
#66 by Любопытная
А вот это уже невозможно, на сколько я поняла
#67 by PiVa123
Скажем так, я тоже пока не знаю. :)
#68 by Wobland
в первом случае я вотнул свой рычаг и перевязал на него тросики, во втором случае я (ты) подшаманил под приборной панелью, чтоб тот же тросик и тот же рычаг чуть по-другому работали... не?
#69 by Cube
То есть, если ты сначала чай налила в кружку, а потом сахару насыпала, а я сахар сыплю одновременно с наливанием воды, то у меня костыли, а у тебя типовой функционал? Ну-ну))
#70 by Wobland
в уже показывал
#71 by Любопытная
Если тебе так хочется - да, ты умнее меня. Гордись этим, но я останусь при своем мнении
#72 by Cube
Что-то разговор не в то русло пошел... Никто никого не умней. Какие есть способы впихать свою ТЗ в СКД? Он один. И при подмене кнопки и в процедуре мы делаем одно и то же - мы не используем автоматический вывод отчета, мы пишем свой вывод. Но это штатная функция, так задумано разработчиками платформы. Поймите, в обоих вариантах происходит абсолютно одно и то же.
#73 by Wobland
>происходит абсолютно одно и то же не спорю, только как-то перехват события выглядит элегантней, нежели своя кнопка имхо
#74 by Любопытная
Я понимаю, что происходит одно и тоже. Я понимаю, что есть вариант, когда используется стандартная команда, а есть не очень красивый вариант с перерисовыванием кнопок и изменением свойств элементов формы. Телодвижений больше получается
#75 by Cube
Не, я тоже считаю, что в процедуре красивее, но вопрос-то был что своя кнопка "Сформировать" это костыль или нет? Я считаю, что своя кнопка "Сформировать" это тоже самое, что написать "СтандартнаяОбработка = Ложь;" в какой-нибудь предопределенной процедуре. Поэтому, если кнопка "Сформировать" это костыль, то все конфигурации на костылях))
#76 by Любопытная
Мы думаем явно по-разному)
#77 by Cube
Ну почему же? Вот смотри: 1). Своя кнопка "Сформировать". Мы отказываемся от автоматической обработки нажатия на эту кнопку и пишем свою процедуру. 2). "СтандартнаяОбработка = Ложь;". Этим мы отказываемся от автоматической обработки этого метода и пишем свой код. Ну, 1 и 2 не похоже совсем?)) Ну что, ни капельки? Ну ё-маё... :)))
#78 by Wobland
Костыль — средство добавления недостающей функциональности или исправления серьёзных дыр без должного редизайна системы. если принять это определение, то да, вся конфигурация на костылях ;)
#79 by Wobland
Синонимом кода, состоящего из костылей чуть более, чем полностью, является индусский код. ох уж мне эта 1С...
#80 by Cube
В нашем примере происходит добавление функциональности, которое не требует редизайна системы, поэтому под статью "Костыль" наш пример не попадает, за отсутствием состава преступления))
#81 by Cube
А откуда вообще пошла байка, что 1С разрабатываю индусы?))
#82 by Cube
+ Имею ввиду платформу.
#83 by SoulPower
1)Мы отказываемся от автоматической обработки нажатия на эту кнопку и пишем свою процедуру. 2)Мы не отказываемся и ничего не пишем. Пользуемся стандартным механизмом. Так что это скорее не костыль, а
#84 by Любопытная
Это одинаково в том случае, если мы не будем прятать стандартную кнопку. А если прячем, тогда уже не одинаково
#85 by Wobland
чуствую, будет сотня... байку не слыхал
#86 by Cube
"Мы не отказываемся и ничего не пишем. Пользуемся стандартным механизмом." То есть, ты утверждаешь, что после строки "СтандартнаяОбработка = Ложь;" у тебя отрабатывает стандартный механизм? вот это новости... А попоробуй-ка эту строку убрать и удивишься... :)
#87 by Cube
А я её не прячу никуда, я просто переназначаю у неё процедуру... Кнопка на месте.
#88 by Wobland
у стандартной кнопки переназначаешь обработчик?
#89 by Cube
Угу. А чем она от других кнопок отличается? Обычная кнопка...
#90 by Wobland
свойствов нету у неё.
#91 by Cube
Так это в УФ, я то в обычных формах процедуру у неё заменял))
#92 by Wobland
окстись, где?
#93 by Cube
Свойство "Действие".
#94 by Wobland
от я чукча, ни разу не догадался там руками что-то прописать ;)
#95 by Cube
:) Ниче-ниче. Вот выйдет 8.3, там ещё что-нибудь новенького придумают))
#96 by SoulPower
Причем тут "СтандартнаяОбработка = Ложь;"? Что ты приплетаешь абсолютно несвязные вещи. Ты убрал стандартную кнопку и прописал её действие заново. Хотя мог обработать стандартное событие ПриКомпоновкеРезультата. Это по-твоему аналог, того что ты в стандартном обработчике пишешь "СтандартнаяОбработка = Ложь;"? Ты кнопку лишнюю кнопку зачем-то нарисовал. По-моему это велосипед.
#97 by Cube
Вот именно: "убрал стандартную кнопку и прописал её действие заново" против "отказался от стандартной обработки процедуры и прописал её действие заново". Что там мы отказываемся от стандартной обработки, что здесь - одно и то же.
#98 by SoulPower
Если для тебя одно и тоже, то ок. Не вижу смысла спорить, рисуй дальше свои кнопки.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С