Как в 1С:УТ 10.3 настроить выбор организации через форму справочника или с определенным фильтром

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

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

Решение 1: Переключение с выпадающего списка на форму выбора

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

Шаг 1. Настройка на уровне метаданных справочника

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

Шаг 2. Настройка реквизита в конкретном документе

Часто поведение определяется настройками конкретного реквизита объекта. Найдем нужный нам документ (например, РеализацияТоваровУслуг), перейдем в список его реквизитов и выберем Организация. В палитре свойств найдем категорию «Выбор» и установим свойство Быстрый выбор в значение «Ложь».

Шаг 3. Тонкая настройка свойств элемента управления на форме

Если изменения в реквизитах не помогли (как описывал автор в сообщении 4), значит, настройки переопределены непосредственно на самой форме документа. Выясним причину, изучив свойства поля ввода:

  1. Откроем форму документа в Конфигураторе.
  2. Выделим поле ввода, связанное с организацией.
  3. В свойствах проверим параметр АвтоВыборИзСписка. Если он установлен в «Да», установим в «Нет».
  4. Проанализируем свойство КнопкаВыбора. Она должна быть включена (значение «Да»), чтобы отображались «три точки», открывающие форму.
  5. Проверим свойство Способ выбора. Попробуем изменить его с «Авто» на «Обособленно». Это заставляет платформу игнорировать попытки построить список и сразу открывать форму.

Решение 2: Настройка отбора в выпадающем списке (для Сообщения 8)

Иногда задача стоит иначе: оставить удобный выпадающий список, но исключить из него определенные записи, например, те, что помечены на удаление. В обычных формах УТ 10.3 это решается программным перехватом события.

Рассмотрим подробнее использование события ПриНачалеВыбораИзСписка. Нам необходимо вручную сформировать список значений, который увидит пользователь. Разберем пример кода, который нужно разместить в модуле формы документа:


Процедура ОрганизацияПриНачалеВыбораИзСписка(Элемент, СтандартнаяОбработка)
    
    // Отключаем стандартное формирование списка платформой
    СтандартнаяОбработка = Ложь;
    
    // Создаем запрос для получения только актуальных организаций
    Запрос = Новый Запрос;
    Запрос.Текст = 
    "ВЫБРАТЬ
    |	Организации.Ссылка КАК Ссылка,
    |	Организации.Наименование КАК Наименование
    |ИЗ
    |	Справочник.Организации КАК Организации
    |ГДЕ
    |	Организации.ПометкаУдаления = ЛОЖЬ";
    
    РезультатЗапроса = Запрос.Выполнить();
    Выборка = РезультатЗапроса.Выбрать();
    
    // Очищаем текущий список выбора элемента управления
    Элемент.СписокВыбора.Очистить();
    
    // Заполняем список актуальными данными
    Пока Выборка.Следующий() Цикл
        Элемент.СписокВыбора.Добавить(Выборка.Ссылка, Выборка.Наименование);
    КонецЦикла;
    
КонецПроцедуры

Этот метод гарантирует, что пользователь увидит только те организации, которые не помечены на удаление. Проанализируем ситуацию, если нам нужно использовать стандартную форму выбора с отбором. В этом случае мы используем событие ПриНачалеВыбора:


Процедура ОрганизацияПриНачалеВыбора(Элемент, СтандартнаяОбработка)
    
    СтандартнаяОбработка = Ложь; // Отменяем стандартное открытие
    
    ФормаВыбора = Справочники.Организации.ПолучитьФормуВыбора(, Элемент);
    
    // Устанавливаем отбор по пометке удаления
    ФормаВыбора.Отбор.ПометкаУдаления.Использование = Истина;
    ФормаВыбора.Отбор.ПометкаУдаления.Значение      = Ложь;
    
    ФормаВыбора.Открыть();
    
КонецПроцедуры

Важные нюансы и типовые механизмы УТ 10.3

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

Таким образом, мы выяснили, что управление выбором организации требует комплексного подхода: от проверки свойств реквизита и элемента управления на форме до написания обработчиков событий для тонкой настройки фильтрации данных.

← На главную