Многие системные администраторы и программисты 1С сталкиваются с ситуацией, когда система 1С:ERP Управление предприятием начинает самостоятельно устанавливать исправления (патчи) в виде расширений. Самая неприятная часть этой проблемы заключается в том, что даже при снятом флажке «Устанавливать исправления (патчи) автоматически» в интерфейсе, система продолжает загружать и применять их. Это может привести к конфликтам в доработанных конфигурациях или неожиданному изменению логики работы системы в разгар рабочего дня.
В этой статье мы подробно разберем, почему так происходит, проанализируем скрытые механизмы платформы и Библиотеки стандартных подсистем (БСП), а также составим пошаговый алгоритм полного отключения этого функционала.
Рассмотрим ситуацию, которую описал автор темы. Флажок снят, но патчи всё равно «прилетают». Проанализируем механизмы 1С:ERP. Проблема кроется в том, что за процесс работы с исправлениями отвечает не одна настройка, а целая цепочка событий и объектов. В современных версиях конфигураций на базе БСП задействованы регламентные задания, константы и механизмы Интернет-поддержки пользователей (ИПП).
Когда вы снимаете флажок в интерфейсе (обычно это раздел «Обслуживание» — «Обновление программы»), система должна записать значение Ложь в соответствующую константу. Однако из-за особенностей кэширования или ошибок в конкретных релизах, регламентное задание может продолжать функционировать по старому расписанию. Более того, существует разрыв между загрузкой патчей и их установкой.
Первым делом нам необходимо проверить список регламентных заданий. Выясним, какие именно задачи инициируют процесс. Для этого нам понадобится «Консоль регламентных заданий» или стандартный интерфейс «Регламентные и фоновые задания».
Разберем, какие задания нас интересуют:
Даже если второе задание отключено, первое может продолжать скачивать патчи. А при входе пользователя с правами Администратора система обнаружит скачанные файлы и предложит (или принудительно выполнит) их установку в привилегированном режиме.
Что нужно сделать: Найдите задание с именем, содержащим «Исправления» или «Патчи» (в разных версиях БСП имя может звучать как ЗагрузкаИУстанавливатьИсправления), и полностью удалите у него расписание, а также снимите признак включения.
Иногда визуальный флажок в интерфейсе «залипает». Проанализируем состояние системы через программный код. Нам нужно убедиться, что константа, отвечающая за этот функционал, действительно установлена в значение Ложь. Это можно сделать с помощью обработки «Групповое изменение реквизитов» или написав короткий фрагмент кода в консоли кода:
// Проверяем и устанавливаем значение константы напрямую
Если Константы.АвтоматическиУстанавливатьИсправления.Получить() <> Ложь Тогда
Константы.АвтоматическиУстанавливатьИсправления.Установить(Ложь);
Сообщить("Настройка автоматической установки патчей отключена принудительно.");
КонецЕсли;
Также в некоторых релизах ERP может присутствовать константа ЗагружатьИУстанавливатьИсправленияАвтоматически. Рекомендуется проверить оба варианта.
Автор темы заметил важную деталь: патчи начинают устанавливаться именно в момент запуска отладки из Конфигуратора. Это происходит потому, что при старте системы вызывается процедура ПриНачалеРаботыСистемы, которая инициирует проверку легальности программного обеспечения и наличие критических исправлений.
Чтобы избежать этого при разработке и тестировании, мы можем использовать специальные параметры запуска. Рассмотрим подробнее параметр /DisableUpdateQueries. Если вы добавите его в дополнительные параметры запуска в настройках отладки (в Конфигураторе: Сервис — Параметры — Запуск 1С:Предприятия — Дополнительные), система перестанет обращаться к серверам обновлений при старте сеанса.
Если патчи уже были скачаны системой, они будут находиться в «подвешенном» состоянии. Проанализируем, где они хранятся. Система использует справочник Исправления (в некоторых версиях это скрытый справочник или регистр сведений) и расширения конфигурации.
Посмотрим на алгоритм очистки:
EF_...).УдаленныеИсправления. Иногда система хранит там информацию о тех патчах, которые она «хочет» удалить, но не может завершить процесс из-за активных сеансов.Критически важно также очистить временные папки на сервере 1С. Путь обычно выглядит так: %AppData%\Local\1C\1cv8\... для текущего пользователя, под которым работает служба сервера 1С. Там могут храниться дистрибутивы обновлений, готовые к установке.
Интересный метод решения предложили участники обсуждения: ограничение использования «небезопасного режима». Исправления часто устанавливаются как расширения с определенными требованиями к безопасности. Если запретить выполнение кода в небезопасном режиме для пользователей, это может стать дополнительным барьером для автоматической установки некоторых типов расширений.
Однако помните, что это радикальный метод, который может нарушить работу других, легитимных расширений в вашей ERP-системе. Поэтому используйте его только как вспомогательный.
Подводя итог нашему анализу, для гарантированного отключения патчей в 1С:ERP недостаточно одного флажка. Необходимо выполнить комплекс мер:
/DisableUpdateQueries для работы в режиме отладки.Следуя этим шагам, вы сможете полностью контролировать состояние вашей информационной базы и избежать внезапного изменения конфигурации без вашего ведома.