как добавить отбор на форму списка 1с

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

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

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

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

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

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

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

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

как добавить отбор на форму списка 1с. Смотреть фото как добавить отбор на форму списка 1с. Смотреть картинку как добавить отбор на форму списка 1с. Картинка про как добавить отбор на форму списка 1с. Фото как добавить отбор на форму списка 1с

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

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

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

как добавить отбор на форму списка 1с. Смотреть фото как добавить отбор на форму списка 1с. Смотреть картинку как добавить отбор на форму списка 1с. Картинка про как добавить отбор на форму списка 1с. Фото как добавить отбор на форму списка 1с

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

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

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

Источник

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

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

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

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

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

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

как добавить отбор на форму списка 1с. Смотреть фото как добавить отбор на форму списка 1с. Смотреть картинку как добавить отбор на форму списка 1с. Картинка про как добавить отбор на форму списка 1с. Фото как добавить отбор на форму списка 1с

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

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

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

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

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

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

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

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

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

Источник

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

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

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

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

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

как добавить отбор на форму списка 1с. Смотреть фото как добавить отбор на форму списка 1с. Смотреть картинку как добавить отбор на форму списка 1с. Картинка про как добавить отбор на форму списка 1с. Фото как добавить отбор на форму списка 1с

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

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

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

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

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

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

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

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

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

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

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

как добавить отбор на форму списка 1с. Смотреть фото как добавить отбор на форму списка 1с. Смотреть картинку как добавить отбор на форму списка 1с. Картинка про как добавить отбор на форму списка 1с. Фото как добавить отбор на форму списка 1с

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

как добавить отбор на форму списка 1с. Смотреть фото как добавить отбор на форму списка 1с. Смотреть картинку как добавить отбор на форму списка 1с. Картинка про как добавить отбор на форму списка 1с. Фото как добавить отбор на форму списка 1с

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

как добавить отбор на форму списка 1с. Смотреть фото как добавить отбор на форму списка 1с. Смотреть картинку как добавить отбор на форму списка 1с. Картинка про как добавить отбор на форму списка 1с. Фото как добавить отбор на форму списка 1с

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

как добавить отбор на форму списка 1с. Смотреть фото как добавить отбор на форму списка 1с. Смотреть картинку как добавить отбор на форму списка 1с. Картинка про как добавить отбор на форму списка 1с. Фото как добавить отбор на форму списка 1с

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

как добавить отбор на форму списка 1с. Смотреть фото как добавить отбор на форму списка 1с. Смотреть картинку как добавить отбор на форму списка 1с. Картинка про как добавить отбор на форму списка 1с. Фото как добавить отбор на форму списка 1с

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

как добавить отбор на форму списка 1с. Смотреть фото как добавить отбор на форму списка 1с. Смотреть картинку как добавить отбор на форму списка 1с. Картинка про как добавить отбор на форму списка 1с. Фото как добавить отбор на форму списка 1с

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

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

как добавить отбор на форму списка 1с. Смотреть фото как добавить отбор на форму списка 1с. Смотреть картинку как добавить отбор на форму списка 1с. Картинка про как добавить отбор на форму списка 1с. Фото как добавить отбор на форму списка 1с

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

как добавить отбор на форму списка 1с. Смотреть фото как добавить отбор на форму списка 1с. Смотреть картинку как добавить отбор на форму списка 1с. Картинка про как добавить отбор на форму списка 1с. Фото как добавить отбор на форму списка 1с

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

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

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

как добавить отбор на форму списка 1с. Смотреть фото как добавить отбор на форму списка 1с. Смотреть картинку как добавить отбор на форму списка 1с. Картинка про как добавить отбор на форму списка 1с. Фото как добавить отбор на форму списка 1с

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

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

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

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

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

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

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

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

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

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

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

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

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

как добавить отбор на форму списка 1с. Смотреть фото как добавить отбор на форму списка 1с. Смотреть картинку как добавить отбор на форму списка 1с. Картинка про как добавить отбор на форму списка 1с. Фото как добавить отбор на форму списка 1с

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

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

как добавить отбор на форму списка 1с. Смотреть фото как добавить отбор на форму списка 1с. Смотреть картинку как добавить отбор на форму списка 1с. Картинка про как добавить отбор на форму списка 1с. Фото как добавить отбор на форму списка 1с

P . S .

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

Источник

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

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

как добавить отбор на форму списка 1с. Смотреть фото как добавить отбор на форму списка 1с. Смотреть картинку как добавить отбор на форму списка 1с. Картинка про как добавить отбор на форму списка 1с. Фото как добавить отбор на форму списка 1с

как добавить отбор на форму списка 1с. Смотреть фото как добавить отбор на форму списка 1с. Смотреть картинку как добавить отбор на форму списка 1с. Картинка про как добавить отбор на форму списка 1с. Фото как добавить отбор на форму списка 1с

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

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

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

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

как добавить отбор на форму списка 1с. Смотреть фото как добавить отбор на форму списка 1с. Смотреть картинку как добавить отбор на форму списка 1с. Картинка про как добавить отбор на форму списка 1с. Фото как добавить отбор на форму списка 1скак добавить отбор на форму списка 1с. Смотреть фото как добавить отбор на форму списка 1с. Смотреть картинку как добавить отбор на форму списка 1с. Картинка про как добавить отбор на форму списка 1с. Фото как добавить отбор на форму списка 1с

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

как добавить отбор на форму списка 1с. Смотреть фото как добавить отбор на форму списка 1с. Смотреть картинку как добавить отбор на форму списка 1с. Картинка про как добавить отбор на форму списка 1с. Фото как добавить отбор на форму списка 1с

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

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

Источник

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

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

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

В процессе открытия формы будет установлен отбор по указанному полю.
Код 1C v 8.2 УП

2. Можно открыть форму списка без параметров:
Код 1C v 8.2 УП

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

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

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

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

Обработчик выполнения этой команды заполним следующим образом:
Код 1C v 8.2 УП

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

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

В поле Запрос введем следующий текст запроса:
Код 1C v 8.2 УП

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *