В процессе эксплуатации конфигураций 1С (например, «Управление торговлей» ред. 10.3, «Комплексная автоматизация» или «Управление производственным предприятием») пользователи часто сталкиваются с ситуацией, когда количественный учет на складах расходится с партионным учетом. Фактические остатки и количественные отчеты соответствуют регистру накопления ТоварыНаСкладах, тогда как в регистре ПартииТоваровНаСкладах наблюдаются отрицательные остатки, зависшие партии или расхождения по количествам.
Если восстановление последовательности партионного учета за предыдущие периоды невозможно или нецелесообразно (например, период закрыт для бухгалтерии), необходимо свернуть и выровнять остатки на конкретную дату срезки.
Проанализируем основные факторы, приводящие к рассинхронизации партионного и складского учета:
ТоварыНаСкладах уходит в минус по количеству, а партионный учет не может подобрать партию для списания и пропускает запись себестоимости.ТоварыНаСкладах), а финансовые партии возникают позже при проведении документа «Поступление товаров и услуг». Разрыв во времени создает временные или постоянные расхождения.Рассмотрим наименее трудоемкий вариант для больших объемов номенклатуры — написание внешней обработки, которая сопоставляет остатки двух регистров и формирует документ КорректировкаЗаписейРегистров на дату срезки.
Разберем по шагам алгоритм работы такой обработки:
ТоварыНаСкладах отсутствует измерение «ДокументОплаты» или «ДокументПоступления», при недостаче партий выбирается либо существующая остаточная партия, либо создается служебный документ-партию (например, технический документ «Оприходование товаров»).ПартииТоваровНаСкладах.Пример схемы запроса для получения разниц между регистрами:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Товары.Склад КАК Склад,
| Товары.Номенклатура КАК Номенклатура,
| Товары.КоличествоОстаток КАК КоличествоТовары,
| ЕСТЬНУЛЛ(Партии.КоличествоОстаток, 0) КАК КоличествоПартии,
| Товары.КоличествоОстаток - ЕСТЬНУЛЛ(Партии.КоличествоОстаток, 0) КАК Разница
|ИЗ
| РегистрНакопления.ТоварыНаСкладах.Остатки(&ДатаСрезки, ) КАК Товары
| ПОЛНОЕ СОЕДИНЕНИЕ РегистрНакопления.ПартииТоваровНаСкладах.Остатки(&ДатаСрезки, ) КАК Партии
| ПО Товары.Склад = Партии.Склад
| И Товары.Номенклатура = Партии.Номенклатура
|ГДЕ
| Товары.КоличествоОстаток <> ЕСТЬНУЛЛ(Партии.КоличествоОстаток, 0)";
Запрос.УстановитьПараметр("ДатаСрезки", ДатаСрезки);
Результат = Запрос.Выполнить().Выгрузить();
Если нет возможности использовать ручную корректировку регистров или необходимо обновить данные во всех сопутствующих подсистемах, применяют двухшаговый метод выравнивания через стандартные документы системы:
23:59:58 даты срезки создается документ «Списание товаров», который обнуляет все текущие партионные остатки по позициям с расхождениями.23:59:59 той же даты создается документ «Оприходование товаров». В него транслируются точные количественные остатки из регистра ТоварыНаСкладах с указанием фиксированной плановой или средней себестоимости.Преимущество метода: Типовые документы «Списание товаров» и «Оприходование товаров» автоматически формируют корректные движения не только по регистру ПартииТоваровНаСкладах, но и по смежным регистрам налогового и бухгалтерского учета.
При выравнивании партионного учета важно помнить, что корректировка только одного регистра ПартииТоваровНаСкладах приведет к рассинхронизации с другими подсистемами. Обратите внимание на следующие моменты:
НДС по партиям запасов (или НДСПартииЗапасов). Если скорректировать партии без учета НДС, возникнут ошибки при формировании книги покупок и книги продаж.ПартииТоваровНаСкладахБухгалтерскийУчет и ПартииТоваровНаСкладахНалоговыйУчет. Остатки по этим регистрам должны совпадать с остатками на счетах 10 и 41.ТоварыОрганизаций).После проведения корректирующих документов обязательно выполняйте пересчет итогов регистров накопления и проверяйте сходимость отчетов «Ведомость по товарам на складах» и «Ведомость по партиям товаров на складах».