v8.2 Управляемые формы: Динамические элементы формы и переопределяемые события или как изменить поведение и внешний вид управляемой формы программно без лишних хлопот

31.01.13

Разработка - Инструментарий разработчика

В продолжении статьи "v8: Концепция минимального изменения конфигурации для легкого обновления" (http://infostart.ru/public/170935/) предлагаю вашему вниманию небольшую подсистему, позволяющую динамически размещать реквизиты формы, элементы формы переопределять события существующих и назначать новые на уровне "настроек"

Скачать файлы

Наименование Файл Версия Размер
Демо конфигурация
.zip 73,08Kb
307
.zip 73,08Kb 307 Скачать

Предисловие:

В предыдущей статье я предложил методику модификации конфигурации 1С, находящейся на поддержке с описанием некоторых применяемых мною подходов программирования, позволяющих с минимальными изменениями объектов конфигурации добиться, по моему мнению, максимально "простого" обновления типовой конфигурации. Хочу уточнить что речь идет о тех случаях, когда Вам необходимо менять типовой объект. 

Ограничения: подсистема разрабатывалась для 8.2 управляемое приложение, а именно - конфигурация УТ11. Но механизм может быть применен для любой конфигурации на базе 8.2 управляемые формы. Данная статья и прикрепленная конфигурация направлена на то чтобы продемострировать возможности возможности платформы 8.2 и не является 100% решением всех потребностей динамического изменения формы. 

В данной редакции реализованны механизмы:

  1. Добавление динамических реквизитов любых форм (форм объектов, списков, общих форм и т.п.).
  2. Добавление динамических элементов форм связанных с реквизитами объектов или реквизитами форм (ПолеФормы, ТаблицаФормы)
  3. Переопределение старнадтных обработчиков с возможностью их "наследования"

В качестве примера реализации в конфигурации присутствуют:

  1. Динамическое добавление условного оформления формы (в т.ч. и использование при оформлении динамических реквизитов).
  2. Замена таблицы-источника динамического списка на запрос и модификация запроса динамического списка по "правилам", описаным в предыдущей статье.
  3. Динамическое добавление комманды формы.
К форме документа была применена технология динамической модификации, при этом добавлено условное оформление и добавлены/переопределены обработчики событий и Прошу принять во внимание, что данное решение было написано в процессе доработки конкретной конфигурации и не является механизмом (касается динамических элементов форм), позволяющим реализовать "бантики" на форме ввиде групп, декораций и т.п. В то же время в механизм заложено "ядро" которое может быть доработанно по потребностям.
 
В прикреплении вы можете скачать демонстрационную конфигурацию.

Конфигурация несет в себе только "обучающую" нагрузку. 

Предполагается, что все объекты системы (кроме общего молуля "ДинамическиеЭлементыКлиентСервер" и обработки "ДинамическиеНастройкиФорм") без префикса являются объектами/реквизитами созданными поставщиком. Все "корневые" объекты и реквизиты с префиксом "н" созданы в процессе доработки конфигурации.
 
Описание конфигурации "От поставщика".
 
  1. Константа "Работа с заказами". 
  2. Справочник "Номенклатура" 
    • Реквизиты:
      • Код
      • Наименование
      • ИспользованиеВЗаказах - если "ложь" то отказ от выбора в документе заказа.
    • Формы:
      • Форма элемента - на форме (Код, Наименование, ИспользованиеВЗаказах)
      • Форма списка - источник динамического списка физическая таблица Справочник.Номенклатура.
  3. Документ "Заказ"
    • Реквизиты 
      • Номер
      • Дата
    • Табличные части
      • Товары
        • номер строки
        • Номенклатура
        • Количество
    • Формы
      • Форма документа. 
        • Поведение формы: Если константа "Работа с заказами" = ложь тогда форма заказа не открывается с предупреждением. При попытке выбрать номенклатуру с признаком ИспользованиеВЗаказах = ложь отказ от выбора с сообщением.
      • Форма списка
        • Источник динамического списка - запрос.
 Еще раз повторюсь, функционал бредовый, но он направлен на то чтобы раскрыть возможности механизма динамического изменения формы.
 
Реализованные изменения:
По "ТЗ" в справочник "Номенклатура" добавлены 2 новых реквизита "вес" и "объем" в существющую группу Дополнительные реквизиты.
Результат и потребовавшиеся изменения ниже:
 
По "ТЗ" систему добавлен новый регистр "нАртикулыОсновногоПоставщика" Измерение Номенклатура, ресурс "Артикл". Его требуестя вывести в списке справочника "Номенклатура".
Результат и изменения ниже:
 
 
Так же как и в для пред. объекта существуют настройки макета в которых прописано добавление колонки "артикул".
 
Документ заказ. Пожалуй это основной пример во всей конфигурации.
Изменение функционала по "ТЗ"
  1. При открытии документа система должна игнорировать константу "Работа с заказами". т.е. открываться всегда.
  2. Добавить Табличную Часть "График оплаты" обязательную для заполнения. Реквизиты: Дата, Сумма
  3. Добавить в таблицу Товары реквизиты Цена, Сумма. Сумма должна пересчитываться автоматически при изменении кол-ва и цены.
  4. Добавить в таблицу товары реквизит Отменена - булево. При значении Истина цвет строки устанавливать в серый.
  5. Добавить реквизит формы общее количество и ссумировать количество товаров в документе кроме отмененных строк. пересчет при изменениях количества цены и флага Отменен
  6. Добавить реквизит формы Сумма документа и как итог суммы в таблице товары кроме отмененных строк. пересчет при изменениях количества цены и флага Отменен
  7. Добавить проверку заполнения (при проведении) чтобы сумма по документу была равной итогу по строкам Графика оплат.
  8. Игнорировать флаг "ИспользованиеВЗаказах" при выборе номенклатуры.
  • Результат и изменения ниже:
 
так-же существует настройка в макете динамических элементов аналогии в изменением спр. Номенклатура. 

Доработан в список докумета Заказ колонку  - выведена колонка сумма документа посредством модификации запроса и динам. вывода колонки. Реализация аналогична.

В конфигурации так же добавлен вывод реквизита формы в таблице Товары (не объекта). Реквизит выведен на форму, на него настроено событие и условное оформление
Так же добавлен пример вывода динамической Комманды в заказе в таблице график оплаты.

Если Вы хотите посмотреть как выглядят формы без динамических модификаций установите константу "Использовать динамическую модификацию" в ложь.

Надеюсь эта статья будет Вам полезной а решение достаточно понятным и легким в использовании.
Готов ответить на все интересующие вопросы. По результатам обсуждений готов изменять статью.

Спасибо, и, извините за возможные ошибки в тексте статьи. Писал быстро и не проверял из-за катастрофической нехватки времени. 
 

См. также

SALE! 20%

Infostart Toolkit: Инструменты разработчика 1С 8.3 на управляемых формах

Инструментарий разработчика Роли и права Запросы СКД Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

13000 10400 руб.

02.09.2020    122137    670    389    

714

SALE! 25%

Infostart PrintWizard

Пакетная печать Печатные формы Инструментарий разработчика Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:Конвертация данных 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

Инструмент, позволяющий абсолютно по-новому взглянуть на процесс разработки печатных форм. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и "прозрачность" разработки, а также навести порядок в многообразии корпоративных печатных форм.

18000 15300 руб.

06.10.2023    7288    21    6    

39

SALE! 20%

Infostart УДиФ: Управление данными и формами

Инструменты администратора БД Инструментарий разработчика Роли и права Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

10000 8000 руб.

10.11.2023    3531    11    1    

34

SALE! 30%

PowerTools

Инструментарий разработчика Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

Универсальный инструмент программиста для администрирования конфигураций. Сборник наиболее часто используемых обработок под единым интерфейсом.

3600 2520 руб.

14.01.2013    177744    1073    0    

849

Многопоточность. Универсальный «Менеджер потоков» 2.1

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

5000 руб.

07.02.2018    99345    239    97    

296

[ЕХТ] Фреймворк для Расширений 1С

Инструментарий разработчика Платформа 1С v8.3 Управляемые формы Платные (руб)

"Фреймворк для Расширений 1С" это универсальное и многофункциональное решение, упрощающее разработку и поддержку создаваемых Расширений. Поставляется в виде комплекта из нескольких Расширений с открытым исходным кодом. Работает в любых Конфигурациях в режиме Управляемого приложения с режимом совместимости 8.3.12 и выше без необходимости внесения изменений в Конфигурацию.

3000 руб.

27.08.2019    18109    6    8    

39

1С HTML Шаблоны / HTML Templates

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Быстрая и удобная обработка для работы с шаблонами HTML. Позволяет легко и быстро формировать код HTML.

2040 руб.

27.12.2017    28108    3    10    

15

Выполнение произвольного кода или запроса с параметрами через Web-сервис (замена COM-подключений)

Инструментарий разработчика Обмен между базами 1C Платформа 1С v8.3 Платные (руб)

В процессе работы в 1С часто возникает потребность получить данные из другой базы.  Обычно это делается через COM-соединение, и время выполнения запроса при этом оставляет желать лучшего. В данной публикации представлено универсальное решение, позволяющее практически моментально выполнить произвольный код или запрос с параметрами в другой информационной базе через Web-сервис.

2400 руб.

24.09.2019    23601    15    15    

32
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. MarSeN 984 31.01.13 12:55 Сейчас в теме
Хочу уточнить, то в примере используются переопределение и установка событий &НаКлиенте, но механизм расчитан на все события формы и элементов. т.е. пожно переопределять и устанавливать события как &НаКлиенте так и &НаСервере
2. TitanLuchs 395 01.02.13 13:21 Сейчас в теме
В реальной жизни уже пробовали тестировать? Как-нибудь отражается на быстродействии, тормозов нет?
3. MarSeN 984 01.02.13 13:49 Сейчас в теме
(2) Все написанное в обоих статьях с успехом применяется в разрабатываемой и уже внедренной конфигурации УТ11.
Тормозов нет
4. Evil Beaver 8107 01.02.13 16:15 Сейчас в теме
А в 8.3 обещают подписку на события форм. Тогда даже модуль формы менять не придется.
5. MarSeN 984 01.02.13 16:59 Сейчас в теме
(4) скорее бы, но пока мы жевем реальностью и приходится как-то выкручиваться ))
7. ivs200999 06.02.13 07:13 Сейчас в теме
(4) Обещают? Это было бы прекрасно, если было бы правдой.
(1) С какой целью создание реквизитов, элементов и назначение обработчиков реализовано тремя вызовами процедур общего модуля? Для наглядности? Не лучше ли сделать один вызов?
8. MarSeN 984 06.02.13 11:06 Сейчас в теме
(7) для того чтобы не перебирать макет если там нет настроек для этой формы. И конечно так нагляднее.
51. mikhailv 19 26.10.15 12:58 Сейчас в теме
(4) Evil Beaver, обещанного 3 года ждут. Исходя из даты сообщения, 01.02.2016 должно случиться чудо:)
6. wunderland 201 05.02.13 02:15 Сейчас в теме
В стандартных тоже иногда применяется динамическое формирование формы, например в УНФ форма элемента для спр. ФизЛица. Но здесь намного красивее. Мне понравилось, возьму на вооружение...
9. пользователь 07.02.13 20:25
Сообщение было скрыто модератором.
...
10. MarSeN 984 07.02.13 20:57 Сейчас в теме
(9) Эх...
Цитирую:
"Данная статья и прикрепленная конфигурация направлена на то чтобы продемострировать возможности возможности платформы 8.2".
Никто не говорит о том что это ноу-хау. Есть гораздо продуманные системы по "программному добавлению элементов". И подходов множество. Речь совсем не об этом. А о точ то есть такие возможности и, как вариант, этот механизм.
НО - я еще не встречал механизма который бы давал возможность модифицировать формы (элементы/реквизиты) + их поведение (переопределение событий) в одном флаконе.
Если бы подобный механизм/функционал был хоть бы в одной конфе - статьи бы тут не было.
Попробуйте в пару строк распространить механизм документа Установка цен на всю конфу. Для внедрения моего механихма надо перенести 1 общий модуль и одну обработку.
11. пользователь 07.02.13 21:04
Сообщение было скрыто модератором.
...
12. MarSeN 984 07.02.13 21:18 Сейчас в теме
(11) Я только за чтоб в комментах обсуждалось и приводились примеры других реализаций. Но, желательно, не в таком тоне.
Спасибо за понимание.
13. internetname 08.02.13 12:56 Сейчас в теме
Управляемые формы рулят. Кстати, когда там рабочая версия 8.3 появится?
14. MarSeN 984 08.02.13 15:21 Сейчас в теме
(13) сам жду с нетерпением )
15. ArtfulCrom 22 09.02.13 16:51 Сейчас в теме
(13) ) хотел бы я взглянуть в глаза человеку ЗНАЮЩЕМУ ответ на этот вопрос )
Статья хорошая. Спасибо. Побольше бы таких простых и безхистростных "учебников" для отрастающего поколения
16. marochkin 13 13.02.13 11:34 Сейчас в теме
Спасибо за метод, давно не видел столь грамотного способа. Сам делал нечто подобное (переопределение действий с сохранением вызова типового) для элементов форм. Чувствуется опыт программирования не только в 1С ;)

Скорее всего сталкивались со следующим вопросом, очень интересует как решали!?

БСП входит в состав УТ 11. В своих объектах тоже очень хочется пользоваться плюшками БСП. Самые простые примеры: - структура подчиненности, движения документов, виды объектов доступа и права.

При обновлении БСП, в классическом варианте нужно снимать с поддержки некоторые объекты и снимать галки при обновлении. Как поступить в случае когда в УТ добавляются новые документы и удаляются старые. Вариантов кроме как делать для своих объектов каждый раз руками некий перечень действий, не нашел.

Очень интересен комментарий автора статьи на этот счет!
17. MarSeN 984 13.02.13 13:16 Сейчас в теме
(16) Спасибо за высокую оценку.

Я сам пока не заморачивался по "таким" вопросам, так как методику разработал и начал применять относительно недавно. Но на вскидку думаю но структуре подчиненности и движениям документа или другим командам можно просто существующую комманду скопировать в "свою" некую обработку и на нее назначить нужные объекты. при этом больше править ничего не нужно будет. А вот в с составом объектов метаданных, к сожалениию, решений нет. (
По ролям я делаю на все объекты новые роли. Если нужно убрать на сущ. роли часть прав то копирую нужную - ее правлю и потом в профиле перевыбираю свою вместо преджней.
Можно устроить мозговой штурм при желании )
marochkin; +1 Ответить
18. marochkin 13 13.02.13 13:42 Сейчас в теме
(17) Да тоже думал над копированием команд, но в некоторых случаях возможно придется копировать объекты целиком, поэтому это пока не сложилось в вариант решения вопроса ))

