1с отбор договора по контрагенту на форме

1С 8.x : Как программно установить отбор в открываемой форме(При открытии)?

Для установки отбора используется свойство «Отбор» у менеджеров списков объектов, например, для открытия списка договоров определенного контрагента можно написать следующий код:

В данном случае мы применили вид сравнения «Равно», но не указывали его т.к. оно стоит по умолчанию. Используя разные значения вида сравнения мы значительно расширяем возможности.

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

Похожие FAQ

Еще в этой же категории

Программное создание таблицы значений с условным оформлением 12
Как создать на форме таблицу и сделать для нее подсветку содержимого колонки в строке по условию? Итак для начала нам надо добавить реквизиты в форму. Для этого у нас есть метод: ИзменитьРеквизиты(). Перед тем как его использовать мы сформируем ма Поле выбора

Заполнение списка значений в элементе поле выбора на форме 11
//Заполнение списка перебором данных // Элемент формы МетаданныеВыбор имеет тип — Произвольный, Использование — Режим выбора из Списка, кнопка списка Для Каждого Метаданное из Метаданные.РегламентныеЗадания Цикл ЭлементыФормы.МетаданныеВыбор.Спи Поле выбора

Как ограничить список выбора? 8
Ограничим список элементов, установив отбор в открываемой форме //Пример 1 Процедура СтатьяПДРНачалоВыбора(Элемент, СтандартнаяОбработка) ФормаВыбора = Справочники.ПрочиеДоходыИРасходы.ПолучитьФормуВыбора(, Элемент); ЭлементОтбораВидПДР = Форма Форма

Как активизировать, перевести фокус на необходимый элемент на форме? 7
//Текущему Элементу формы присваиваем элемент котровый необходимо активизировать ЭтаФорма.ТекущийЭлемент = ЭлементыФормы.ТабличноеПоле; Реквизит

Источник

Как программно установить отбор в открываемой форме(При открытии)?

Для установки отбора используется свойство «Отбор» у менеджеров списков объектов, например, для открытия списка договоров определенного контрагента можно написать следующий код:

В данном случае мы применили вид сравнения «Равно», но не указывали его т.к. оно стоит по умолчанию. Используя разные значения вида сравнения мы значительно расширяем возможности.

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

Похожие FAQ

Еще в этой же категории

Как на управляемой форме разместить список регистра сведений с отбором? 18
Решение рассмотрено для элемента справочника (Контрагент и регистр КонтактнаяИнформация) 1. Создание реквизита: Добавляем новый реквизит формы (. не путать с реквизитом справочника . ) с типом » ДинамическийСписок» В поле » Основная табли Как установить параметр динамического списка? 17
Когда используете для вывода данных динамический список и произвольный запрос, то бывают ситуации когда надо указать параметр используемый в этом запросе. Ниже пример вывода данных регистра сведений в карточке клиента Для вывода используется исп Форма

Читайте также:  Для договора дарения земельного участка нужно согласие супруга

Программное создание таблицы значений с условным оформлением 12
Как создать на форме таблицу и сделать для нее подсветку содержимого колонки в строке по условию? Итак для начала нам надо добавить реквизиты в форму. Для этого у нас есть метод: ИзменитьРеквизиты(). Перед тем как его использовать мы сформируем ма Поле выбора

Заполнение списка значений в элементе поле выбора на форме 11
//Заполнение списка перебором данных // Элемент формы МетаданныеВыбор имеет тип — Произвольный, Использование — Режим выбора из Списка, кнопка списка Для Каждого Метаданное из Метаданные.РегламентныеЗадания Цикл ЭлементыФормы.МетаданныеВыбор.Спи Посмотреть все в категории Работа с Формой (Диалог) и её элементами

Источник

Разбираемся с параметрами редактирования СКД

Вступление

В конструкторе СКД на некоторых вкладках есть колонка Параметры редактирования (или Параметры ввода, что то же самое по сути).
Настройка этого значения выполняется через специальное окно с одноименным названием.

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

Самые простые параметры редактирования

Наиболее простыми для использования являются следующие параметры: Формат редактирования, Быстрый выбор, Выбор групп и элементов. С ними все понятно, поэтому их пропустим.

Маска — также описывать не буду. Он используется только для ввода значений строкового типа. Правила настройки этого параметра можно найти в Синтаксис-помощнике по слову Маска.

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

Связи параметров выбора

Настраиваются через специальное окно Редактирование связей параметров выбора.
Рассмотрим на примере как заполнять поля этой формы.

Пример 1

Добавим в СКД параметры Контрагент и Договор .
Мы хотим, чтобы если пользователь выбрал контрагента, то при выборе договора отображались только договоры этого контрагента (в нашей конфигурации справочник Договоры подчинен справочнику Контрагенты).

