Skip to content

Управление запуском 1С из командной строки

Notifications You must be signed in to change notification settings

oscript-library/v8runner

Repository files navigation

Помощник выполнения команд Конфигуратора (v8runner.os)

Назначение

Скрипт v8runner.os предназначен для инкапсуляции запуска команд Конфигуратора и 1С:Предприятия с помощью командной строки.

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

Скрипт v8runner упрощает эти задачи и позволяет запускать Конфигуратор программно, в объектной манере.

Принцип работы

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

#Использовать v8runner
Конфигуратор = Новый УправлениеКонфигуратором();

Каждая команда конфигуратора может выполняться только для конкретной информационной базы. База, для которой выполняется команда называется контекстом команды.

Контекст указывается в формате параметра командной строки конфигуратора (так, как в Конфигураторе задается нужная информационная база) или в виде специальной структуры. Например, для формата строки соединения:

Конфигуратор.УстановитьКонтекст("/IBConnectionString""Srvr=someserver:2041; Ref='database'""","Admin", "passw0rd");

ИЛИ

ПараметрыСтрокиСоединения = Конфигуратор.ПараметрыСтрокиСоединения();
ПараметрыСтрокиСоединения.Сервер = "someserver";
ПараметрыСтрокиСоединения.Порт = 2041;
ПараметрыСтрокиСоединения.ИмяБазы = "database";

Конфигуратор.УстановитьКонтекст(ПараметрыСтрокиСоединения, "Admin", "passw0rd");

В более простой форме - для файловой базы можно указать через ключ /F:

Конфигуратор.УстановитьКонтекст("/FC:\1cdb\mydatabase", "Admin", "passw0rd");

ИЛИ

ПараметрыСтрокиСоединения = Конфигуратор.ПараметрыСтрокиСоединения();
ПараметрыСтрокиСоединения.ПутьКФайлуБазы = "C:\1cdb\mydatabase";

Конфигуратор.УстановитьКонтекст(ПараметрыСтрокиСоединения, "Admin", "passw0rd");

Далее, вы вызываете методы объекта "Конфигуратор", соответствующие командам конфигуратора. Все команды будут выполняться над заданной базой. Теперь, объект Конфигуратор настроен на некий "контекст" - информационную базу, с которой и будут производиться все операции.

Временный контекст

Если контекст явно не задан, то автоматически будет создана временная ИБ. Например, если для какого-то действия достаточно временной базы, то контекст можно не указывать.

Конфигуратор = Новый УправлениеКонфигуратором();
Конфигуратор.ЗагрузитьКонфигурациюИзФайла("C:\source.cf");
Конфигуратор.ВыполнитьСинтаксическийКонтроль();

// удаление временной базы
УдалитьФайлы(Конфигуратор.ПутьКВременнойБазе());

В приведенном примере файл C:\source.cf будет загружен в автоматически созданную временную базу. После чего будет выполнен полный синтаксический контроль конфигурации.

Параметры запуска

В обращении к Конфигуратору используется понятие "Параметров запуска". Это массив параметров командной строки для платформы 1С. Перед запуском платформы v8runner автоматически составит из этого массива командную строку платформы.

УправлениеКонфигуратором = Новый УправлениеКонфигуратором();

// в ПараметрахЗапуска уже добавлены ключи DESIGNER, строка соединения с ИБ, пользователь и пароль
ПараметрыЗапуска = УправлениеКонфигуратором.ПолучитьПараметрыЗапуска();
ПараметрыЗапуска.Добавить("/LoadCfg""C:\source.cf"""); 

Попытка
    УправлениеКонфигуратором.ВыполнитьКоманду(ПараметрыЗапуска);
Исключение
    // вывод log-файла с сообщениями от платформы.
    Сообщить(УправлениеКонфигуратором.ВыводКоманды());
КонецПопытки

Методы классов v8runner

Класс УправлениеКонфигуратором

Управление запуском команд 1С:Предприятия 8

Основные функции

  • Процедура УстановитьКонтекст(Знач СтрокаСоединения, Знач Пользователь, Знач Пароль) - запоминает параметры, чтобы не устанавливать их каждый раз.
  • Функция ПолучитьКонтекст() - возвращает ранее установленный контекст в виде структуры.
  • Процедура ИспользоватьКонтекст(Знач Контекст) - заменяет контекст на переданный.
