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