При работе с электронным документооборотом (ЭДО) через модуль Диадок часто возникает ситуация, когда печатная форма универсального передаточного документа (УПД) заполняется не совсем так, как ожидает пользователь или контрагент. Одной из самых частых проблем является заполнение строки 10 («Товар передал / услуги, результаты работ, права передал»). По умолчанию система подставляет туда данные текущего пользователя или подписанта, но иногда требуется оставить эту строку пустой или изменить статус лица. Разберем детально, как это реализовать.
Для начала проанализируем, откуда берутся данные. Печатная форма УПД генерируется на стороне серверов Диадока на основе переданного из 1С XML-файла. За строку 10 отвечает блок СвЛицПер (Сведения о лице, передавшем товар). В этом блоке ключевыми тегами являются Должн (Должность) и ФИО.
Важно помнить: согласно приказу ФНС №820, если документ имеет функцию СЧФДОП или ДОП, блок передачи данных является важной частью факта хозяйственной жизни. Если мы хотим, чтобы в печатной форме было пусто, нам нужно либо не заполнять эти теги в XML, либо изменить настройки прав подписанта.
Самый правильный и «безопасный» способ — проверить настройки в самом модуле Диадок. Рассмотрим этот процесс. Часто дублирование ФИО в строку 10 происходит из-за выбранного статуса «1» (Лицо, ответственное за подписание и за оформление факта хозяйственной жизни). В этом случае система считает, что подписант и есть тот человек, который передал товар.
Чтобы изменить это поведение, выполним следующие шаги:
ОблПолн в XML).Иногда настройки в 1С игнорируются, если в веб-интерфейсе Диадока у сотрудника жестко заданы параметры. Выясним причину через личный кабинет:
Если настройки интерфейса не помогают, перейдем к программным методам. Основная логика формирования XML-файла в модулях Диадока обычно сосредоточена в обработке ГенерацияXML.epf. Нам нужно найти место, где заполняется объект XDTO, отвечающий за сведения о передаче.
Проанализируем процедуру установки значений. Для того чтобы очистить должность, мы можем попробовать передать пустую строку в соответствующее свойство объекта. Рассмотрим пример кода, который можно внедрить в процедуру заполнения данных о продавце/передающем лице:
// Находим фрагмент кода, где заполняется структура СведенияОПередаче
// Обычно это работа с типом "РаботникОрганизацииПродавца"
Если НужнаПустаяСтрока10 Тогда
УстановитьЗначениеXDTO(ОбъектXDTO, "Должность", "");
// Если нужно очистить и ФИО, обращаемся к соответствующему вложенному объекту
СведенияОПередаче = ОбъектXDTO.СведенияОПередаче;
Если СведенияОПередаче <> Неопределено Тогда
СведенияОПередаче.ФИО = Неопределено; // Или пустой объект типа ФИОТип
КонецЕсли;
КонецЕсли;
Однако будьте осторожны: прямая правка ГенерацияXML.epf не рекомендуется, так как при обновлении модуля Диадок все ваши изменения будут затерты. Рассмотрим более современный подход.
В современных «Универсальных модулях» Диадок предусмотрена возможность подключения файлов внешней логики. Это позволяет перехватывать процесс генерации документа. Рассмотрим, как это сделать:
ПередЗаписьюВXML или ПослеФормированияСтруктурыXDTO.Пример обращения к структуре в событии:
Процедура ПослеФормированияXDTOУПД(ДанныеУПД, ОбъектXDTO) Экспорт
// Обращаемся к блоку СвЛицПер (Сведения о лице, передавшем товар)
// В формате 820 приказа это может находиться в разных узлах в зависимости от функции
Попытка
ОбъектXDTO.Документ.ТаблСчФакт.СведенияОПередаче.Должность = "";
Исключение
// Обработка случая, если структура отличается
КонецПопытки;
КонецПроцедуры
Перед тем как приступать к программированию, проанализируем саму информационную базу. Модуль Диадок часто берет данные для строки 10 из реквизитов документа Реализация товаров и услуг.
При попытке очистить строку 10 программным способом можно столкнуться с ошибкой валидации XML. Формат ФНС требует, чтобы определенные поля были заполнены, если присутствует сам блок. Если вы очищаете Должность, убедитесь, что это допустимо для выбранного вами статуса подписанта. В некоторых случаях правильнее не передавать весь блок СвЛицПер, тогда система может использовать данные из сертификата подписи, что визуально изменит печатную форму. Для контроля корректности структуры можно использовать обработку для валидации XML-файлов по XSD-схеме.
Подведем итог: для решения задачи сначала проверьте настройки полномочий в модуле и данные во вкладке «Дополнительно» документа 1С. Если это не помогает, используйте механизм внешней логики для очистки соответствующих свойств объекта XDTO, стараясь не изменять типовые обработки модуля напрямую.