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

Содержание:

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
ООО «Джи Эй Си Шиппинг энд Лоджистикс»

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

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

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

Автоматизации учета затрат и расчета себестоимости с использованием конфигурации «Koderline: Управление проектами строительства скважин»
ООО «Буровая сервисная компания «ГРАНД»

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

Внедренное типовое решение:
«Koderline: Управление проектами строительства скважин»

Учет и планирование:
- собственную разработку компании «Кодерлайн» – конф...

Внедрение 1С:Управление торговлей в оптово-розничной компании «Много Плитки»
ООО «Много Плитки»

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

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

Закупки (снабжение) и управление отношениями с поставщиками:
- Оформление ...

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

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

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

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

ООО «Вистеон Автоприбор Электроникс»
ООО «Вистеон Автоприбор Электроникс»

Отрасль:

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

- Управленческий учет; - Расчет зарплаты; - Логистика адресного склада; - Учет ...

АО «Вертолетная сервисная компания»
АО «Вертолетная сервисная компания»

Отрасль:
МТО эксплуатации вертолетной техники

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

- Консультации по сложным вопросам налогового и бухгалтерского учета;
- Ра...

ФГОУ ВПО «Горский государственный аграрный университет»
ФГОУ ВПО «Горский государственный аграрный университет»

Отрасль:
Образование

Внедренное типовое решение:
1С:Колледж ПРОФ

- Управление персоналом и кадровый учет (HRM):
Кадровый учет
Управление об...

Автоматизация учета на базе ПП "1С:Комплексная автоматизация 8" в ЗАО "Крюгер-Гранд"
ЗАО «Крюгер-Гранд»

Отрасль:
Производство

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

- Создание интерфейсов и наборов прав пользователей;
- Отражению временных ...

ООО «Экслтрейд»
ООО «Экслтрейд»

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

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

Оформление заказов поставщикам Оптовая торговля Торговые операции ...

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

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

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

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

ООО «Аэроэкспресс»
ООО «Аэроэкспресс»

Отрасль:

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

· Планирование закупок · Управление закупочными процедурами, включая 223 ФЗ ...

Апгрейд 1С:Бухгалтерия 8 ПРОФ (USB) до версии 1С:Бухгалтерия 8 КОРП (USB)
ООО «Ява Строй»

Отрасль:
Строительство

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

- Создание чистых конфигураций. Внесение изменений в БД ЗУП и новая расчетна...

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

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

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

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