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