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

1С 8.x : Как установить отбор в форме списка справочника?

Для 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 УП

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

Источник

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

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

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

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

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

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

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

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

1

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

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

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

2

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

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

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

Источник

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

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

а критично сделать все именно в форме, где располагается реквизит?

если нет, то в конфе на УФ можно сделать примерно так:

а в форме выбора соответственно пишем:

примерное содержимое процедуры ОтборыСписковКлиентСервер.ИзменитьЭлементОтбораСписка:

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

(12) ох. 17 год. Нужно как-то так

ОткрытьФорму («ИмяФормы», Новый Структура(«Отбор»,Новый Структура(«Контрагент», МассивКонтрагентов)));

Спасибо! Работает на 1С ERP Управление предприятием 2.4, 1С:Предприятие 8.3 (8.3.12.1685)

&НаКлиенте
Процедура ОперацияБракНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)

НовыйПараметр = Новый ПараметрВыбора(«Отбор.Ссылка», СписокОпераций());
НовыйМассив = Новый Массив();
НовыйМассив.Добавить(НовыйПараметр);
НовыеПараметры = Новый ФиксированныйМассив(НовыйМассив);
Элементы.ОперацияБрак.ПараметрыВыбора = НовыеПараметры;

Запрос = Новый Запрос;
Запрос.Текст = «ВЫБРАТЬ
| ПроизводственнаяОперация2_2.Ссылка КАК ПроизводственнаяОперация
|ИЗ
| Документ.ПроизводственнаяОперация2_2 КАК ПроизводственнаяОперация2_2
|ГДЕ
| ПроизводственнаяОперация2_2.Номер ПОДОБНО &НомерВырезать»;
Запрос.УстановитьПараметр(«НомерВырезать», «%»+НомерВырезать+»%»);

Источник

Обычные формы отбор

Приветствую, коллеги! В данной статье я расскажу, как работать с отбором в обычных формах списка в системе 1С:Предприятие 8.3. Мы рассмотрим как программные решения, так и решения при помощи автоматизации системы. Также будет дана инструкция по запуску формы списка с отбором.

1. Как открыть форму списка с отбором

Существуют различные варианты в системе 1С для открытия и работы с формами списка, которые содержат какой-то, установленный раннее, отбор. Рассмотрим все способы.

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

Во время запуска формы списка в 1С 8 отбор будет осуществлён по конкретному полю, которое было избрано. В примере кода ниже показано, как открыть список с приходными накладными, которые имеют отбор в поле «Номер», для примера было взят номер «333»:

1s 8 forma spiska

Рис. 1 Пример отбора в форме списка в 1С

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

forma spiska

Рис. 2 Вариант открытия формы списка в 1С 8

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

3 vyvesti formu spiska 1s

Рис. 3 Отбор обычной формы по динамическому перечню

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

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

2. Перемещение условия по отбору в запрос

Рассмотрим помещение основного условия по отбору в запрос, который будет избирать данные в динамический список. Как пример, необходимо запустить перечень приходных накладных, внутри данной документации есть номенклатура, которая будет выделена во всём общем списке. Внутри самой формы списка при отборе в 1С нужно создать специальную команду и кнопку, которая будет отвечать за неё – «Приходные накладные».

4 vyvesti formu spiska

Рис. 4 Перемещение основного условия по отбору в запрос

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

5 vyvesti formu 1s

Рис. 5 Обработчик реализации перемещения основного условия по отбору в запрос

Внутри данного обработчика всё работает так, что в итоге мы выведем форму списка в 1С с приходными накладными, после чего данный список передаётся в параметр формы «ФильтрПоТовару», а также в него передаётся ссылка выбранного элемента внутри перечня с номенклатурой, после чего можно открыть форму с данным параметром.

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

6 spisok form raboty

Рис. 6 Работа с формой списка с документами

Внутри поля «Запрос» нужно прописать следующий запрос, который указан ниже:

7 spisok form raboty 1s

Рис. 7 Запрос для формы списка с документами

Обратите внимание, что в запросе был использован параметр «Товар». В данный параметр и будет передана ссылка для текущей строки внутри списка с номенклатурой, которая находится внутри параметра формы списка с приходными накладными «ФильтрПоТовару». Далее, чтобы осуществить вышеописанное действие, внутри обработчика событий формы списка «ПриОткрытии» нужно прописать код установки значения параметра для запроса «Товар»:

8 spisok form v 1s

Рис. 8 Код в обработчике событий формы списка 1С 8

Рассмотри вышеуказанный программный код. В нём «Список.Параметры» является перечнем всех возможных параметров в запросе для динамического списка в реквизите «Список». Параметр «Товар» будет иметь то же значение, что и значение у параметра внутри формы «ФильтрПоТовару».

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

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

Источник

Для того чтобы открыть форму выбора с отбором в 1с 8.2 (обычные формы), нам нужно выполнить некоторые действия. Сначала мы ее получим. После этого выставим отбор и программно откроем, вот пример кода:

forma vybora s sotborom 8 2

Отбор на форме в поле ввода 1С 8.2 с несколькими значениями

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

forma vybora s sotborom 8 2 1

Для начала получаем форму выбора, в параметрах передаем «Элемент» (владельца), устанавливаем флаг режима выбора. Потом создаем список значений и массив, отмечаем что в качестве отбора когда устанавливается вид сравнения в списке, может присутствовать объект только с типом СписокЗначений. Добавляем элементы в массив, затем этот массив загружаем в СписокЗначений который в следствии мы устанавливаем в отборе. Также не забываем включить флаг использования данного отбора, и установить ВидСравнения.

Установка отбора в поле ввода на форме в 1С 8.3, событие НачалоВыбора

forma vybora s otborom 8 3

Как альтернатива можно воспользоваться вариантом как описано открытие формы выбора с отбором для 1С 8.2, конечно код возможно чуть-чуть придется модифицировать, но суть остается та же.

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

Источник

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