При переходе на новые релизы платформы 1С:Предприятие (в частности, начиная с веток 8.3.18 и 8.3.19) и последующей проверке работоспособности внешних отчетов многие администраторы и разработчики сталкиваются с неприятным сообщением при запуске системы: "Подпись мобильного клиента в приложении на сервере устарела необходимо обновить подпись".
Ситуация часто осложняется тем, что организация может вообще не использовать мобильный клиент, а ошибка все равно блокирует нормальный вход или раздражает пользователей при каждом запуске. Давайте подробно разберем причины возникновения этой ошибки, проанализируем варианты её устранения и рассмотрим пошаговые алгоритмы действий для различных сценариев администрирования базы данных.
Прежде чем приступать к исправлению, давайте разберемся в механизме работы. Платформа 1С содержит функционал защиты мобильных клиентов. Когда разработчик собирает мобильное приложение, в него "зашивается" цифровой слепок (хеш) текущей конфигурации. При подключении мобильного устройства сервер проверяет: соответствует ли конфигурация, которую ожидает клиент, той, что сейчас работает на сервере.
Ошибка возникает из-за рассинхронизации этих данных после обновления. Даже если вы не используете мобильный клиент, в метаданных конфигурации может храниться старая или некорректная информация о подписи. При автоматическом обновлении конфигурации или платформы хеш меняется, проверка не проходит, и платформа выдает предупреждение.
Рассмотрим несколько способов решения этой задачи: от "правильного" с точки зрения архитектуры до "быстрого" для оперативного устранения симптомов.
Самый надежный способ избавиться от ошибки — удалить устаревшие данные о подписи из свойств конфигурации. Это устраняет причину, а не следствие.
Для выполнения этих действий нам потребуется доступ к базе в режиме Конфигуратор с правами администратора, имеющего доступ к администрированию пользователей.
Alt + Enter.В открывшемся диалоговом окне мы увидим управление подписью. Здесь нам необходимо нажать кнопку Очистить подпись (или "Очистить"). После этого нажмем "ОК" и обязательно выполним обновление конфигурации базы данных (клавиша F7 или синий цилиндр в панели инструментов).
Часто мы сталкиваемся с ситуацией, когда конфигурация находится на полной поддержке поставщика (напротив корня конфигурации стоит значок "Желтый куб с замком"). В этом случае редактирование свойств корневого узла запрещено, и кнопка очистки будет недоступна (серая).
В этом случае нам придется выполнить групповое изменение режима поддержки и включить возможность изменения конфигурации. Проанализируем риски: включение возможности изменения незначительно усложнит процесс будущих обновлений (нельзя будет обновляться полностью автоматически "одной кнопкой", потребуется сравнение/объединение, даже если вы ничего не меняли в коде).
Если вы готовы к этому шагу, выполним следующие действия:
F7).Важное примечание: Если вы действительно планируете использовать мобильный клиент в будущем, после очистки вам нужно будет нажать "Создать новую подпись" (или загрузить ключ) и пересобрать мобильное приложение. Если мобильный клиент не используется — просто оставьте поле пустым.
Если снимать конфигурацию с поддержки нельзя (политика компании, требования обслуживания) или не хочется, можно попытаться отключить проверку на уровне настроек информационной базы. Этот метод работает не на всех версиях платформы (на старых релизах 8.3.18 он мог не срабатывать, но на 8.3.18.1483+ и 8.3.19+ работает корректно).
Выполним настройку:
Этот параметр сохраняется в базе данных и действует для всех пользователей. После применения настройки перезапустим клиентское приложение и проверим, исчезла ли ошибка.
Если первые два способа не подходят или не сработали (например, баг конкретного релиза платформы), можно воспользоваться ключом запуска клиентского приложения. Это не решение проблемы, а скрытие симптомов.
Добавим в ярлык запуска 1С или в параметры запуска базы в списке информационных баз специальный ключ:
/DisableStartupMessages
Разберем, как это сделать:
/DisableStartupMessages.Предостережение: Использование этого ключа отключает ВСЕ сообщения при запуске системы. Это значит, что пользователи могут пропустить важные уведомления от администраторов, сообщения о блокировке регламентных заданий или информацию о техническом обслуживании. Используйте этот метод только как временную меру.
В процессе обсуждения темы мы выявили важный технический нюанс. При попытке включить возможность изменения (для реализации Способа 1) на больших конфигурациях (ERP, Комплексная автоматизация) может возникнуть ошибка "Недостаточно памяти".
Это происходит потому, что процесс сравнения конфигураций требует значительного объема оперативной памяти. Если вы выполняете эту операцию на 32-битном клиенте 1С или на сервере с 32-битным процессом сервера приложений, вы упираетесь в ограничение адресного пространства (2 Гб или 3-4 Гб при специальных настройках ОС).
Как обойти эту проблему, чтобы все-таки очистить подпись?
.dt), разверните её файловую копию на мощном локальном компьютере с 64-битным клиентом. Выполните снятие с поддержки и очистку подписи там. Затем выгрузите .cf файл (файл конфигурации) и загрузите его в рабочую серверную базу (через "Загрузить конфигурацию из файла"). Внимание: при полной загрузке конфигурации убедитесь, что идентификаторы метаданных не нарушены, лучше использовать "Сравнение и объединение" с рабочей базой.Ошибка "Подпись мобильного клиента устарела" является известной проблемой несоответствия хешей конфигурации и требований безопасности платформы. Подведем итог действий:
/DisableStartupMessages, осознавая риски скрытия других уведомлений.