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. Игнорировать флаг "ИспользованиеВЗаказах" при выборе номенклатуры.
  • Результат и изменения ниже:
 
так-же существует настройка в макете динамических элементов аналогии в изменением спр. Номенклатура. 

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

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

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

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

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

См. также

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

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

12000 руб.

02.09.2020    171978    964    403    

924

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

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

8400 руб.

20.08.2024    14471    109    46    

108

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

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

22200 руб.

06.10.2023    17331    43    15    

75

Инструментарий разработчика Программист Платформа 1С v8.3 1C:Бухгалтерия Платные (руб)

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

9360 руб.

17.05.2024    27333    96    48    

138

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

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

15000 руб.

10.11.2023    11936    45    33    

67

SALE! %

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

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

4800 3840 руб.

14.01.2013    191317    1153    0    

920

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

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

20000 руб.

07.10.2021    18107    7    32    

42

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

Разработка Конструктор автоматизированных рабочих мест "Конструктор АРМ" реализована в виде расширения и является универсальным инструментом для создания АРМ любой сложности в пользовательском режиме.

3600 руб.

27.12.2024    1143    2    0    

5
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. MarSeN 987 31.01.13 12:55 Сейчас в теме
Хочу уточнить, то в примере используются переопределение и установка событий &НаКлиенте, но механизм расчитан на все события формы и элементов. т.е. пожно переопределять и устанавливать события как &НаКлиенте так и &НаСервере
2. TitanLuchs 416 01.02.13 13:21 Сейчас в теме
В реальной жизни уже пробовали тестировать? Как-нибудь отражается на быстродействии, тормозов нет?
3. MarSeN 987 01.02.13 13:49 Сейчас в теме
(2) Все написанное в обоих статьях с успехом применяется в разрабатываемой и уже внедренной конфигурации УТ11.
Тормозов нет
4. Evil Beaver 8263 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 203 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 4596 09.03.13 17:08 Сейчас в теме
Интересный подход. Хотел бы спросить по поводу ограничения доступа на уровне реквизитов, проблем с этим не было? Или задачу динамического размещения необходимо создавать в привилегированном режиме, или данный функционал не зависит от этой особенности?
21. MarSeN 987 09.03.13 20:30 Сейчас в теме
(20) ivanov660
Все "динамические" модификации делаются в привелегированном режиме. С правами реквизитов объекта "только на просмотр" все работает корректно. Если отсутствуют права на чтение то будет ошибка. Я делал этот механизм на УТ11 и у в моих задачах не было необходимости запрещать чтение реквизитов.
но не проблема проверить перед добавлением элемента на форму права пользователя на чтение динамически добавляемых реквизитов.
22. Kaval88 175 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 1970 23.08.13 16:05 Сейчас в теме
На версии УТ 11.1.2.8 и выше - не сработает переопределение событий, например в документе реализация товаров услуг.
31. MarSeN 987 23.08.13 17:38 Сейчас в теме
(29) pbazelyuk,
А на версии ниже работает??
Думаю, что проблема не в версиях.
Код в студию )) или в личку.
30. Evgen.Ponomarenko 570 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 382 27.03.18 12:03 Сейчас в теме
Сергей, просто супер!
А почему все элементы в один макет? не лучше ли было бы лепить макеты к самому объекту: три макета. Если очень много дорабатываемых объектов, то чуть-чуть выиграем на сканировании табличного документа и... самое главное... я в задании на разработку описываю табличку что во что должно вставиться... Мы просто копируем табличку из задания на разработку и разработчику нужно вставить несколько обработчиков в форму... Щастье... Беру демку, переделаю под себя... Идея просто блестящая.
Спасибо!

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

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