Как убрать вопрос о переходе на новый рабочий день в 1С 7.7 при круглосуточной работе?

Программист 1С v7.7 1C:Бухгалтерия IT и автоматизация бизнеса
← На главную

При организации автоматического обмена данными, роботизированной загрузки файлов или выгрузок в сторонние информационные системы часто используется выделенный сеанс 1С:Предприятия 7.7, запущенный в режиме 24/7. Однако ровно в полночь (00:00) такой сеанс может полностью заблокироваться: платформа выводит модальное окно с вопросом о подтверждении смены рабочей даты на новый календарный день. Поскольку за компьютером в этот момент никого нет, модальное окно останавливает выполнение всех циклических процедур и таймеров обработки очереди.

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

Способ 1. Настройка параметров интерфейса программы

По умолчанию в платформе 1С 7.7 включен интерактивный запрос при наступлении новых суток. Чтобы отключить появление модального диалогового окна, выполним стандартную пользовательскую настройку:

  1. Запустим сеанс 1С:Предприятия под той учетной записью пользователя, под которой работает автоматический процесс обмена.
  2. Перейдем в главное меню: Сервис → Параметры.
  3. Откроем первую вкладку — Общие.
  4. Найдем поле ввода текущей даты и расположенный рядом выпадающий список настройки перехода на следующий день (блок «При наступлении нового дня»).
  5. Выберем подходящий вариант поведения платформы из трех доступных значений:
    1. Переходить автоматически — дата в сеансе переключается на актуальные сутки в 00:00 без вывода диалогов и ожидания ответа. Этот вариант является оптимальным, если создаваемые документы должны датироваться текущим астрономическим днем.
    2. Не менять рабочую дату — модальное окно также не выводится, а рабочая дата остается зафиксированной на момент старта программы.
    3. Запрашивать подтверждение — исходное значение по умолчанию, которое и вызывает блокировку регламентного процесса.
  6. Нажмем кнопку Применить или ОК для сохранения настроек.

Способ 2. Программная фиксация режима через глобальный модуль

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

Для этого откроем конфигуратор, перейдем в Глобальный модуль и найдем предопределенную процедуру ПриНачалеРаботыСистемы. Добавим в нее следующий фрагмент кода:


Если ИмяПользователя() = "РоботОбмена" Тогда
    // Второй параметр: 2 — автоматический переход на новую дату без запроса
    РабочаяДата(, 2);
КонецЕсли;

Разберем подробнее работу системной функции РабочаяДата. Данная функция принимает два необязательных параметра: РабочаяДата([НоваяДата], [РежимСменыДаты]). Если первый параметр опущен, текущая дата сеанса остается без изменений, а второй числовой параметр задает алгоритм перехода суток:

  1. 0 — запрет автоматической смены рабочей даты (окно запроса не выводится);
  2. 1 — интерактивный запрос подтверждения у пользователя (стандартный режим);
  3. 2 — автоматический переход на новую дату в полночь без каких-либо системных сообщений.

Ограничения платформы и надежная архитектура процессов 24/7

Выясним причину, по которой непрерывная работа одного сеанса платформы 1С:Предприятие 7.7 в течение многих недель может нести скрытые риски. Движок версии 7.7 изначально не предназначался для постоянных фоновых служб (в отличие от кластера серверов 1С 8.3) и имеет ряд технологических нюансов:

  1. Утечки оперативной памяти: при непрерывной многодневной обработке сотен внешних файлов ядро 1cv7.exe накапливает фрагментацию памяти, что может со временем приводить к аварийному завершению приложения.
  2. Зависание при транзакциях в полночь: если ровно в 00:00:00 выполнялась длительная блокирующая транзакция записи документа или возникло исключение, переход даты может нарушить сквозную нумерацию или задержаться.
  3. Захват таблиц базы данных: непрерывно висящий сеанс мешает проведению ночного регламентного резервного копирования и переиндексации таблиц базы данных.

Для построения отказоустойчивой системы обмена данными рекомендуется отказаться от вечно открытого окна в пользу двух проверенных подходов:

  1. Запуск по расписанию через планировщик ОС: настроим регулярный запуск платформы через Планировщик заданий Windows (Task Scheduler) каждые 5–15 минут в пакетном режиме с ключом /@КомандныйФайл или с автоматическим запуском нужной обработки, которая после выполнения цикла сразу выполняет команду ЗавершитьРаботуСистемы().
  2. Плановый ночной перезапуск сеанса робота: если процесс обязательно должен постоянно отслеживать каталог через бесконечный таймер, настроим его принудительное закрытие в 23:55 и повторный автоматический запуск средствами Windows в 00:05. Это исключит проблему перехода через полночь и очистит память сеанса.
← На главную