Насчет прав я не про роли. А про возможность использовать RLS шаблоны самой БСП. Там нужно в нескольких объектах изменять типы, примеры: ПВХ.Виды объектов доступа, некоторые подписки на события, типы измерений некоторых регистров.
19. MarSeN 984 13.02.13 13:57 Сейчас в теме
(18) К сожалению приходится нсимать с поддержки и править ручками то что нельзя "отнаследовать". В каждом случае приходится решать проблемку конкретно. Иногда, если есть такая возможность правильнее упростить задачу или решить ее бругим путем. Но 1С в некоторых случаях не оставляет нам другого пути, как решать задачу "В лоб" (
20. ivanov660 4330 09.03.13 17:08 Сейчас в теме
Интересный подход. Хотел бы спросить по поводу ограничения доступа на уровне реквизитов, проблем с этим не было? Или задачу динамического размещения необходимо создавать в привилегированном режиме, или данный функционал не зависит от этой особенности?
21. MarSeN 984 09.03.13 20:30 Сейчас в теме
(20) ivanov660
Все "динамические" модификации делаются в привелегированном режиме. С правами реквизитов объекта "только на просмотр" все работает корректно. Если отсутствуют права на чтение то будет ошибка. Я делал этот механизм на УТ11 и у в моих задачах не было необходимости запрещать чтение реквизитов.
но не проблема проверить перед добавлением элемента на форму права пользователя на чтение динамически добавляемых реквизитов.
22. Kaval88 172 11.03.13 11:53 Сейчас в теме
Интересный подход. Хорошо применялась для моих прикладных задач.
23. MarSeN 984 11.03.13 12:06 Сейчас в теме
(22) Kaval88
По моему мнению, на данный момент, это наиболее "полный" вариант из имеющихся на инфостарте включающий подписки, элементы формы и реквизиты.
Задумываюсь над тем чтобы перевести настройку в режим предприятия посредством обработки - визуально чтоб можно было все делать.
24. MarSeN 984 11.03.13 12:07 Сейчас в теме
(22) я рад, что данная разработка будет применена не только в моих решениях )
25. irishka77 16.04.13 12:58 Сейчас в теме
Спасибо, ко времени.Начала работать с бух3.0.
26. MarSeN 984 16.04.13 13:58 Сейчас в теме
(25) irishka77,
всегда пожалуйста )
27. HIgor 21 08.08.13 11:49 Сейчас в теме
События &НаСервере пробовали переопределять? У меня ошибки посыпались (хотя мог и я недоглядеть что-нибудь, вместо макета справочник дополнительный завел). &НаКлиенте - все отлично переопределяется.
28. MarSeN 984 08.08.13 11:58 Сейчас в теме
(27) HIgor,
Да, должно быть в примере. на документе Заказ. Кажись итоги там подчитываются
29. pbazeliuk 1955 23.08.13 16:05 Сейчас в теме
На версии УТ 11.1.2.8 и выше - не сработает переопределение событий, например в документе реализация товаров услуг.
31. MarSeN 984 23.08.13 17:38 Сейчас в теме
(29) pbazelyuk,
А на версии ниже работает??
Думаю, что проблема не в версиях.
Код в студию )) или в личку.
30. Evgen.Ponomarenko 567 23.08.13 17:19 Сейчас в теме
Годится, откладываю статью в "закладки"! Вернусь после командировки - разберу по винтикам :)
32. mister_tula 21.03.14 14:29 Сейчас в теме
Интересное решение, но есть большое сомнение в эффективности его применения к изменению типовых конфигураций. Очень большой объем кода приходится вставлять в модули форм, может проще и быстрее вставить "визуальные" элементы и описать на месте все обработчики? Форму-то всё равно придётся скопировать, а потом исправлять! Или Вы меняете существующую форму?
На первый взгляд вижу только некую "классификацию-напоминалку" внесенных изменений в макете "ДинамическиеЭлементыФорм" и "ДинамическиеРеквизитыФорм"?!! Какое мнение автора? Хотелось бы обсудить!
Прикрепленные файлы:
33. MarSeN 984 21.03.14 15:08 Сейчас в теме
(32) mister_tula,
Меняется модуль формы и реквизиты. Вставляются только шаблоны обработчиков и строчка вызова общего модуля.
Все что в статье описано как пример и работает на демо конфе - в статье отражено ввиде принтскринов. Думаю это не большие изменения.
или я не понял Вашего вопроса?
готов обсудить.
я не совсем понял о чем Вы "Какое мнение автора?"
mister_tula; +1 Ответить
34. mister_tula 21.03.14 16:16 Сейчас в теме
Возможно Вы меня не совсем поняли. Шаблоны обработчиков необходимо вставлять в форму, сами обработчики в общий модуль. Я пишу о том, что текста то-полно!! Может всё это сразу вставить в форму и будет проще! Зачем такие сложности? Я не вижу достоинств Вашего решения перед более простым. Возможно я ошибаюсь. Я пытаюсь практически применить Ваши решения и пока не заметил преимуществ. Поэтому и хотел с обсудить. Если , конечно, у Вас есть время.
35. MarSeN 984 21.03.14 16:35 Сейчас в теме
(34) mister_tula,
Да, давайте обсудим.
Макеты можно добавлять в конкретные объекты - тогда нудно переписать общий модуль подключений чтоб смотрел модули объектов.
конечно же все тексты обработчков надо хранить в общих модулях.

