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