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