Как исправить ошибку аутентификации при обновлении расширения 1С из хранилища через командную строку

Программист 1С v8.3 (Управляемые формы) 1С:Управление нашей фирмой IT и автоматизация бизнеса
← На главную

В процессе автоматизации процессов разработки и развертывания (CI/CD) в среде 1С:Предприятие часто возникает задача автоматического обновления информационной базы из хранилища конфигурации. Одной из специфических проблем, с которой сталкиваются разработчики при работе с расширениями, является внезапная ошибка аутентификации при запуске конфигуратора с ключами автоматического обновления, даже если логины и пароли указаны верно. Рассмотрим подробно, почему это происходит и как правильно настроить параметры запуска.

Анализ исходной ситуации и диагностика ошибки

Представим типовой сценарий: имеется типовая конфигурация (например, 1С:Управление нашей фирмой), которая находится на поддержке без возможности изменения (стоит на «замке»). К этой базе подключены расширения, содержащие клиентские доработки. Одно из расширений подключено к собственному хранилищу конфигурации. Задача — выполнить автоматическое обновление этого расширения из хранилища и обновить конфигурацию базы данных (БД) через командную строку.

При использовании стандартной строки запуска для основной конфигурации система может выдавать ошибку аутентификации в Журнале регистрации, хотя при ручном входе в конфигуратор всё работает корректно. Проанализируем типичный (но ошибочный для данного случая) код запуска:


"C:\Program Files\1cv8\8.3.13.1809\bin\1cv8.exe" DESIGNER /S localhost\work 
/N"UserName" /P"Password" 
/ConfigurationRepositoryF "tcp://localhost/bag" 
/ConfigurationRepositoryN "AdminName" /ConfigurationRepositoryP "AdminPassword" 
/ConfigurationRepositoryUpdateCfg -force /UpdateDBCfg

Выясним причину сбоя: когда мы используем ключ /ConfigurationRepositoryUpdateCfg без дополнительных уточнений, платформа 1С по умолчанию пытается применить эту команду к основной конфигурации. Поскольку основная конфигурация в нашем примере находится на поддержке и не подключена к хранилищу (к нему подключено только расширение), система входит в ступор. Ошибка аутентификации в данном контексте является следствием того, что параметры доступа к хранилищу (логин/пароль) передаются для контекста основной конфигурации, где они не могут быть проверены или применены корректно.

Решение проблемы: применение ключа -Extension

Для того чтобы система поняла, что действия по обновлению из хранилища должны относиться не к основной конфигурации, а к конкретному расширению, необходимо использовать специализированный параметр -Extension. Рассмотрим исправленный алгоритм действий.

Процесс обновления необходимо разделить на два этапа (или последовательные команды):

  1. Обновление конфигурации расширения из хранилища: на этом этапе мы загружаем последние изменения из хранилища в базу.
  2. Обновление конфигурации базы данных: на этом этапе принятые изменения фиксируются в структуре БД.

Посмотрим на пример правильного кода для первого этапа:


"C:\Program Files\1cv8\8.3.x\bin\1cv8.exe" DESIGNER 
/S "server\base" 
/N "Admin1C" /P "Pass1C" 
/ConfigurationRepositoryF "tcp://server/repo_ext" 
/ConfigurationRepositoryN "RepoUser" /ConfigurationRepositoryP "RepoPass" 
/ConfigurationRepositoryUpdateCfg -Extension "ИмяВашегоРасширения" -force

И следом выполняем обновление базы данных для этого же расширения:


"C:\Program Files\1cv8\8.3.x\bin\1cv8.exe" DESIGNER 
/S "server\base" 
/N "Admin1C" /P "Pass1C" 
/UpdateDBCfg -Extension "ИмяВашегоРасширения" -force

Важный момент: имя расширения в параметре -Extension должно в точности совпадать с именем расширения в метаданных (поле "Имя"), а не с его синонимом. Рекомендуется всегда заключать имя в двойные кавычки, чтобы избежать проблем с пробелами или спецсимволами.

Разберем нюансы: Поддержка vs Возможность изменения

В процессе обсуждения данной проблемы часто возникает путаница в терминах «поддержка» и «запрет редактирования». Проанализируем ситуацию, чтобы не допускать ошибок в проектировании систем обновления.

Наличие желтого кубика на объектах метаданных означает, что конфигурация находится на поддержке поставщика. Это позволяет использовать механизмы автоматического обновления от фирмы 1С. Наличие «замка» означает, что редактирование объектов запрещено. Вы можете включить возможность изменения, сохранив при этом поддержку. В этом случае «замок» снимется, но конфигурация поставщика останется в базе.

Для нашей задачи с расширениями это критично: если вы пытаетесь обновить через хранилище основную конфигурацию, которая находится на поддержке без возможности изменения, 1С заблокирует эту операцию. Использование расширений позволяет оставить типовую конфигурацию на полном «замке», что значительно упрощает дальнейшее обновление типового функционала, в то время как вся кастомизация живет в расширении и обновляется через отдельное хранилище с помощью ключа -Extension.

Дополнительные рекомендации по автоматизации

Чтобы процесс обновления был максимально надежным и прозрачным, проанализируем несколько дополнительных параметров командной строки, которые помогут в диагностике ошибок:

Соблюдение правильной последовательности ключей и явное указание контекста работы (основная конфигурация или расширение) позволяет избежать ложных сообщений об ошибках аутентификации и выстроить стабильный процесс автоматизированной сборки приложений на платформе 1С:Предприятие.

← На главную