Почему после обновления 1С:Бухгалтерии перестали выгружаться платежные поручения по налогам в УНФ и как это исправить

Программист 1С v8.3 (Управляемые формы) 1C:Бухгалтерия Налоговый учет IT и автоматизация бизнеса
← На главную

Синхронизация данных между 1С:Бухгалтерия предприятия (БП) и 1С:Управление нашей фирмой (УНФ) — это сложный механизм, работающий на базе универсального формата EnterpriseData. Одной из наиболее частых проблем последних месяцев стала ошибка выгрузки документа Платежное поручение исходящее с видом операции Перечисление налога. Мы детально разберем, почему это происходит после обновлений и как восстановить работоспособность обмена.

Выясняем причину: влияние Единого налогового счета (ЕНС)

Проанализируем ситуацию: после обновления БП до последних релизов (начиная с 3.0.150 и выше) разработчики внесли существенные изменения в механизмы учета налогов. В частности, это затронуло перечисление ВидыОперацийСписанияДенежныхСредств. Рассмотрим подробнее основные факторы:

  1. Новые значения в перечислении: Был добавлен вид операции Уплата налога за третье лицо. Если ваш обмен использует расширение с жестко прописанной логикой сопоставления, появление нового элемента может «сбивать» работу модуля менеджера обмена.
  2. Сдвиг строк в модуле: Ошибка в районе строки 4475 модуля МенеджерОбменаЧерезУниверсальныйФормат часто указывает на попытку обращения к свойству или значению, которое не было найдено в структуре соответствия (ПКО).
  3. Версии формата EnterpriseData: Обновленная Бухгалтерия может пытаться использовать версию формата (например, 1.15), которую еще «не понимает» текущий релиз УНФ или ваше расширение.

Шаг 1. Настройка отладки для поиска места ошибки

Посмотрим на ситуацию глазами разработчика. Стандартный отладчик не всегда «подхватывает» процесс обмена, так как он выполняется в фоновом задании на сервере. Разберем по шагам, как встать точкой остановки в модуле менеджера обмена:

  1. Откроем конфигуратор и перейдем в меню Отладка — Настройка интеграции.
  2. Включим флаг Автоматическое подключение фоновых заданий.
  3. Если используется расширение МенеджерОбменаЧерезУниверсальныйФормат_УНФ, необходимо найти в нем процедуру ПКО_Документ_ПлатежноеПоручение_Отправка.
  4. Установим точку остановки внутри этой процедуры.
  5. Запустим синхронизацию из режима 1С:Предприятие.

Важный нюанс: если обмен выполняется через файл или прямое подключение, попробуйте воспользоваться обработкой Регистрация изменений для обмена, выгрузить только один проблемный документ и прогнать его через универсальную выгрузку в формате XML для детального анализа структуры пакета.

Шаг 2. Обновление правил обмена из шаблона конфигурации

Если в вашей системе не используются глубоко кастомизированные правила, самым эффективным решением будет обновление правил из типовой поставки. Рассмотрим, где их взять:

  1. Найдем на диске каталог установки обновления 1С:Бухгалтерии (обычно это AppData\Roaming\1C\1cv8\tmplts\1c\Accounting...).
  2. В папке релиза найдем подпапку Синхронизация данных.
  3. Там будет лежать архив с правилами для УНФ.
  4. В самой УНФ перейдем в Настройки синхронизации данных — Параметры синхронизации — Загрузить правила.

Внимание: Будьте осторожны! Если у вас есть расширение, которое переопределяет менеджер обмена, типовые правила могут не решит проблему, так как код в расширении имеет приоритет над типовым модулем.

Шаг 3. Анализ и исправление кода в расширении

Разберем пример ситуации, когда ошибка возникает из-за несоответствия видов операций. В модуле менеджера обмена за сопоставление отвечает структура ПКО (Правила конвертации объектов). Проанализируем пример кода, который может вызывать ошибку при обработке налоговых платежей:


// Пример фрагмента кода в Менеджере обмена
Процедура ПКО_Документ_ПлатежноеПоручение_Отправка(ДанныеИБ, ДанныеXDTO, КомпонентыОбмена, СтекВыгрузки)
    
    // Если вид операции "Перечисление налога", проверяем заполнение обязательных реквизитов ЕНС
    Если ДанныеИБ.ВидОперации = Перечисления.ВидыОперацийСписанияДенежныхСредств.ПеречислениеНалога Тогда
        // В новых релизах БП здесь могут быть добавлены проверки КБК или налогового органа
        Если Не ЗначениеЗаполнено(ДанныеИБ.Налог) Тогда
            // Это может привести к ошибке, если XDTO-схема ожидает заполненный объект
            ВызватьИсключение "Не заполнен налог в документе " + Строка(ДанныеИБ);
        КонецЕсли;
    КонецЕсли;

КонецПроцедуры

Для исправления ошибки нам нужно убедиться, что все новые значения перечисления ВидыОперацийСписанияДенежныхСредств корректно обрабатываются. Проверьте функцию, отвечающую за сопоставление типов. Если вы видите, что код падает на строке с методом Найти или при обращении к структуре по ключу, добавьте проверку на существование этого ключа:


// Безопасное получение значения из соответствия видов операций
ЗначениеВидаОперации = СтруктураСоответствия.Получить(ДанныеИБ.ВидОперации);
Если ЗначениеВидаОперации = Неопределено Тогда
    // Обработка случая, когда вид операции новый и еще не описан в правилах
    ЗначениеВидаОперации = "ПрочееСписание"; 
КонецЕсли;

Шаг 4. Работа с XDTO и EnterpriseData

Выясним причину, связанную с XDTO-пакетами. При обмене через универсальный формат данные помещаются в структуру, соответствующую определенной схеме. Если в БП документ ПлатежноеПоручение получил новые реквизиты (например, связанные с третьими лицами в налогах), а в УНФ схема XDTO старая, возникнет ошибка при попытке выгрузки.

Рекомендуется выполнить следующие действия:

  1. Проверить версию формата EnterpriseData в настройках обмена обеих баз. Установите минимально возможную общую версию (например, 1.10), если новые возможности формата вам не требуются.
  2. Убедиться, что в расширении не перекрыты функции ПОД_Документ_ПлатежноеПоручение_Отправка, которые отвечают за выборку данных из базы.

Рекомендации для стабильной работы

Чтобы избежать подобных проблем в будущем, придерживайтесь следующих правил:

Таким образом, решение проблемы чаще всего кроется либо в обновлении типовых правил из архива шаблона конфигурации, либо в актуализации расширения менеджера обмена под новые значения перечислений, появившиеся в связи с внедрением ЕНС.

← На главную