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

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

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

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

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

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

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

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

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

1

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

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

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

2

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

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

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

Источник

Отбор на управляемой форме из списка значений

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

В обработке весь код прокомментирован, ниже само описание создания отбора.

Описание:

1. На форме создаем реквизит и на вкладке «Основные» выбираем тип «СписокЗначений«.

b1f5f8d2620f6cf75ebfd2bcbfdd29a5

2. На вкладке «Объект» тип значения, выбираем ссылку на необходимый справочник.

68dc69a7820a69110daa02a13e83860a

3ae165251dbccc8d06f9e953c30eba467eaf1eb78daf7f0aecf772778b6a5983

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

264fffad4b5b50fe437f3f7eb0aad1a7

5. В модуле формы создаем функцию, которая возвращает СписокЗначений.

6. В обработчике ПриВыборе, который мы создали пишем следующее:

Как результат, мы получаем следующее:

cb717b41c1cb20f688e3c62bbf4b89c8

Далее уже можете обрабатывать выбранные значение, как душе угодно, мне данный простой способ выбора очень часто полезен, пользователям он нравиться, единственно, что список выбора должен быть не очень большой, чтобы было проще работать с ним. В отбор можно даже собрать значения дополнительных реквизитов (Справочник.ЗначенияСвойствОбъектов) в самописных отчетах и не только.

Источник

Отборы в 1С 8.3 (Управляемые формы)

Часто возникают ситуации, когда в 1С 8.3 нужно произвести отбор в таблице определенных строк по определенным критериям. Рассмотрим, как это сделать в динамическом списке и в таблице значений.

Отборы в динамическом списке 1С 8.3

Тут мы имеем два пути: создать отбор на форме списка и установить отбор программно.

Отбор в настройка формы

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

otboryi v dinamicheskih spiskah 1s

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

Установка отбора в динамическом списке 1С программно

Дело в том, что Отбор является свойством динамического списка. Этим мы и воспользуемся. Сначала добавим в свойство отбора новый элемент:

Чтобы отбор заработал, нужно прописать параметры «ЛевоеЗначение», «ВидСравнения» и «ПравоеЗначение». Кроме того необходимо свойство «Использование» установить в «Истина».

Таким образом, мы создаем простой отбор. Кроме простого, можно задать условия по нескольким полям. Для этого используем тип данных «ГруппаЭлементовОтбораКомпоновкиДанных»:

Отборы в таблице значений 1С

Тут у нас также имеется несколько вариантов.

Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):

К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.

Источник

Бодаемся с отображением отборов на управляемых формах

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

89ef1be6c84f0f90556f5747f64c673f

e4c861f1ea8d805443b637e22de023a5

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

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

Если смотреть свойства динамического списка через палитру, можно найти две зацепки для решения нашей задачи:

1) Во-первых, это свойство «Группа пользовательских настроек». В данном свойстве указывается группа формы, которая выступит родителем для всех добавляемых элементов с отображением отборов.

9c20a174c8eb0ae4e7b58345250ad1e88f4aecca291470204b0c6872eaa18f04

2) Во-вторых, это событие списка «ПриОбновленииСоставаПользовательскихНастроекНаСервере».

f02eda228db354f80d76621cccfafdcd

Рассмотрим программное создание полей на примере рабочего кода:

В итоге мы имеем стройный ряд настроек, который можно поменять в любой момент:

Источник

Быстрый отбор в форме списка (выбора) справочника

Установка быстрых отборов в форме списка (выбора) справочника (для новичков)

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

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

В списках отбор может быть установлен вручную пользователем стандартным способом через контекстное меню списка «Установить отбор и сортировку списка»

18 07 2011%201

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

1) Рассмотрим установку такого отбора на примере списка справочника Номенклатура.

Открываем в конфигураторе форму списка справочника Номенклатура.

Уменьшим высоту табличного поля «Список».

На освободившееся место над табличным полем разместим 5 элементов:

со следующими именами:

2) фНомер – Булево

3) отбНомер – Строка(20)

4) фНаименование – Булево

5) отбНаименование – Строка(150)

Результат будет выглядеть примерно так:

18 07 2011%202

Сверим список реквизитов формы на закладке «Реквизиты», наши новые обведены красным:

18 07 2011%203

Теперь пишем в модуле формы обработчики событий «При изменении» для флажков и полей ввода.

18 07 2011%204

И в созданную заготовку процедуры вписываем нужный код:

18 07 2011%205

Вот код этих четырех обработчиков:

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

// при изменении поля ввода отбНомер
Процедура отбНомерПриИзменении ( Элемент )
// если не установлен флажок не будем понапрасну дергать Отбор
Если фНомер Тогда
УстановитьОтборыФормы ();
КонецЕсли;
КонецПроцедуры

Процедура фНаименованиеПриИзменении ( Элемент )
// если не заполнено Наименование для отбора не будем понапрасну дергать Отбор
Если ЗначениеЗаполнено ( отбНаименование ) Тогда
УстановитьОтборыФормы ();
КонецЕсли;
КонецПроцедуры

Процедура отбНаименованиеПриИзменении ( Элемент )
// если не установлен флажок не будем понапрасну дергать Отбор
Если фНаименование Тогда
УстановитьОтборыФормы ();
КонецЕсли;
КонецПроцедуры

На двух наших полях ввода включим свойство «КнопкаОчистки».
При очистке поля ввода мы будем сбрасывать соответсвующий флажок и перечитывать отбор:

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

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

Теперь пишем процедуру установки отбора:

Процедура УстановитьОтборыФормы ()

// запомним состояние иерархии
мИерархическийПросмотр = ЭлементыФормы.Список.ИерархическийПросмотр;

Если ( фНомер И НЕ ПустаяСтрока ( отбНомер ))
или ( фНаименование И ЗначениеЗаполнено ( отбНаименование ))
Тогда

// получаем запросом список с установленными критериями отбора
сз = ВернутьСписок ();

А теперь пишем функцию, выбирающую запросом ссылки по введенным пользователем критериям и возвращающую как результат список отобранных ссылок:

Функция ВернутьСписок ()

Запрос = Новый Запрос ;

Вот результат отбора по двум критериям:

18 07 2011%206

Взглянем на форму отборов опять для сравнения и видим на ней установленный наш отбор по ссылке:

18 07 2011%207

2) Рассмотрим более сложный пример со справочником «Основные средства».

Размещаем над списком 7 элементов:

18 07 2011%208

Где 1 – это просто метка, а остальные реквизиты имеют следующие типы:

18 07 2011%209

Добавим в модуль списка новую процедуру ЭлементОтбораПриИзменении и впишем в нее следующий код:

Процедура ЭлементОтбораПриИзменении ( Элемент )
УстановитьОтборыФормы ();
КонецПроцедуры

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

18 07 2011%2010

Пишем процедуру установки снятия отбора:

Если ( флПоИнвНомеру и НЕ ПустаяСтрока ( отбИнвНомер ))
или ( флПоПодразделению и ЗначениеЗаполнено ( отбПодразделение ))
или ( флПоМОЛ и ЗначениеЗаполнено ( отбМОЛ ))Тогда

И пишем еще одну процедурку получения списка ссылок запросом.

Здесь мы будем получать последние сведения по ОС из регистров сведений:

— Инвентарный Номер из РС ПервоначальныеСведения

— Подразделение и МОЛ из РС МестонахождениеОС.

Запрос = Новый Запрос ;

Если флПоИнвНомеру и НЕ ( флПоПодразделению или флПоМОЛ ) Тогда

Если флПоПодразделению И ЗначениеЗаполнено ( отбПодразделение ) Тогда
аргУсловие = «МестонахождениеОССрезПоследних.Местонахождение = &пПодразделение»
КонецЕсли;

Если НЕ флПоИнвНомеру Тогда

Теперь добавляем в список две новых колонки МОЛ и Местонахождение без привязки к данным

Установим их свойства «Видимость» в Ложь, чтобы они не светились в списке сразу. Их заполение мы будем обрабатывать в событии ПриПолученииДанных (см. ниже)

В свойстве ЭлементУправления обоим назначаем «Поле ввода»

18 07 2011%2011

В обработчик ПриПолученииДанных добавляем код для отображения значений наших добавленных колонок:

Открываем список ОС, устанавливаем видимость наших новых колонок МОЛ и Местонахождение, вводим критерии отбора и вуаля:

18 07 2011%2012

P . S .

Недостаток рассмотренного подхода в том, что если ранее был каким-либо образом установлен отбор по ссылке, то он будет затерт нашим.

Источник

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