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