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

31.01.13

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

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Демо конфигурация
.zip 73,08Kb
309
309 Скачать (1 SM) Купить за 1 850 руб.

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

В предыдущей статье я предложил методику модификации конфигурации 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! 15%

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

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

10000 руб.

02.09.2020    159425    872    399    

861

SALE! 15%

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

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP и т.д.). Поддерживаются управляемые и обычные формы. Может выполнять свертку сразу нескольких баз данных и выполнять их автоматически без непосредственного участия пользователя.

8400 7140 руб.

20.08.2024    7770    55    22    

66

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

Инструмент для написания и отладки кода в режиме «1С:Предприятие». Представляет собой консоль кода с возможностью пошаговой отладки, просмотра значений переменных любых типов, использования процедур и функций, просмотра стека вызовов, вычисления произвольных выражений на встроенном языке в контексте точки останова, синтаксического контроля и остановки по ошибке. В консоли используется удобный редактор кода с подсветкой, контекстной подсказкой, возможностью вызова конструкторов запроса и форматной строки.

9360 руб.

17.05.2024    23435    68    45    

117

SALE! 15%

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

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

10000 8500 руб.

10.11.2023    10425    36    22    

61

SALE! 15%

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

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

22200 19980 руб.

06.10.2023    15399    35    7    

70

SALE! 35%

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

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

4800 3120 руб.

14.01.2013    187984    1138    0    

912

SALE! 15%

Инструментарий разработчика Программист 8.3.14 1С:Конвертация данных Россия Платные (руб)

Расширение для конфигурации “Конвертация данных 3”. Добавляет подсветку синтаксиса, детальную контекстную подсказку, глобальный поиск по коду.

15000 12750 руб.

07.10.2021    17303    6    32    

42

Инструментарий разработчика Программист Платные (руб)

Менеджер конфигураций 1С — альтернативный стартер информационных баз 1С:Предприятие.

1800 руб.

21.02.2023    7694    8    35    

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

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

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

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

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

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

Насчет прав я не про роли. А про возможность использовать RLS шаблоны самой БСП. Там нужно в нескольких объектах изменять типы, примеры: ПВХ.Виды объектов доступа, некоторые подписки на события, типы измерений некоторых регистров.
19. MarSeN 987 13.02.13 13:57 Сейчас в теме
(18) К сожалению приходится нсимать с поддержки и править ручками то что нельзя "отнаследовать". В каждом случае приходится решать проблемку конкретно. Иногда, если есть такая возможность правильнее упростить задачу или решить ее бругим путем. Но 1С в некоторых случаях не оставляет нам другого пути, как решать задачу "В лоб" (
20. ivanov660 4577 09.03.13 17:08 Сейчас в теме
Интересный подход. Хотел бы спросить по поводу ограничения доступа на уровне реквизитов, проблем с этим не было? Или задачу динамического размещения необходимо создавать в привилегированном режиме, или данный функционал не зависит от этой особенности?
21. MarSeN 987 09.03.13 20:30 Сейчас в теме
(20) ivanov660
Все "динамические" модификации делаются в привелегированном режиме. С правами реквизитов объекта "только на просмотр" все работает корректно. Если отсутствуют права на чтение то будет ошибка. Я делал этот механизм на УТ11 и у в моих задачах не было необходимости запрещать чтение реквизитов.
но не проблема проверить перед добавлением элемента на форму права пользователя на чтение динамически добавляемых реквизитов.
22. Kaval88 174 11.03.13 11:53 Сейчас в теме
Интересный подход. Хорошо применялась для моих прикладных задач.
23. MarSeN 987 11.03.13 12:06 Сейчас в теме
(22) Kaval88
По моему мнению, на данный момент, это наиболее "полный" вариант из имеющихся на инфостарте включающий подписки, элементы формы и реквизиты.
Задумываюсь над тем чтобы перевести настройку в режим предприятия посредством обработки - визуально чтоб можно было все делать.
24. MarSeN 987 11.03.13 12:07 Сейчас в теме
(22) я рад, что данная разработка будет применена не только в моих решениях )
25. irishka77 16.04.13 12:58 Сейчас в теме
Спасибо, ко времени.Начала работать с бух3.0.
26. MarSeN 987 16.04.13 13:58 Сейчас в теме
(25) irishka77,
всегда пожалуйста )
27. HIgor 21 08.08.13 11:49 Сейчас в теме
События &НаСервере пробовали переопределять? У меня ошибки посыпались (хотя мог и я недоглядеть что-нибудь, вместо макета справочник дополнительный завел). &НаКлиенте - все отлично переопределяется.
28. MarSeN 987 08.08.13 11:58 Сейчас в теме
(27) HIgor,
Да, должно быть в примере. на документе Заказ. Кажись итоги там подчитываются
29. pbazeliuk 1969 23.08.13 16:05 Сейчас в теме
На версии УТ 11.1.2.8 и выше - не сработает переопределение событий, например в документе реализация товаров услуг.
31. MarSeN 987 23.08.13 17:38 Сейчас в теме
(29) pbazelyuk,
А на версии ниже работает??
Думаю, что проблема не в версиях.
Код в студию )) или в личку.
30. Evgen.Ponomarenko 568 23.08.13 17:19 Сейчас в теме
Годится, откладываю статью в "закладки"! Вернусь после командировки - разберу по винтикам :)
32. mister_tula 21.03.14 14:29 Сейчас в теме
Интересное решение, но есть большое сомнение в эффективности его применения к изменению типовых конфигураций. Очень большой объем кода приходится вставлять в модули форм, может проще и быстрее вставить "визуальные" элементы и описать на месте все обработчики? Форму-то всё равно придётся скопировать, а потом исправлять! Или Вы меняете существующую форму?
На первый взгляд вижу только некую "классификацию-напоминалку" внесенных изменений в макете "ДинамическиеЭлементыФорм" и "ДинамическиеРеквизитыФорм"?!! Какое мнение автора? Хотелось бы обсудить!
Прикрепленные файлы:
33. MarSeN 987 21.03.14 15:08 Сейчас в теме
(32) mister_tula,
Меняется модуль формы и реквизиты. Вставляются только шаблоны обработчиков и строчка вызова общего модуля.
Все что в статье описано как пример и работает на демо конфе - в статье отражено ввиде принтскринов. Думаю это не большие изменения.
или я не понял Вашего вопроса?
готов обсудить.
я не совсем понял о чем Вы "Какое мнение автора?"
mister_tula; +1 Ответить
34. mister_tula 21.03.14 16:16 Сейчас в теме
Возможно Вы меня не совсем поняли. Шаблоны обработчиков необходимо вставлять в форму, сами обработчики в общий модуль. Я пишу о том, что текста то-полно!! Может всё это сразу вставить в форму и будет проще! Зачем такие сложности? Я не вижу достоинств Вашего решения перед более простым. Возможно я ошибаюсь. Я пытаюсь практически применить Ваши решения и пока не заметил преимуществ. Поэтому и хотел с обсудить. Если , конечно, у Вас есть время.
35. MarSeN 987 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 987 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 987 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 987 22.03.14 00:17 Сейчас в теме
(41) mister_tula,
поделитесь результатами экспериментов )
43. zqzq 25 17.04.14 08:32 Сейчас в теме
Глянул демо-конфу, достаточно красиво и главное просто реализовано (в отличии от соседней темы где внешние обработки и черт ногу сломит). Единственное, повторяющийся код типа
	МассивИнструкций = ДинамическиеЭлементыКлиентСервер.ПолучитьИнструкцииПереопределаемыхОбработчиков(ЭтаФорма, "ПослеЗаписи");
	
	Для Каждого Инструкция из МассивИнструкций Цикл 
		Выполнить(Инструкция);
	КонецЦикла;	
