TRun1C
Библиотека для запуска 1С:Предприятие 8 в различных режимах.
Описание
Библиотека на OneScript для запуска 1С:Предприятия 8 в различных режимах, включая пакетный режим запуска конфигуратора и работу с хранилищем конфигурации.
Установка
Установка через пакетный менеджер opm командой:
opm install trun1c
Использование библиотеки
Библиотека подключается как отдельный класс. Экземпляр класса используется для ведения текущего лога.
Подключение библиотеки:
#Использовать TRun1C
Создание класса:
Запуск1С = Новый ТУправлениеЗапуском1С();
Параметры класса:
- ПараметрыЗапуска - Структура параметров запуска, состав:
- ПутьКПлатформе1С - Путь к платформе 1С
- ВерсияПлатформы - Версия Платформы 1С (Если не заполнена, вычисляется автоматически). Варианты:
- ТипБазы - Тип базы 1С. Варианты:
- F - файловая
- S - серверная
- WS - веб
- ИмяБазы - Указывается как для файловой, так и для серверной базы.
- АдресКластера - Параметры сервера 1С, по умолчанию - localhost
- ПортКластера - Параметры сервера 1С, по умолчанию - 1541
- ПортАгента - Параметры сервера 1С, по умолчанию - 1540
- ИмяПользователяАдминистратораКластера - Параметры сервера 1С
- ПарольПользователяАдминистратораКластера - Параметры сервера 1С
- КодРазрешения - Параметры сервера 1С, по умолчанию - 987654321
- СообщениеПриБлокировке - Параметры сервера 1С, по умолчанию - "Информационная база заблокирована для обслуживания."
- ИмяПользователя - Параметры авторизации в информационной базе
- ПарольПользователя - Параметры авторизации в информационной базе
- АдресХранилища - Параметры работы с хранилищем
- ИмяПользователяХранилища - Параметры работы с хранилищем
- ПарольПользователяХранилища - Параметры работы с хранилищем
- ВидныДействияВПакетномРежиме - При установке данного флага, все дейстия в пакетном запуске конфигуратора будут видны пользователю
- ФайлДляЗаписиРезультатовРаботыВПакетномРежиме - При указании имени файла, результат работы конфигуратора в пакетном режиме будет записан в данные файл файл
- ТекстОшибки - Переменная для возврата ошибки, если таковая имела место быть
Экспортные процедуры и функции класса:
Процедура ОчиститьПараметры()
- Выполняет сборс всех параметров запуска к настройкам по умолчанию
Функция ИмяФайлаПоИмениБазыНаДату(Расширение)
- Возвращает имя файла, построенном по принципу: ИмяБазы + ДатаВремя + Расширение. Пример: Base_2017_04_28_19_02_12.dt
Функция ЗавершитьРаботуПользователей()
- Завершает работу пользователей для серверной базы
Функция УстановитьБлокировкуНачалаСеансов(БлокироватьРегламентныеЗадания = Истина)
- Устанавливает блокирвку сенасов для серверной базы
Функция СнятьБлокировкуНачалаСеансов(СнятьБлокировкуРегламентныхЗаданий = Истина)
- Снимает блокировку сеансов для серверной базы
Функция ПолучитьСписокСеансов(ПропускатьКонсольКластера = Истина)
- Получает список текущих сеансов с информационной базой
Функция ЗапуститьПредприятие(ПутьКОбработке="", ОжидатьЗавершения = Ложь)
- Запускает 1С:Предприятие
- Параметры:
- ПутьКОбработке - Строка - Если указан путь к обработке, то обработка будет открыта после запуска 1С:Предприятие
- ОжидатьЗавершения - Булево - Ожидать завершения работы 1С:Предприятие, по умолчанию - Ложь
Функция ЗапуститьКонфигуратор(ОжидатьЗавершения = Ложь)
- Запускает конфигуратор
- Параметры:
- ОжидатьЗавершения - Булево - Ожидать завершения работы конфигуратора, по умолчанию - Ложь
Функция ВыгрузитьИнформационнуюБазу(ПолныйПутьКФайлу)
- Выгружает информационную базу в указанный файл (dt)
- Параметры:
- ПолныйПутьКФайлу - Строка - Полный путь к файлу
Функция ЗагрузитьИнформационнуюБазу(ПолныйПутьКФайлу)
- Загружает информационную базу из указанного файла (dt)
- Параметры:
- ПолныйПутьКФайлу - Строка - Полный путь к файлу
Функция СохранитьКонфигурациюВФайл(ПолныйПутьКФайлу)
- Сохраняет текущую конфигурацию в указаннй файл (cf)
- Параметры:
- ПолныйПутьКФайлу - Строка - Полный путь к файлу
Функция СохранитьКонфигурациюБазыДанныхВФайл(ПолныйПутьКФайлу)
- Сохраняет конфигурацию базы данных в указаннй файл (cf)
- Параметры:
- ПолныйПутьКФайлу - Строка - Полный путь к файлу
Функция ЗагрузитьКонфигурациюИзФайла(ПолныйПутьКФайлу)
- Загружает конфигурацию из указанного файла (cf)
- Параметры:
- ПолныйПутьКФайлу - Строка - Полный путь к файлу
Функция ОбновитьКонфигурациюБазыДанных(ПредупрежденияКакОшибки=Ложь, НаСервере=Ложь)
- Обновлет конфигурацию базы данных
- Параметры:
- ПредупрежденияКакОшибки - Булево - Если Истина, то все предупреждения трактуются как ошибки.
- НаСервере - Булево - Если Истина, то обновление будет выполняться на сервере (имеет смысл только в клиент-серверном варианте работы).
Функция СравнитьКонфигурации(ПутьИмяФайлаОтчета, ТипПервойКонфигурации = "MainConfiguration", ТипВторойКонфигурации = "DBConfiguration", Знач ДопКлючПервойКонфигурации = "", Знач ДопКлючВторойКонфигурации = "", ТипОтчетаДляСравнения = "Brief", ФорматФайлаОтчета = "txt", ПравилоУстановкиСоответствийОбъектов = "ByObjectName")
- Сравнивает две конфигурации с выводом отчета в файл
- Параметры:
- ПутьИмяФайлаОтчета - путь к файлу отчета, если файл не существует, будет создан новый;
- ТипПервойКонфигурации - Строка - Тип первой конфигурации. Возможные значния:
- MainConfiguration – основная конфигурация;
- DBConfiguration – конфигурация базы данных;
- VendorConfiguration – конфигурация поставщика;
- ExtensionConfiguration – расширение конфигурации;
- ExtensionDBConfiguration – расширение конфигурации из база данных;
- ConfigurationRepository – конфигурация из хранилища конфигурации;
- File – файл конфигурации/расширения конфигурации.
- ТипВторойКонфигурации - Строка - Тип второй конфигурации. Возможные значения:
- MainConfiguration – основная конфигурация;
- DBConfiguration – конфигурация базы данных;
- VendorConfiguration – конфигурация поставщика;
- ExtensionConfiguration – расширение конфигурации;
- ExtensionDBConfiguration – расширение конфигурации из база данных;
- ConfigurationRepository – конфигурация из хранилища конфигурации;
- File – файл конфигурации/расширения конфигурации.
- ДопКлючПервойКонфигурации - Строка - дополнительный идентификатор первой конфигурации. Возможные значения (в зависимости от типа первой конфигурации):
- MainConfiguration - Не используется
- DBConfiguration - Не используется
- VendorConfiguration - Имя конфигурации поставщика
- ExtensionConfiguration - Имя конфигурации поставщика
- ExtensionDBConfiguration - Имя конфигурации расширения (из базы данных)
- ConfigurationRepository - Версия конфигурации в хранилище
- File - Пусть к файлу конфигурации (.cf-файл) или расширения конфигурации (.cfe-файл)
- ДопКлючВторойКонфигурации - Строка - дополнительный идентификатор второй конфигурации. Возможные значения (в зависимости от типа второй конфигурации):
- MainConfiguration - Не используется
- DBConfiguration - Не используется
- VendorConfiguration - Имя конфигурации поставщика
- ExtensionConfiguration - Имя конфигурации поставщика
- ExtensionDBConfiguration - Имя конфигурации расширения (из базы данных)
- ConfigurationRepository - Версия конфигурации в хранилище
- File - Пусть к файлу конфигурации (.cf-файл) или расширения конфигурации (.cfe-файл)
- ТипОтчетаДляСравнения - Строка - Тип отчета для сравнения. Возможные типы:
- Brief – крайткий отчет;
- Full – полный отчет.
- ФорматФайлаОтчета - Строка - Формат файла отчета. Возможные значения:
- txt – текстовый документ;
- mxl – табличный документ.
- ПравилоУстановкиСоответствийОбъектов - Строка - для тех случаев, когда конфигурации не состоят в отношениях «родитель-потомок», возможные значения:
- ByObjectName – по именам объектов. Используется по умолчанию.
- ByObjectIDs – по внутренним идентификаторам.
- Возвращает:
- Истина - Отчет сформирован успешно
- Ложь - Были ошибки
Функция ЕстьИзмененияВОтчетеОСравненииКраткийТекст(ПутьКФайлуОтчетаОСравнении)
- Проверяет есть ли записи об изменении в файле отчета о сравнении конфигураций. При условии, что отчет "краткий" в формате txt.
- Параметры:
- ПутьКФайлуОтчетаОСравнении - Путь к файлу отчета о сравнении
- Возвращает:
- Истина - Есть изменения
- Ложь - Изменений нет
- Неопределено - Были ошибки
Функция ЕстьИзмененияОсновнойКонфигурации()
- Проверяет, если ли изменения в основной конфигурации относительно конфигурации базы данных
- Возвращает:
- Истина - Есть изменения
- Ложь - Изменений нет
- Неопределено - Были ошибки
Функция ЕстьИзмененияВХранилище()
- Проверяет, если ли изменения в хранилище относительно основной конфигурации
- Возвращает:
- Истина - Есть изменения
- Ложь - Изменений нет
- Неопределено - Были ошибки
Функция СохранитьКонфигурациюИзХранилищаВФайл(ПолныйПутьКФайлу, НомерВерсии="")
- Сохраняет конфигурацию из хранилища в файл
- Параметры:
- ПолныйПутьКФайлу - Полный путь к файлу
- НомерВерсии (-v [номер версии хранилища]) — номер версии хранилища, если номер версии не указан, или равен -1, будет сохранена последняя версия
Функция ОбновитьКонфигурациюИзХранилища(НомерВерсии="", ПолучатьЗахваченныеОбъекты = Ложь, Форсировать = Истина)
- Обновляет текущую конфигурацию из хранилища
- Параметры:
- НомерВерсии (-v [номер версии хранилища]) — номер версии хранилища, если номер версии не указан, или равен -1, будет сохранена последняя версия, если конфигурация не подключена к хранилищу, то параметр игнорируется;
- ПолучатьЗахваченныеОбъекты (-revised) — получать захваченные объекты, если потребуется. Если конфигурация не подключена к хранилищу, то параметр игнорируется;
- Форсировать (-force) — если при пакетном обновлении конфигурации из хранилища должны быть получены новые объекты конфигурации или удалиться существующие, указание этого параметра свидетельствует о подтверждении пользователем описанных выше операций. Если параметр не указан — действия выполнены не будут.
Функция ОтключитьКонфигурациюОтХранилища(Форсировать = Истина)
- Отключает конфигурацию от хранилища
- Параметры:
- Форсировать (-force) Булево — ключ для форсирования отключения от хранилища (пропуск диалога аутентификации, если не указаны параметры пользователя хранилища, игнорирование наличия захваченных и измененных объектов).
ПодключитьКонфигурациюКХранилищу(Форсировать = Истина, ЗаменитьТекущуюКонфигурацию = Истина)
- Подключает конфигурацию к хранилищу
- Параметры:
- Форсировать (-force) — Булево - выполняет подключение даже в том случае, если для данного пользователя уже есть конфигурация, связанная с данным хранилищем.
- ЗаменитьТекущуюКонфигурацию - Булево - если конфигурация непустая, данный ключ подтверждает замену конфигурации на конфигурацию из хранилища.
Функция ВыполнитьОчисткуЛокальногоКешаХранилища()
- Выполняет очистку локального кэша хранилища конфигурации
Функция ВыполнитьОчисткуЛокальнойБазыДанныхХранилища()
- Выполняет очистку локальной базы данных хранилища конфигурации
ЗахватитьВХранилище(ПутьИмяФайлаОбъектов = "", ПолучатьОбъектыИзХранилища = Истина)
- Выполняет захват объектов из хранилища конфигурации для редактирования (/ConfigurationRepositoryLock [–Objects <имя файла>] [-revised]).
- Параметры:
- ПутьИмяФайлаОбъектов (-Objects <имя файла>) - путь к файлу со списком объектов, которые будут участвовать в операции. Если файл указан – в операции участвуют только указанные в файле объекты, в противном случае участвует вся конфигурация.
- ПолучатьОбъектыИзХранилища(-revised) - получать захваченные объекты, если потребуется.
- Возвращает:
- Истина - операция выполнена успешно;
- Ложь - были ошибки.
Функция ОтменитьЗахватВХранилище(ПутьИмяФайлаОбъектов = "", ОтменитьЛокальныеИзменения = Истина)
- Выполняет отмену захвата объектов в хранилище конфигурации (/ConfigurationRepositoryUnLock [–Objects <имя файла>] [-force]).
- Параметры:
- ПутьИмяФайлаОбъектов (-Objects <имя файла>) - путь к файлу со списком объектов, которые будут участвовать в операции. Если файл указан – в операции участвуют только указанные в файле объекты, в противном случае участвует вся конфигурация.
- ОтменитьЛокальныеИзменения(-force) - описывает поведение с локально измененными объектами:
- Ключ указан – локально измененные объекты будут получены из хранилища. Изменения будут потеряны.
- Ключ не указан – при наличии локально измененных объектов будет выдана ошибка, и операция будет отменена целиком, для всех объектов, участвующих в операции.
- Возвращает:
- Истина - операция выполнена успешно;
- Ложь - были ошибки.
Функция ПоместитьВХранилище (ПутьИмяФайлаОбъектов = "", ТекстКомментария = "", ОставлятьОбъектыЗахваченными = Ложь, ОчищатьСсылкиНаУдаленныеОбъекты = Истина)
- Помещает измененные объекты в хранилище (/ConfigurationRepositoryCommit [–Objects <имя файла>] [-comment <текст комментария>] [-keepLocked] [-force])
- Параметры:
- ПутьИмяФайлаОбъектов (–Objects <имя файла>) – путь к файлу со списком объектов, которые будут участвовать в операции. Если файл указан – в операции участвуют только указанные в файле объекты, в противном случае участвует вся конфигурация.
- ТекстКомментария (-comment <текст комментария>) - текст комментария к помещаемым объектам.
- ОставлятьОбъектыЗахваченными (-keepLocked) - оставлять помещенные объекты захваченными. Если не указан, то после помещения изменений будет отменен захват для объектов, участвующих в операции.
- ОчищатьСсылкиНаУдаленныеОбъекты (-force) - описывает поведение при обнаружении ссылок на удаленные объекты:
- Истина – будет выполнена попытка очистки ссылок.
- Ложь – будет выдана ошибка.
- Возвращает:
- Истина - операция выполнена успешно;
- Ложь - были ошибки.
Функция СоздатьФайлСпискаОбъектов(ПолныйПутьКФайлуОтчета=, ПолныйПутьКФайлуСпискаОбъектов=)
- Создает файл списка объектов на основании отчета о сравнении
- Параметры:
- ПолныйПутьКФайлуОтчета - полный путь к файлу отчета о сравнении (отчет должен быть кратким в формате txt)
- ПолныйПутьКФайлуСпискаОбъектов - полный путь к файлу списка объектов, если путь не указан, будет создан временный.
- Возвращает:
- Неопределено - были ошибки;
- Путь к файлу списка объектов - Файл создан успешно.
Пример использования
#Использовать TRun1C
// Создадим объект
Запуск1С = Новый ТУправлениеЗапуском1С();
// Введем параметры
ПараметрыЗапуска = Запуск1С.ПараметрыЗапуска;
ПараметрыЗапуска.ПутьКПлатформе1С = "C:\Program Files (x86)\1cv8\8.3.8.2054\bin\1cv8.exe";
ПараметрыЗапуска.ТипБазы = "S";
ПараметрыЗапуска.ИмяБазы = "TestBase";
ПараметрыЗапуска.АдресКластера = "10.1.1.40";
ПараметрыЗапуска.ПортКластера = "2541";
ПараметрыЗапуска.ПортАгента = "2540";
ПараметрыЗапуска.ИмяПользователя = "Администратор";
ПараметрыЗапуска.ПарольПользователя = "";
ПараметрыЗапуска.ВидныДействияВПакетномРежиме = Ложь; //Можно не указывать
ПараметрыЗапуска.АдресХранилища = "C:\repo\OS_TScripts\_Tests\Repository";
ПараметрыЗапуска.ИмяПользователяХранилища = "admin";
ПараметрыЗапуска.ПарольПользователяХранилища = "1";
// Запустим тест всех процедур
ПолныйТестВсехПроцедур(Запуск1С);
// Введем параметры
ПараметрыЗапуска.ТипБазы = "F";
ПараметрыЗапуска.ИмяБазы = "C:\repo\OS_TScripts\_Tests\Base";
ПараметрыЗапуска.ИмяПользователя = "";
ПараметрыЗапуска.ПарольПользователя = "";
// Флаг наличия ошибок
БылиОшибки = Ложь;
// Создадим необходимые файлы
Если РабочийКаталог = "" Тогда
РабочийКаталог = ".\";
КонецЕсли;
РабочийКаталог = ОбъединитьПути(РабочийКаталог,"Test_TRun1C");
СоздатьКаталог(РабочийКаталог);
// Результат работы в пакетном режиме
ПараметрыЗапуска = Запуск1С.ПараметрыЗапуска;
ПараметрыЗапуска.ФайлДляЗаписиРезультатовРаботыВПакетномРежиме = ОбъединитьПути(РабочийКаталог,Запуск1С.ИмяФайлаПоИмениБазыНаДату("txt")); //Можно не указывать
Если ПараметрыЗапуска.ТипБазы = "S" Тогда // Серверная база
// Запустим 1С:Предприятие
Если Запуск1С.ЗапуститьПредприятие() Тогда
Сообщить("ЗапуститьПредприятие: УСПЕШНО");
Иначе
Сообщить("ЗапуститьПредприятие: " + Запуск1С.ТекстОшибки);
БылиОшибки = Истина;
КонецЕсли;
Приостановить(6000);
// Запустим Конфигуратор
Если Запуск1С.ЗапуститьКонфигуратор() Тогда
Сообщить("ЗапуститьКонфигуратор: УСПЕШНО");
Иначе
Сообщить("ЗапуститьКонфигуратор: " + Запуск1С.ТекстОшибки);
БылиОшибки = Истина;
КонецЕсли;
Приостановить(6000);
// Получим список сеансов
ТаблицаСеансов = Запуск1С.ПолучитьСписокСеансов();
Если ТаблицаСеансов <> Неопределено Тогда
Сообщить("ПолучитьСписокСеансов: УСПЕШНО");
Для Каждого Сеанс Из ТаблицаСеансов Цикл
Сообщить(" Номер: " + Сеанс.НомерСоединения + ", Время начала: " + Сеанс.ВремяНачала + ", Имя пользователя: " + Сеанс.ИмяПользователя +
", Имя компьютера: " + Сеанс.ИмяКомпьютера + ", Приложение: " + Сеанс.Приложение);
КонецЦикла;
Иначе
Сообщить("ПолучитьСписокСеансов: " + Запуск1С.ТекстОшибки);
БылиОшибки = Истина;
КонецЕсли;
// Заблокируем сеансы
Если Запуск1С.УстановитьБлокировкуНачалаСеансов() Тогда
Сообщить("УстановитьБлокировкуНачалаСеансов: УСПЕШНО");
Иначе
Сообщить("УстановитьБлокировкуНачалаСеансов: " + Запуск1С.ТекстОшибки);
БылиОшибки = Истина;
КонецЕсли;
// Завершим работу пользователей, наш сеанс должен закрыться
Если Запуск1С.ЗавершитьРаботуПользователей() Тогда
Сообщить("ЗавершитьРаботуПользователей: УСПЕШНО");
Иначе
Сообщить("ЗавершитьРаботуПользователей: " + Запуск1С.ТекстОшибки);
БылиОшибки = Истина;
КонецЕсли;
ВыполнитьСборкуМусора();
КонецЕсли;
// Отключимся от хранилища
Если Запуск1С.ОтключитьКонфигурациюОтХранилища() Тогда
Сообщить("ОтключитьКонфигурациюОтХранилища: УСПЕШНО");
Иначе
Сообщить("ОтключитьКонфигурациюОтХранилища: " + Запуск1С.ТекстОшибки);
БылиОшибки = Истина;
КонецЕсли;
// Выгрузим информационную базу
ПолныйПутьКФайлу = ОбъединитьПути(РабочийКаталог,Запуск1С.ИмяФайлаПоИмениБазыНаДату("dt"));
Если Запуск1С.ВыгрузитьИнформационнуюБазу(ПолныйПутьКФайлу) Тогда
Сообщить("ВыгрузитьИнформационнуюБазу: УСПЕШНО " + " в " + ПолныйПутьКФайлу);
Иначе
Сообщить("ВыгрузитьИнформационнуюБазу: " + Запуск1С.ТекстОшибки);
БылиОшибки = Истина;
КонецЕсли;
// Загрузим файл в информационную базу
Если Запуск1С.ЗагрузитьИнформационнуюБазу(ПолныйПутьКФайлу) Тогда
Сообщить("ЗагрузитьИнформационнуюБазу: УСПЕШНО " + " из " + ПолныйПутьКФайлу);
Иначе
Сообщить("ЗагрузитьИнформационнуюБазу: " + Запуск1С.ТекстОшибки);
БылиОшибки = Истина;
КонецЕсли;
УдалитьФайлы(ПолныйПутьКФайлу);
// Сохраним конфигурацию в файл
ПолныйПутьКФайлу = ОбъединитьПути(РабочийКаталог,Запуск1С.ИмяФайлаПоИмениБазыНаДату("cf"));
Если Запуск1С.СохранитьКонфигурациюВФайл(ПолныйПутьКФайлу) Тогда
Сообщить("СохранитьКонфигурациюВФайл: УСПЕШНО " + " в " + ПолныйПутьКФайлу);
Иначе
Сообщить("СохранитьКонфигурациюВФайл: " + Запуск1С.ТекстОшибки);
БылиОшибки = Истина;
КонецЕсли;
// Загрузим конфигурацию из файла
Если Запуск1С.ЗагрузитьКонфигурациюИзФайла(ПолныйПутьКФайлу) Тогда
Сообщить("ЗагрузитьКонфигурациюИзФайла: УСПЕШНО " + " из " + ПолныйПутьКФайлу);
Иначе
Сообщить("ЗагрузитьКонфигурациюИзФайла: " + Запуск1С.ТекстОшибки);
БылиОшибки = Истина;
КонецЕсли;
// Сохраним конфигурацию баз данных в файл
Если Запуск1С.СохранитьКонфигурациюБазыДанныхВФайл(ПолныйПутьКФайлу) Тогда
Сообщить("СохранитьКонфигурациюБазыДанныхВФайл: УСПЕШНО " + " в " + ПолныйПутьКФайлу);
Иначе
Сообщить("СохранитьКонфигурациюБазыДанныхВФайл: " + Запуск1С.ТекстОшибки);
БылиОшибки = Истина;
КонецЕсли;
// Сохраним конфигурацию хранилища в файл
Если Запуск1С.СохранитьКонфигурациюИзХранилищаВФайл(ПолныйПутьКФайлу) Тогда
Сообщить("СохранитьКонфигурациюИзХранилищаВФайл: УСПЕШНО " + " в " + ПолныйПутьКФайлу);
Иначе
Сообщить("СохранитьКонфигурациюИзХранилищаВФайл: " + Запуск1С.ТекстОшибки);
БылиОшибки = Истина;
КонецЕсли;
// Обновим конфигурацию из хранилища
Если Запуск1С.ОбновитьКонфигурациюИзХранилища() Тогда
Сообщить("ОбновитьКонфигурациюИзХранилища: УСПЕШНО");
Иначе
Сообщить("ОбновитьКонфигурациюИзХранилища: " + Запуск1С.ТекстОшибки);
БылиОшибки = Истина;
КонецЕсли;
// Обновим конфигурацию базы данных
Если Запуск1С.ОбновитьКонфигурациюБазыДанных() Тогда
Сообщить("ОбновитьКонфигурациюБазыДанных: УСПЕШНО");
Иначе
Сообщить("ОбновитьКонфигурациюБазыДанных: " + Запуск1С.ТекстОшибки);
БылиОшибки = Истина;
КонецЕсли;
//Проверим, есть ли изменения в основной конфигурации
ЕстьИзменения = Запуск1С.ЕстьИзмененияОсновнойКонфигурации();
Если ЕстьИзменения <> Неопределено Тогда
Сообщить("ЕстьИзмененияОсновнойКонфигурации: УСПЕШНО, Есть изменения: " + ?(ЕстьИзменения,"Да","Нет"));
Иначе
Сообщить("ЕстьИзмененияОсновнойКонфигурации: " + Запуск1С.ТекстОшибки);
БылиОшибки = Истина;
КонецЕсли;
// Подключимся к хранилищу
Если Запуск1С.ПодключитьКонфигурациюКХранилищу() Тогда
Сообщить("ПодключитьКонфигурациюКХранилищу: УСПЕШНО");
Иначе
Сообщить("ПодключитьКонфигурациюКХранилищу: " + Запуск1С.ТекстОшибки);
БылиОшибки = Истина;
КонецЕсли;
// Выполним очистку локального кэша хранилища конфигурации
Если Запуск1С.ВыполнитьОчисткуЛокальногоКешаХранилища() Тогда
Сообщить("ВыполнитьОчисткуЛокальногоКешаХранилища: УСПЕШНО");
Иначе
Сообщить("ВыполнитьОчисткуЛокальногоКешаХранилища: " + Запуск1С.ТекстОшибки);
БылиОшибки = Истина;
КонецЕсли;
// Выполним очистку локальной базы данных хранилища конфигурации
Если Запуск1С.ВыполнитьОчисткуЛокальнойБазыДанныхХранилища() Тогда
Сообщить("ВыполнитьОчисткуЛокальнойБазыДанныхХранилища: УСПЕШНО");
Иначе
Сообщить("ВыполнитьОчисткуЛокальнойБазыДанныхХранилища: " + Запуск1С.ТекстОшибки);
БылиОшибки = Истина;
КонецЕсли;
// Проверим, есть ли изменения в хранилище конфигураций
ЕстьИзмененияВХранилище = Запуск1С.ЕстьИзмененияВХранилище();
Если ЕстьИзмененияВХранилище <> Неопределено Тогда
Сообщить("ЕстьИзмененияВХранилище: УСПЕШНО, Есть изменения: " + ?(ЕстьИзмененияВХранилище,"Да","Нет"));
Иначе
Сообщить("ЕстьИзмененияВХранилище: " + Запуск1С.ТекстОшибки);
БылиОшибки = Истина;
КонецЕсли;
Если ПараметрыЗапуска.ТипБазы = "S" Тогда // Серверная база
// Снимем блокировку пользователей
Если Запуск1С.СнятьБлокировкуНачалаСеансов() Тогда
Сообщить("СнятьБлокировкуНачалаСеансов: УСПЕШНО");
Иначе
Сообщить("СнятьБлокировкуНачалаСеансов: " + Запуск1С.ТекстОшибки);
БылиОшибки = Истина;
КонецЕсли;
КонецЕсли;