Давайте я помогу разглядеть их - достоинства, но если только Вы их хотите увидеть. В противном случае лучше поступать так:
Может всё это сразу вставить в форму и будет проще!

какие у Вас лично проблемы возникают с применением данного метода?
36. mister_tula 21.03.14 17:09 Сейчас в теме
Проблем с "простым" изменением форм - никаких. Я копирую исходную форму, называю её myФормаЭлемента, назначаю основной и вношу все изменения непосредственно в модуль формы.
конечно же все тексты обработчков надо хранить в общих модулях
. В данном случае зачем мне это делать?
Если я воспользуюсь Вашей методикой:
шаблоны обработчиков вставляю в мою форму myФормаЭлемента, затем в общем модуле их описываю. Дописываю метод ПриСозданииНаСервере. Если необходимо добавить доп.реквизиты - добавляю в любом случае. Описываю все изменения в шаблоне ДинамическиеЭлементыФорм. Мне кажется манипуляций даже больше. Объективно, в чем преимущества? Пока я вижу только два:
1) текстовое описание добавляемых реквизитов в шаблоне ДинамическиеЭлементыФорм и ДинамическиеРеквизитыФорм, помогает разобраться в омуте внесенных изменений, СОГЛАСЕН.
2) если вдруг типовая форма изменилась, мне придется ее скопировать вновь и добавить блок по Вашей методике, по моей методике путь немного длиннее - вставляю реквизиты "руками" и привязываю обработчики событий. Не вижу разницы.
Возможно несколько примитивно я описал. Но всё-таки есть другие достоинства?
37. mister_tula 21.03.14 17:25 Сейчас в теме
Если не сложно, напишите, как действуете Вы для изменения типовой формы, чтобы потом было легче обновляться. Может я не тем путем хожу (:
38. MarSeN 984 21.03.14 17:37 Сейчас в теме
(37) mister_tula,
В статье вроде все подробно описано, ну да ладно
1. снимаю форму с поддержки
2. добавляю нужные реквизиты
3. в макете для элементов прописываю куда и какой реквизит поместить
4. в при создании на сервере прописываю вызов метода для динамической вставки элементов
----------------------
обычные реквизиты без обработчиков готовы.

если нужны обработчики как на новые так и на существующие элементы.
1. Прописываю обработчик в макете. если большой текст обработчика - перенаправление в макете в общий модуль
2. Снимаю, если еще не снята, форму с поддержки
3. вставляю подключаемые команды (тексты которые я привел с статье и есть в демке) в модуль формы
4 . подключаю при создании на сервере вызов метода подключения обработчика.

с реквизитами форм все аналогично

что это дает?
При обновлении я вижу что форма поменялась и мне не надо смотреть что там поменялось. Я просто в существующую форму добавляю свои вставки и все. если таковых много - пользуюсь KDiff3

и никаких заново выкладываний на форму, проверок старого и нового функционала в случае если вы делаете свою форму основной и тп.
teflon; mister_tula; +2 Ответить
39. mister_tula 21.03.14 17:46 Сейчас в теме
СПасибо огромное за разъяснение, я был не прав, использую копирование форм. Ваш метод ГОРАЗДО привлекательнее.
А KDiff3 по-моему это какая-то прога для сравнения файлов? А что она может интегрироваться как-то с 1С?
40. MarSeN 984 21.03.14 18:01 Сейчас в теме
(39) mister_tula,
KDiff3 - программа которая намного удобнее чем то что предлагает нам 1С
В ней есть возможность сравнивать и объединять до 3-х файлов одновременно. Широко применял для 7.7 в связке с GComp
Нет. она не интегрирована. Нужно выгрузить модули из 1С ч/з выгрузить модули (есть до версии 8.3) или просто ручками создать 2 текстовых файла старого и нового модуля. Объединить и ручками вернуть обратно.
если выгружать из 1С то потом загрузить обратно. Все просто.
Спасибо
DoReMi; mister_tula; +2 Ответить
41. mister_tula 21.03.14 18:04 Сейчас в теме
Супер, буду пробовать.
42. MarSeN 984 22.03.14 00:17 Сейчас в теме
(41) mister_tula,
поделитесь результатами экспериментов )
43. zqzq 23 17.04.14 08:32 Сейчас в теме
Глянул демо-конфу, достаточно красиво и главное просто реализовано (в отличии от соседней темы где внешние обработки и черт ногу сломит). Единственное, повторяющийся код типа
	МассивИнструкций = ДинамическиеЭлементыКлиентСервер.ПолучитьИнструкцииПереопределаемыхОбработчиков(ЭтаФорма, "ПослеЗаписи");
	
	Для Каждого Инструкция из МассивИнструкций Цикл 
		Выполнить(Инструкция);
	КонецЦикла;	
можно было бы заменить на одну строчку типа
Выполнить(ДинамическиеЭлементыКлиентСервер.ПолучитьВсеИнструкцииПереопределаемыхОбработчиков(ЭтаФорма, "ПослеЗаписи")); 
44. MarSeN 984 17.04.14 09:14 Сейчас в теме
(43) zqzq,
Спасибо
Нет, Ваш код не подходит. Цикл сделан специально, так как подсистема способна нетолько добавлять и заменять сущеструюшие обработчики, но и выполнять новый обработчик до или после существующего.
45. zqzq 23 17.04.14 11:16 Сейчас в теме
(44) ну так загнать массив инструкций в многострочную строку в общем модуле и её уже выполнять на форме.
46. MarSeN 984 17.04.14 11:19 Сейчас в теме
(45) zqzq,
) Согласен, ступил. Спасибо.
47. knasa 18.03.15 08:17 Сейчас в теме
Здравствуйте MarSeN.
Подскажите пожалуйста, а можно ли на основе Вашей разработки полностью создать таблицуформы и определить в ней колонки. Наподобии как если бы я сделал это в ручную на управляемой форме?
48. MarSeN 984 26.03.15 13:45 Сейчас в теме
(47) Да, можно.
это есть в примере
49. It-developer 24 08.05.15 10:10 Сейчас в теме
Не знаю, не знаю. Пробовал динамически добавлять элементы, но в обычные формы. Довольно геморройное дело. Слишком много кода.
Наверно, для каких-то целей такая реализация может подойти. Например, когда у тебя пару сотен узлов, которые ты обновлять не хочешь.
Но опять же, писать кучу всяких обработчиков в самой форме нужно (не считая события ПриСозданииНаСервере) :(
И потом ... в макетах куча описалова по обработчикам, элементам, реквизитам. Приколол макет с реквизитами - куча свойств формы в макете :) - в конце проекта в этом макете будут все свойства реквизитов форм :))
Не знаю как автору, но мне было бы неудобно больше всего не видеть визуально изменяемую форму.
Я поставил плюс, т. к. сама идея мне лично интересна
50. MarSeN 984 08.05.15 13:43 Сейчас в теме
(49)
Я объединение делал через KDiff 3 при этом использовал 3 версии текстов (cf) - конфа поставщика, новая версия, и текущая версия.
при этом кадиф автоматом предлагает, если нет изменений между поставщиком и новой от поставщика, вставить код от текущей версии
52. Cyberhawk 135 06.06.16 14:50 Сейчас в теме
1. Я правильно понимаю, что переопределить обработчик ПриСозданииНаСервере не получится?
2. Также желательно описать (и добавить в демо-конфигурацию) переопределение обработчика, получающего на вход больше одного параметра
53. MarSeN 984 06.06.16 18:29 Сейчас в теме
(52)
1. Можно переопределить обработчик ПриСозданииНаСервере, но я не заморачивался тогда по причине отсутствия надобности.
2. Принцип всегда один, но количество параметров зависит от конкретного обработчика. Тут особо описывать нечего. Я всегда брал типовой и на основе него делал переопределеное.
54. check2 354 27.03.18 12:03 Сейчас в теме
Сергей, просто супер!
А почему все элементы в один макет? не лучше ли было бы лепить макеты к самому объекту: три макета. Если очень много дорабатываемых объектов, то чуть-чуть выиграем на сканировании табличного документа и... самое главное... я в задании на разработку описываю табличку что во что должно вставиться... Мы просто копируем табличку из задания на разработку и разработчику нужно вставить несколько обработчиков в форму... Щастье... Беру демку, переделаю под себя... Идея просто блестящая.
Спасибо!

