Создание и поддержка разных редакций (Demo, Lite, Pro и пр.) модулей, отчетов и обработок

03.02.22

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

В статье предлагается один из возможных подходов к автоматизации создания и поддержки разных редакций (Demo, Lite, Pro и пр.) модулей, отчетов и обработок. Подход может быть полезным для авторов публикаций с коммерческими разработками.

Скачать файлы

Наименование Файл Версия Размер
Создание и поддержка разных редакций (Demo, Lite, Pro и пр.) модулей, отчетов и обработок: Дистрибутив
.zip 13,71Kb
1
.zip 1.1 13,71Kb 1 Скачать

 

О проблеме

При выпуске программного продукта часто возникает вопрос о его подготовке в виде разных редакций, Demo, Free, Lite, Standard, Pro и пр.

Системы сборки для языков программирования прекрасно решают эту задачу. Например, при разработке приложения для Android разработчик может создать редакции приложения используя Product flavors. 

К сожалению, ничем подобным конфигуратор 1С похвастать не может. Думаю, такой функционал можно реализовать в EDT, например, в виде плагина. Но хотелось бы иметь более простое решение, работающее как для конфигураций на обычных формах так и на управляемых.

Выбор не богат, придется сделать свою небольшую систему сборки. Пусть система работает только с текстом, большего и не надо.

 

Постановка задачи

Итак, требования к системе сборки:

  1. Система сборки должна уметь обрабатывать исходный текстовый код модуля.
  2. Исходный код должен разрабатываться в основной редакции (варианте) модуля. Должна быть возможность запускать и отлаживать основную редакцию в 1С: Предприятии. Поэтому система сборки не должна требовать внесения изменений, приводящих к синтаксическим ошибкам.
  3. В исходном коде основного варианта должны быть возможности:
    1. Объявлять редакции для системы сборки;
    2. Использовать переменные (текущая дата, идентификатор редакции и т.п.) текущего контекста системы сборки;
    3. Указывать принадлежность части кода к определенным редакциям;
    4. Помечать части кода, которые надо исключить для всех редакций.
  4. Система сборки должна определять текущий номер версии из комментария вида:
    //Версия 1.0
  5. Система сборки должна генерировать все объявленные редакции сразу, за один проход.

 

Решение

Система сборки Make1C написана на Java. Почему на Java? Проще использовать регулярные выражения, легче разрабатывать сложные алгоритмы. Работает везде :), где есть Java  машина.

Да, тоже самое можно было сделать и на встроенном языке 1С.

Система сборки обрабатывает только текстовые файлы, далее обработанный текст можно вставить в модуль, отчет или обработку используя пакетный режим работы конфигуратора (с ключами /DumpExternalDataProcessorOrReportToFiles и  /LoadExternalDataProcessorOrReportFromFiles) или вручную.

 

Пример использования

Приведу пример использования в стиле "Hello world!". Исходный код базового варианта модуля:

 

Размещаем текстовый файл hello-world.txt с исходным кодом модуля в каталоге HelloWorld, в командной строке запуска указываем исходный файл и каталог для вывода, запускаем

под Linux:

java -Dsource="./hello-world.txt" -Dtarget="./" -jar "../../Make1C/Make1C.jar"

под Windows:

java -Dsource="hello-world.txt" -Dtarget="" -jar "..\..\Make1C\Make1C.jar"

В результате в подкаталоге hello-world будут сформированы 3 файла, Demo.txt, Lite.txt, Standard.txt.

Сгенерированный код модуля в редакции Demo:

 

Сгенерированный код модуля в редакции Lite:

 

Сгенерированный код модуля в редакции Standard:

 

 

Практическое использование

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

Так, уже на протяжении нескольких лет, использую Make1C в разработке отчетов по дебиторской и кредиторской задолженности. Отчеты технически сложные, содержат в себе непростые алгоритмы расчета. Благодаря Make1C разработка ведется в одном базовом варианте отчета (по одному на каждый отчет). После тестирования через систему сборки новый функционал попадает в конечные редакции отчетов. Это намного эффективнее, нежели поддерживать по отдельности каждую редакцию отчета.

