При работе с системой электронного документооборота (СЭДО) в конфигурации 1С:Управление производственным предприятием 1.3 пользователи часто сталкиваются с неприятной ситуацией. После неудачной попытки отправки документа Сведения о застрахованных лицах ФСС (например, из-за кратковременного обрыва интернет-соединения или сбоя на стороне серверов фонда) кнопка Отправить в ФСС бесследно исчезает из формы документа. Система считает, что процесс отправки уже запущен или завершен некорректно, и блокирует повторную итерацию, чтобы избежать дублирования данных. Разберем подробно, как диагностировать эту проблему и какими методами можно вернуть документу рабочее состояние.
Прежде чем приступать к активным действиям, выясним причину такого поведения программы. В 1С:УПП 1.3, построенной на обычных формах, доступность элементов управления (кнопок, полей ввода) жестко привязана к текущему статусу документа. Статус хранится в реквизите документа или в связанном регистре сведений. Когда вы нажимаете кнопку «Отправить», программный код меняет статус на «Отправляется» или «В очереди». Если в этот момент происходит ошибка связи, транзакция прерывается, но статус остается «зависшим» в промежуточном состоянии. Поскольку этот статус не соответствует условиям «Новый» или «Ошибка передачи», кнопка Отправить скрывается обработчиками формы ПриЧтенииНаСервере или ОбновитьОтображение.
Это самый доступный и эффективный способ для пользователя с административными правами. Нам необходимо принудительно изменить статус документа на тот, который позволит системе снова отобразить кнопку отправки. Проанализируем шаги по реализации этого метода:
Все функции (или Функции для технического специалиста) в разделе Обработки.Сведения о застрахованных лицах ФСС.Ссылке или по Номеру и Дате документа.Состояние).Иногда изменение статуса в самом документе не помогает, так как 1С:УПП хранит историю обмена в специальном регистре. Проанализируем ситуацию: если документ ссылается на запись в регистре, которая находится в статусе «В обработке», кнопка будет скрыта вне зависимости от реквизитов самого документа. Рассмотрим алгоритм действий:
Все функции регистр сведений Состояния документов СЭДО ФСС.Организация и Документ указаны данные нашего проблемного объекта.Состояние. Если там указано значение, отличное от ошибочного, запись следует либо отредактировать, либо (в крайнем случае) удалить.Выясним причину, почему даже после смены статуса система может вести себя нестабильно. При инициации обмена документу присваиваются уникальные MessageID (Идентификатор сообщения) и TransactionID (Идентификатор транзакции). Если эти поля заполнены, логика СЭДО может блокировать повторную отправку, ожидая ответа по уже существующему ID.
Рассмотрим, как очистить эти поля с помощью небольшой внешней обработки или консоли запросов с возможностью редактирования. Нам нужно обнулить следующие скрытые реквизиты:
ИдентификаторСообщенияИдентификаторТранзакцииПосле их очистки документ переходит в состояние «Черновик» с точки зрения транспортного модуля СЭДО.
Если проблема носит массовый характер или обработка «Групповое изменение реквизитов» недоступна из-за ограничений прав, мы можем создать простую внешнюю обработку. Рассмотрим пример кода, который возвращает документ в исходное состояние:
// Выбираем документ по ссылке (например, через реквизит формы обработки)
ОбъектДокумента = СсылкаНаДокумент.ПолучитьОбъект();
// Устанавливаем статус, разрешающий редактирование и отправку
// В разных версиях УПП название перечисления может незначительно отличаться
ОбъектДокумента.Статус = Перечисления.СтатусыДокументовСЭДО.ОшибкаПередачи;
// Очищаем идентификаторы, если они были заполнены
ОбъектДокумента.ИдентификаторСообщения = "";
// Записываем объект без проведения дополнительных проверок
ОбъектДокумента.Записать(РежимЗаписиДокумента.Запись);
Сообщить("Статус документа успешно сброшен. Попробуйте повторить отправку.");
Посмотрим на ситуацию шире: почему возникают такие сбои? Зачастую это связано с тем, что конфигурация 1С:УПП 1.3 работает на «обычных формах», и механизмы фонового обмена в ней реализованы менее гибко, чем в современных решениях на управляемых формах (ЗУП 3.1 или ERP). Чтобы минимизировать риск блокировки кнопки Отправить, рекомендуется:
ФСС в журнале обмена. Там часто можно выполнить команду Обновить, которая принудительно синхронизирует статусы всех отправленных сообщений.Таким образом, мы разобрали основные методы восстановления работоспособности документов СЭДО. Главное правило — не бояться использовать инструменты группового изменения данных, так как в условиях жесткой привязки интерфейса к статусам, это зачастую единственный способ «оживить» заблокированный документ без его пересоздания.