Где в 1С:УТ 11 хранится настройка «Реализация товаров с нескольких складов» и как она работает?

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

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

Техническое хранение данных: Константы и Функциональные опции

Начнем с того, что названия опций в пользовательском интерфейсе (в разделе «НСИ и администрирование») далеко не всегда совпадают с именами объектов в конфигураторе. Проанализируем, где именно система хранит состояние этого флажка.

Основным объектом метаданных, отвечающим за хранение этой настройки, является константа ИспользоватьСкладыВТабличнойЧастиДокументовПродажи. Именно в неё записывается значение Истина или Ложь при установке соответствующего флажка пользователем. Однако для управления интерфейсом в 1С используется механизм функциональных опций (ФО). Рассмотрим их связь:

  1. Существует функциональная опция с точно таким же именем — ИспользоватьСкладыВТабличнойЧастиДокументовПродажи.
  2. В качестве источника данных для этой ФО указана одноименная константа.
  3. В состав этой функциональной опции включены реквизиты документов (например, колонка Склад в табличной части Товары документов «Заказ клиента» или «Реализация товаров и услуг»), а также элементы форм и даже целые объекты.

Таким образом, когда мы программно или интерактивно меняем константу, система автоматически скрывает или отображает колонки в документах продажи, опираясь на состав ФО.

Связь со справочником «Склады»

Часто возникает вопрос: как эта опция влияет на справочник Склады? Посмотрим на реквизит ВыборГруппы (тип перечисления ВыборГруппыСкладов). Логика системы здесь следующая:

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


// Пример логики проверки функциональной опции
Если ПолучитьФункциональнуюОпцию("ИспользоватьСкладыВТабличнойЧастиДокументовПродажи") Тогда
    // Разрешить использование групп в документах продажи
КонецЕсли;

Механизм формирования панели администрирования

Рассмотрим, откуда берется та самая «портянка» с настройками в разделе продаж. Форма настроек не генерируется полностью динамически, но и не является жестко зашитой. Основным инструментом здесь выступает обработка ПанельАдминистрированияУТ.

Проанализируем структуру этой обработки:

Если вы хотите найти, как конкретный флажок влияет на интерфейс, выполните в конфигураторе «Поиск ссылок на объект» для константы ИспользоватьСкладыВТабличнойЧастиДокументовПродажи. Вы увидите, в каких процедурах обработки ПанельАдминистрированияУТ она используется.

Влияние на проведение документов и бизнес-логику

Выясним, что происходит в момент проведения документа, когда эта опция включена. Традиционно склад указывается в «шапке» документа (реквизит Склад). Однако включение «Реализации с нескольких складов» меняет приоритеты:

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

Важное отличие от блока «Закупки»

Проанализируем ситуацию: иногда программисты включают опцию для продаж и ожидают, что она заработает и для поступлений товаров. Это распространенная ошибка. В УТ 11 (и ERP) эти контуры разделены. Для закупок существует отдельная константа и функциональная опция — ИспользоватьСкладыВТабличнойЧастиДокументовЗакупок.

Если вам необходимо реализовать аналогичное поведение для документов «Приобретение товаров и услуг», вам придется активировать настройку в разделе НСИ и администрирование — Закупки. Механика работы там абсолютно идентична описанной выше.

Как быстро найти связь программно?

Если вы столкнулись с задачей поиска подобной опции в будущем, воспользуйтесь следующим алгоритмом:

  1. Откройте форму документа (например, ФормаДокумента в РеализацияТоваровУслуг).
  2. Найдите интересующий вас элемент (колонку «Склад»).
  3. Посмотрите его свойство «Имя функциональной опции» в палитре свойств.
  4. Перейдите к этой ФО в дереве метаданных и посмотрите её «Источник данных». Чаще всего это и будет искомая константа.

Этот метод позволяет за считанные секунды сопоставить «человеческое» название из интерфейса с «программистским» именем объекта метаданных.

← На главную