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
10
10 Скачать (5 SM) Купить за 3 050 руб.

Предыдущая Часть 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    175462    976    403    

933

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

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

8400 руб.

20.08.2024    17011    119    59    

120

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

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

22200 руб.

06.10.2023    18186    49    19    

81

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

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

9360 руб.

17.05.2024    28315    98    48    

143

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

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

15000 руб.

10.11.2023    12440    49    33    

70

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

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

20000 руб.

07.10.2021    18411    7    32    

43

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

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

3600 руб.

27.12.2024    1507    2    0    

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

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

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

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

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

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

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

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