28.02.2025 Степан Радченко 9601
Как открыть форму выбора с отбором в учетной ...

Содержание:

1.     Открытие формы выбора с отбором

2.     Динамический отбор в системе компоновки данных 1С

3.     Открытие формы выбора в модальном режиме

4.     Настройка отбора на серверной стороне

 

Форма выбора в 1С — это инструмент, позволяющий пользователю выбрать данные из справочников, документов, регистров или других объектов системы. Иногда требуется открывать форму выбора с заранее установленным отбором, чтобы пользователю отображались только определенные данные. Рассмотрим, как это реализовать программно.


Основные принципы работы с формами выбора:

Форма выбора в 1С открывается с использованием метода ОткрытьФорму(), который позволяет:

  1. Указать объект, для которого нужно открыть форму выбора.
  2. Передать параметры отбора для фильтрации данных.
  3. Получить результат выбора через подписку на событие или с помощью возврата значения.

Синтаксис метода ОткрытьФорму():  

ОткрытьФорму(ИмяФормы, Параметры = Неопределено, Окно = Неопределено, РежимОткрытия = Неопределено, ПроцедураОбработки = Неопределено)

 

1.     Открытие формы выбора с отбором


Чтобы задать отбор 1С, используется объект Структура, который передается в параметрах метода ОткрытьФорму().


Пример: выбор справочника с отбором

Допустим, нужно открыть форму выбора справочника "Номенклатура", отфильтровав только товары, у которых есть признак "ЭтоУслуга = Ложь".

Процедура ОткрытьФормуВыбораНоменклатуры()

    // Создаем параметры отбора

    Параметры = Новый Структура;

    Параметры.Вставить("ЭтоУслуга", Ложь); // Указываем, что выбираем только товары

   

    // Открываем форму выбора справочника "Номенклатура"

    ОткрытьФорму("Справочник.Номенклатура.ФормаВыбора", Параметры, , , "ОбработкаВыбора");

КонецПроцедуры

 

Процедура ОбработкаВыбора(ВыбранныйЭлемент)

    Если ВыбранныйЭлемент <> Неопределено Тогда

        Сообщить("Выбранный элемент: " + ВыбранныйЭлемент);

    Иначе

        Сообщить("Выбор отменен");

    КонецЕсли;

КонецПроцедуры

В этом примере:

  • Параметр ЭтоУслуга передается в форму выбора как отбор.
  • Результат выбора обрабатывается в процедуре ОбработкаВыбора.

2.     Динамический отбор в системе компоновки данных 1С


Иногда нужно передавать отбор, сформированный на основании переменных или пользовательского ввода. Для этого можно использовать программное добавление параметров в структуру отбора.


Пример: выбор документов по периоду

Процедура ОткрытьФормуВыбораДокументов()

    НачалоПериода = '2024-01-01';

    КонецПериода = '2024-12-31';

   

    // Формируем отбор

    Параметры = Новый Структура;

    Параметры.Вставить("Дата", Новый Структура("Значение1,Значение2", НачалоПериода, КонецПериода));

   

    // Открываем форму выбора документов "ПоступлениеТоваров"  

    ОткрытьФорму("Документ.ПоступлениеТоваров.ФормаВыбора", Параметры, , , "ОбработкаВыбора");

КонецПроцедуры

В данном примере:

  • Отбор по полю Дата задается для диапазона значений (с использованием структуры).
  • Форма выбора отображает только документы в заданном периоде.

3.     Открытие формы выбора в модальном режиме


В модальном режиме результат выбора возвращается непосредственно через вызов функции ОткрытьФорму(), что упрощает обработку.


Пример: модальный выбор справочника

Функция ВыбратьНоменклатуру()

    // Формируем параметры отбора

    Параметры = Новый Структура;

    Параметры.Вставить("ЭтоУслуга", Ложь);

   

    // Открываем форму выбора в модальном режиме

    Результат = ОткрытьФорму("Справочник.Номенклатура.ФормаВыбора", Параметры, , РежимОткрытияОкна.Модальное);

    Возврат Результат;

КонецФункции

 

Процедура ПримерИспользования()

    ВыбранныйЭлемент = ВыбратьНоменклатуру();

    Если ВыбранныйЭлемент <> Неопределено Тогда

        Сообщить("Выбрана номенклатура: " + ВыбранныйЭлемент.Наименование);

    Иначе

        Сообщить("Пользователь отменил выбор");

    КонецЕсли;

КонецПроцедуры


4.     Настройка отбора на серверной стороне


Отбор можно установить не только при открытии формы, но и в самом коде формы на серверной стороне. Это полезно, если нужно сложное вычисление перед применением фильтра.