Работа с хранилищем конфигурации (основной и расширений)
  • Процедура ЗагрузитьКонфигурациюИзХранилища(Знач СтрокаСоединения, Знач ПользовательХранилища, Знач ПарольХранилища = "", Знач НомерВерсииХранилища = 0) - загрузка конфигурации из хранилища конфигурации определенной версии, если задана, иначе получает последнюю версию. Вызывает команду /ConfigurationRepositoryUpdateCfg.

  • Процедура ОбновитьКонфигурациюБазыДанныхИзХранилища(Знач СтрокаСоединения, Знач ПользовательХранилища, Знач ПарольХранилища = "", Знач НомерВерсииХранилища = 0) - загрузка конфигурации из хранилища конфигурации определенной версии, при этом обновляет базу данных. Вызывает команды /ConfigurationRepositoryUpdateCfg и /UpdateDBCfg.

  • Процедура РасширениеПолучитьИзХранилища(СтрокаСоединения, ПользовательХранилища, ПарольХранилища, ИмяРасширения, НомерВерсииХранилища = 0) - загрузка конфигурации расширения из хранилища, указанной версии. Вызывает команду /ConfigurationRepositoryUpdateCfg с ключом -Extension.

  • Функция ПолучитьВерсиюИзХранилища(Знач СтрокаСоединения, Знач ПользовательХранилища, Знач ПарольХранилища, Знач НомерВерсии = Неопределено, Знач ИмяРасширения = Неопределено) - выгрузка конфигурации из хранилища в файл. Вызывает команду /ConfigurationRepositoryDumpCfg.

  • Функция ПолучитьОтчетПоВерсиямИзХранилища(Знач СтрокаСоединения, Знач ПользовательХранилища, Знач ПарольХранилища = "", Знач ПутьКФайлуРезультата, Знач НомерНачальнойВерсии = 1, Знач НомерКонечнойВерсии = Неопределено, Знач ТипГруппировки = Неопределено, Знач НачальнаяДата = Неопределено, Знач КонечнаяДата = Неопределено, Знач НеВключатьВерсииСМетками = Ложь, Знач ВключатьВерсииТолькоСМетками = Ложь, Знач ВерсияКонфигурации = Неопределено, Знач ФорматОтчета = Неопределено, Знач ИмяРасширения = Неопределено) - построение отчета по истории хранилища в формате TXT или MXL. Вызывает команду /ConfigurationRepositoryReport.

  • Процедура СоздатьФайловоеХранилищеКонфигурации(Знач ПапкаХранилища, Знач ПользовательХранилища, Знач ПарольХранилища = "", Знач ПодключитьБазуКХранилищу = Ложь, Знач ИмяРасширения = Неопределено) - создание хранилища конфигурации. Вызывает команду /ConfigurationRepositoryCreate.

  • Процедура ЗахватитьОбъектыВХранилище(Знач СтрокаСоединения, Знач ПользовательХранилища, Знач ПарольХранилища = "", Знач ПутьКФайлуСоСпискомОбъектов = "", Знач ПолучатьЗахваченныеОбъекты = Ложь, Знач ИмяРасширения = Неопределено) - захват объектов из хранилища конфигурации для редактирования. Вызывает команду /ConfigurationRepositoryLock.

  • Процедура ОтменитьЗахватОбъектовВХранилище(Знач СтрокаСоединения, Знач ПользовательХранилища, Знач ПарольХранилища = "", Знач СписокОбъектов = Неопределено, Знач ИгнорироватьИзменения = Ложь, Знач ИмяРасширения = Неопределено) - отмена захвата объектов в хранилище конфигурации. Вызывает команду /ConfigurationRepositoryUnlock.

  • Процедура ПоместитьИзмененияОбъектовВХранилище(Знач СтрокаСоединения, Знач ПользовательХранилища, Знач ПарольХранилища = "", Знач СписокОбъектов = Неопределено, Знач Комментарий = "", Знач ОставитьОбъектыЗахваченными = Ложь, Знач ИгнорироватьУдаленные = Ложь, Знач ИмяРасширения = Неопределено) - помещение изменений объектов в хранилище конфигурации. Вызывает команду /ConfigurationRepositoryCommit.

  • Процедура УстановитьМеткуДляВерсииВХранилище(Знач СтрокаСоединения, Знач ПользовательХранилища, Знач ПарольХранилища = "", Знач Метка, Знач Комментарий = "", Знач Версия = "", Знач ИмяРасширения = "") - устанавливает метку на версию хранилища. Вызывает команду /ConfigurationRepositorySetLabel.

  • Процедура ПодключитьсяКХранилищу(Знач СтрокаСоединения, Знач ПользовательХранилища, Знач ПарольХранилища = "", Знач ИгнорироватьНаличиеПодключеннойБД = Ложь, Знач ЗаменитьКонфигурациюБД = Истина, Знач ИмяРасширения = Неопределено) - подключение ранее неподключенной информационной базы к хранилищу конфигурации. Вызывает команду /ConfigurationRepositoryBindCfg.

  • Процедура ОтключитьсяОтХранилища(Знач ИмяРасширения = Неопределено) - отключение конфигурации от хранилища конфигурации. Вызывает команду /ConfigurationRepositoryUnbindCfg.

  • Процедура ДобавитьПользователяВХранилище(Знач СтрокаСоединения, Знач ПользовательХранилища, Знач ПарольХранилища, Знач НовыйПользователь, Знач ПарольПользователя = "", Знач Право = Неопределено, Знач ВосстановитьУдаленного = Ложь, Знач ИмяРасширения = Неопределено) - создать пользователя хранилища конфигурации. Вызывает команду /ConfigurationRepositoryAddUser.

  • Процедура КопироватьПользователейИзХранилища(Знач СтрокаСоединения, Знач ПользовательХранилища, Знач ПарольХранилища, Знач СтрокаСоединенияХранилищаКопии, Знач ПользовательХранилищаКопии, Знач ПарольХранилищаКопии = "", Знач ВосстановитьУдаленного = Ложь, Знач ИмяРасширения = Неопределено) - копирование пользователей из другого хранилища конфигурации. Вызывает команду /ConfigurationRepositoryCopyUsers.

