После проведения плановых обновлений конфигураций 1С:Управление торговлей (УТ 11) и 1С:Бухгалтерия предприятия (БП 3.0) пользователи часто сталкиваются с проблемой: счета-фактуры (СФ) на аванс перестают мигрировать между базами. При этом остальные документы могут передаваться в штатном режиме. Рассмотрим подробно причины этой ситуации и разберем пошаговый алгоритм восстановления корректной синхронизации данных.
Проблема отсутствия документов в обмене чаще всего кроется в одном из трех уровней: регистрация объекта, валидация по правилам конвертации или ошибки в структуре метаданных. В последних релизах 1С произошли существенные изменения в архитектуре хранения данных по НДС, что напрямую повлияло на работу механизмов EnterpriseData.
Основные факторы, которые мы разберем:
Прежде чем вносить изменения в код или правила, нам необходимо выяснить, на каком этапе «пропадает» документ. Проанализируем ситуацию с помощью встроенных инструментов 1С.
Выполним следующие действия:
СчетФактураВыданный, значит, документ даже не попадает в пакет обмена.Разберем ситуацию, когда в журнале пусто. Это означает, что либо документ не зарегистрирован к обмену, либо он отсекается правилами выгрузки (например, из-за незаполненных обязательных полей).
Выясним, «видит» ли узел обмена наши документы. Для этого воспользуемся обработкой Регистрация изменений для обмена:
Счет-фактура выданный.Важный нюанс: В некоторых релизах УТ 11.5 счета-фактуры на аванс, созданные обработкой ФормированиеСчетовФактурНаАванс, не регистрировались автоматически. В таком случае помогает простое перепроведение документа вручную или использование упомянутой обработки для массовой регистрации.
Одной из наиболее глубоких технических причин является изменение структуры метаданных (ОСМ — Описание Структуры Метаданных). Рассмотрим подробнее ситуацию, упомянутую экспертами: переход реквизита СтавкаНДС в категорию УдалитьСтавкаНДС.
В современных версиях 1С произошел отказ от перечисления ставок НДС в пользу одноименного справочника. Если правила обмена (ПРО) в вашей базе не обновлены или используют устаревшие соответствия, система не сможет корректно сопоставить поля. Проанализируем это в контексте формата EnterpriseData:
Если вы используете доработанные правила, обязательно обновите описание структуры метаданных в конфигурации 1С:Конвертация данных и перегенерируйте правила с учетом новых имен полей.
Чтобы окончательно исключить влияние транспортного канала (com-соединение, веб-сервис), попробуем выполнить выгрузку в файл. Воспользуемся встроенной или внешней обработкой Выгрузка данных в формате EnterpriseData.
Рассмотрим порядок действий:
СчетФактураВыданный.Если при выгрузке возникнет ошибка, мы увидим подробный технический текст. Например: Поле 'СтавкаНДС' не найдено. Это будет прямым подтверждением того, что проблема в программном коде формирования XML-пакета.
Как показывает практика и опыт участников профессиональных форумов, проблема с СФ на аванс часто является признанным багом вендора. В частности, в релизах линейки 11.5.12 наблюдались ошибки в модулях синхронизации.
Рассмотрим пути решения:
EnterpriseData.Если вам необходимо программно проверить, зарегистрирован ли документ к выгрузке, вы можете использовать следующий фрагмент кода:
ВыборкаИзменений = ПланыОбмена.ВыбратьИзменения(УзелИнформационнойБазы, НомерСообщения);
Пока ВыборкаИзменений.Следующий() Цикл
Данные = ВыборкаИзменений.Получить();
Если ТипЗнч(Данные) = Тип("ДокументОбъект.СчетФактураВыданный") Тогда
Сообщить("Документ " + Данные + " ожидает отправки.");
КонецЕсли;
КонецЦикла;
Подведем итог нашему разбору. Если после обновления СФ на аванс перестали попадать в Бухгалтерию, мы рекомендуем придерживаться следующего алгоритма:
EnterpriseData.Выяснив конкретную причину — будь то баг релиза или изменение имен реквизитов — вы сможете оперативно восстановить учет и избежать расхождений в налоговой отчетности по НДС между торговой и бухгалтерской базами.