Многие пользователи и администраторы систем на базе 1С сталкиваются с ситуацией, когда программа начинает регулярно (иногда каждые 15–20 минут) требовать подключения интернет-поддержки. Это особенно критично для рабочих мест кассиров в 1С:Розница, так как всплывающее окно может блокировать процесс пробития чека и приводить к программным сбоям. В этой статье мы подробно рассмотрим, почему это происходит и как устранить проблему различными способами — от простых настроек до изменения программного кода.
Прежде чем приступать к «лечению», разберем по шагам, почему 1С проявляет такую настойчивость. В современные типовые конфигурации интегрирована БСП (Библиотека стандартных подсистем) (справочник по методам БСП), в которой предусмотрен механизм проверки легальности обновлений и связи с порталом 1С:ИТС. Окно может появляться в двух случаях:
Рассмотрим подробнее основные методы борьбы с этим уведомлением.
Проанализируем стандартные возможности программы. В большинстве случаев достаточно изменить настройки в разделе администрирования. Пройдем по пути: Администрирование — Интернет-поддержка и сервисы.
В открывшемся окне найдем подраздел Настройки интернет-поддержки. Если поддержка не подключена, система будет предлагать это сделать. Однако нас интересует пункт Обновление версии программы. Здесь необходимо выбрать вариант «Отключена» для автоматической проверки обновлений. Это предотвратит циклические запросы системы к серверам в фоновом режиме.
Также стоит заглянуть в настройки уведомлений. В некоторых релизах можно найти флажок «Не напоминать о подключении 7 дней». Это временная мера, но она помогает локализовать проблему на время проведения сервисных работ.
Разберем ситуацию, когда отключение в настройках не помогает. Существует проверенный метод «заглушки». Программа перестает требовать авторизацию, если считает, что данные уже введены, даже если они неверны.
После этого система запомнит эти данные. При попытке фонового соединения она получит ошибку авторизации, но назойливое окно в центре экрана появляться перестанет — ошибка будет тихо отображаться в «Мониторе портала».
Если вы опытный пользователь или программист, наиболее правильным и «чистым» решением будет использование механизма расширений. Это позволит не снимать основную конфигурацию с поддержки. Нам нужно перехватить открытие общей формы ПодключениеИнтернетПоддержки.
Создадим новое расширение и добавим в него указанную форму. В модуле формы создадим обработчик события ПриСозданииНаСервере с методом «Вместо».
Посмотрим на пример кода:
&НаСервере
Процедура Расш1_ПриСозданииНаСервереВместо(Отказ, СтандартнаяОбработка)
// Полностью блокируем открытие формы запроса
Отказ = Истина;
КонецПроцедуры
Данный метод гарантирует, что форма не откроется ни при каких обстоятельствах. Это радикальный, но самый эффективный способ для баз, которые принципиально работают в офлайн-режиме.
Проанализируем ситуацию: если окно выскакивает каждые 15 минут, значит, его вызывает фоновый процесс. Чтобы выяснить причину, откроем Обслуживание — Регламентные и фоновые задания.
Найдем и отключим следующие задания:
МониторингПортала1СИТСПроверкаНаличияОбновленийКонфигурацииЗагрузкаКлассификатораБанковОбновлениеКлассификаторовОтключение этих заданий снимет нагрузку на систему и уберет триггеры, вызывающие форму авторизации.
Если расширения по какой-то причине не используются, можно внести правку непосредственно в общий модуль. Нам интересен модуль ИнтернетПоддержкаПользователейКлиент. Найдем в нем процедуру, отвечающую за начало работы системы или подключение поддержки.
Обычно это метод ПередНачаломРаботыСистемы или ПодключитьИнтернетПоддержкуПользователей. Рассмотрим вариант комментирования вызова:
// В общем модуле ИнтернетПоддержкаПользователейКлиент
// Процедура ПодключитьИнтернетПоддержкуПользователей(...)
// ...
// ОткрытьФорму("ОбщаяФорма.ПодключениеИнтернетПоддержки", , ВладелецФормы...);
// Заменяем на:
Возврат;
Также полезно проверить функцию ЗначениеНастройкиПоказыватьПриНачалеРаботы в модуле МониторПортала1СИТС. Если принудительно вернуть значение, соответствующее отказу от показа, окно исчезнет:
Функция ЗначениеНастройкиПоказыватьПриНачалеРаботы() Экспорт
Возврат 2; // Код, означающий "Не показывать"
КонецФункции
Рассмотрим дополнительные методы для системных администраторов. В некоторых случаях помогает добавление параметров в строку запуска 1С. Хотя прямого параметра «отключить ИТС» в платформе нет, использование /DisableStartupMessages может подавить часть системных уведомлений.
Еще один «хитрый» способ — блокировка серверов 1С на уровне файла hosts. Это полезно, если вы хотите гарантировать, что программа даже не попытается начать процесс проверки. Добавим в файл C:\Windows\System32\drivers\etc\hosts следующие строки:
127.0.0.1 login.1c.eu
127.0.0.1 portal.1c.ru
127.0.0.1 api.1c.ru
Когда 1С попытается обратиться к порталу, она мгновенно получит отказ от собственной операционной системы и не будет ждать таймаута, что часто предотвращает подвисание интерфейса.
Мы проанализировали различные подходы к решению проблемы навязчивого окна интернет-поддержки. Для обычного пользователя лучше всего подходит Способ 2 (фиктивный логин). Для системного администратора — Способ 4 (регламентные задания) и Способ 6 (hosts). Для разработчика идеальным вариантом станет Способ 3 (использование расширения).
Важное примечание: Помните, что отключение этих уведомлений в официально обновляемых базах может привести к тому, что вы пропустите критически важные обновления законодательства или исправления ошибок. Используйте данные методы только тогда, когда вы полностью уверены, что интернет-поддержка в данной конкретной базе не требуется.