Почему 1С:Бухгалтерия 2.0 автоматически меняет пароль администратора в регламентном задании?

Системный администратор 1С v8.3 (Обычные формы) 1C:Бухгалтерия IT и автоматизация бизнеса
← На главную

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

Анализ программного кода регламентного задания

Причиной такого поведения является регламентное задание ОбновлениеКонфигурации. Проанализируем участок кода, который отвечает за этот процесс. Обычно он располагается в общем модуле, вызываемом данным заданием. Программа считывает настройки из специальной константы и выполняет следующие действия:


// Процедура производит действия, приводящие к регламентному обновлению ИБ
// но только для серверного варианта
Процедура ОбновлениеКонфигурации() Экспорт
    СтруктураОбновленияИБ = Константы.НастройкаОбновленияКонфигурации.Получить().Получить();
    
    // Получение имени администратора из настроек
    ИмяАдминистратораИБ = СтруктураОбновленияИБ.ИмяАдминистратораИБ;
    
    // Поиск пользователя в списке пользователей ИБ
    Пользователь = ПользователиИнформационнойБазы.НайтиПоИмени(ИмяАдминистратораИБ);
    
    // Генерация нового случайного пароля на основе UUID
    НовыйПароль = Лев(Строка(Новый УникальныйИдентификатор), 20);
    
    // Установка нового пароля и запись пользователя
    Пользователь.Пароль = НовыйПароль;
    Пользователь.Записать();
    
    // Сохранение нового пароля в переменную для дальнейшего использования в скрипте обновления
    ПарольАдминистратораИБ = НовыйПароль;
КонецПроцедуры

Как мы видим из кода, объект ПользователиИнформационнойБазы используется для программного изменения свойств учетной записи. Метод Новый УникальныйИдентификатор генерирует строку, которую практически невозможно угадать вручную, что и приводит к потере доступа пользователем, если под этим именем работает реальный человек.

Выясним причину: логика безопасности автоматического обновления

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

Зачем менять пароль на случайный? Проанализируем основные соображения безопасности:

  1. Исключение несанкционированного доступа: Во время процесса обновления создается временное «окно», когда служебные скрипты используют административные права. Чтобы никто не мог перехватить эти данные или войти в систему под той же учетной записью в момент обновления, система генерирует уникальный пароль, известный только текущему запущенному процессу.
  2. Разграничение ответственности: Если обновление выполняется под учетной записью «Администратор», которую используют живые люди, в журнале регистрации будет невозможно отличить действия автоматики от действий человека.
  3. Защита от прерывания: Случайный пароль гарантирует, что администратор случайно не зайдет в базу в середине критического процесса обновления и не вызовет конфликты блокировок.

Разберем по шагам, как исправить проблему

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

Способ 1: Использование выделенного служебного пользователя

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

  1. Зайдем в список пользователей (через Конфигуратор или интерфейс «Администратор»).
  2. Создадим нового пользователя с понятным именем, например, UpdateRobot или Service_Admin.
  3. Назначим ему роль «Полные права».
  4. Обязательно снимем галочку «Показывать в списке выбора», чтобы этот пользователь не мешал обычным сотрудникам при входе.
  5. Перейдем в режим «1С:Предприятие» и откроем настройки обновления конфигурации (обычно это меню Сервис — Настройка обновления конфигурации).
  6. В поле «Пользователь» выберем нашего нового UpdateRobot и укажем его текущий пароль.
  7. Нажмем «ОК» или «Записать», чтобы данные в константе НастройкаОбновленияКонфигурации обновились.

Теперь система будет менять пароль только у этого технического пользователя, а ваш основной «Администратор» останется нетронутым.

Способ 2: Очистка настроек автоматического обновления

Если вы предпочитаете обновлять конфигурацию вручную через Конфигуратор и не используете типовой механизм автоматического скачивания и установки обновлений, проанализируем необходимость работы этого регламентного задания.

Выясним, как отключить смену пароля полностью:

  1. Откроем Консоль регламентных заданий (в БП 2.0 она обычно доступна через меню «Операции» или встроенные обработки).
  2. Найдем в списке задание с наименованием Обновление конфигурации.
  3. Снимем флажок «Включено».

После этого код, меняющий пароль, просто не будет запускаться. Однако помните: если в будущем вы решите воспользоваться кнопкой «Обновить конфигурацию» в режиме Предприятия, система может снова потребовать настройки и включить задание.

Важное замечание по кэшированию настроек

Проанализируем ситуацию, когда вы уже создали нового пользователя, но пароль все равно меняется у старого администратора. Это происходит потому, что в константе НастройкаОбновленияКонфигурации сохранена старая структура данных. Обязательно убедитесь, что вы не просто создали пользователя в списке, а именно перевыбрали его в форме настроек обновления и сохранили эти настройки. Только после перезаписи значения константы регламентное задание увидит новое имя пользователя ИБ.

Таким образом, мы разобрали внутреннюю логику работы 1С:Бухгалтерии 2.0. Понимание того, как работают объекты типа КонстантыМенеджер и ПользователиИнформационнойБазы, позволяет гибко управлять безопасностью системы и избегать досадных блокировок административного доступа.

← На главную