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

Содержание:

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С:Зарплата и управление персоналом 8 КОРП» в компании «ПБК»
ООО «Партнер Бухгалтер Консультант»

Отрасль:
Бухгалтерские услуги

Внедренное типовое решение:
1С:Зарплата и управление персоналом

- Интеграция продукта с базой данных оперативного учета Axapta;
- Доработка фу...

ПЭК
ПЭК

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

Внедренное типовое решение:
1С:Зарплата и управление персоналом

- Перевод зарплатных баз с версии ЗУП 2.5 на версию ЗУП 3.1.
- Сопровождение в п...

ПАО «АрселорМиттал Кривой Рог»
ПАО «АрселорМиттал Кривой Рог»

Отрасль:
Металлургическая промышленность

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

- Кадровый учет
- Расчет зарплаты
- Регламентированная отчетность
- Уч...

Автоматизация торгового учета на базе "1С:Управление торговлей"
ООО «ТЕЛЕВЕС РУСС»

Отрасль:
Торговля

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

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

Разработка функциональных требований к информсистеме на базе «1С:Управление холдингом 8»
ФГУП «СВЯЗЬ-безопасность»

Отрасль:
Охранные услуги

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

- Зафиксировали процессы по блокам бухгалтерского, налогового учета, казнач...

ООО "СЖД"
ООО "СЖД"

Отрасль:
Торговля, склад, логистика, транспорт

Внедренное типовое решение:
1С:Бухгалтерия 8 ПРОФ

Расчет зарплаты
Подбор кадров
Кадровый учет
Анализ кадрового состава...

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

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

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

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

ООО "ОМЗ"
ООО "ОМЗ"

Отрасль:
Металлургическая промышленность, металлообработка

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

Автоматизация бизнес-процессов...

ООО «ПКП КАБЭЛЕКТРОСНАБ»
ООО «ПКП КАБЭЛЕКТРОСНАБ»

Отрасль:
Производство кабельной продукции

Внедренное типовое решение:
1С:Управление небольшой фирмой 1.6

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

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

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

Внедренное типовое решение:
1С:ТОИР Управление ремонтами и обслуживанием оборудования

Мониторинг и анализ ключевых показателей деятельности предприятия Управле...

Автоматизация документооборота в компании ООО "Ликард"
ООО «Ликард» (ОАО ЛУКОЙЛ)

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

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

- Отказ от бумажного документооборота, от громоздких систем на базе офисного...

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

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

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

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