Предистория:
Работаю над запуском УПП на большом заводе по производству продуктов питания (самый большой в Европе). Особенность учёта — Партионный учёт в разрезе Серий. Хоть меня и отговаривали не запускать такой подробный учёт, но реальность такова, что законодательство обязывает предприятия пищевой промышленности фиксировать какие Серии сырья пошли на производство каких Серий готовой продукции. И столкнулся с проблемой контроля остатков. В УПП встроен механизм неоперативного проведения документов при котором контроль отрицательных остатков при проведении не выполняется. В итоге, когда проиходит неоперативное проведение документа (например, Перемещения) и на остатках нет достаточного количества сырья, то движения по регистру «Товары» выполняется всегда, а по регистру «Партии товаров» такого движения не будет. И выходит себестоимость выбытия запасов не будет правильно рассчитана. Беда в том, что 1С не предложила никакого механизма сравнения данных регистра «Товары» и «Партии товаров». Я нашёл отличную программу сравнения регистров (большое спасибо Ивану Белокаменцеву за этот отчет), но в ней есть недостаток: не учтена ордерная схема учёта. Пришлось переделать отчёт Ивана и теперь этот недостаток устранен.
Конечно дыру с контролем остатков при неоперативном проведении можно закрыть, когда учёт уже налажен, добавлением нескольких строчек кода в процедуру контроля остатков. Но на этапе тестирования, механизм неоперативного проведения очень полезен.
Что делает отчет:
Сверяет движения запасов между регистром «Товары» и «Партии товаров (БУ)». Выводятся только расхождения. Учтена особенность ордерной схемы учёта. Гибкая настройка группировок.
Проверялось на релизе:
УПП 1.3.31.1
Подробности:
Рассмотрим ордерную схему учёта в УПП:
Операция «Перемещение»
Выполнятся 3 документами: «Перемещение», «Расходный ордер на товары» и «Приходный ордер на товары».
Документ | Регистр «Товары» | Регистр «Партии товаров (БУ)» |
Перемещение | нет движений | нет движений |
Расходный ордер на товары | движение со знаком «-« | нет движений |
Приходный ордер на товары | движение со знаком «+» | движение со знаком «-» и «+» |
Движения поначалу кажется странными, но на самом деле всё логично.
Операция «Поступление»
Документ | Регистр «Товары» | Регистр «Партии товаров (БУ)» |
Поступление товаров и услуг | нет движений | движение со знаком «+» |
Приходный ордер на товары | движение со знаком «+» | нет движений |
Операция «Реализация»
Документ | Регистр «Товары» | Регистр «Партии товаров (БУ)» |
Реализация товаров и услуг | нет движений | движение со знаком «-« |
Расходный ордер на товары | движение со знаком «-« | нет движений |
Выходит, чтобы сравнить расхождения между движениями в регистрах, недостаточно увидеть расхождения по документу-регистратору. Перед выполнением сравнения, нужно собрать движения по документу-основанию и только потом проводить поиск расхождений.
Порядок встраивания:
В режиме 1С:Предприятие нужно в меню Сервис -> Дополнительные внешние отчеты и обработки -> Отчеты добавить скачанный файл.
в случаи РИБ по подразделениям или по складам как раз очень даже не логично.
Отчет полезный, но:
1. Схема компоновки данных построена таким образом, что «ордерные» взаимосвязи документов указываются явно, и указаны далеко не все;
2. Те, что указаны, не все правильные. Например, подразумевается, что одному документу поступления товаров и услуг соответствует один приходный ордер на товары. А в УПП можно в строках табличной части Товары документа «Поступление товаров и услуг» указать разные приходные ордера — чтобы, например, оприходовать разные позиции номенклатуры на разные склады.
Думаю, более правильным было бы опираться не на явное перечисление взаимосвязей документов ордерной схемы, а на реквизит «ДокументДвижения» регистра накопления «ПартииТоваровНаСкладах» — он пустой для не-ордерной операции, и содержит ссылку на документ, связанный с ордером — в противном случае.
Этот реквизит есть и в регистрах бухгалтерских и налоговых партий.
Вообще, в УПП не «единообразно» формируются движения по ордерной схеме, поэтому ни в коем случае не собираюсь закидывать камнями автора. Вполне рабочий отчет, который можно доделать при необходимости.
Реквизит «ДокументДвижения» в регистре — тоже не во всех ситуациях заполняется. Скажем, если «Возврат товаров от покупателя» — по ордеру — то документ «Приходный ордер на товары» указан в измерении «ДокументОприходования».
Выкладываю сюда вариант данного отчета, со следующими доделками:
1. Добавлено вычисление показателя «РасхожденияУУБУ» — принимает значение Истина, только если приход/расход по партиям УУ отличается от прихода/расхода по партиям БУ,
2. Добавлен учет ордерной схемы для документов:
— ВозвратТоваровОтПокупателя + ПриходныйОрдерНаТовары,
— ПоступлениеТоваровИзПереработки + ПриходныйОрдерНаТовары
Анализ ситуации, когда в табличной части документа указано несколько ордеров, пока делать не стал.