Конструктор скриптов (расширение)

30.03.23

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

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

Скачать файл

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

Наименование По подписке [?] Купить один файл
Конструктор скриптов (расширение):
.cfe 62,42Kb
2
2 Скачать (1 SM) Купить за 1 850 руб.

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

В расширении реализовано:

  • Склейка команд
  • Подстановка переменных
  • Переходы по условиям
  • Запуск регламентным заданием

 

Рассмотрим базовую функциональность на примере конвертации хранилища 1с в Git в формате EDT. Предполагаем что EDT и Git установлены, также выполнено создание проекта и выгружена первая версия хранилища, а структура каталогов проекта имеет следующий вид:

  1. D:\Workspace\Project\cs\repo - конвертируемое хранилище 1c
  2. D:\Workspace\Project\cs\gitsync - служебная папка с временными файлами
  3. D:\Workspace\Project\cs\cs_1_0 - рабочий каталог проекта (репозиторий Git)
  4. D:\Workspace\Base\cs_gitsync - пустая база 1с c конвертируемым расширением без подключения к хранилищу
  5. D:\Workspace\Base\cs_gitsync_bind - пустая база 1с c конвертируемым расширением с подключением к хранилищу
  6. D:\Workspace\Base\1CE\rosbr\cs_gitsync - пустой каталог для импорта конфигурации в EDT

 

Для конвертации хранилища, нам необходимо последовательно выполнить 10 шагов для каждой версии, воспользуемся конструктором скриптов:

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

Выполним построение отчета по истории хранилища /ConfigurationRepositoryReport с отбором версий без меток -DoNotIncludeVersionsWithLabels, т.е. предполагается что установленных меток в хранилище нет, будем брать первую версию без метки, а уже после выгрузки установим метку "uploaded to git" - признак выгрузки и в следующую итерацию версия уже не попадет.

Конструктор скриптов позволяет склеивать командные строки и повторно использовать в следующих командах ссылаясь на них. Введем 4 базовые командные строки (заготовки, такие строки не выполняются) и каждую склеим с предыдущей (3я колонка):

№1 Запуск в режиме конфигуратора с отключением стартовых диалогов и доменной авторизации и указанием языка
C:\Program Files\1cv8\8.3.22.1923\bin\1cv8" DESIGNER /WA- /DisableStartupDialogs /L ru /VL ru   

№2 Добавление ведения логов в файл
/Out "D:\Workspace\Project\cs\gitsync\log.txt" -NoTruncate

№3 Указание строки соединения с информационной базой 
/IBConnectionString "File=""D:\Workspace\Base\cs_gitsync"";" /N "" /P ""

№4 Указание параметров подключения к хранилищу
/ConfigurationRepositoryF "D:\Workspace\Project\cs\repo" /ConfigurationRepositoryN "gitsync" /ConfigurationRepositoryP ""

Введем командную строку №5, опишем параметры построения отчета по истории хранилища и укажем ссылку на строку №4. По цепочке связей выполнится склеивание всех предыдущих и добавление новой, при этом изменение любой строки приведет к изменению всех ссылающихся.
/ConfigurationRepositoryReport "D:\Workspace\Project\cs\gitsync\ConfigurationRepositoryReport.mxl" -DoNotIncludeVersionsWithLabels -Extension "КонструкторСкриптов"

 

2. Извлечь из отчета по истории хранилища номер версии, автора и комментарий.

Для извлечения свойств версии из файла mxl "D:\Workspace\Project\cs\gitsync\ConfigurationRepositoryReport.mxl" воспользуемся командой "Инициализация переменных" способной выполнять произвольный код.

Исполнение произвольного кода осуществляется с доступом к 2ум переменным "ВыполнениеПараметры" (структура, ключи которой можно использовать в качестве шаблонов подстановки), "КомандаПараметры" (массив переданных входящих параметров).

Произвольный код команды №6:

	// Выполним чтение свойств следующей версии к выгрузке

	// Инициализируем соответсиве свойств параметрам
	СвойствоПараметрИмяСоответствие = Новый Соответствие;
	СвойствоПараметрИмяСоответствие.Вставить("Версия:", "ХранилищеВерсияНомер");
	СвойствоПараметрИмяСоответствие.Вставить("Пользователь:", "ХранилищеВерсияАвтор");
	СвойствоПараметрИмяСоответствие.Вставить("Дата создания:", "ХранилищеВерсияДатаСоздания");
	СвойствоПараметрИмяСоответствие.Вставить("Время создания:", "ХранилищеВерсияВремяСоздания");
	СвойствоПараметрИмяСоответствие.Вставить("Версия конфигурации:", "ХранилищеКонфигурацияВерсия");
	СвойствоПараметрИмяСоответствие.Вставить("Комментарий:", "ХранилищеВерсияКомментарий");

	// Выполним чтение табличного документа
	ТабличныйДокументФайлИмя = КомандаПараметры[0];

	ТабличныйДокумент = Новый ТабличныйДокумент;
	ТабличныйДокумент.Прочитать(ТабличныйДокументФайлИмя);

	ЧтениеСтрокПродолжить = Истина;
	ТабличныйДокументСтрокиМассив = Новый Массив;

	Для Сч = 5 По 10 Цикл
		СвойствоОбластьИмя = СтрШаблон("R%1C1", Сч);
		ЗначениеОбластьИмя = СтрШаблон("R%1C2:R%1C%2", Сч, ТабличныйДокумент.ШиринаТаблицы);
		
		Свойство = ТабличныйДокумент.Область(СвойствоОбластьИмя).Текст;		
		Значение = ТабличныйДокумент.Область(ЗначениеОбластьИмя).Текст;		

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

