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