Почему очищается ГТД при ручной корректировке видов запасов в УТ 11 и как это исправить?

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

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

Причины сброса ручных видов запасов при проведении документа

Для понимания источника ошибки проанализируем внутреннюю архитектуру учета запасов в типовых решениях 1С:

  1. Механизм сопоставления табличных частей: Табличная часть ВидыЗапасов является служебной и расчетной. Перед проведением документа алгоритм типовой конфигурации сверяет строки табличной части Товары и скрытой табличной части ВидыЗапасов. Проверка выполняется по ключевым полям связи (ИдентификаторСтроки, СвязьПоСтрокеТабличнойЧасти), а также по реквизитам ЗаказКлиента, Цена, Сумма и количеству. Если при возврате данных из формы ручного редактирования реквизиты заказа или цен очищаются, система считает ручную разбивку некорректной, сбрасывает флаг ручной корректировки и заново рассчитывает виды запасов по алгоритму ФИФО.
  2. Остатки в регистре накопления: При проведении документа контролируются остатки в регистре ТоварыОрганизаций. Если на момент проведения по выбранной комбинации (организация, номенклатура, склад, ГТД, страна) остаток отсутствует или равен нулю, алгоритм автоподбора отбрасывает указанный номер ГТД.
  3. Ошибки в запросах формирования видов запасов: В релизах ветки 11.3 (в частности, 11.3.4.19 и соседних) в типовом коде было добавлено жесткое условие на ненулевой остаток в запросе получения данных, что приводило к сбою при сопоставлении уже выбранных вручную строк.

Способ 1. Программное исправление в модуле ЗапасыСервер

Если проблема вызвана типовой ошибкой запроса подбора видов запасов, проанализируем и скорректируем код конфигурации или переопределим функцию через расширение конфигурации.

Откроем общий модуль ЗапасыСервер и найдем функцию ЗапросДанныеЗаполненияВидовЗапасов. В тексте запроса обратим внимание на условие отбора по остаткам:


// В типовом коде релиза 11.3.4:
// ГДЕ
//     Остатки.КоличествоОстаток <> 0

// Корректировка: комментируем данное условие для корректного сопоставления
// |    И Остатки.КоличествоОстаток <> 0

После отключения данной строки запрос перестает отсекать строки с нулевыми расчетными остатками при проверке соответствия ручных видов запасов строкам документа, благодаря чему флаг ручной корректировки сохраняется и номер ГТД не очищается при проведении.

Способ 2. Контроль остатков в регистре «Товары организаций»

Разберем ситуацию, когда программная ошибка отсутствует, но номер ГТД сбрасывается из-за отсутствия фактического остатка по регистрам учета:

  1. Сформируем отчет Остатки товаров организаций с детализацией по номерам ГТД, организациям и складам на дату и время оформляемого документа реализации.
  2. Убедимся, что по требуемому номеру ГТД числится положительный свободный остаток. Обратим внимание на то, чтобы совпадала система налогообложения и организация документа.
  3. Если остатка по выбранному ГТД нет, проведем документ поступления ранее даты реализации либо оформим документ КорректировкаВидовЗапасов для переноса остатка с другого номера ГТД.

Способ 3. Использование серийного учета для фиксации ГТД

Если специфика бизнеса требует жесткого ручного контроля номеров ГТД непосредственно пользователями в строках документа, рассмотрим переход на учет по сериям:

  1. В настройках номенклатуры включим использование серий.
  2. Создадим и настроим политику учета серий с типом Учет номеров ГТД и стран происхождения.
  3. При такой настройке номер ГТД привязывается к серии номенклатуры и указывается непосредственно в табличной части Товары (или в форме выбора серий), что полностью исключает зависимость от расчетных механизмов табличной части ВидыЗапасов.

Рекомендации по обновлению

Ошибки связки табличных частей и потери реквизитов ЗаказКлиента и Цена при межконтекстном взаимодействии формы ручной корректировки были устранены в последующих обновлениях конфигурации. Рекомендуется выполнить обновление до стабильных версий веток 11.4 или 11.5, где механизм видов запасов и контроля развернутого сальдо по ГТД был существенно оптимизирован.

← На главную