Предыдущая Часть 1 (Режим работы "Палитра")
Предисловие
На этот раз будет демонстрироваться работа обработки в составе расширения.
Этому есть несколько причин.
- На начальном этапе можно не добавлять общий модуль "РедакторФорм" а он будет в расширении.
- В этом же расширении можно подключать к типовым формам без включения возможности изменения.
- Можно выносить доработанные формы так же в расширение, дорабатывать ее интерактивно и сравнивать с ней(не всегда работает).
Сегодня продемонстрирую как можно дорабатывать типовое решение с помощью обработки "FormCodeGenerator" в составе расширения.
Отправная точка: Конфигурация ERP полностью типовая с включенной возможностью изменения для корня и документа "ПриобретениеТоваровУслуг".
Подготовка конфигурации
Для подготовки конфигурации необходимо подключить расширение(файл из данной публикации) и добавить возможность получения данных из формы.
Так как я буду показывать на ERP, то я буду использовать процедуру МодификацияКонфигурацииПереопределяемый.ПриСозданииНаСервере(огромный поклон разработчикам ERP, что реализовали такую возможность, в других конфигурациях можно "врезаться" в какие ни будь процедуры и функции из БСП, которые подключаются в формы, что бы можно было покрыть максимальное количество форм, которые можно "читать" данной обработкой).
Добавленный код: Если Форма.Параметры.Свойство("РедакторФорм") Тогда ИмяПодключеннойОбработки = Форма.Параметры.РедакторФорм.ИмяПодключеннойОбработки; Если Форма.Параметры.РедакторФорм.ЗапущенаКакВнешняя Тогда ВнешниеОбработки.Создать(ИмяПодключеннойОбработки, Ложь).ПодготовитьДанныеАнализируемойФормы(Форма); Иначе Обработки[ИмяПодключеннойОбработки].Создать().ПодготовитьДанныеАнализируемойФормы(Форма); КонецЕсли; КонецЕсли;
Интерактивная доработка формы
Что бы получить результат сравнения форм, нужно подготовить форму которая будет доработана.
Для этого я в конфигурации делаю копию текущий типовой формы(эталонной) и дальше дорабатываю ее как хочу через редактор.
После того как я получил эталонную форму и доработанную мышкой, я их выбираю в обработке и получаю код, который нужно вызвать в эталонной форме, что бы ее довести до вида доработанной, но только программным изменением элементов форм.
Перенос кода по результату сравнения форм
Полученный код из результата сравнения форм переносится в типовую форму в процедуру "ПриСозданииНаСервере".
После переноса кода запускаем 1с и смотрим результат доработанной типовой формы, програмно, сгенерированным кодом.
Зависимости:
Для работы сгенерированного кода необходимо наличие модуля "РедакторФорм": https://github.com/huxuxuya/1cFormEditor
Ссылки:
Модуль "FormEditor"(РедакторФорм): Проект на GitHub
Статьи:
Обработка "FormCodeGenerator": Проект на GitHub
Статьи:
- Предыдущая Часть 1 (Режим работы "Палитра")
- Как я пришел к данной обработке: Статья. Быстрая кодогенерация программной доработки форм.
Группа в телеграмм: https://t.me/FormCodeGenerator1c