Как убрать окно «Интернет-поддержка пользователей» при входе в 1С:Предприятие

Программист 1С v8.3 (Обычные формы) IT и автоматизация бизнеса
← На главную

При работе в конфигурациях «1С:Предприятие» пользователи часто сталкиваются с навязчивым модальным окном «Интернет-поддержка пользователей», которое требует ввести логин и пароль от Портала 1С:ИТС (users.v8.1c.ru). Особенно остро эта проблема проявляется после проведения процедуры свертки информационной базы. Начиная с релизов обработки свертки 30 и 31, система в обязательном порядке требует создания пользователя в базе данных. После создания учетной записи программа при каждом запуске начинает настойчиво предлагать подключить интернет-поддержку.

Передавать конечным пользователям логин и пароль от учетной записи Портала 1С во многих организациях нецелесообразно из соображений безопасности. Кнопка «Не напоминать 7 дней» решает проблему лишь временно. В данной статье мы подробно разберем несколько эффективных способов, как полностью убрать это окно при старте программы, начиная от простых программных манипуляций и заканчивая современными штатными возможностями платформы.

Причина возникновения проблемы

Для начала проанализируем ситуацию и выясним, почему система ведет себя подобным образом. При первом создании пользователя в ранее «бесплатной» или пустой базе конфигурация запускает механизмы контроля лицензирования и интернет-сервисов. Программа проверяет настройки подключения к серверам обновлений и классификаторов. Если параметры авторизации не заполнены, при старте сеанса срабатывают обработчики ожидания, которые вызывают модальное окно авторизации. Кроме того, система тратит время на попытки фонового соединения с серверами «1С», что приводит к заметным задержкам (зависаниям) при открытии программы.

Рассмотрим по шагам все возможные варианты решения этой проблемы.

Способ 1. Программное отключение через ХранилищеОбщихНастроек

Этот метод является самым популярным, так как он не требует снятия конфигурации с поддержки или изменения ее программного кода. Мы можем создать простую внешнюю обработку, которая запишет в системное хранилище настроек параметры, блокирующие вывод окна и фоновые запросы к серверам.

Если мы запишем в настройку "НеНапоминатьОбАвторизацииДо" дату далеко в будущем (например, 31 декабря 2029 года), программа решит, что пользователь попросил не беспокоить его до этого момента. Однако, как показывает практика, одного этого действия недостаточно: программа все равно будет тратить время на попытки фонового подключения к сайту при старте.

Чтобы полностью и безболезненно отключить окно и убрать задержку при запуске, необходимо записать три ключевых параметра в ХранилищеОбщихНастроек. Разберем пример кода для такой обработки:


// Создадим процедуру для полного отключения интернет-поддержки
Процедура ОтключитьИнтернетПоддержкуНавсегда() Экспорт
    
    // 1. Устанавливаем дату, до которой программа не будет напоминать об авторизации
    ДалекаяДата = Дата(2029, 12, 31);
    ХранилищеОбщихНастроек.Сохранить(
        "ИнтернетПоддержкаПользователей", 
        "НеНапоминатьОбАвторизацииДо", 
        ДалекаяДата
    );
    
    // 2. Отключаем попытки автоматического подключения при старте программы
    ХранилищеОбщихНастроек.Сохранить(
        "ИнтернетПоддержкаПользователей", 
        "ПовторитьПопыткуПодключенияПриСтартеПрограммы", 
        Ложь
    );
    
    // 3. Отключаем принудительный показ окна авторизации
    ХранилищеОбщихНастроек.Сохранить(
        "ИнтернетПоддержкаПользователей", 
        "ВсегдаПоказыватьПриСтартеПрограммы", 
        Ложь
    );
    
    Сообщить("Интернет-поддержка успешно отключена для текущего пользователя!");
КонецПроцедуры

Если вам по какой-то причине понадобится вернуть настройки в исходное состояние (например, при оформлении договора ИТС, когда данные авторизации нужно будет ввести официально), вы можете запустить аналогичный код, возвращающий дефолтные значения:


Процедура ВернутьНастройкиИнтернетПоддержки() Экспорт
    
    // Сбрасываем дату ограничения на прошедшее время
    ПрошедшаяДата = ТекущаяДата() - 86400; // Вчерашний день
    ХранилищеОбщихНастроек.Сохранить(
        "ИнтернетПоддержкаПользователей", 
        "НеНапоминатьОбАвторизацииДо", 
        ПрошедшаяДата
    );
    
    // Включаем обратно попытки подключения и отображение окна
    ХранилищеОбщихНастроек.Сохранить(
        "ИнтернетПоддержкаПользователей", 
        "ПовторитьПопыткуПодключенияПриСтартеПрограммы", 
        Истина
    );
    ХранилищеОбщихНастроек.Сохранить(
        "ИнтернетПоддержкаПользователей", 
        "ВсегдаПоказыватьПриСтартеПрограммы", 
        Истина
    );
    
    Сообщить("Настройки интернет-поддержки возвращены в исходное состояние.");
КонецПроцедуры

Важное примечание: Настройки в ХранилищеОбщихНастроек сохраняются в разрезе пользователей информационной базы. Чтобы отключить окно для всех сотрудников, данную обработку нужно запустить под сеансом каждого пользователя, либо модернизировать код, чтобы он выполнял запись в хранилище в цикле по всем элементам справочника пользователей (при наличии соответствующих прав администратора).