Работа с конфигурацией (основной и расширениями)
  • Функция СоздатьФайлыПоставки(Знач ПутьФайлаПолнойПоставки = "", Знач ПутьФайлаПоставкиОбновления = "", Знач ДистрибутивыДляОбновления = Неопределено, Знач ПутьФайлаСПараметрамиЛицензирования = "") - создание файлов поставки и обновления. Вызывает команду /CreateDistributionFiles.

  • Процедура ВыгрузитьКонфигурациюВФайл(Знач ФайлКонфигурации) - выгрузка конфигурацию в файл. Вызывает команду /DumpCfg.

  • Процедура ВыгрузитьКонфигурациюВФайлы(Знач КаталогВыгрузки, Знач ФорматВыгрузки = "", Знач ТолькоИзмененные = Ложь, Знач ПутьКФайлуВерсийДляСравнения = "") - выгрузка конфигурации в файлы. Вызывает команду /DumpConfigToFiles.

  • Процедура ВыгрузитьИзмененияКонфигурацииВФайл(Знач КаталогВыгрузки, Знач ПутьКФайлуИзменений, Знач ПутьКФайлуВерсийДляСравнения = "", Знач ФорматВыгрузки = "") - выгрузка изменений в файлах конфигурации в файл относительно файла версий в текущем каталоге выгрузки. Вызывает команду /DumpConfigToFiles.

  • Процедура ЗагрузитьКонфигурациюИзФайлов(Знач КаталогЗагрузки, Знач ПутьКСпискуФайловЗагрузки = "", Знач ФорматВыгрузки = "", Знач ОбновитьФайлВерсий = Истина, Знач ОбновитьКонфигурациюИБ = Ложь) - загрузка основной конфигурации из файлов. Вызывает команду /LoadConfigFromFiles.

  • Процедура ЗагрузитьРасширениеИзФайлов(Знач КаталогЗагрузки, Знач ИмяРасширения = "–AllExtensions", Знач ПутьКСпискуФайловЗагрузки = "", Знач ФорматВыгрузки = "", Знач ОбновитьФайлВерсий = Истина) - загрузка конфигурации расширения из файлов. Вызывает команду /LoadConfigFromFiles с ключом -Extension или -AllExtensions.

  • Процедура ВыгрузитьРасширениеВФайл(Знач ПутьФайлРасширения, Знач ИмяРасширения) - выгрузка конфигурации расширения в файл. Вызывает команду /DumpConfigToFiles с ключом -Extension.

  • Процедура ВыгрузитьРасширениеВФайлы(Знач КаталогВыгрузки, Знач ИмяРасширения = "-AllExtensions", Знач ФорматВыгрузки = "", Знач ТолькоИзмененные = Ложь, Знач ПутьКФайлуВерсийДляСравнения = "") - выгрузка конфигурации расширения в файлы. Вызывает команду /DumpConfigToFiles с ключом -Extension или -AllExtensions.

  • Процедура ЗагрузитьКонфигурациюИзФайла(Знач ПутьФайлКонфигурации, Знач ОбновитьКонфигурациюИБ = Ложь) - загрузка конфигурации из файла. Вызывает команду /LoadCfg.

  • Процедура ЗагрузитьРасширениеИзФайла(Знач ПутьФайлРасширения, Знач ИмяРасширения, Знач ОбновитьКонфигурациюИБ = Ложь) - загрузка конфигурации расширения из файла. Вызывает команду /LoadCfg с ключом -Extension.

  • Процедура ОбъединитьКонфигурациюСФайлом(Знач ФайлКонфигурации, Знач ФайлНастроек, Знач ПоставитьНаПоддержку = Неопределено, Знач ВключитьВОбъединениеОбъектыПоНеразрешеннымСсылкам = Неопределено, Знач Принудительно = Ложь, Знач ПараметрыХранилища = Неопределено, Знач ИмяРасширения = Неопределено) - объединение текущей конфигурации с файлом (с использованием файла настроек). Вызывает команду /MergeCfg. Описание ИТС:

  • Процедура ОбновитьКонфигурациюБазыДанных(ПредупрежденияКакОшибки = Ложь, НаСервере = Истина, ДинамическоеОбновление = Ложь, ИмяРасширения = "") - обновить конфигурацию БД. Вызывает команду /UpdateDBCfg.

  • Процедура ОбновитьКонфигурациюБазыДанныхНаСервере(ПредупрежденияКакОшибки = Ложь, ДинамическоеОбновление = Ложь, РежимРеструктуризации = Неопределено, Знач ИмяРасширения = Неопределено) - обновить конфигурацию БД на сервере. Вызывает команду /UpdateDBCfg с ключом -Server.

  • Процедура ОбновитьКонфигурацию(Знач КаталогВерсии, Знач ИспользоватьПолныйДистрибутив = Ложь) - обновить конфигурацию, находящуюся на поддержке, или объединить текущую конфигурацию с файлом 1cv8.cf или 1cv8.cfu. Вызывает команду /UpdateCfg.

  • Процедура ВернутьсяККонфигурацииБазыДанных(Знач ИмяРасширения = Неопределено) - возврат к конфигурации базы данных. Вызывает команду /RollbackCfg.

  • Процедура ОбновитьКонфигурациюИзФайла(Знач ПутьФайлаКонфигурации, Знач ПутьФайлаНастроек = Неопределено, Знач ВключитьВОбъединениеОбъектыПоНеразрешеннымСсылкам = Неопределено, Знач Принудительно = Ложь, Знач ВывестиДваждыИзмененныеОбъекты = Ложь) - обновление конфигурации, находящейся на поддержке ил объединение текущей конфигурации с файлом (с использованием файла настроек). Более гибкая версия процедуры ОбновитьКонфигурацию. Вызывает команду /UpdateCfg.

  • Процедура СнятьКонфигурациюСПоддержки(Знач Принудительно = Ложь) - позволяет снимать конфигурация с поддержки. Вызывает команду /ManageCfgSupport.

