Skip to content

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

Notifications You must be signed in to change notification settings

EugeneAfanasyev/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С

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

About

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

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • 1C Enterprise 100.0%