Способ 2. Удаление временного пользователя после свертки (метод «Анигиляции»)

Проанализируем механику работы обработки свертки базы. Новые релизы свертки требуют обязательного наличия хотя бы одного пользователя в информационной базе для корректного разделения прав и логирования транзакций в журнале регистрации. Однако после того, как свертка успешно завершена, база данных переходит в штатный режим работы.

Если до свертки в вашей базе не было заведено ни одного пользователя (база открывалась сразу без списка выбора), вы можете применить следующий алгоритм:

  1. Создайте временного пользователя (например, с именем «Администратор» или «Свертка») перед запуском процедуры.
  2. Выполните свертку информационной базы в полном объеме.
  3. Зайдите в базу в режиме «1С:Предприятие» под этим пользователем и убедитесь, что все операции завершены корректно.
  4. Откройте базу в режиме «Конфигуратор».
  5. Перейдите в меню Администрирование -> Пользователи.
  6. Удалите («анигилируйте») созданного пользователя.

После удаления всех пользователей база данных вернется к своему первоначальному состоянию: при запуске окно выбора пользователей появляться не будет, и, соответственно, пропадет триггер для инициализации окна интернет-поддержки.

Способ 3. Официальный штатный метод в современных релизах (БСП)

Если вы работаете в современной конфигурации, разработанной на базе БСП (Библиотеки Стандартных Подсистем), например, в «1С:Бухгалтерия 8» редакции 3.0, «1С:Управление нашей фирмой» или «1С:ERP», разработчики предусмотрели штатный механизм полного отключения онлайн-сервисов.

Для отключения выполните следующие шаги:

  1. Если вы работаете в простом интерфейсе, перейдите в раздел Настройки -> Настройки программы -> Интернет-поддержка и сервисы.
  2. Если у вас включен полный интерфейс, перейдите в раздел Администрирование -> Настройки программы -> Интернет-поддержка и сервисы.
  3. Найдите группу настроек «Доступ к Интернет-сервисам».
  4. Снимите флаг активности или полностью отключите этот пункт.

Программа перестанет отправлять фоновые запросы. Обратите внимание, что при этом загрузку курсов валют и классификаторов адресов (ФИАС/ГАР) вам придется осуществлять вручную через файлы обновлений, так как автоматический доступ к серверам «1С» будет заблокирован.

Способ 4. Использование программного интерфейса (API) БСП

В Библиотеке Стандартных Подсистем присутствует встроенный метод, предназначенный для программного отключения интернет-поддержки. Он гораздо эффективнее ручной записи в ХранилищеОбщихНастроек, поскольку выполняет комплексную очистку базы данных (удаляет кэш фоновых запросов, сбрасывает регламентные задания проверки лицензий и очищает служебные регистры сведений).

Для выполнения этого метода создайте внешнюю обработку и пропишите в модуле следующую команду:


// Программный вызов метода БСП для отключения поддержки
ПодключениеСервисовСопровождения.ОтключитьИнтернетПоддержкуПользователей();

Этот метод гарантированно отключает окно для всех пользователей информационной базы одновременно и убирает любые задержки при старте системы.

Способ 5. Использование механизма расширений конфигурации

Для программистов хорошим тоном считается решение задач без изменения типовой конфигурации, чтобы не усложнять последующий процесс обновления. Для блокировки окна интернет-поддержки можно использовать механизм расширений.

Нам потребуется перехватить открытие общей формы ПодключениеИнтернетПоддержки или изменить поведение модуля лицензирования.

Рассмотрим пример перехвата процедуры инициализации в общем модуле КлиентЛицензированияКлиент. С помощью аннотации &Вместо мы можем заблокировать выполнение стандартной процедуры проверки:


&Вместо("ПодключитьОбработчикЗапросаНастроекКлиентаЛицензирования")
Процедура Расш_ПодключитьОбработчикЗапросаНастроекКлиентаЛицензирования(ИмяГлобальногоМетода)
    // Оставляем процедуру пустой. 
    // Системный обработчик не будет зарегистрирован, и окно не появится.
КонецПроцедуры

Этот способ крайне надежен, так как он работает на уровне платформы и полностью предотвращает появление любых предупреждающих окон о необходимости авторизации ИТС.

Способ 6. Ввод заведомо некорректных данных

Существует еще один системный обходной путь, который часто используют администраторы. Если в окне авторизации ввести случайный набор символов в поля логина и пароля и нажать кнопку «Подключить», программа попытается отправить запрос, получит отказ от сервера, но при этом запишет в базу информацию о том, что попытка настройки была произведена.

Окно перестанет появляться при запуске. Однако у этого метода есть два существенных недостатка:

Резюме

Мы проанализировали различные методы борьбы с назойливым окном авторизации. Если вы работаете на старых релизах программ (например, УПП 1.3 или БП 2.0 на обычных формах), оптимальным решением будет запуск простой обработки с кодом из Способа 1. Для современных конфигураций на управляемых формах наилучшим решением будет использование штатных настроек администрирования БСП (Способ 3) или вызов метода API (Способ 4).

← На главную