При работе в конфигурациях «1С:Предприятие» пользователи часто сталкиваются с навязчивым модальным окном «Интернет-поддержка пользователей», которое требует ввести логин и пароль от Портала 1С:ИТС (users.v8.1c.ru). Особенно остро эта проблема проявляется после проведения процедуры свертки информационной базы. Начиная с релизов обработки свертки 30 и 31, система в обязательном порядке требует создания пользователя в базе данных. После создания учетной записи программа при каждом запуске начинает настойчиво предлагать подключить интернет-поддержку.
Передавать конечным пользователям логин и пароль от учетной записи Портала 1С во многих организациях нецелесообразно из соображений безопасности. Кнопка «Не напоминать 7 дней» решает проблему лишь временно. В данной статье мы подробно разберем несколько эффективных способов, как полностью убрать это окно при старте программы, начиная от простых программных манипуляций и заканчивая современными штатными возможностями платформы.
Для начала проанализируем ситуацию и выясним, почему система ведет себя подобным образом. При первом создании пользователя в ранее «бесплатной» или пустой базе конфигурация запускает механизмы контроля лицензирования и интернет-сервисов. Программа проверяет настройки подключения к серверам обновлений и классификаторов. Если параметры авторизации не заполнены, при старте сеанса срабатывают обработчики ожидания, которые вызывают модальное окно авторизации. Кроме того, система тратит время на попытки фонового соединения с серверами «1С», что приводит к заметным задержкам (зависаниям) при открытии программы.
Рассмотрим по шагам все возможные варианты решения этой проблемы.
Этот метод является самым популярным, так как он не требует снятия конфигурации с поддержки или изменения ее программного кода. Мы можем создать простую внешнюю обработку, которая запишет в системное хранилище настроек параметры, блокирующие вывод окна и фоновые запросы к серверам.
Если мы запишем в настройку "НеНапоминатьОбАвторизацииДо" дату далеко в будущем (например, 31 декабря 2029 года), программа решит, что пользователь попросил не беспокоить его до этого момента. Однако, как показывает практика, одного этого действия недостаточно: программа все равно будет тратить время на попытки фонового подключения к сайту при старте.
Чтобы полностью и безболезненно отключить окно и убрать задержку при запуске, необходимо записать три ключевых параметра в ХранилищеОбщихНастроек. Разберем пример кода для такой обработки:
// Создадим процедуру для полного отключения интернет-поддержки
Процедура ОтключитьИнтернетПоддержкуНавсегда() Экспорт
// 1. Устанавливаем дату, до которой программа не будет напоминать об авторизации
ДалекаяДата = Дата(2029, 12, 31);
ХранилищеОбщихНастроек.Сохранить(
"ИнтернетПоддержкаПользователей",
"НеНапоминатьОбАвторизацииДо",
ДалекаяДата
);
// 2. Отключаем попытки автоматического подключения при старте программы
ХранилищеОбщихНастроек.Сохранить(
"ИнтернетПоддержкаПользователей",
"ПовторитьПопыткуПодключенияПриСтартеПрограммы",
Ложь
);
// 3. Отключаем принудительный показ окна авторизации
ХранилищеОбщихНастроек.Сохранить(
"ИнтернетПоддержкаПользователей",
"ВсегдаПоказыватьПриСтартеПрограммы",
Ложь
);
Сообщить("Интернет-поддержка успешно отключена для текущего пользователя!");
КонецПроцедуры
Если вам по какой-то причине понадобится вернуть настройки в исходное состояние (например, при оформлении договора ИТС, когда данные авторизации нужно будет ввести официально), вы можете запустить аналогичный код, возвращающий дефолтные значения:
Процедура ВернутьНастройкиИнтернетПоддержки() Экспорт
// Сбрасываем дату ограничения на прошедшее время
ПрошедшаяДата = ТекущаяДата() - 86400; // Вчерашний день
ХранилищеОбщихНастроек.Сохранить(
"ИнтернетПоддержкаПользователей",
"НеНапоминатьОбАвторизацииДо",
ПрошедшаяДата
);
// Включаем обратно попытки подключения и отображение окна
ХранилищеОбщихНастроек.Сохранить(
"ИнтернетПоддержкаПользователей",
"ПовторитьПопыткуПодключенияПриСтартеПрограммы",
Истина
);
ХранилищеОбщихНастроек.Сохранить(
"ИнтернетПоддержкаПользователей",
"ВсегдаПоказыватьПриСтартеПрограммы",
Истина
);
Сообщить("Настройки интернет-поддержки возвращены в исходное состояние.");
КонецПроцедуры
Важное примечание: Настройки в ХранилищеОбщихНастроек сохраняются в разрезе пользователей информационной базы. Чтобы отключить окно для всех сотрудников, данную обработку нужно запустить под сеансом каждого пользователя, либо модернизировать код, чтобы он выполнял запись в хранилище в цикле по всем элементам справочника пользователей (при наличии соответствующих прав администратора).
Проанализируем механику работы обработки свертки базы. Новые релизы свертки требуют обязательного наличия хотя бы одного пользователя в информационной базе для корректного разделения прав и логирования транзакций в журнале регистрации. Однако после того, как свертка успешно завершена, база данных переходит в штатный режим работы.
Если до свертки в вашей базе не было заведено ни одного пользователя (база открывалась сразу без списка выбора), вы можете применить следующий алгоритм:
Администрирование -> Пользователи.После удаления всех пользователей база данных вернется к своему первоначальному состоянию: при запуске окно выбора пользователей появляться не будет, и, соответственно, пропадет триггер для инициализации окна интернет-поддержки.
Если вы работаете в современной конфигурации, разработанной на базе БСП (Библиотеки Стандартных Подсистем), например, в «1С:Бухгалтерия 8» редакции 3.0, «1С:Управление нашей фирмой» или «1С:ERP», разработчики предусмотрели штатный механизм полного отключения онлайн-сервисов.
Для отключения выполните следующие шаги:
Настройки -> Настройки программы -> Интернет-поддержка и сервисы.Администрирование -> Настройки программы -> Интернет-поддержка и сервисы.Программа перестанет отправлять фоновые запросы. Обратите внимание, что при этом загрузку курсов валют и классификаторов адресов (ФИАС/ГАР) вам придется осуществлять вручную через файлы обновлений, так как автоматический доступ к серверам «1С» будет заблокирован.
В Библиотеке Стандартных Подсистем присутствует встроенный метод, предназначенный для программного отключения интернет-поддержки. Он гораздо эффективнее ручной записи в ХранилищеОбщихНастроек, поскольку выполняет комплексную очистку базы данных (удаляет кэш фоновых запросов, сбрасывает регламентные задания проверки лицензий и очищает служебные регистры сведений).
Для выполнения этого метода создайте внешнюю обработку и пропишите в модуле следующую команду:
// Программный вызов метода БСП для отключения поддержки
ПодключениеСервисовСопровождения.ОтключитьИнтернетПоддержкуПользователей();
Этот метод гарантированно отключает окно для всех пользователей информационной базы одновременно и убирает любые задержки при старте системы.
Для программистов хорошим тоном считается решение задач без изменения типовой конфигурации, чтобы не усложнять последующий процесс обновления. Для блокировки окна интернет-поддержки можно использовать механизм расширений.
Нам потребуется перехватить открытие общей формы ПодключениеИнтернетПоддержки или изменить поведение модуля лицензирования.
Рассмотрим пример перехвата процедуры инициализации в общем модуле КлиентЛицензированияКлиент. С помощью аннотации &Вместо мы можем заблокировать выполнение стандартной процедуры проверки:
&Вместо("ПодключитьОбработчикЗапросаНастроекКлиентаЛицензирования")
Процедура Расш_ПодключитьОбработчикЗапросаНастроекКлиентаЛицензирования(ИмяГлобальногоМетода)
// Оставляем процедуру пустой.
// Системный обработчик не будет зарегистрирован, и окно не появится.
КонецПроцедуры
Этот способ крайне надежен, так как он работает на уровне платформы и полностью предотвращает появление любых предупреждающих окон о необходимости авторизации ИТС.
Существует еще один системный обходной путь, который часто используют администраторы. Если в окне авторизации ввести случайный набор символов в поля логина и пароля и нажать кнопку «Подключить», программа попытается отправить запрос, получит отказ от сервера, но при этом запишет в базу информацию о том, что попытка настройки была произведена.
Окно перестанет появляться при запуске. Однако у этого метода есть два существенных недостатка:
Мы проанализировали различные методы борьбы с назойливым окном авторизации. Если вы работаете на старых релизах программ (например, УПП 1.3 или БП 2.0 на обычных формах), оптимальным решением будет запуск простой обработки с кодом из Способа 1. Для современных конфигураций на управляемых формах наилучшим решением будет использование штатных настроек администрирования БСП (Способ 3) или вызов метода API (Способ 4).