UPD: Ещё бы и код обработчиков генерился... из обработки... алмаз...
56. MarSeN 984 27.03.18 16:56 Сейчас в теме
(54)
Да, можно было и так сделать, но я ориентировался на минимум изменений в типовых объектах
Кот обработчиков, если я правильно понял что имеется ввиду, не может быть сгенерирован. Его можно попробовать в обработке разместить, но не весь, только для серверных вызовов. Для клиентских только в общем модуле.

Прошу прощения если не точно ответил. Писал давно и уже многое не помню
55. check2 354 27.03.18 12:15 Сейчас в теме
Ещё вопрос, если поле имя оставить пустым - синоним в заголовок из реквизита подтянется? Или пусто будет?
57. MarSeN 984 27.03.18 16:57 Сейчас в теме
(55)
Это я не помню. Если такое возможно (платформой и по коду), то я должен был прописать.
58. MarSeN 984 27.03.18 17:00 Сейчас в теме
Не думал, что данная разработка еще актуальна )
59. check2 354 04.05.18 05:34 Сейчас в теме
(58) Ещё как актуальна, мы её допилили, добавили работу с существующими элементами - перемещение, скрытие, удаление. Добавили работу с группами, кнопками. Сделали дополнительно обработку - генератор форм. Т.е. в рунтайме правим табличку - получаем форму с новыми вставленными элементами. Очень помогает в процессе написания проектных решений чтобы не просто описывать будущую форму, а заскринить, выделить новые элементы. Затем таблички сохраняем к заданию на разработку.- кодеру достаточно только заменить пути в элементах форм на реквизиты объекта. Как результат - снижение трудоёмкости работ при проектировании.
60. Sirruf 192 30.06.22 17:43 Сейчас в теме
Не разделяю восторгов в комментариях, реализация не выдерживает никакой критики хотя бы потому, что все это не будет работать в веб-клиенте по причине: "оператор выполнить в веб-клиенте не поддерживается". Вот попробуйте реализовать функционал без этого оператора, тогда это будет действительно круто)
Оставьте свое сообщение