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

03.04.21

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

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

Скачать файл

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

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

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

Предисловие

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

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

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

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

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

 

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

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

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

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

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

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

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

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

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

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

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

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

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

 

Ссылки:

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

Статьи:

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

Статьи:

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

См. также

SALE! 15%

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

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

10000 руб.

02.09.2020    159335    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    7752    55    22    

66

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

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

9360 руб.

17.05.2024    23416    68    45    

117

SALE! 15%

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

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

10000 8500 руб.

10.11.2023    10404    36    20    

61

SALE! 15%

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

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

22200 19980 руб.

06.10.2023    15384    35    7    

70

SALE! 35%

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

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

4800 3120 руб.

14.01.2013    187961    1138    0    

912

SALE! 15%

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

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

15000 12750 руб.

07.10.2021    17295    6    32    

42

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

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

1800 руб.

21.02.2023    7691    8    35    

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

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

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

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

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

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

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

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

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