Найти в Дзене
IT в тебе

"Конфигурирующие обработки" для 1С

💬 Недавно столкнулся с задачей — нужно, чтобы при создании тестовых копий некоторые константы устанавливались в Ложь. Так как тестовые базы я уже чистил через прямые запросы к MSSQL, решил просто добавить шаг для изменения нужных констант: IF OBJECT_ID('_Const23192X1', 'U') IS NOT NULL UPDATE _Const23192X1 SET _Fld23193 = 0x00 WHERE _RecordKey = 0x31; Заодно решил добавить загрузку расширения с инструментами — через пару пакетных вызовов при создании копий: "C:\Program Files\1cv8\common\1cestart.exe" CONFIG /S"sr-1c:1541\test_db" /AppAutoCheckVersion /DisableStartupMessages /N"ПакетныйРежим" /P"ПакетныйРежим" /LoadCfg "\\web_1c\processors\UI_nossl.cfe" -Extension "Инструменты" "C:\Program Files\1cv8\common\1cestart.exe" CONFIG /S"sr-1c:1541\test_db" /AppAutoCheckVersion /DisableStartupMessages /N"ПакетныйРежим" /P"ПакетныйРежим" /UpdateDBCfg -Extension "Инструменты" Работает. Но последнее время растёт потребность в персонализации тестовы
Жёлтый кот
Жёлтый кот

💬 Недавно столкнулся с задачей — нужно, чтобы при создании тестовых копий некоторые константы устанавливались в Ложь.

Так как тестовые базы я уже чистил через прямые запросы к MSSQL, решил просто добавить шаг для изменения нужных констант:

IF OBJECT_ID('_Const23192X1', 'U') IS NOT NULL
UPDATE _Const23192X1
SET _Fld23193 = 0x00
WHERE _RecordKey = 0x31;

Заодно решил добавить загрузку расширения с инструментами — через пару пакетных вызовов при создании копий:

"C:\Program Files\1cv8\common\1cestart.exe" CONFIG
/S"sr-1c:1541\test_db"
/AppAutoCheckVersion
/DisableStartupMessages
/N"ПакетныйРежим"
/P"ПакетныйРежим"
/LoadCfg "\\web_1c\processors\UI_nossl.cfe" -Extension "Инструменты"
"C:\Program Files\1cv8\common\1cestart.exe" CONFIG
/S"sr-1c:1541\test_db"
/AppAutoCheckVersion
/DisableStartupMessages
/N"ПакетныйРежим"
/P"ПакетныйРежим"
/UpdateDBCfg -Extension "Инструменты"

Работает.

Но последнее время растёт потребность в персонализации тестовых сред.

Сейчас думаю сделать универсальный подход — конфигурирующие обработки, которые можно запускать в пакетном режиме и настраивать параметры под конкретную базу:

// Для установки констант
Константы.ЭтоТестоваяИБ.Установить(Истина);
Константы.hs_Включено.Установить(Ложь);
// Для включения расширений
ИменаРасширений = Новый Массив;
ИменаРасширений.Добавить("УниверсальныеИнструменты_БезБСП");
Для Каждого ИмяРасширения Из ИменаРасширений Цикл
НайденыеРасширения = РасширенияКонфигурации.Получить(Новый Структура("Имя", ИмяРасширения));
Для Каждого Расширение Из НайденыеРасширения Цикл
Если НЕ Расширение.Активно Тогда
Расширение.Активно = Истина;
Расширение.Записать();
КонецЕсли;
КонецЦикла;
КонецЦикла;

Варианты вижу два:

1️⃣ Автоматически подставлять нужную обработку в зависимости от среды или пользователя.

2️⃣ Либо давать пользователю выбрать параметры копии перед созданием — передавать их в параметры запуска и применять обработкой.

📎 Полезные ссылки:

👉 Универсальные инструменты 1С для управляемых форм

👉 Параметры командной строки запуска «1С:Предприятия»

#DevOps #1C