Пример: отбор в обработчике формы

Процедура ПередОткрытиемНаСервере(Отказ, СтандартнаяОбработка)

    Если Параметры.Свойство("ЭтоУслуга") Тогда

        ЭлементыФормы.Список.НастроитьОтбор("ЭтоУслуга", Параметры.ЭтоУслуга);

    КонецЕсли;

КонецПроцедуры


Форма выбора в 1С — это мощный инструмент для интерактивной работы с пользователем. Задание отбора при открытии формы позволяет существенно упростить поиск нужных данных и улучшить пользовательский опыт. Вы можете задавать фильтры как при открытии формы, так и в коде самой формы, комбинируя различные подходы для достижения нужной функциональности.

 

Специалист компании ООО "Кодерлайн"

Степан Радченко

Наши проекты

Автоматизация подсистемы учета взаиморасчетов с агентами и интернет-магазинами на базе «1С:Управление холдингом 8»
ОАО «Фрейт Линк»

Отрасль:
Логистика и грузоперевозки

Внедренное типовое решение:
1С:Управление холдингом

– Оформление заказов поставщикам;
– Управление отношениями с поставщика...

ООО «ПЛЮСПЭЙ»
ООО «ПЛЮСПЭЙ»

Отрасль:
Организацией расчетов посредством электронных средств платежа

Внедренное типовое решение:
1С:Комплексная автоматизация

- Разработка подсистемы оперативного учета транзакций...

ООО "НЦКТ"
ООО "НЦКТ"

Отрасль:
Профессиональные услуги

Внедренное типовое решение:
1С:Управление нашей фирмой 8 ПРОФ

Взаиморасчеты с покупателями
Автоматизация бизнес-процессов...

 ЗАО "Инвестгеосервис" -ДО
ЗАО «Инвестгеосервис»

Отрасль:
Нефтесервис

Внедренное типовое решение:
1С:Документооборот КОРП

- Работа с файлами;
- Делопроизводство;
- Процессы движения документов; ...

ООО "ЛИКАРД" (Лукойл)
ООО "ЛИКАРД" (Лукойл)

Отрасль:
Нефтесервис

Внедренное типовое решение:
1С:ERP Управление предприятием 2.0

Делопроизводство
• Учет и контроль исполнения поручений
Учет и хранение...

ООО «ТейблТок»
ООО «ТейблТок»

Отрасль:
Общественное питание и рестораны

Внедренное типовое решение:
1С:Управление торговлей

Оформление заказов поставщикам Оформление заказов покупателей Управление ...

Установка программного продукта БИТ.Финанс для 1С:Бухгалтерия 8
ООО «Джи Эй Си Шиппинг энд Лоджистикс»

Отрасль:
Транспорт

Внедренное типовое решение:
БИТ.Финанс

Построение единого информационного пространства финансовой службы;
Учет ...

ПЭК
ПЭК

Отрасль:
Грузоперевозки

Внедренное типовое решение:
1С:Управление производственным предприятием

- Внедрение функционала управления НСИ;
- Рефакторинг;
- Оптимизация общег...

ООО «ЛукБелОйл»
ООО «ЛукБелОйл»

Отрасль:
Нефтегазовая отрасль

Внедренное типовое решение:

- Обследовании бизнес-процессов «Документооборот», «Казначейство и Бюджети...

ЗАО «Инвестгеосервис»
ЗАО «Инвестгеосервис»

Отрасль:
Нефтесервис

Внедренное типовое решение:
1С:ERP Управление предприятием 2.0

Объемно-календарное планирование производства Автоматизация бизнес-проце...

ФГУП «Почта России»
ФГУП «Почта России»

Отрасль:
Почта, доставка

Внедренное типовое решение:
1С:Управление торговлей

- Оформление заказов поставщикам
- Оформление заказов покупателей
- Упр...

Автоматизация интеграции с информсистемами клиентов на базе «1С:Предприятие 8. WMS Логистика. Управление складом»
ОАО «Фрейт Линк»

Отрасль:
Логистика и грузоперевозки

Внедренное типовое решение:
«1С:Предприятие 8. WMS Логистика. Управление складом»

– Управление складскими запасами;
– Оформление заказов покупателей;
– ...

Наши соц. сети

Telegram-канал «Koderline 1С» Группа в Вконтакте «Кодерлайн КОРП» Rutube

Остались вопросы - обратитесь к нам!

Впишите свои Имя и Телефон, чтобы мы ответили на все интересующие Вас вопросы.
ФИО*
E-mail*
Телефон*
Сообщение