Каждый администратор или разработчик систем на платформе «1С:Предприятие» рано или поздно сталкивается с ситуацией, когда при входе пользователей в программу начинает массово появляться предупреждение: «Конфигурация базы данных не соответствует сохраненной конфигурации». Это происходит из-за специфики архитектуры 1С, где разделяются основная конфигурация (с которой работает разработчик) и конфигурация базы данных (в которой работают пользователи).
Если в рабочую базу были внесены изменения, но они не были окончательно применены (не выполнено обновление конфигурации базы данных), платформа принудительно сигнализирует об этом каждому подключающемуся клиенту. Ситуация усложняется, когда в компании настроена распределенная работа: часть сотрудников заходит через тонкий клиент, часть — через терминальный сервер, а остальные используют веб-клиент в браузере. Звонки в техническую поддержку начинаются незамедлительно.
В этой статье мы подробно разберем, как решить эту проблему раз и навсегда для всех типов клиентов, включая веб-интерфейс, а также рассмотрим превентивные методы, исключающие саму возможность появления такого сбоя.
---
Прежде чем переходить к устранению симптомов, важно понять первопричину. В платформе «1С:Предприятие» метаданные существуют в двух состояниях:
Связующим звеном между ними является процесс обновления (клавиша F7 в конфигураторе). Если изменения внесены в основную конфигурацию, но клавиша F7 не была нажата, база переходит в состояние несоответствия. Платформа видит этот «зазор» и при каждом новом подключении выдает пользователям предупреждающее окно. Если для администратора это важный сигнал, то для обычного бухгалтера или менеджера по продажам — это лишний повод для паники.
---
Проанализируем самый простой и методологически верный способ, упомянутый в обсуждении. По умолчанию платформа показывает предупреждение только тем пользователям, у которых в системе есть права на администрирование и обновление конфигурации. У рядовых сотрудников таких прав быть не должно.
Если у ваших пользователей при входе появляется это сообщение, значит, их роли настроены некорректно и содержат избыточные административные полномочия. Выясним, как это исправить:
Общие — Роли.Полные права или копируют её настройки).F7).После этого обычные пользователи перестанут видеть предупреждение при входе. Сообщение останется доступным только для администраторов, что логично и безопасно.
---
Если по каким-то причинам вы не можете оперативно изменить права пользователей, существует обходной технический путь. Мы можем принудительно запретить платформе выводить любые стартовые предупреждения.
Для пользователей, запускающих 1С через стандартное окно запуска (стартер), можно прописать специальный ключ запуска /DisableStartupMessages. Рассмотрим, как это сделать:
Если пользователь запускает систему напрямую через ярлык, кликните по ярлыку правой кнопкой мыши, выберите «Свойства» и в поле «Объект» в самом конце строки через пробел добавьте параметр:
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F "C:\Base1C" /DisableStartupMessages
В крупных организациях со множеством пользователей ручная настройка ярлыков неэффективна. Разумнее использовать общие файлы со списком баз (с расширением .v8i). Откройте конфигурационный файл списка баз в текстовом редакторе и найдите описание нужной информационной базы. В секцию параметров добавьте строку:
[Имя Вашей Рабочей Базы]
Connect=Srvr="Server1C";Ref="WorkBase";
AdditionalParameters=/DisableStartupMessages
Параметр AdditionalParameters автоматически применит ключ запуска ко всем пользователям, которые используют этот список баз.
---
Особую сложность всегда вызывают пользователи, работающие через веб-интерфейс (в браузере). Для них невозможно настроить локальный ярлык или отредактировать файл .v8i.
Тем не менее платформа «1С:Предприятие» позволяет передавать параметры запуска веб-клиента прямо в адресной строке браузера (URL). Нам достаточно модифицировать ссылку, по которой пользователи заходят в базу.
Разберем по шагам, как сформировать правильную ссылку:
http://имя_сервера/имя_базы/?DisableStartupMessages
&):
http://имя_сервера/имя_базы/?mainWindowMode=Workplace&DisableStartupMessages
Разошлите пользователям веб-клиента обновленную ссылку или обновите закладки в их браузерах. С этого момента веб-клиент будет игнорировать несоответствие конфигураций при старте сессии.
---
Часто проблема возникает из-за человеческого фактора: разработчик зашел в конфигуратор рабочей базы, случайно что-то изменил (например, сдвинул элемент на форме или случайно нажал пробел в коде модуля), закрыл конфигуратор, но база осталась в измененном состоянии.
Вместо того чтобы вручную заходить в конфигуратор и выбирать пункт меню «Конфигурация» — «Вернуться к конфигурации БД», мы можем полностью автоматизировать этот процесс. Для этого воспользуемся параметром командной строки конфигуратора /RollbackCfg.
Создадим простой командный файл (скрипт .bat или .cmd), который администратор может запускать мгновенно в случае ЧП, или настроим его выполнение по расписанию в ночное время:
@echo off
rem Путь к исполняемому файлу платформы 1С
set "EXE1C=C:\Program Files\1cv8\8.3.22.1709\bin\1cv8.exe"
rem Параметры подключения к вашей базе (серверный вариант)
set "CONNECTION_STRING=/S ServerName\BaseName"
set "ADMIN_USER=/N Admin"
set "ADMIN_PASS=/P Pa$$word"
rem Запуск отката изменений основной конфигурации к конфигурации базы данных
"%EXE1C%" CONFIG %CONNECTION_STRING% %ADMIN_USER% %ADMIN_PASS% /RollbackCfg
echo Откат изменений успешно завершен.
pause
Этот скрипт в фоновом режиме подключится к базе, отменит все непримененные правки основной конфигурации и вернет её к стабильному состоянию базы данных. Если правки были внесены в расширения конфигурации, утилита также поддерживает работу с ними:
"%EXE1C%" CONFIG %CONNECTION_STRING% %ADMIN_USER% %ADMIN_PASS% /RollbackCfg -Extension "ИмяВашегоРасширения"
---
Самый надежный способ решить проблему — сделать так, чтобы её невозможно было создать физически. Внесение изменений напрямую в рабочую базу («на горячую») — это грубое нарушение стандартов разработки. Рассмотрим три метода превентивной защиты рабочей среды:
Если вы работаете на типовой конфигурации (например, «1С:Бухгалтерия» или «1С:ERP»), заблокируйте возможность её изменения:
Дерево конфигурации заблокируется (появится значок замочка). Ни один разработчик не сможет случайно внести правки на продакшене без предварительного снятия с поддержки, что требует осознанных действий.
Если база полностью самописная или снята с поддержки, установите пароль на изменение метаданных:
Теперь любой специалист сможет запустить конфигуратор для просмотра или выгрузки базы, но при попытке изменить код или метаданные система потребует ввести пароль.
Организуйте правильный цикл разработки (ALM). Разработчики должны вести деятельность исключительно в своих локальных копиях баз, подключенных к общему Хранилищу конфигурации. Накатывать изменения на рабочую базу должен один ответственный сотрудник (релиз-инженер или ведущий администратор) во время технологического окна, используя файл обновлений (.cf или .cfu), либо выполняя операцию «Обновить из хранилища» строго в запланированное время.
---
Отдельно упомянем так называемое «демоническое» (динамическое) обновление. Когда администратор обновляет рабочую конфигурацию динамически (без выгона пользователей), платформа обновляет структуру в БД, но у активных пользователей на локальных компьютерах остается старый кэш метаданных. Из-за этого даже после нажатия F7 у пользователей может продолжать появляться ошибка несоответствия конфигурации.
Для борьбы с этим эффектом используем следующие инструменты:
/ClearCache в строку запуска тонкого клиента. Это заставит систему при каждом запуске очищать локальный кэш метаданных, исключая сбои динамического обновления.Ctrl + F5) или запустить браузер в режиме инкогнито.sudo systemctl restart apache2 для Apache).---
Для того чтобы полностью исключить появление сообщения о несоответствии конфигураций у ваших пользователей, примените комплексный подход:
/DisableStartupMessages в общие списки баз .v8i.?DisableStartupMessages в URL-адреса./RollbackCfg для быстрого отката случайных изменений._