Почему при реализации комиссионного товара в 1С:Управление торговлей 11 списывается собственный товар и как это исправить?

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

Рассмотрим распространенную ситуацию в конфигурации 1С:Управление торговлей (редакция 11.3): оформляется документ приема товара на комиссию, затем выполняется реализация этого товара. Однако при анализе движений по регистру сведений и накопления Товары на складах организаций выясняется, что система делает движение с типом запаса «Собственный товар» вместо «Комиссионный товар», хотя собственных остатков по позиции вовсе нет.

Причины возникновения проблемы

Проанализируем архитектуру подсистемы учета запасов в 1С:УТ 11. При первом проведении документа Реализация товаров и услуг система автоматически определяет источник происхождения товара (тип запаса, комитент, ГТД и др.) и кэширует эти данные в служебной табличной части документа — ВидыЗапасов.

Выясним, почему при изменении исходных данных (например, проведения поступления задним числом) обычное перепроведение документа не меняет тип запаса:

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

Способы решения проблемы

Разберем по шагам варианты исправления ситуации: программный способ и штатные механизмы системы.

Вариант 1. Программная очистка табличной части «ВидыЗапасов»

Чтобы система заново пересчитала и подставила правильные типы запасов при проведении, необходимо предварительно очистить служебную табличную часть ВидыЗапасов объекта документа.

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


// Получаем объект документа реализации
ДокументОбъект = СсылкаНаРеализацию.ПолучитьОбъект();

// Очищаем табличную часть с закэшированными видами запасов
ДокументОбъект.ВидыЗапасов.Очистить();

// Записываем и проводим документ заново
ДокументОбъект.Записать(РежимЗаписиДокумента.Проведение);

После выполнения этого кода система во время проведения выполнит автоматический подбор запасов с нуля. Так как документ поступления от комитента уже проведен, программа корректно определит наличие комиссионного товара и сформирует движения по типу запаса «Комиссионный товар».

Вариант 2. Восстановление хронологии и ручное перезаполнение

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

  1. Отмените проведение документа Реализация товаров и услуг.
  2. Убедитесь, что документ Поступление товаров от комитента проведен и его дата/время строго предшествуют времени реализации.
  3. В документе реализации нажмите меню Еще и выберите пункт Открыть виды запасов.
  4. В открывшейся форме выберите команду Указать виды запасов вручную или сбросьте ручную настройку, чтобы система пересчитала их при проведении.
  5. Измените тип запаса на «Комиссионный товар» с указанием соответствующего комитента и перепроведите документ.

Таким образом, своевременный контроль хронологии проведения и очистка закэшированной табличной части ВидыЗапасов позволяют оперативно устранить пересортицу по типам запасов в 1С:Управление торговлей 11.

← На главную