1с как программно открыть форму списка с отбором

1С 8.3 : Как открыть форму списка документов с отбором?

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

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

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

Параметр Отбор представляет собой структуру. Имена элементов соответствуют именам полей, по которым производится отбор, а значения содержат значения отбора. Это параметр расширения управляемой формы динамического списка. То есть он существует у форм, основным реквизитом которых является реквизит типа ДинамическийСписок, например у форм списка и форм выбора.

Например, в следующем примере открывается список приходных накладных с отбором по полю Номер, равному 333.

Второй способ

Можно открыть форму списка без параметров:

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

Преимущества данного метода в том, что ВидСравнения у отбора можно задавать не только Равно, как в первом случае, а и Больше, Меньше и т.п.

Третий способ

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

Например, нам нужно открыть список приходных накладных, в которых присутствует номенклатура, выделенная в списке номенклатуры.

Для этого в форме списка номенклатуры создадим команду и соответствующую ей кнопку Приходные накладные.

bebbe051ee858cb15b0d16fc3a50521b

Обработчик выполнения этой команды заполним следующим образом:

В этом обработчике мы открываем форму списка приходных накладных, передавая в параметр формы ФильтрПоТовару ссылку на текущий элемент в списке номенклатуры.

Затем создадим форму списка документов ПриходнаяНакладная и создадим параметр формы ФильтрПоТовару, который мы будем использовать для открытия формы с нужным отбором.

Теперь откроем палитру свойств основного реквизита формы Список. Установим флаг ПроизвольныйЗапрос и в строке Настройка списка нажмём Открыть.

8bd2a42be05230af723cc0bdebdeef98

В поле Запрос введём следующий текст запроса:

В запросе мы используем параметр Товар, в который и будет передаваться ссылка на текущую строку в списке номенклатуры, содержащуюся в параметре формы списка приходных накладных ФильтрПоТовару.

Для этого в обработчике события формы списка ПриСозданииНаСервере напишем код для установки значения параметра запроса Товар:

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

Источник

Как открыть форму списка с некоторым отбором?

Есть несколько способов для того, чтобы открыть форму списка с некоторым, заранее установленным отбором. Рассмотрим их по-порядку:

ЗначениеОтбора = Новый Структура(«Номер», «333»);
ПараметрыВыбора = Новый Структура(«Отбор», ЗначениеОтбора);

2. Можно открыть форму списка без параметров:

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

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

ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип(«ЭлементОтбораКомпоновкиДанных»));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(«Номер»);
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Больше;
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
ЭлементОтбора.ПравоеЗначение = «000000001»;

3. И наконец, условие отбора можно поместить в произвольный запрос, выбирающий данные для динамического списка. Например, нам нужно открыть список приходных накладных, в которых присутствует номенклатура, выделенная в списке номенклатуры.

1

Обработчик выполнения этой команды заполним следующим образом:

ФормаСписка = ПолучитьФорму(«Документ.ПриходнаяНакладная.ФормаСписка»);
ФормаСписка.ФильтрПоТовару = Элементы.Список.ТекущаяСтрока;
ФормаСписка.Открыть();

В этом обработчике мы получаем форму списка приходных накладных и передаем в параметр формы ФильтрПоТовару ссылку на текущий элемент в списке номенклатуры и открываем форму с этим параметром.

2

В поле Запрос введем следующий текст запроса:

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

Демонстрационный пример для 3-го варианта находится в каталоге 1CITS/EXE/FAQ/ОткрытьФормуСОтбором.dt. Пример выполнен на версии платформы 8.2.9.356.

Источник

Форма выбора (подбор) в управляемых формах

Статья будет состоять из нескольких приведенных примеров кода с описанием того, как прибегнуть к Подбору.

Пример 1.

Простой вызов формы выбора с одним возвращаемым результатом:

Пример 2.

Выбор нескольких значений (документов или справочников) :

В первых 2-х примерах мы использовали обработчик (Событие) формы «ОбработкаВыбора».

Теперь рассмотрим пример с использованием «Обработки оповещения», на мой взгляд более удобно )

Пример 3.

Думаю многие не знают про фишку Оповещением «на Сервере». То есть результат можно вернуть сразу на сервер без дополнительных условий. Работает до 8.3.13.1644, с 8.3.16.1063 этот метод недоступен.

Пример 4.

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

Пример 5.

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

Пример 6.

Пример 7.

Как открыть форму выбора с Позиционированием ранее выбранного значения:

Тестировалось на 1С:Предприятие 8.3 (8.3.16.1063) и 1С:Предприятие 8.3 (8.3.13.1644), Спасибо за внимание, возможно, кому-то поможет)

Источник

Личный блог

Блог программиста 1С

images2

Рубрики

Боковая колонка

150 150 sait free

Боковая колонка

Свежие записи

Свежие комментарии

Рубрики

Архивы

Открытие списка с отбором

ScreenHunter 976 Apr. 10 10.36

Открытие управляемой формы списка с установленным отбором 1С.

Приветствую всех заглянувших на огонёк! ?

Тема открытия списка документов, справочников, регистра с отбором на управляемых формах (УФ) давно «избита». Но нюансы как всегда появляются.

Реализация такого функционала возможна несколькими способами. Но в данной заметке я рассмотрю 2 очень похожих и тем не менее несколько различающихся: с отображением примененного отбора на форме и без отображения примененного отбора.

Отбор устанавливается программно.

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

Чаще всего применяется второй способ, но иногда необходим и первый.

На форумах информация есть, но она чаще всего сильно разрозненная и не полная (

ScreenHunter 976 Apr. 10 10.36В первом случае выделенный раздел выводится, во втором случае — нет.

1. Если необходимо отразить примененный отбор на форме списка:

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

2. Если необходимо открыть без отображения отбора:

Второй вариант проще первого, но в этом случае не используется пользовательская настройка, а значить условия отбора не появляются над формой списка.

На этом все, тема Открытие списка с отбором — на мой взгляд раскрыта ?

Если есть вопросы, задавайте в комментариях.

Источник

Как программно открыть форму выбора с отбором?

Для открытия формы выбора (справочника, документа и т.п.) необходимо воспользоваться параметрами открываемой формы.

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

Давайте рассмотрим работу механизма на примере: в документе «Поступление товаров» при выборе контрагента необходимо выбирать только поставщиков (отбор будем производить по реквизиту Поставщик типа Булево справочника «Контрагенты»).

Для начала, проверим наличие поля отбора «Поставщик» в настройках отбора динамического списка. Для этого откроем форму выбора справочника «Контрагенты» и перейдем к настройкам динамического списка:p117

Мы видим, что поле Поставщик есть среди полей отбора. Значит, наш отбор работать будет (на самом деле, мы можем добавить дополнительные поля в динамический список и использовать их для отбора):p118

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

Как видите, ничего сложного нет: мы создаем структуру, имитирующую отбор (ключ структуры — имя поля отбора, а значение — значение отбора), и включаем его в параметры открываемой формы.

Источник

Понравилась статья? Поделить с друзьями:
Добавить комментарий
  • Как сделать успешный бизнес на ритуальных услугах
  • Выездной кейтеринг в России
  • Риски бизнеса: без чего не обойтись на пути к успеху
  • 1с как программно открыть форму незаписанного документа
  • 1с как программно добавить элемент на форму