При организации автоматического обмена данными, роботизированной загрузки файлов или выгрузок в сторонние информационные системы часто используется выделенный сеанс 1С:Предприятия 7.7, запущенный в режиме 24/7. Однако ровно в полночь (00:00) такой сеанс может полностью заблокироваться: платформа выводит модальное окно с вопросом о подтверждении смены рабочей даты на новый календарный день. Поскольку за компьютером в этот момент никого нет, модальное окно останавливает выполнение всех циклических процедур и таймеров обработки очереди.
Проанализируем причины такого поведения платформы и разберем по шагам все способы решения проблемы: от стандартной пользовательской настройки до программной фиксации в глобальном модуле конфигурации.
По умолчанию в платформе 1С 7.7 включен интерактивный запрос при наступлении новых суток. Чтобы отключить появление модального диалогового окна, выполним стандартную пользовательскую настройку:
Интерфейсная настройка из меню «Сервис» хранится локально в реестре операционной системы Windows для связки конкретного пользователя Windows и конкретного пользователя базы 1С. Если робот будет запущен под новой учетной записью или произойдет сброс профиля пользователя, диалоговое окно вернется снова. Чтобы гарантировать стабильность работы робота независимо от реестра, зафиксируем поведение платформы программно в коде конфигурации.
Для этого откроем конфигуратор, перейдем в Глобальный модуль и найдем предопределенную процедуру ПриНачалеРаботыСистемы. Добавим в нее следующий фрагмент кода:
Если ИмяПользователя() = "РоботОбмена" Тогда
// Второй параметр: 2 — автоматический переход на новую дату без запроса
РабочаяДата(, 2);
КонецЕсли;
Разберем подробнее работу системной функции РабочаяДата. Данная функция принимает два необязательных параметра: РабочаяДата([НоваяДата], [РежимСменыДаты]). Если первый параметр опущен, текущая дата сеанса остается без изменений, а второй числовой параметр задает алгоритм перехода суток:
0 — запрет автоматической смены рабочей даты (окно запроса не выводится);1 — интерактивный запрос подтверждения у пользователя (стандартный режим);2 — автоматический переход на новую дату в полночь без каких-либо системных сообщений.Выясним причину, по которой непрерывная работа одного сеанса платформы 1С:Предприятие 7.7 в течение многих недель может нести скрытые риски. Движок версии 7.7 изначально не предназначался для постоянных фоновых служб (в отличие от кластера серверов 1С 8.3) и имеет ряд технологических нюансов:
1cv7.exe накапливает фрагментацию памяти, что может со временем приводить к аварийному завершению приложения.Для построения отказоустойчивой системы обмена данными рекомендуется отказаться от вечно открытого окна в пользу двух проверенных подходов:
/@КомандныйФайл или с автоматическим запуском нужной обработки, которая после выполнения цикла сразу выполняет команду ЗавершитьРаботуСистемы().