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