Синхронизация данных между 1С:Бухгалтерия предприятия (БП) и 1С:Управление нашей фирмой (УНФ) — это сложный механизм, работающий на базе универсального формата EnterpriseData. Одной из наиболее частых проблем последних месяцев стала ошибка выгрузки документа Платежное поручение исходящее с видом операции Перечисление налога. Мы детально разберем, почему это происходит после обновлений и как восстановить работоспособность обмена.
Проанализируем ситуацию: после обновления БП до последних релизов (начиная с 3.0.150 и выше) разработчики внесли существенные изменения в механизмы учета налогов. В частности, это затронуло перечисление ВидыОперацийСписанияДенежныхСредств. Рассмотрим подробнее основные факторы:
Уплата налога за третье лицо. Если ваш обмен использует расширение с жестко прописанной логикой сопоставления, появление нового элемента может «сбивать» работу модуля менеджера обмена.МенеджерОбменаЧерезУниверсальныйФормат часто указывает на попытку обращения к свойству или значению, которое не было найдено в структуре соответствия (ПКО).Посмотрим на ситуацию глазами разработчика. Стандартный отладчик не всегда «подхватывает» процесс обмена, так как он выполняется в фоновом задании на сервере. Разберем по шагам, как встать точкой остановки в модуле менеджера обмена:
Автоматическое подключение фоновых заданий.МенеджерОбменаЧерезУниверсальныйФормат_УНФ, необходимо найти в нем процедуру ПКО_Документ_ПлатежноеПоручение_Отправка.Важный нюанс: если обмен выполняется через файл или прямое подключение, попробуйте воспользоваться обработкой Регистрация изменений для обмена, выгрузить только один проблемный документ и прогнать его через универсальную выгрузку в формате XML для детального анализа структуры пакета.
Если в вашей системе не используются глубоко кастомизированные правила, самым эффективным решением будет обновление правил из типовой поставки. Рассмотрим, где их взять:
AppData\Roaming\1C\1cv8\tmplts\1c\Accounting...).Синхронизация данных.Внимание: Будьте осторожны! Если у вас есть расширение, которое переопределяет менеджер обмена, типовые правила могут не решит проблему, так как код в расширении имеет приоритет над типовым модулем.
Разберем пример ситуации, когда ошибка возникает из-за несоответствия видов операций. В модуле менеджера обмена за сопоставление отвечает структура ПКО (Правила конвертации объектов). Проанализируем пример кода, который может вызывать ошибку при обработке налоговых платежей:
// Пример фрагмента кода в Менеджере обмена
Процедура ПКО_Документ_ПлатежноеПоручение_Отправка(ДанныеИБ, ДанныеXDTO, КомпонентыОбмена, СтекВыгрузки)
// Если вид операции "Перечисление налога", проверяем заполнение обязательных реквизитов ЕНС
Если ДанныеИБ.ВидОперации = Перечисления.ВидыОперацийСписанияДенежныхСредств.ПеречислениеНалога Тогда
// В новых релизах БП здесь могут быть добавлены проверки КБК или налогового органа
Если Не ЗначениеЗаполнено(ДанныеИБ.Налог) Тогда
// Это может привести к ошибке, если XDTO-схема ожидает заполненный объект
ВызватьИсключение "Не заполнен налог в документе " + Строка(ДанныеИБ);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Для исправления ошибки нам нужно убедиться, что все новые значения перечисления ВидыОперацийСписанияДенежныхСредств корректно обрабатываются. Проверьте функцию, отвечающую за сопоставление типов. Если вы видите, что код падает на строке с методом Найти или при обращении к структуре по ключу, добавьте проверку на существование этого ключа:
// Безопасное получение значения из соответствия видов операций
ЗначениеВидаОперации = СтруктураСоответствия.Получить(ДанныеИБ.ВидОперации);
Если ЗначениеВидаОперации = Неопределено Тогда
// Обработка случая, когда вид операции новый и еще не описан в правилах
ЗначениеВидаОперации = "ПрочееСписание";
КонецЕсли;
Выясним причину, связанную с XDTO-пакетами. При обмене через универсальный формат данные помещаются в структуру, соответствующую определенной схеме. Если в БП документ ПлатежноеПоручение получил новые реквизиты (например, связанные с третьими лицами в налогах), а в УНФ схема XDTO старая, возникнет ошибка при попытке выгрузки.
Рекомендуется выполнить следующие действия:
EnterpriseData в настройках обмена обеих баз. Установите минимально возможную общую версию (например, 1.10), если новые возможности формата вам не требуются.ПОД_Документ_ПлатежноеПоручение_Отправка, которые отвечают за выборку данных из базы.Чтобы избежать подобных проблем в будущем, придерживайтесь следующих правил:
Вместо), старайтесь использовать Перед или После, чтобы сохранить типовую логику обработки новых видов операций.Перечисление налога теперь критически важно заполнение реквизитов на закладке Налоговый платеж. Если они пустые, выгрузка может завершиться ошибкой метаданных.Таким образом, решение проблемы чаще всего кроется либо в обновлении типовых правил из архива шаблона конфигурации, либо в актуализации расширения менеджера обмена под новые значения перечислений, появившиеся в связи с внедрением ЕНС.