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