FormCodeGenerator Программная доработка форм. Часть 2 (Режим работы "Режим сравнения форм") на примере ERP 2.5

03.04.21

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

Данная публикация является продолжением описания функционирования обработки "FormCodeGenerator " в режиме сравнения форм и генерирования кода на основании сравнения. Подходит для перевода уже доработанных форм с интерактивной доработки на программную. Данный режим работы обработки снизит издержки при дальнейших обновлениях конфигураций.

Скачать исходный код

Наименование Файл Версия Размер
Расширение без доработок, в котором обработка и модуль РедакторФорм
.cfe 52,54Kb
14
.cfe 1.0.0.2 52,54Kb 14 Скачать
Расширение прямо из примера, с доработкой под формы ERP.
.cfe 53,95Kb
10
.cfe 1.0.0.2 53,95Kb 10 Скачать
FormCodeGenerator Программная доработка форм. Часть 2 (Режим работы "Режим сравнения форм") на примере ERP 2.5:
.cfe 62,48Kb
9
.cfe 1.0.0.4 62,48Kb 9 Скачать

Предыдущая Часть 1 (Режим работы "Палитра")

Предисловие

На этот раз будет демонстрироваться работа обработки в составе расширения.

Этому есть несколько причин.

  • На начальном этапе можно не добавлять общий модуль "РедакторФорм" а он будет в расширении.
  • В этом же расширении можно подключать к типовым формам без включения возможности изменения.
  • Можно выносить доработанные формы так же в расширение, дорабатывать ее интерактивно и сравнивать с ней(не всегда работает).

Сегодня продемонстрирую как можно дорабатывать типовое решение с помощью обработки "FormCodeGenerator" в составе расширения.

Отправная точка: Конфигурация ERP полностью типовая с включенной возможностью изменения для корня и документа "ПриобретениеТоваровУслуг".

 

Подготовка конфигурации

Для подготовки конфигурации необходимо подключить расширение(файл из данной публикации) и добавить возможность получения данных из формы.

Так как я буду показывать на ERP, то я буду использовать процедуру МодификацияКонфигурацииПереопределяемый.ПриСозданииНаСервере(огромный поклон разработчикам ERP, что реализовали такую возможность, в других конфигурациях можно "врезаться" в какие ни будь процедуры и функции из БСП, которые подключаются в формы, что бы можно было покрыть максимальное количество форм, которые можно "читать" данной обработкой).

Добавленный код:
    Если Форма.Параметры.Свойство("РедакторФорм") Тогда
        ИмяПодключеннойОбработки = Форма.Параметры.РедакторФорм.ИмяПодключеннойОбработки;
        Если Форма.Параметры.РедакторФорм.ЗапущенаКакВнешняя Тогда
            ВнешниеОбработки.Создать(ИмяПодключеннойОбработки, Ложь).ПодготовитьДанныеАнализируемойФормы(Форма);
        Иначе
            Обработки[ИмяПодключеннойОбработки].Создать().ПодготовитьДанныеАнализируемойФормы(Форма);
        КонецЕсли;
    КонецЕсли;

Интерактивная доработка формы

Что бы получить результат сравнения форм, нужно подготовить форму которая будет доработана.

Для этого я в конфигурации делаю копию текущий типовой формы(эталонной) и дальше дорабатываю ее как хочу через редактор.

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

Перенос кода по результату сравнения форм

Полученный код из результата сравнения форм переносится в типовую форму в процедуру "ПриСозданииНаСервере".

После переноса кода запускаем 1с и смотрим результат доработанной типовой формы, програмно, сгенерированным кодом.

Зависимости:

Для работы сгенерированного кода необходимо наличие модуля "РедакторФорм": https://github.com/huxuxuya/1cFormEditor

 

Ссылки:

 Модуль "FormEditor"(РедакторФорм)Проект на GitHub 

Статьи:

Обработка "FormCodeGenerator"Проект на GitHub 

Статьи:

Группа в телеграмм: https://t.me/FormCodeGenerator1c

См. также

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

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

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

10000 руб.

02.09.2020    124965    683    389    

732

Infostart PrintWizard - создание и редактирование печатных форм в 1С 8.3

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

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

18000 руб.

06.10.2023    7773    24    6    

42

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

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

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

10000 руб.

10.11.2023    4285    12    2    

36

SALE! %

PowerTools

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

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

3600 2280 руб.

14.01.2013    178651    1084    0    

862

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

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

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

5000 руб.

07.02.2018    99633    239    97    

298

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

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

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

3000 руб.

27.08.2019    18389    6    8    

40

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

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

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

2400 руб.

24.09.2019    23857    16    15    

33

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

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

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