Тогда достаточно в поле Параметр выбора указать имя реквизита из справочника Договоры контрагентов, в нашем случае это Владелец, поэтому запишем: Отбор.Владелец.
Зачем добавлять слово Отбор, опишу ниже.

В колонку Поле — нужно выбрать параметр Контрагент.

Теперь, если у параметра Контрагент стоит флаг Использование и контрагент выбран, то при выборе договора, будет накладываться отбор по владельцу.
Если же Контрагент не выбран или флаг у контрагента не установлен, то при выборе договора будут отображаться все договоры.

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

Читайте также:  Договор неотделимых улучшений при покупке дома с земельным участком

Параметры выбора

Настраиваются через специальное окно Редактирование параметров выбора.
Рассмотрим на примере как заполнять поля этой формы.

Пример 2

Поля Контрагент и Договор из первого примера.
Мы хотим, чтобы пользователь мог выбрать только договор с видом С покупателем или Прочее и не помеченный на удаление.
Добавляем два параметра:
1. Параметр выбора = Отбор.ПометкаУдаления; Значение = ЛОЖЬ
2. Параметр выбора = Отбор.ВидДоговора; Значение = список из двух элементов : С покупателем, Прочее
Эти два параметра будут устанавливаться всегда независимо от выбранности/невыбранности параметра Контрагент.

Зачем нужно слово Отбор?

Почему в поле Параметр выбора необходимо использовать приставку Отбор? Какие еще параметры можно указывать и на что это влияет?

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

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

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

Чтобы получше разобраться поэкспериментируем

Пример 3

Добавим по два параметра в Параметры выбора и в Связи параметров выбора.

Поставим точку останова в форме выбора при создании на сервере

Видим, что параметры, переданные без точек пришли как отдельные, а параметры, имеющие точки пришли в виде структуры.

Значит приставка перед точкой — является именем структуры, а после точки — имя ключа в этой структуре.

Связь по типу

В настройке данного параметра сбивает с толку наличие поля Элемент связи с типом число.
Чтобы понять как его настраивать разберем два примера.

Пример 4

Создадим в СКД параметр Счет.
И еще три параметра Субконто1, Субконто2, Субконто3.
Мы хотим, чтобы если выбран Счет, то во параметре СубконтоN автоматически устанавливался отбор со значениями соответствующего субконто.
В этом случае для параметра Субконто1 настраиваем Связь по типу:
Поле = Счет (ПараметрыДанных.Счет), Элемент связи = 1 (номер субконто)
Для остальных двух параметров аналогично, только Элемент связи будет 2 и 3.

Теперь при выбранном параметре Счет, в полях СубконтоN будут доступны только значения, соответствующие типу субконто

Пример 5

Создадим в СКД параметры Вид субконто и Субконто.
Мы хотим, чтобы при выборе вида, были доступны только значения соответствующие виду субконто.
В этом случае для параметра Субконто1 настраиваем Связь по типу:
Поле = ВидСубконто (ПараметрыДанных.ВидСубконто), Элемент связи = 0 (не имеет значение в данном случае)

Заключение

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

Но такие связи приходится настраивать довольно редко, и часто в таких случаях проще решить задачу с помощью кода, чем разбираться как это все настраивается.

Думаю, что данное описание поможет разобраться в этом механизме и начать его применять.

Читайте также:  Как заключить договор с фирмой поставщиком

Источник

1С начало выбора с отбором

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

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

СтандартнаяОбработка = Ложь;
ЗначениеОтбора = Новый Структура ( «Контрагент» , Объект . Контрагент );
ПараметрыВыбора = Новый Структура ( «Отбор» , ЗначениеОтбора );
ОткрытьФорму ( «Справочник.ДоговорыКонтрагентов.ФормаВыбора» , ПараметрыВыбора , Элемент );

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

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

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

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

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

Теперь рассмотрим отбор в поле ввода на управляемой форме в 1С 8.3. Найдем на форме интересующий нас элемент, в котором мы будем устанавливать отбор, в нашем случае это поле «Организация». Находим событие «НачалоВыбора», щелкаем на лупу и оказываемся в процедуре. Мы видим параметр ДанныеВыбора, этот параметр имеет тип СписокЗначений. Для того чтобы ограничить выбор необходимыми элементами , нам необходимо заполнить СписокЗначений. Элементы выбрать можем только на сервере, поэтому создаем процедуру с директивой компиляции &НаСервере. В данной процедуре заполняем ДанныеВыбора.

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

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

Программирование системы 15.06.2016 13:41 13433

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

Процедура для обычного приложения

Процедуры для управляемого приложения

Настройка отборов с использованием объекта НастройкиКомпоновкиДанных. Есть возможность задать вид сравнения, доступность элементов отбора для редактирования и т.д.

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

Для того чтобы добавить сообщение, необходимо Войти или Зарегистрироваться

Источник

Поделиться с друзьями
МальтаВиста