При работе в программе «1С:Управление торговлей» версии 11.4 (а также в родственных конфигурациях «1С:ERP 2.4/2.5» и «1С:Комплексная автоматизация 2.4/2.5») пользователи и разработчики часто сталкиваются со странным поведением системы при проведении документов движения товаров. Например, при оформлении перемещения между складами программа может упорно отказываться заполнять номера ГТД, выдавать сообщения о нехватке запасов на складе-получателе или игнорировать изменение партий на складе-отправителе.
В этой статье мы подробно разберем, как устроены внутренние механизмы подбора видов запасов, выясним причины «чудес» при проведении перемещений и рассмотрим практические способы решения этих проблем.
---
Для оптимизации проведения документов и ускорения работы базы данных разработчики фирмы «1С» применили механизм кэширования видов запасов. Виды запасов хранятся в скрытой одноименной табличной части документа расхода (в нашем случае — в документе Перемещение товаров).
Рассмотрим, в чем заключается главная ловушка этого механизма: если вы просто распроведете документ, а затем проведете его снова без изменения ключевых реквизитов (таких как состав товаров, количество, организация или склады), система не будет перезаполнять виды запасов заново. Она возьмет ранее сохраненные данные из скрытой табличной части. Это защищает систему от лавинообразного изменения партий по всей базе при случайном перепроведении документов задним числом, но сильно усложняет жизнь при исправлении ошибок учета.
Чтобы заставить систему принудительно обновить и перезаполнить виды запасов, мы можем использовать три основных метода:
// Пример принудительного перезаполнения видов запасов при проведении
ДокументОбъект = СсылкаНаПеремещение.ПолучитьОбъект();
ДокументОбъект.ДополнительныеСвойства.Вставить("ПерезаполнитьВидыЗапасов", Истина);
ДокументОбъект.Записать(РежимЗаписиДокумента.Проведение);
---
Иногда возникает ситуация: на складе-отправителе числится ровно одна партия товара с заполненным номером ГТД, но при проведении перемещения в движениях документа (и в видах запасов) ГТД остается пустым. Проанализируем основные причины такого поведения системы:
ТоварыОрганизаций. Если этот номер ГТД уже был ошибочно списан в более поздних документах (даже будущей датой), система заблокирует его использование в текущем документе задним числом, чтобы не допустить появления отрицательного остатка по конкретному номеру ГТД на конец месяца. Контроль остатков организаций в УТ 11 жестко привязан к границам месяцев.---
Проводя перемещение товаров, пользователь ожидает контроль остатков на складе-отправителе. Но почему система иногда выдает ошибку о нехватке товара на складе-получателе? Выясним причину этой логики:
---
Среди специалистов часто возникает спор о том, какой метод списания используется в «1С:Управление торговлей 11» — FIFO или FEFO. Проанализируем эту ситуацию и расставим точки над «i»:
В системе параллельно работают два независимых контура учета, которые решают разные задачи:
ТоварыОрганизаций и какая себестоимость зафиксируется в финансовом результате.Товары на складах). Он задействуется только тогда, когда для номенклатуры настроен учет по сериям с контролем сроков годности. В этом случае система при отгрузке будет предлагать кладовщику забрать с полок товар, у которого быстрее истекает срок годности.Таким образом, логика подбора серий на складе (по FEFO) и логика списания партий организаций для финансового учета (по FIFO) работают одновременно и дополняют друг друга. Для выравнивания данных между этими контурами учёта можно использовать инструмент для устранения расхождений между регистрами «Товары на складах» и «Товары организаций» в УТ 11.