Как исправить ошибку «Поле \"НДС в стоимости товаров\" не заполнено» при перемещении в 1С

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

При работе в классических конфигурациях на платформе 1С:Предприятие 8 (таких как «1С:Управление производственным предприятием 1.3», «1С:Комплексная автоматизация 1.1» или «1С:Управление торговлей 10.3») пользователи и разработчики часто сталкиваются со следующей проблемой. При попытке провести документ Перемещение товаров с установленным флагом Отражать в бухгалтерском учете система выдает ошибку проведения: «Поле "НДС в стоимости товаров" не заполнено». Ситуация осложняется тем, что визуально на форме документа этого поля нет, и пользователь физически не может его заполнить.

В этой статье мы подробно разберем, почему возникает эта ошибка, как она связана с настройками учетной политики организации, и какими способами можно ее решить — как программно (для разработчиков), так и интерактивно (для рядовых пользователей и администраторов баз данных). Также мы коснемся смежной ошибки, упомянутой на форуме: блокировки проведения перемещения по причине связи товара с заказом покупателя.

Выясняем причину: почему возникает ошибка проведения?

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


Если ОтражатьВБухгалтерскомУчете Тогда
    ПроверяемыеРеквизиты.Добавить("НДСвСтоимостиТоваров");
КонецЕсли;

Если этот реквизит имеет пустое значение (равен Неопределено или пустой ссылке перечисления), транзакция проведения прерывается и система выдает ошибку.

При создании документа вручную непосредственно в пользовательском интерфейсе программа автоматически инициализирует данный реквизит значением по умолчанию — Не изменять (из перечисления ДействиеНДСВСтоимостиТоваров). Но если документ создается программным путем (например, при переносе данных из других баз, загрузке из внешних файлов Excel/XML, обмене через планы обмена или использовании сторонних обработок заполнения табличных частей), этот скрытый реквизит часто остается незаполненным. В результате документ сохраняется в базе данных, но отказывается проводиться.

Почему вкладка «НДС» скрыта на форме документа?

Многие пользователи задаются вопросом: «Где поставить галочку, чтобы эта вкладка появилась, ведь сейчас ее нет на форме?». Отображение вкладки «НДС» и доступность самого реквизита НДС в стоимости товаров регулируется настройками учетной политики вашей организации.

Вкладка становится видимой на форме только в том случае, если в системе включен сложный (раздельный) учет НДС. Это происходит, если в регистре сведений Учетная политика (налоговый учет) на вкладке НДС установлен флаг «Организация осуществляет реализацию без НДС или с НДС 0%».

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

---

Решение №1. Программное исправление (для разработчиков)

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

Рассмотрим пример кода правильного программного заполнения документа:


НовыйДокумент = Документы.ПеремещениеТоваров.СоздатьДокумент();
НовыйДокумент.Дата = ТекущаяДата();
НовыйДокумент.Организация = Справочники.Организации.НайтиПоКоду("000000001");

// Заполнение складов
НовыйДокумент.СкладОтправитель = Справочники.Склады.НайтиПоНаименованию("Основной склад");
НовыйДокумент.СкладПолучатель  = Справочники.Склады.НайтиПоНаименованию("Транзитный склад");

// Флаги учета
НовыйДокумент.ОтражатьВБухгалтерскомУчете = Истина;
НовыйДокумент.ОтражатьВНалоговомУчете     = Истина;

// Установка значения по умолчанию для корректного проведения НДС
НовыйДокумент.НДСвСтоимостиТоваров = Перечисления.ДействиеНДСВСтоимостиТоваров.НеИзменять;

// Заполнение табличной части "Товары" (пример)
НоваяСтрока = НовыйДокумент.Товары.Добавить();
НоваяСтрока.Номенклатура = Справочники.Номенклатура.НайтиПоКоду("00-000001");
НоваяСтрока.Количество   = 10;

// Запись и проведение документа
Попытка
    НовыйДокумент.Записать(РежимЗаписиДокумента.Проведение);
    Сообщить("Документ успешно проведен!");
Исключение
    Сообщить("Ошибка проведения: " + ОписаниеОшибки());
КонецПопытки;

Если аналогичная ошибка возникает в документе Требование-накладная, то исправлять код нужно аналогичным образом, но заполнять следует другой реквизит:


// Для Требования-накладной используется другое перечисление и реквизит
НовыйДокумент.НДСвСтоимостиМатериалов = Перечисления.ДействиеНДСВСтоимостиМатериалов.НеИзменять;

---

Решение №2. Групповое исправление документов (для пользователей)

Что делать, если документов с такой ошибкой накопилось много (например, после выполнения некорректного обмена или переноса остатков из другой конфигурации), а перепроводить их вручную долго? В этом случае мы можем применить стандартный инструмент платформы — обработку группового изменения реквизитов.

Проанализируем по шагам процесс исправления документов в обычном интерфейсе:

  1. Откройте меню Сервис -> Универсальные отчеты и обработки -> Групповая обработка справочников и документов.
  2. На вкладке «Объекты отбора» выберите тип объекта: Документы и добавьте в список Перемещение товаров.
  3. В поле «Отбор» задайте необходимые критерии фильтрации (например, отберите документы за конкретный период, по определенной организации или только те, которые не проведены). Нажмите кнопку «Отобрать».
  4. Перейдите на вкладку «Обработка». В списке документов будут показаны все найденные объекты.
  5. В поле «Действие» выберите значение Изменить реквизит [...]. В появившемся окне выбора реквизитов найдите строчку НДС в стоимости товаров.
  6. Установите для этого реквизита значение Не изменять.
  7. Нажмите кнопку «Выполнить». Обработка запишет изменения во все выбранные документы.
  8. После этого запустите групповое проведение этих документов. Ошибка больше не появится.

---

Решение №3. Временный интерфейсный обход

Если вам нужно оперативно провести один или два документа вручную прямо сейчас, а доступа к программному коду или групповым обработкам у вас нет, воспользуйтесь следующим приемом:

  1. Перейдите в настройки параметров учета или в регистр сведений Учетная политика (налоговый учет) вашей организации.
  2. Временно установите галочку «Организация осуществляет реализацию без НДС или с НДС 0%» и примените настройки.
  3. Вернитесь в ваш проблемный документ Перемещение товаров и откройте его заново.
  4. На форме документа отобразится скрытая ранее вкладка «НДС».
  5. Перейдите на эту вкладку и вручную выберите значение «Не изменять» в поле «НДС в стоимости товаров».
  6. Проведите документ.
  7. Вернитесь в настройки учетной политики организации и снимите ранее установленный временный флаг, чтобы не нарушать стандартную логику налогового учета вашей компании.

---

Часть 2. Разбор ошибки «Товар связан с заказом покупателя» при перемещении

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

Эта ошибка связана с механизмами жесткого резервирования запасов на складах компании. Когда менеджер оформляет документ Заказ покупателя, система резервирует номенклатуру на конкретном складе (например, на Складе А). Если вы пытаетесь переместить этот товар на Склад Б, система блокирует транзакцию, защищая зарезервированные позиции от случайного списания или продажи другому клиенту.

Как обнаружить скрытый резерв?

Если визуально в заказах товара нет, резерв может оставаться активным по следующим причинам:

Чтобы найти скрытую связь, сформируйте отчет «Анализ доступности товаров» или постройте универсальный отчет по регистру накопления Товары в резерве на складах с детализацией до регистратора. Так вы точно узнаете, за каким именно документом числится проблемная позиция.

Как правильно провести перемещение зарезервированного товара?

Для успешного проведения перемещения вы можете выбрать один из двух вариантов действий:

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