можно было бы заменить на одну строчку типа
Выполнить(ДинамическиеЭлементыКлиентСервер.ПолучитьВсеИнструкцииПереопределаемыхОбработчиков(ЭтаФорма, "ПослеЗаписи")); 
44. MarSeN 987 17.04.14 09:14 Сейчас в теме
(43) zqzq,
Спасибо
Нет, Ваш код не подходит. Цикл сделан специально, так как подсистема способна нетолько добавлять и заменять сущеструюшие обработчики, но и выполнять новый обработчик до или после существующего.
45. zqzq 25 17.04.14 11:16 Сейчас в теме
(44) ну так загнать массив инструкций в многострочную строку в общем модуле и её уже выполнять на форме.
46. MarSeN 987 17.04.14 11:19 Сейчас в теме
(45) zqzq,
) Согласен, ступил. Спасибо.
47. knasa 18.03.15 08:17 Сейчас в теме
Здравствуйте MarSeN.
Подскажите пожалуйста, а можно ли на основе Вашей разработки полностью создать таблицуформы и определить в ней колонки. Наподобии как если бы я сделал это в ручную на управляемой форме?
48. MarSeN 987 26.03.15 13:45 Сейчас в теме
(47) Да, можно.
это есть в примере
49. It-developer 26 08.05.15 10:10 Сейчас в теме
Не знаю, не знаю. Пробовал динамически добавлять элементы, но в обычные формы. Довольно геморройное дело. Слишком много кода.
Наверно, для каких-то целей такая реализация может подойти. Например, когда у тебя пару сотен узлов, которые ты обновлять не хочешь.
Но опять же, писать кучу всяких обработчиков в самой форме нужно (не считая события ПриСозданииНаСервере) :(
И потом ... в макетах куча описалова по обработчикам, элементам, реквизитам. Приколол макет с реквизитами - куча свойств формы в макете :) - в конце проекта в этом макете будут все свойства реквизитов форм :))
Не знаю как автору, но мне было бы неудобно больше всего не видеть визуально изменяемую форму.
Я поставил плюс, т. к. сама идея мне лично интересна
50. MarSeN 987 08.05.15 13:43 Сейчас в теме
(49)
Я объединение делал через KDiff 3 при этом использовал 3 версии текстов (cf) - конфа поставщика, новая версия, и текущая версия.
при этом кадиф автоматом предлагает, если нет изменений между поставщиком и новой от поставщика, вставить код от текущей версии
52. Cyberhawk 135 06.06.16 14:50 Сейчас в теме
1. Я правильно понимаю, что переопределить обработчик ПриСозданииНаСервере не получится?
2. Также желательно описать (и добавить в демо-конфигурацию) переопределение обработчика, получающего на вход больше одного параметра
53. MarSeN 987 06.06.16 18:29 Сейчас в теме
(52)
1. Можно переопределить обработчик ПриСозданииНаСервере, но я не заморачивался тогда по причине отсутствия надобности.
2. Принцип всегда один, но количество параметров зависит от конкретного обработчика. Тут особо описывать нечего. Я всегда брал типовой и на основе него делал переопределеное.
54. check2 379 27.03.18 12:03 Сейчас в теме
Сергей, просто супер!
А почему все элементы в один макет? не лучше ли было бы лепить макеты к самому объекту: три макета. Если очень много дорабатываемых объектов, то чуть-чуть выиграем на сканировании табличного документа и... самое главное... я в задании на разработку описываю табличку что во что должно вставиться... Мы просто копируем табличку из задания на разработку и разработчику нужно вставить несколько обработчиков в форму... Щастье... Беру демку, переделаю под себя... Идея просто блестящая.
Спасибо!

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

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