В процессе работы с конфигурацией 1С:Управление торговлей 11.4 (и аналогичными версиями ERP) пользователи часто сталкиваются с ситуацией, когда при оформлении инвентаризации списанные товары исчезают из складских остатков, но не отображаются в специализированных отчетах по сериям. Ситуация осложняется тем, что настройки склада кажутся «заблокированными», а документы ведут себя непоследовательно. Разберем эту проблему подробно и найдем техническое решение.
Рассмотрим ситуацию: вы пытаетесь отключить ордерную схему документооборота на складе, но флаги в разделе «При отражении излишков, недостач, пересортицы и порчи» остаются активными и недоступными для редактирования. Это не является программным сбоем в чистом виде, а следствие жесткой логики системы.
Проанализируем взаимосвязь настроек. Основная причина кроется в Политике учета серий, назначенной данному складу или конкретным видам номенклатуры. Если в политике выбран тип «Учет остатков серий», система обязана точно знать, какая именно серия была списана или оприходована в момент физической операции на складе. Для этого 1С принудительно задействует механизм складских ордеров.
Чтобы изменить эти настройки, выполним следующие действия:
ВидыНоменклатуры или в настройках склада, галки ордерной схемы станут доступными для снятия через меню «Разрешить редактирование реквизитов».Теперь разберем технический нюанс, который мешает отчетности. В системе существует регистр накопления ДвиженияСерийТоваров. Почти все типовые отчеты, связанные с сериями (например, «Движения серий товаров»), используют в своих запросах жесткий фильтр по измерению ЭтоСкладскоеДвижение = Истина.
Выясним, что происходит при проведении документов:
ЭтоСкладскоеДвижение = Истина.Ложь.В результате «физическое» списание серии произошло, но отчет его игнорирует, так как считает это движение «финансовым» или неполным. Это явная ошибка в логике формирования движений конкретного документа.
Если вы столкнулись с тем, что документ ОрдерНаОтражениеНедостачТоваров не проставляет нужный флаг, необходимо внести изменения в программный код модуля менеджера. Проанализируем запрос, который подготавливает данные для регистра серий.
Выполним по шагам:
ОрдерНаОтражениеНедостачТоваров.ДвиженияСерийТоваров).ИСТИНА КАК ЭтоСкладскоеДвижение, а в документе недостач она пропущена или заменена на ЛОЖЬ.Пример исправления в тексте запроса внутри модуля:
// В запросе инициализации таблицы ДвиженияСерийТоваров
// Находим блок выбора полей
ТекстЗапроса = "
|ВЫБРАТЬ
| ...
| ЗНАЧЕНИЕ(ПланВидовХарактеристик.ТипыНоменклатуры.Товар) КАК ТипНоменклатуры,
| ИСТИНА КАК ЭтоСкладскоеДвижение, // Добавляем или исправляем эту строку
| ...
|ИЗ
| ВТ_ДанныеДокумента КАК ДанныеДокумента";
После внесения правок и сохранения конфигурации новые документы будут формировать корректные записи. Однако для исправления уже проведенных документов потребуется дополнительная обработка.
Чтобы отчеты начали показывать верные данные за прошлые периоды, нам нужно пересчитать движения в регистре ДвиженияСерийТоваров. Рассмотрим алгоритм простой обработки:
ОрдерНаОтражениеНедостачТоваров за нужный период.Пример кода для исправления набора записей:
Процедура ИсправитьДвиженияСерий(ДокументСсылка)
Набор = РегистрыНакопления.ДвиженияСерийТоваров.СоздатьНаборЗаписей();
Набор.Отбор.Регистратор.Установить(ДокументСсылка);
Набор.Прочитать();
Для Каждого Запись Из Набор Цикл
Запись.ЭтоСкладскоеДвижение = Истина;
КонецЦикла;
Если Набор.Количество() > 0 Тогда
Набор.Записать();
КонецЕсли;
КонецПроцедуры
Важно: Прямая запись в регистр — это экстренная мера. Если есть возможность, после исправления кода в конфигурации лучше просто перепровести документы штатным способом.
Часто бизнес-задача звучит так: «Показать стоимость потерянного товара, даже если месяц еще не закрыт». Использование отчета по сериям для этих целей — не самый лучший вариант, так как серии не хранят стоимость.
Проанализируем альтернативные пути решения:
Цены номенклатуры (по заданному виду цен). Если вам нужна аналитика по сериям, этот отчет придется доработать, добавив группировку по сериям из регистра ТоварыНаСкладах.Товары на складах, добавив в поля вывода связанные данные о ценах.Таким образом, мы выяснили, что корень проблемы списания недостач в УТ 11.4 лежит в плоскости сочетания строгих настроек серийного учета и досадной ошибки в коде типового решения. Исправив запрос в модуле менеджера, вы вернете корректную работу складских отчетов.