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

03.04.21

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

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

Файлы

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

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

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

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

Предисловие

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

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

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

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

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

 

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

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

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

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

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

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

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

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

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

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

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

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

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

 

Ссылки:

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

Статьи:

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

Статьи:

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

Вступайте в нашу телеграмм-группу Инфостарт

См. также

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

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

15500 руб.

02.09.2020    207578    1139    413    

1035

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

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

8400 руб.

20.08.2024    37503    213    111    

201

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

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

16000 руб.

10.11.2023    17047    74    39    

89

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

Расширение для создания и редактирования печатных форм в системе 1С:Предприятие 8.3. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и прозрачность разработки, а также навести порядок в многообразии корпоративных печатных форм.

22200 руб.

06.10.2023    24760    65    28    

94

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

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

9500 руб.

17.05.2024    35762    130    53    

173

SALE! 30%

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

Инструмент для генерации OpenApi (Swagger) спецификаций на основании файлов конфигураций 1С. Это консольное и десктопное приложение на языке Rust с полноценным редактором кода, содержащим автозамену и подсвечивание ошибок для быстрого и безошибочного написания документирующего комментария.

18000 12600 руб.

22.11.2024    2142    1    0    

8

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

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

3600 руб.

27.12.2024    3050    7    0    

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

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

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

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

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

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

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

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

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