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