Как запретить реализацию товара с нулевым остатком в 1С:Управление торговлей для Казахстана

Программист 1С v8.3 (Управляемые формы) 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

В процессе работы с программой «1С:Управление торговлей для Казахстана» (редакция 3.1) пользователи часто сталкиваются с ситуацией, когда система позволяет отгружать товар, которого фактически нет на складе. Это приводит к возникновению отрицательных остатков («минусов»), путанице в себестоимости и ошибкам в налоговом учете. Особенно остро этот вопрос стоит при необходимости проведения документов «задним числом» (неоперативно). В этой статье мы подробно разберем, как настроить запрет реализации «в минус» и почему стандартные механизмы ведут себя именно так.

Понимание режимов проведения: Оперативный vs Неоперативный

Прежде чем переходить к настройкам, разберем фундаментальное отличие, которое упомянуто в обсуждении. В платформе 1С:Предприятие 8 существует два режима проведения документа:

  1. Оперативное проведение: выполняется в реальном времени (текущей датой и временем). В этом режиме система по умолчанию может проверять остатки в регистрах накопления и блокировать проведение, если товара не хватает.
  2. Неоперативное проведение: выполняется при записи документа «прошлым числом». В этом режиме встроенные механизмы типовых конфигураций 1С (включая УТ 3.1) никогда не контролируют остатки. Это сделано для обеспечения высокой производительности и предотвращения блокировок при массовом перепроведении документов.

Рассмотрим ситуацию: если вы хотите оставить возможность проведения задним числом, но при этом запретить «нулевой» товар, стандартными галочками в интерфейсе обойтись не получится. Однако для оперативного режима настройки существуют, и мы их сейчас разберем.

Настройка глобального контроля остатков в УТ для Казахстана

Локализация для Казахстана от компании «1С-Рейтинг» имеет свои особенности интерфейса. В отличие от российской версии Управление торговлей 11, некоторые настройки могут находиться в других разделах. Выполним следующие шаги для включения контроля:

Перейдем в раздел НСИ и администрирование, далее выберем пункт Настройка НСИ и разделов и найдем подраздел Склад и доставка. Здесь необходимо убедиться, что включена функциональная опция Контролировать остатки товаров организаций. Эта настройка является глобальной для всей базы.

Проанализируем ситуацию далее. Даже если глобальный флаг установлен, контроль может не работать для конкретного склада. Нам нужно зайти в справочник Склады и магазины, открыть карточку нужного склада и на вкладке Основное найти флаг Контролировать свободные остатки. Если эта галочка снята, система позволит проводить реализации «в минус» по данному конкретному складу, игнорируя общие настройки.

Проверка прав доступа и профилей пользователей

Часто причиной того, что «контроль не работает», является избыточность прав у пользователя. В УТ 3.1 существует специальное право (роль), которое позволяет обходить любые запреты на списание остатков. Проверим профили групп доступа:

  1. Откроем НСИ и администрирование — Настройка пользователей и прав — Профили групп доступа.
  2. Найдем профиль, в котором работает пользователь (например, «Менеджер по продажам» или «Администратор»).
  3. Проверим наличие разрешенного действия Превышение остатков товаров или Проведение документов без контроля остатков.

Если у пользователя есть роль с таким правом, система не выдаст ошибку даже при полном отсутствии товара на полках. Рекомендуем снять это разрешение для рядовых сотрудников.

Реализация контроля при неоперативном проведении (программный метод)

Как мы выяснили ранее, при неоперативном проведении (задним числом) контроль не срабатывает «из коробки». Если бизнес-процессы требуют жесткого запрета даже при вводе старых документов, нам придется воспользоваться механизмом Расширений конфигурации. Это позволит не снимать программу с поддержки.

Выясним причину отсутствия контроля: в коде модулей проведения обычно стоит проверка условия Если РежимПроведения = РежимПроведенияДокумента.Оперативный Тогда.... Наша задача — заставить систему выполнять процедуру контроля вне зависимости от режима. Рассмотрим пример кода, который можно внедрить через расширение в модуль менеджера или модуль объекта документа РеализацияТоваровУслуг:


&Вместо("ПроверитьОстатки")
Процедура Мой_ПроверитьОстатки(ДокументСсылка, Отказ)
    // Вызываем стандартный механизм, но принудительно убираем 
    // проверку на оперативность проведения
    ПараметрыКонтроля = Новый Структура;
    ПараметрыКонтроля.Вставить("КонтролироватьОстатки", Истина);
    ПараметрыКонтроля.Вставить("ДатаКонтроля", ДокументСсылка.Дата);
    
    // Здесь вызывается типовой метод проведения по регистрам с контролем
    // Обратите внимание: это потребует серьезных знаний метаданных УТ 3.1
КонецПроцедуры

Проанализируем риски такого решения. Принудительный контроль остатков при неоперативном проведении может значительно замедлить работу системы, если документов много. Система будет вынуждена рассчитывать остатки на каждую историческую дату документа, что создает нагрузку на сервер базы данных.

Особенности схемы «Интеркампани»

В конфигурации Управление торговлей для Казахстана часто используется механизм передачи товаров между организациями (Интеркампани). Если в настройках Финансовый результат и контроллинг — Товары между организациями включена опция Разрешить продажи товаров других организаций, то реализация может быть проведена, даже если у текущей фирмы остаток нулевой. Система «считает», что товар есть у другой вашей фирмы и позже будет оформлен документ передачи. Если вы хотите запретить это, необходимо настроить Схему обеспечения или отключить возможность отрицательных остатков в рамках Интеркампани.

Резюме и рекомендации

Подведем итог наших действий для запрета реализации нулевого товара:

  1. Для оперативного режима: включите глобальный флаг в настройках Склад и доставка и проверьте галочку контроля в карточке каждого Склада.
  2. Проверьте права: убедитесь, что у пользователей нет роли Разрешить проведение без контроля остатков.
  3. Для неоперативного режима: помните, что стандартно контроль отключен. Если он жизненно необходим — используйте Расширение конфигурации для перехвата процедуры проведения и принудительного вызова механизмов проверки.
  4. Серийный учет: если вы используете серии, убедитесь, что настройки политики учета серий также включают контроль остатков, иначе система может контролировать товар в целом, но разрешать «минусы» по конкретным сериям.

Совместное использование этих методов позволит вам навести порядок в складском учете и избежать неприятных сюрпризов при закрытии месяца в 1С.

← На главную