По аналогии выполним формирование текста коммита и очистку служебных каталогов. Подробнее с содержимым можно ознакомиться установив расширение и выполнив заполнение по шаблону. Команда "Загрузить шаблон конвертации хранилища" расположена в группе "Еще" элемента справочника "Скрипты (КС)". Шаблон содержит в себе рассматриваемый пример.

 

3. Обновить конфигурацию указанной версией из хранилища.

Добавим команду №9 и установим шаблон подмены [ХранилищеВерсияНомер], который заполнится из переменной "ВыполнениеПараметры" инициализированной командой №6.

/ConfigurationRepositoryUpdateCfg -force -v [ХранилищеВерсияНомер] -Extension "КонструкторСкриптов"

 

4. Выгрузить загруженную из хранилища конфигурацию в файлы.

Добавим команду №10.

/DumpConfigToFiles "D:\Workspace\Project\cs\gitsync\ConfigDumpFiles" -force -Extension "КонструкторСкриптов"

 

5. Импортировать файлы конфигурации в новый проект EDT. 

Добавим команду №11.

cmd /C D:\Program\1CE\components\1c-enterprise-ring-0.11.8+4-x86_64\ring edt@2022.2.0:x86_64 workspace import --configuration-files "D:\Workspace\Project\cs\gitsync\ConfigDumpFiles" --workspace-location "D:\Workspace\Base\1CE\rosbr\cs_gitsync" --project-name "cs_gitsync" --version "8.3.22"

 

6. Переместить папки исходников импортированного в каталог Git.

Добавим команду №12.

cmd /C move "D:\Workspace\Base\1CE\rosbr\cs_gitsync\cs_gitsync\src" "D:\Workspace\Project\cs\cs_1_0\src"

 

7. Выполнить индексацию Git.

Добавим команды №13 и 14.

cmd /C cd /d "D:\Workspace\Project\cs\cs_1_0\" && git add --all ./

 

8. Выполнить коммит.

Добавим команду №15 и установим шаблон подмены [ХранилищеВерсияКомментарийФайлИмя], инициализированный командой №7.

cmd /C cd /d "D:\Workspace\Project\cs\cs_1_0\" && git commit -F "[ХранилищеВерсияКомментарийФайлИмя]" --allow-empty-message --cleanup=verbatim

 

9. Установить автора коммита.

Добавим команду №16 и установим шаблон подмены [ХранилищеВерсияАвтор], инициализированный командой №6.

cmd /C cd /d "D:\Workspace\Project\cs\cs_1_0\" && git commit --amend --author "[ХранилищеВерсияАвтор] <[ХранилищеВерсияАвтор]@rosbr.com>" --no-edit

 

10. Установить метку версии хранилища 1с "uploaded to git".   

Добавим команду №17 и установим шаблон подмены [ХранилищеВерсияНомер], инициализированный командой №6.

/IBConnectionString "File=""D:\Workspace\Base\cs_gitsync_bind"";" /N "" /P "" /ConfigurationRepositoryF "D:\Workspace\Project\cs\repo" /ConfigurationRepositoryN "gitsync" /ConfigurationRepositoryP "" /ConfigurationRepositorySetLabel -v "[ХранилищеВерсияНомер]" -name "uploaded to git" -Extension "КонструкторСкриптов"

 

 

На этом версия конфигурации хранилища выгружена в Git, остается только настроить регламентное задание. В форме списка справочника "Скрипты (КС)" в группе "Ещё" доступна команда "Инициализировать обработку регламентных заданий (КС)". Эта команда создает обработку "Обработка регламентных заданий (КС)" в дополнительных отчетах и обработках, в которой для каждого скрипта будет отдельная команда и расписание.  

 

Как видите, все просто, данная разработка в помощь!

Примеры и исходный код доступен на GitLab. 

 

 -----

Требования:

- Версия платформы >= 8.3.14, тестировалось на 8.3.14.2095

БСП >= 3.1, тестировалось на 3.1.1.91

- Отключенная настройка "Безопасный режим" в параметрах расширения

 -----

Ссылки:
Проект в GitLab
 

.bat Расширение

См. также

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

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

12000 руб.

02.09.2020    171738    960    403    

924

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

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

8400 руб.

20.08.2024    14293    108    46    

108

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

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

9360 руб.

17.05.2024    27260    96    48    

137

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

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

22200 руб.

06.10.2023    17264    43    15    

75

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

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

15000 руб.

10.11.2023    11888    45    27    

67

SALE! %

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

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

4800 3840 руб.

14.01.2013    191172    1152    0    

920

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

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

3600 руб.

27.12.2024    1114    2    0    

5

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

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

5000 руб.

07.02.2018    104115    244    100    

307
Оставьте свое сообщение