Данная тема обсасывалась не один раз, но толкового полного описания на просторах рунета я так и не нашел, по сему, после аккумулирования знаний и обхода всех подводных камней, решил поделиться с обществом полученной информацией.
Итак:
Хранилище конфигураций 1С по своей сути является системой контроля версий. Главным удобством хранилища для обновления баз является возможность пакетного запуска 1С и обновления конфигурации из этого хранилища. Как это выглядит на деле: для каждой поддерживаемой конфигурации создается хранилище. Эти хранилища обновляются штатными методами по факту выхода новых релизов от поставщиков. Чтобы обновить "боевую" базу 1С из этого хранилища требуется последовательно запустить 1С в режиме конфигуратора с ключами
1) ConfigurationRepositoryF("Путь к хранилищу") /ConfigurationRepositoryN("Пользователь хранилища") /ConfigurationRepositoryP("Пароль пользователя хранилища") /ConfigurationRepositoryUpdateCfg
эта команда выполняет подключение к хранилищу и обновление текущей конфигурации из него.
2) /UpdateDBCfg
эта команда выполняет обновление конфигурации базы данных. Тут нужно понимать, что системе наверняка потребуется изменять структуру таблиц БД, поэтому доступ должен быть монопольным. Как этого добиться? Все теми же ключами запуска
1) /CЗавершитьРаботуПользователей - для того, чтобы отключить всех пользователей (тут присутствуют известные проблемы с модальными окнами и запросами на выход из системы)
2) /CРазрешитьРаботуПользователей /UCКодРазрешения - для разрешения работы.
ВАЖНО! Если используется запрет на работу пользователей, то при обновлении базы необходимо добавлять ключ /UCКодРазрешения.
Итого, для обновления мы получаем всего 4 последовательных операции:
ENTERPISE /F"Путь" /N"Юзер" /P"Пароль" /CЗавершитьРаботуПользователей
DESIGNER /F"Путь" /N"Юзер" /P"Пароль" /ConfigurationRepositoryF"Путь к хранилищу" /ConfigurationRepositoryN"Пользователь хранилища" /ConfigurationRepositoryP"Пароль пользователя хранилища" /ConfigurationRepositoryUpdateCfg /UCКодРазрешения
DESIGNER /F"Путь" /N"Юзер" /P"Пароль" /UpdateDBCfg /UCКодРазрешения
ENTERPISE /F"Путь" /N"Юзер" /P"Пароль" /CРазрешитьРаботуПользователей /UCКодРазрешения
Загоняем в цикл по своим базам и радуемся жизни.
Казалось бы все элементарно, но существует ряд ошибок, которые, судя по форумам, встречаются довольно часто.
- Пытаемся завершить/разрешить работу пользователей в режиме конфигуратора
- Пытаемся обновить конфигурацию, к которой запрещен доступ, не используя /UCКодРазрешения
- Забываем, что лучший штатный механизм для получения монопольного режима - телефон
Конечно, статья не станет откровением для гуру, но новичкам вполне может пригодиться.
UPD: Типовая БП 2.0.12.2 обновляется до 2.0.42.6 за 6.5 минут (замер производился без данных в базе)