Остальные процедуры и функции
  • Процедура СконвертироватьФайлКонфигурации(Знач ФайлКонфигурации) - выполнить пакетную конвертацию файлов 1С:Предприятия 8.x. <имя файла|путь> ‑ имя файла или каталога. Вызывает команду /ConvertFiles.

  • Процедура СоздатьФайловуюБазу(Знач КаталогБазы, Знач ПутьКШаблону = "", Знач ИмяБазыВСписке = "") - вызывает команду CREATEINFOBASE.

  • Процедура СоздатьСервернуюБазу(ПараметрыБазы1С, ПараметрыСУБД, АвторизацияВКластере, Знач ОшибкаЕслиСуществует = Ложь, Знач ПутьКШаблону = "", Знач ИмяБазыВСписке = "") - вызывает команду CREATEINFOBASE.

  • Процедура ЗагрузитьИнформационнуюБазу(ПутьВыгрузкиИБ, Знач КоличествоЗаданий = 0) - загрузка информационной базы из файла. Вызывает команду /RestoreIB.

  • Процедура ВыгрузитьИнформационнуюБазу(ПутьВыгрузкиИБ) - выгрузка информационной базы в файл. Вызывает команду /DumpIB.

  • Процедура ВыгрузитьВнешниеОтчетыИлиОбработкиВФайлы(Знач ПутьККаталогуВыгрузки, Знач ПутьКВнешнейОбработкеИлиОтчету, Знач Формат = "") - выгрузка внешней обработки или отчета в файл. Вызывает команду /DumpExternalDataProcessorOrReportToFiles.

  • Процедура ВыполнитьРасширеннуюПроверкуКонфигуратора(Ключи, Знач СтрокаСоединенияСХранилищем = "", Знач ПользовательХранилища = "", Знач ПарольХранилища = "") - выполнить проверку конфигурации. Вызывает команду CheckConfig с переданными Соответствием Ключи: Название провеки -> Флаг необходимости проверки.

  • Процедура ВыполнитьСинтаксическийКонтроль( Знач ТонкийКлиент = Истина, Знач ВебКлиент = Истина, Знач Сервер = Истина, Знач ВнешнееСоединение = Истина, Знач ТолстыйКлиентОбычноеПриложение = Истина, Знач ИмяРасширения = Неопределено) - выполнить проверку конфигурации с указанными параметрами. Вызывает команду /CheckConfig.

  • Функция ПроверкаКонфигурации(Проверки, ИмяРасширения = "") - выполнить проверку конфигурации по переданному массиву проверкок.

  • Процедура ЗапуститьВРежимеПредприятия(Знач КлючЗапуска = "", Знач УправляемыйРежим = Неопределено, Знач ДополнительныеКлючи = Неопределено) - запуск в режиме 1С:Предприятие (режим ENTERPRISE) с переданными параметрами запуска

  • Процедура ВыгрузитьМобильноеПриложениеВФайл(Знач ПутьКАрхиву) - выгружает конфигурацию мобильного приложения в zip-файл. Вызывает команду /MobileAppWriteFile.

  • Процедура ОбновитьПубликациюМобильногоПриложения() - обновление публикации мобильного приложения. Вызывает команду /MobileAppUpdatePublication.

  • Процедура ПолучитьОтчетОСравненииКонфигурацииСФайлом(Знач ПутьКФайлуКонфигурации, Знач ПутьКОтчету, Знач ТипОтчета = Неопределено, Знач ФорматОтчета = "txt", Знач ИмяРасширения = "") - сравнение двух конфигураций и сформировать файл с отчетом о сравнении.. Выполняет команду /CompareCfg.

  • Функция КонфигурацияИФайлИдентичны(Знач ПутьКФайлуКонфигурации, Знач ИмяРасширения = "") - проверяет что основная конфигурация\конфигурация расширения идентична с файлом.