2040 руб.

27.12.2017    28323    3    10    

16
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Cmapnep 18 22.12.20 08:25 Сейчас в теме
Очень перспективный подход для быстрой доработки, спасибо!
Можно выносить доработанные формы так же в расширение, дорабатывать ее интерактивно и сравнивать с ней(не всегда работает)

А какие же все таки ограничения использования?
+
2. huxuxuya 368 22.12.20 08:56 Сейчас в теме
(1) Спасибо :)
"Не всегда работает", потому что если взять форму и скопировать из конфигурации и вставить в расширение у некоторых реквизитов затирается тип данных, у меня тут много экспериментов не было... но скорее всего что бы не затирается этот тип, нужно и объект этого типа затащить в расширение.
Может кто специалист по расширениям меня поправит.
Cmapnep; +1
3. Cmapnep 18 22.12.20 09:38 Сейчас в теме
(2) если скопировать и вставить, то да, могут быть битые ссылки. Но так и без расширений при копировании объекта из одной конфы в другую происходит. Проблемы не будет если заимствовать форму (ПКМ -> Добавить в расширение) - в этом случае все объекты по ссылкам также будут заимствованы даже не очень нужные вроде картинок и ссылки в форму будут рабочими.
+
4. KliMich 26.12.20 07:01 Сейчас в теме
Очень нужная.
Скачать файлы
FormCodeGenerator Программная доработка форм. Часть 2 (Режим работы "Режим сравнения форм") на примере ERP 2.5.:

их 2.
Какая из них последняя?
+
5. huxuxuya 368 26.12.20 10:31 Сейчас в теме
(4) Поправил описание. Спасибо.
+
6. buganov 200 28.12.20 10:16 Сейчас в теме
А мне нравится старый добрый декомпилятор https://infostart.ru/public/304736/
Еще и бесплатный.
Хотя, может у автора есть какая-то фишка в его разработке?
KudelinMB; +1
9. huxuxuya 368 28.12.20 13:30 Сейчас в теме
(6) Основная фишка в это доработке это то что уже доработанную конфигурацию, в которой элементы и команды добавляли мышкой на форму, можно перевести на программную реализацию, оставив при этом форму типовой.

Да https://infostart.ru/public/304736/ отличная обработка, моя ошибка была в том что взял часть кода из этой обработки, теперь страшно рефакторинг делать, часть кода причесал, но к красивому коду уже сложно придти.
Если говорить про обработку, которая декомпилятор, например она не может работать в расширении, еще в ней мне не нравится интерфейс, сложно собирать с разных вкладок разные части кода, еще больше всего мне не нравится что та обработка не развивается.

Сначала я эту обработку хотел сделать бесплатной, но понял что тягаться с декомпилятором не получится, поэтому хоть пару стартманей соберу, что бы купить продвижение за 10$m.
+
10. buganov 200 28.12.20 18:05 Сейчас в теме
(9)Странно, если честно, но я точно так же декомпилятором вчера переводил натыканные мной реквизиты и элементы на измененную форму в расширении. Ну да ладно
+
11. huxuxuya 368 30.12.20 16:33 Сейчас в теме
(10) Наверно я не так выразился... Данное решение можно добавить в расширение, либо использовать поставляемое расширение и оно будет работать, т.е. производить доработку в контексте одного расширения, т.е. в этом расширении можно держать и модуль "РедакторФорм" и саму обработку, которая будет через "функции для технического специалиста" доступна, а не внешней держать и формы можно сразу в расширение копировать из самой конфигурации, там "натыкивать" мышкой визуализацию формы а потом сравнивать с эталонной, которая в конфигурации лежит и получать код по диффам.
т.е. что бы все в одном месте было - расширении

А на сколько помню "декомпилятор форм" вот месяца 4 назад не работал в расширении, думаю Евгения может быстро это поправить, но судя по апдейту от 15 наврядли это будет сделано.

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

Хотелось добиться что бы можно было сделать ctrl+c -> ctrl+v и у меня почти получилось, уже формы одной конфигурации откатывал на формы от поставщика, и натыканное ранее конвертировал в код :)
+
7. triviumfan 93 28.12.20 10:50 Сейчас в теме
Работает ли декомпилятор для элементов формы, действия которых являются стандартные команды?
Можно ли вообще программно добавить стандартную команду (например, СортировкаСписка для ДанныеФормыКоллекция)?
+
8. huxuxuya 368 28.12.20 13:22 Сейчас в теме
(7) Нет не работает, со стандартными командами проблема... Платформа мало что позволяет со стандартными командами :(

Если расскажите как реализовать работу со стандартными командами программно, поддержу.
+
Оставьте свое сообщение