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

03.02.22

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

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

Скачать файл

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

Наименование По подписке [?] Купить один файл
Создание и поддержка разных редакций (Demo, Lite, Pro и пр.) модулей, отчетов и обработок: Дистрибутив
.zip 13,71Kb ver:1.1
1
1 Скачать (1 SM) Купить за 1 850 руб.

 

О проблеме

При выпуске программного продукта часто возникает вопрос о его подготовке в виде разных редакций, 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.

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

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

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

См. также

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

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

12000 руб.

02.09.2020    169837    939    403    

905

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

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

8400 руб.

20.08.2024    12928    100    46    

103

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

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

9360 руб.

17.05.2024    26671    90    48    

134

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

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

22200 руб.

06.10.2023    16907    41    15    

75

SALE! %

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

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

4800 3840 руб.

14.01.2013    190679    1151    0    

918

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

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

15000 руб.

10.11.2023    11441    40    27    

66

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

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

15120 руб.

28.09.2012    97718    595    289    

146

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

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

3600 руб.

27.12.2024    915    2    0    

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

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

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

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