Почему счета-фактуры выданные в 1С:Бухгалтерия 3.0 становятся непроведенными после обмена и как это исправить

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

Ситуация, когда после очередной синхронизации данных между конфигурациями «1С:Управление торговлей» (УТ) и «1С:Бухгалтерия предприятия» (БП) корректно проведенные документы Счет-фактура выданный вдруг теряют свой статус и становятся просто «записанными», является классической проблемой интеграции. В этой статье мы подробно разберем, почему это происходит, как диагностировать скрытые ошибки и какими способами можно вернуть документам рабочее состояние.

Разберем основную причину: механизм синхронизации

Проанализируем ситуацию: если в Журнале регистрации напротив массового изменения статусов документов стоит событие «Обмен», это прямо указывает на то, что инициатором изменений выступила внешняя информационная база. Однако важно понимать, что сам по себе обмен — это лишь транспорт. Проблема кроется в том, как именно БП 3.0 принимает и обрабатывает входящие данные.

Рассмотрим основные технические факторы, приводящие к снятию документов с проведения:

  1. Режим «Отложенное проведение». Это одна из самых частых причин. В настройках синхронизации данных может быть установлен флаг, который велит системе сначала просто записывать все входящие объекты. Это делается для того, чтобы избежать критических блокировок базы в момент массовой загрузки. В таком случае документы попадают в БП в состоянии «Записан», и их проведение должно выполняться либо регламентным заданием ПоискИУстановкаПометокНаУдалениеИПроведениеДокументов, либо вручную.
  2. Ошибки заполнения обязательных реквизитов. Если после обновления конфигурации БП 3.0 в объекте СчетФактураВыданный появились новые обязательные для заполнения поля, которых нет в УТ, документ загрузится в базу, но не сможет пройти процедуру проведения. Система запишет то, что пришло, но при попытке проведения «споткнется» о незаполненный реквизит (например, КодВидаОперации или данные по ГТД).
  3. Статусы документов в источнике. В УТ 11 счета-фактуры имеют внутренние статусы. Если в исходной базе документ был изменен (даже если он остался проведенным), при повторной выгрузке он может быть передан в БП в таком виде, который текущие правила конвертации интерпретируют как «только запись».

Проанализируем связь с документом-основанием

Выясним причину, связанную с логикой учета. Счет-фактура выданный — это зависимый документ. Он не может существовать в проведенном состоянии сам по себе, без привязки к документу-основанию, такому как РеализацияТоваровУслуг или АктВыполненныхРабот.

Если при обмене документ-основание не провелся (например, из-за нехватки остатков на складе в БП или из-за отсутствия счетов учета номенклатуры), то и связанный с ним счет-фактура автоматически станет непроведенным. Рассмотрим типичный сценарий:

  1. В УТ реализация и счет-фактура проведены.
  2. При обмене в БП реализация попадает в закрытый период или не проходит проверку по регистрам НДС.
  3. Реализация остается в статусе «Записан».
  4. Счет-фактура, пытаясь провестись вслед за основанием, получает отказ от системы и также остается непроведенным.

Посмотрим на специфические ошибки системы и данных

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

Дублирование нормативно-справочной информации (НСИ). Если в процессе обмена создался дубль контрагента или договора, документ РеализацияТоваровУслуг может «перескочить» на новую карточку. Если при этом Счет-фактура выданный остался привязан к старой карточке (или наоборот), возникает конфликт ссылок, и документ теряет возможность проведения.

Изменение учетной политики. Если в БП были изменены настройки НДС (например, включен раздельный учет), то старые документы, пришедшие через обмен, могут не соответствовать новым требованиям контроля движений по регистрам. При попытке записи через обмен система сбрасывает проведение, так как не может сформировать корректные движения по новым правилам.

Как найти и устранить проблему: пошаговая инструкция

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

Шаг 1. Проверка в копии базы

Сделайте копию информационной базы БП 3.0. Попробуйте вручную провести один из проблемных счетов-фактур. Если система выдаст ошибку, внимательно изучите её текст. Чаще всего там будет указано: «Поле "..." не заполнено» или «Обнаружены расхождения в суммах НДС».

Шаг 2. Анализ Журнала регистрации

Откройте ЖурналРегистрации и установите фильтр по конкретному документу, который стал непроведенным. Найдите событие, следующее сразу за «Обменом». Проанализируйте технологические сообщения. Часто 1С записывает туда причину отказа в проведении, которую не видно в обычном пользовательском интерфейсе при автоматической синхронизации.

Шаг 3. Монитор синхронизации данных

Перейдите в раздел Администрирование — Синхронизация данных — Настройки синхронизации. Откройте Состав отправляемых данных или События загрузки данных. Если там висят предупреждения, они могут содержать детальное описание того, какой именно реквизит не прошел валидацию.

Шаг 4. Проверка прав пользователя обмена

Убедитесь, что у пользователя, под которым выполняется фоновое задание обмена, достаточно прав на проведение документов в текущем периоде. Если установлена дата запрета редактирования, проверьте, не входит ли этот пользователь в список исключений. Если документ попадает в закрытый период, он может быть записан, но не проведен.

Пример кода для программного перепроведения

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


Выборка = Документы.СчетФактураВыданный.Выбрать(ДатаНачала, ДатаОкончания);
Пока Выборка.Следующий() Цикл
    Если Не Выборка.Проведен И Не Выборка.ПометкаУдаления Тогда
        ОбъектДок = Выборка.ПолучитьОбъект();
        Попытка
            ОбъектДок.Записать(РежимЗаписиДокумента.Проведение);
            Сообщить("Документ " + Выборка.Ссылка + " успешно проведен");
        Исключение
            Сообщить("Ошибка проведения документа " + Выборка.Ссылка + ": " + ОписаниеОшибки());
        КонецПопытки;
    КонецЕсли;
КонецЦикла;

Важный совет: всегда начинайте с перепроведения Документа-основания. В 1С:Бухгалтерии связь между реализацией и счетом-фактурой критична. Если вы массово перепроведете реализации, многие счета-фактуры могут «подтянуться» и провестись автоматически, если в их коде прописаны соответствующие обработчики событий.

Подведем итоги

Ситуация со снятием с проведения — это сигнал о том, что данные в УТ и БП начали расходиться на уровне логических проверок. Не стоит просто «прожимать» их кнопкой проведения. Обязательно выясните, какой именно реквизит вызывает сбой, чтобы поправить правила обмена или настройки учета и избежать повторения проблемы при следующей синхронизации.

← На главную