При активной работе с алкогольной продукцией и рег-учетом в ЕГАИС пользователи программного продукта 1С:Розница (особенно базовых и файловых версий) периодически сталкиваются с неприятной ошибкой. При нажатии на кнопку «Выполнить обмен» программа мгновенно закрывается без каких-либо понятных сообщений об ошибках, либо выдаёт сообщение об аварийном завершении работы платформы. При этом ранее отправленные документы могут зависать в промежуточном статусе (например, со статусом «0» или «Передано в УТМ»), а поступающие от поставщиков товарно-транспортные накладные (ТТН) не загружаются в информационную базу.
В этой статье мы подробно проанализируем причины возникновения данной проблемы, разберем главный способ ее решения через настройки программы, а также рассмотрим дополнительные шаги по восстановлению нормальной работы обмена с ЕГАИС.
Рассмотрим механики, которые приводят к сбою. Ошибка чаще всего проявляется при массовых операциях: когда в Универсальном Транспортном Модуле (УТМ) скапливается большое количество входящих пакетов, квитанций и тикетов от ЕГАИС (например, после групповой отправки актов перемещения в регистр №2, подтверждения пачки ТТН или проведения инвентаризации).
Выясним главные технические причины этого сбоя:
ПоказатьОповещениеПользователю или ОбработкаОповещения). Если входящих пакетов десятки или сотни, интенсивный и частый вызов UI-событий в одном сеансе приводит к переполнению ресурсов платформы 1С:Предприятие, из-за чего процесс завершается аварийно.Очистка кэша, проверка целостности базы через chdbfl.exe или полное тестирование и исправление базы в данном случае не помогают, так как причина кроется не в повреждении данных, а в алгоритме работы программного кода при интерактивном обмене.
Самый простой и эффективный способ устранить вылеты программы — изменить режим выполнения обмена с ЕГАИС. Нам необходимо исключить вызов всплывающих уведомлений на клиенте во время обработки входящих пакетов.
Разберем по шагам, как выполнить эту настройку:
Почему это помогает даже в файловой и базовой версии?
Даже если у вас файловая база данных и отсутствует выделенный сервер 1С:Предприятия, установка данного параметра переводит процесс парсинга XML-пакетов и записанных тикетов УТМ во внешнее/фоновое исполнение. В этом режиме полностью отключается вызов интерактивных всплывающих уведомлений для каждого отдельного входящего документа. Программа тихо обрабатывает весь массив входящих данных в памяти, не загружая интерфейс, благодаря чему вылеты прекращаются, а статус документов успешно обновляется.
Проанализируем ситуацию, когда во время падения программы документы уже успели уйти в ЕГАИС, но 1С не успела принять и записать подтверждающие ответные тикеты. В результате документы остаются в статусе «0» («Передан в УТМ» или «К подтверждению»).
Для восстановления корректных статусов выполним следующие действия:
Win + R, введите services.msc и найдите службы Transport и Transport-Updater. Перезапустите их, так как заблокированное при падении 1С соединение могло «подвесить» поток в самом УТМ.http://localhost:8080. Перейдите во вкладку входящих и исходящих документов, чтобы убедиться, что УТМ работает и отвечает на запросы.Чтобы в будущем не нажимать кнопку «Выполнить обмен» вручную и избегать накопления гигантских пачек документов в очереди УТМ, настроим автоматическую загрузку данных через регламентное задание.
Пошаговый процесс настройки фонового обмена:
При такой настройке программа будет порционно и автоматически забирать ответы от УТМ в фоновом режиме, исключая ручное накопление сообщений и обеспечивая постоянную актуальность остатков и документов в базе.
Проблема вылета 1С при вызове клиентских оповещений в цикле является известной ошибкой прошлых релизов. Для кардинального решения рекомендуем выполнить обновление компонентов системного комплекса:
Применение переключения обмена на серверный режим в сочетании с настройкой фонового регламентного задания позволяет полностью избавиться от падений программы и обеспечить стабильную приемку и отправку документов ЕГАИС.