К публикации приложен дистрибутив с примером использования Make1C.

Тесты выполнены в операционной среде:

1. Linux

На платформах:

1. 1С:Предприятие 8.3
2. 1С:Предприятие 8.2

В конфигурациях:

1. Бухгалтерия Предприятия, редакция 3.0
2. Комплексная автоматизация, редакция 2.4
3. Управление торговлей, редакция 11
4. Управление производственным предприятием, редакция 1.3
5. Комплексная автоматизация, редакция 1.1

 

Другие публикации автора

Дебиторская задолженность по срокам долга

Кредиторская задолженность по срокам долга

Когда много сканов: Автоматическое прикрепление сканированных документов

Когда много строк в документе: Удобный редактор табличных частей

Перенос справочников и документов из КА 1.1. в ЗУП 3.1.

Статистика документов на СКД для любой конфигурации

Формирование счетов-фактур на аванс

Рабочее место менеджера по взаимодействию с клиентами

См. также

SALE! 20%

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

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

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

10000 8000 руб.

02.09.2020    122416    673    389    

716

SALE! 25%

Infostart PrintWizard

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

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

18000 15300 руб.

06.10.2023    7343    22    6    

39

SALE! 20%

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

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

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

10000 8000 руб.

10.11.2023    3640    11    1    

34

SALE! 30%

PowerTools

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

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

3600 2520 руб.

14.01.2013    177839    1074    0    

852

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

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

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

5000 руб.

07.02.2018    99382    239    97    

296

SALE! 25%

Дебиторская задолженность по срокам долга

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

Один из лучших вариантов отчета по дебиторской задолженности. Отображает сроки возникновения задолженности, просроченной задолженности с точностью до регистратора, а также многое другое, вне зависимости от схемы взаиморасчетов (online / offline) и объекта расчетов (УТ 11.3, 11.4, 11.5, КА 2.4, 2.5, ERP 2.4, 2.5), состояния флажка "по документам расчета" ( УТ 10, КА 1.1, УПП 1.3) в договоре. Группирует задолженность по интервалам. Имеет большое количество настроек. Не требует доработок конфигурации.

15120 11340 руб.

28.09.2012    94496    588    268    

139

SALE! 30%

Когда много сканов: Автоматическое прикрепление сканированных документов

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

Обработка экономит время, распознавая и прикрепляя сканированные оригиналы документов к документам в 1С. Поддерживаются штрихкоды, QR-коды, отсканированные PDF документы без штрихкодов, полученные в результате потокового сканирования PDF документы, сформированные в ЭДО PDF документы.

6480 4536 руб.

23.12.2021    12087    7    24    

7

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

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

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

3000 руб.

27.08.2019    18141    6    8    

40
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. DitriX 2091 17.02.21 16:19 Сейчас в теме
Ну если еще немного посидеть, то можно прийти к тому, что вместо коментариев надо использовать регионы.
Что вместо джавы - надо использовать оскрипт.
Что кейс много сложнее, так как есть еще и формы, макеты и прочая фигня.
Что тогда надо пилить обработку внутри конфы, и делать три расширения на каждую версию, и попеременно их включая и выключая тестировать ту или инфу функциональность.
Что надо написать тесты, ибо без этого - делать не возможно.
Потом надо прописать сборку расширений в эту обработку, с учетом форм, макетов и прочего.

И вот только потом можно говорить, что вы получили три редакции на базе одной, и что вы остальными вырезаете лишнее, и не только код.
shalimski; +1 Ответить
2. bme 217 18.02.21 11:25 Сейчас в теме
Не надо использовать области вместо комментариев. В названиях областей нельзя использовать пробелы и запятые.

По всему остальному. Кейс можно усложнять, а можно этого не делать. Вы же сами решаете, что войдет в функционал редакций.

Ну и предлагаемая система - консольная, ничего не мешает ее использовать в других скриптах со сборкой конфигуратором отчетов и обработок.
Оставьте свое сообщение