Надеюсь, кому-нибудь будет полезной.
В основе - параметры работы с 1С из командной строки.
Назначение:
1. Обновление типовых и нетиповых БД из хранилища
2. Обновление типовых БД (на поддержке) из внешнего файла (*.cf; *.cfu)
3. Архивирование баз до и после обновления
4. Обход модального окна подтверждения легальности при запуске в режиме 1С:Предприятие.
5. Анализ ошибок: подробный лог ведется в файле 1c_log.log (по умолчанию в папке temp, можно изменить), результат основных действий выводится в виде сообщений
Предварительные действия:
1. Создать файл со списком баз *.v8i
2. Обновить конфигурацию хранилища или подготовить файлы обновления
Порядок работы:
1. Запускать в толстом клиенте (неуправляемая форма)
2. Заполнить пользователя и пароль администратора баз
3. Поставить флаг "Архивировать базы" - становится доступным раздел "Параметры архивирования"
4. Поставить флаг "Обновить базы" - становится доступным раздел "Параметры обновления"
5. Флаг "Выполнить обновление неинтерактивно" - обновление релизов пройдет через ком-соединение, то есть в обход модального окна подтверждения легальности.
6. Флаг "Блокировать базы" - если нужно всех выкинуть из базы и заблокировать вход, при этом автоматом ставится флаг "Разблокировать базы" из пункта 7, так как нужно будет разблокировать базы.
7. Флаг " Разблокировать базы" - базы запускаются, выполняются процедуры обновления релизов, базы разблокируются и закрываются. (Есть "НО", смотри предупреждение ниже)
Варианты настройки:
1.Базы типовые или нетиповые, но в них имеются процедуры обновления БСП:
Ставим флаг "Выполнить обновление неинтерактивно", чтобы обойти окно проверки легальности
Остальные флаги по мере необходимости
2.Базы нетиповые, процедур обновления БСП нет
В этом случае можно внести ещё одно маленькое изменение, а именно - отключить процедуру проверки легальности при запуске БД:
В типовых конф-ях Бух 2.0, Зуп 2.5 и т.п. - закомментировать вызов в процедуре "ВыполнитьОбновлениеИнформационнойБазы()". В типовых Бух 3.0, Зуп 3.0 и т.п - вставить "Возврат Ложь" в функцию "ТребуетсяПроверитьЛегальностьПолученияОбновления()".
Флаг "Выполнить обновление неинтерактивно" снимаем
Ставим флаг "Блокировать базы..." или флаг "Разблокировать базы"
Остальные флаги по мере необходимости
Предупреждение:
Если процедура вывода модального окна проверки легальности при запуске БД НЕ отключена
+ не стоит флаг "Выполнить обновление неинтерактивно" или процедуры обновления БСП отсутствуют в конфигурации
+ стоят флаги "Блокировать базы" или "Разблокировать базы"
то
Окно подтверждения легальности придется закрывать вручную
Изменения от 24.02.2014:
1. Добавлена возможность обновлять серверные базы
Изменения от 11.04.2014: (версия _005)
1. Флаг "Выполнить обновление неинтерактивно" использовал объект "v82.COMConnector". При использовании других версий (8.0, 8.1, 8.3) обработка не запускалась. Ошибка исправлена. Запускать можно на любой платформе 8.*
Изменения от 05.08.2014: (версия _006)
1. Наличие пользователей и/или паролей в базах стало НЕобязательным
2. Имена пользователей, названия баз, пути к архивам, логу и т.п. теперь МОГУТ содержать пробелы, ошибку выдавать не будет.
3. Для каждой базы определяется релиз приложения 1cv8, если он установлен в настройках базы. Если не установлен - запускается самый свежий.
4. В командное окно добавлено описание выполняемой операции
Изменения от 03.04.2015: (версия _007)
1. Обновление через обработку переделано для работы с БСП. Изменено название флага на "Выполнить обновление неинтерактивно". Сделано для того, чтобы обновлять базы, где есть процедуры обновления БСП.
2. Добавил обработку прерывания пользователя
3. Заметил, что на некоторых новых релизах Бухгалтерии 3.0 после блокировки пользователей вываливается ошибка "Прекращена работа программы 1cv8c" и это окошко не дает закрыться командной строке и продолжиться обработке. С чем это связано пока не понял, при обновлении таких баз просто снимаю флажок "Блокировать базы".
Изменения от 08.04.2015: (версия _008)
1. Название модуля обновления в ЗУП "ОбновлениеИнформационнойБазыЗК" отличается от других конфигураций. Забыл исправить в прошлой версии.