В практике работы с современными конфигурациями на платформе 1С:Предприятие 8.3 (такими как УТ 11, ERP 2 или Комплексная автоматизация) технические специалисты часто сталкиваются с ситуацией «зависших» остатков. Суть проблемы заключается в следующем: в отчетах товар отображается в наличии, однако при попытке его списать, реализовать или переместить система выдает ошибку, сообщая об отсутствии необходимого количества на складе. Рассмотрим подробно, почему так происходит и какими методами можно восстановить корректный учет.
Прежде всего, нам необходимо понять, что в современных системах 1С остатки не хранятся в одной таблице. Учет параллельно ведется в нескольких регистрах накопления, и каждый из них отвечает за свой разрез данных. Проанализируем основные из них:
Большинство ошибок списания возникает именно из-за рассинхронизации между этими регистрами. Проанализируем ситуацию: в регистре ТоварыНаСкладах у вас может числиться 1 единица, а в регистре ТоварыОрганизаций по данному юрлицу — 0. В этом случае документ списания не проведется, так как система проверяет «юридическую» возможность отгрузки.
Разберем, как быстро найти место «разрыва» данных. Для этого нам потребуется сформировать два ключевых отчета и сравнить их показатели. Чтобы упростить эту задачу, можно использовать специальный отчет для сравнения товаров на складах и товаров организаций, который наглядно показывает расхождения:
Если в первом отчете остаток есть, а во втором — пусто или стоит минус, значит, проблема в механизме Intercompany (передачи между организациями) или в том, что товар был оприходован на одну организацию, а списать его пытаются от имени другой. Проанализируем также настройки склада: если склад является ордерным, проверьте, все ли расходные ордера проведены в статусе Закрыт. Незавершенные ордера блокируют товар в регистре ТоварыКОтгрузке.
Часто проблема кроется в регистре СвободныеОстатки. Рассмотрим ситуацию, когда товар числится на складе, но программа считает его «занятым». Это может быть следствием:
Чтобы убедиться в этом, воспользуемся консолью запросов или функцией «Все функции» (Функции для технического специалиста). Перейдем в РегистрНакопления.СвободныеОстатки и установим отбор по нашему «проблемному» товару (Номенклатуре). Если мы видим там запись о приходе, которая не подтверждена другими регистрами, мы нашли причину сбоя.
Иногда записи в базе данных верны, но таблицы итогов (которые 1С использует для быстрого получения текущих остатков) содержат неактуальную информацию. Выясним, поможет ли нам простое обслуживание базы. Выполним следующие действия:
Важно: Перед выполнением данной операции обязательно создайте резервную копию информационной базы. Для крупных баз данных эта процедура может занять длительное время и должна выполняться в период отсутствия пользователей.
Если пересчет итогов и перепроведение документов не дали результата, воспользуемся «тяжелой артиллерией» — документом Корректировка регистров. Разберем по шагам, как это сделать правильно:
Свободные остатки или Товары организаций).Если расхождений много, эффективнее применить средства автоматизации. Например, автоматическое выравнивание остатков позволяет в один клик создать документы оприходования и списания по данным регистра товаров организаций. В случае обнаружения отрицательных значений поможет автоматическое устранение отрицательных остатков, которое массово создает документы «Оприходование излишков товаров».
Рассмотрим пример заполнения движения для регистра Товары на складах:
// Пример логики заполнения корректировки
РегистрНакопления.ТоварыНаСкладах.СоздатьНаборЗаписей();
Движение = НаборЗаписей.ДобавитьРасход();
Движение.Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию("Товар");
Движение.Склад = Справочники.Склады.НайтиПоНаименованию("Основной склад");
Движение.ВНаличии = 1;
Проанализируем еще одну неочевидную причину. Иногда в базе создаются дублирующие элементы характеристик или серий. В отчете вы видите одну строку «Товар 1 шт.», но фактически остаток висит на одном GUID, а списание идет по другому. В таких случаях, помимо поиска дублей, бывает полезно выполнить исправление ключей аналитики учета номенклатуры в уже проведенных документах без их перезаполнения.
Посмотрим на ситуацию с точки зрения долгосрочной стабильности. Чтобы подобные «баги» не повторялись, рекомендуется:
Таким образом, мы выяснили, что решение проблемы всегда кроется в детальном сравнении регистров. Комбинация использования отчетов, пересчета итогов и специализированных инструментов для автоматического исправления данных позволяет устранить любые несоответствия в остатках программ 1С.