Вспомогательные и настроечные функции

  • Функция ВариантОбработкиНесуществующихСсылок() - аналог перечисления в виде ФиксированнаяСтруктура.
  • Функция ВариантОбработкиЧастичнойПотериДанных() - аналог перечисления в виде ФиксированнаяСтруктура.
  • Функция ВременнаяБазаСуществует()
  • Функция ВыводКоманды() - содержимое вывода служебных сообщений.
  • Процедура ВыполнитьКоманду(Знач Параметры)
  • Процедура ЗапуститьТестированиеИИсправление(Параметры = Неопределено) - запустить тестирование и исправление с указанными опциями.
  • Функция ИсключениеПриОшибкеВыполненияКоманды(НовоеЗначение = Неопределено)
  • Процедура ИспользоватьВерсиюПлатформы(Знач МаскаВерсии, Знач Разрядность = Неопределено)
  • Функция ИспользуемаяВерсияПлатформыСтаршеИлиРавна(Знач ТребуемаяВерсияПлатформы) - проверяет версию текущей платформы по сравнению с требуемой
  • Функция КаталогКонфигурационныхФайлов1С(Знач ПутьКПлатформе1С = "", Знач ПутьКОбщимНастройкам = Истина)
  • Функция КаталогСборки(Знач Каталог = "") - возвращает текущий каталог, если нечего не передано, и предыдущий каталог с одновременной установкой нового, если передан параметр Каталог.
  • Функция КлючиПроверкиКонфигурации() - возвращаем Соответствие: название проверки (на англ. и рус. языке) -> название соответствующего параметра согласно документации.
  • Функция КонфигурацияИФайлИдентичны(Знач ПутьКФайлуКонфигурации, Знач ИмяРасширения = "")
  • Функция ПараметрыСтрокиСоединения() - структура со свойствами ПутьКФайлуБазы, Сервер, Порт, ИмяБазы.
  • Функция ПолучитьОпцииТиИ() - структура с возможными параметрами запуска ТиИ.
  • Функция ПолучитьПараметрыЗапуска() - получает стандартные праметры запуска конфигуратора.
  • Функция ПолучитьПутьКВерсииПлатформы(Знач ВерсияПлатформы, Знач Разрядность = Неопределено)
  • Функция ПроверитьВозможностьОбновленияФайловВыгрузки(Знач КаталогВыгрузки, Знач ПутьКФайлуВерсийДляСравнения = "", Знач ФорматВыгрузки = "") - функция проверяет возможность обновления файлов выгрузки, для каталога или конкретного файла версий.
  • Функция ПутьКВременнойБазе()
  • Функция ПутьКПлатформе1С(Знач Путь = "")
  • Функция ПутьКТонкомуКлиенту1С(Знач ПутьКПлатформе1С = "")
  • Функция РежимРеструктуризации() - Возвращает структуру ("Первый, Второй", "-v1", "-v2").
  • Функция СформироватьСтрокуСоединения(ПараметрыСтрокиСоединения) - готовая строка соединения, либо структура, см. ПараметрыСтрокиСоединения().
  • Процедура УдалитьВременнуюБазу()
  • Процедура УстановитьИмяФайлаСообщенийПлатформы(Знач ПолныйПутьКФайлу, Знач ОчищатьФайл = Истина)
  • Процедура УстановитьКлючРазрешенияЗапуска(Знач Ключ)
  • Процедура УстановитьКодЯзыка(Знач КодЯзыка)
  • Процедура УстановитьКодЯзыкаСеанса(Знач КодЯзыкаСеанса)
  • Процедура УстановитьОбработчикОжидания(Знач ОбъектОбработчик, Знач Интервал = 5000) - при запуска в режиме предприятия часто приложение GUI возвращает в оболочку ОК сразу после старта (а не после завершения).
  • Функция УстановитьПризнакОжиданияВыполненияПрограммы(НовыйПризнак)
  • Функция ФайлИнформации() - имя файла для вывода служебной информации. Передаётся в параметре /Out.

Класс КонфигурацияСтартера

Чтение конфигурационных файлов стартера 1С

  • Процедура Открыть(Знач Путь) - читает файл конфигурации и трансформирует его содержимое в соответствие "имя параметра -> Массив из значений параметра".
  • Функция ПолучитьСписок(Знач Ключ) - возвращает весь массив значений параметра по его имени.
  • Функция ПолучитьЗначение(Знач Ключ) - возвращает первый элемент массива значений параметра по его ключу, если ключ существует, или Неопределено.