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

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

Значение заполнения

Это свойство позволяет установить значение по-умолчанию для реквизита.
Например, решим такую задачу: в справочнике «Сотрудники» есть реквизит «Вид приема на работу», который принимает одно из 3-х значений: «Штатный», «Внутренний совместитель» и «Внешний совместитель»:
imageДля новых сотрудников по-умолчанию нужно устанавливать вариант приема на работу — «Штатный». Для того чтобы решить эту задачу достаточно в конфигураторе перейти в свойства реквизита и выбрать значение по-умолчанию в свойстве «Значение заполнения»:
imageВ результате при создании нового элемента справочника значение реквизита будет заполнено выбранным значением по-умолчанию:

Проверка заполнения

Это свойство реквизита, которое позволяет сделать реквизит обязательным для заполнения.
Например, решим такую задачу: в справочнике «Контрагенты» есть реквизит «УНП», который пользователь должен заполнить обязательно.
imageПри попытке сохранить контрагента с пустым «УНП» должна выдаваться ошибка.

Для решения такой задачи достаточно в конфигураторе в настройках реквизита «УНП» установить свойство «Проверка заполнения» в значение «Выдавать ошибку»:

imageВ результате при попытке сохранения контрагента с пустым «УНП» пользователь получит сообщение об ошибке заполнения и сохранение выполняться не будет:
image

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

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

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

Это свойство позволяет настроить фильтр списка, который открывается при выборе значения реквизита.

Пример задачи:
В справочнике «Номенклатура» хранится список всех товаров и услуг организации:

imageВ документе «Расходная накладная» товары и услуги хранятся в разных табличных частях:
imageВ заполнении табличной части «Товары» пользователь при выборе товара должен видеть списке только товары, а при заполнении табличной части «Услуги» — только услуги (без товаров). При этом в справочнике «Номенклатура» есть реквизит типа «Булево» — «Услуга», который позволяет однозначно определить тип номенклатуры:
imageДля решения этой задачи нужно в конфигураторе настроить свойство «Параметры выбора» реквизита «Номенклатура» для каждой табличной части:
imageimageДля реквизита «Номенклатура» табличной части «Товары» добавляем в настройки параметров выбора условие вида «Услуга = Ложь», для реквизита «Номенклатура» табличной части «Услуги» — условие вида «Услуга = Истина». В результате при выборе значения реквизита список будет отфильтрован согласно этому условию.
imageimageТаким образом, в этой статье мы познакомились с полезными свойствами реквизитов объектов 1С, которые позволяют быстро и просто решать часто возникающие на практике задачи без программирования, это свойства:

  • Значение заполнения (настройка значения по-умолчанию)
  • Проверка заполнения (обязательность заполнения реквизита)
  • Связи параметров выбора (настройка связи между реквизитами одного объекта)
  • Параметры выбора (настройка фильтра списка при выборе значения реквизита)


2019-05-01 13:39

Программирование

Рассмотрим различные варианты установки отбора при выборе объекта на документе ДокументОтборПриемаТовара. У документа имеются следующие реквизиты (см. рисунок 1):

  • ПоставщикОтбор (тип СправочникСсылка.Поставщики);
  • ТоварОтбор (тип СправочникСсылка.Товары);
  • ОтветственныйОтбор (тип СправочникСсылка.Ответственный);
  • ПриемТовара (тип ДокументСсылка.ПриемТовара).
Рисунок 1. Структура документа ДокументОтборПриемаТовара

Выбирать будем документ ПриемТовара, а отбор в форме выбора будет устанавливаться по реквизитам с постфиксом Отбор.

Документ ПриемТовара имеет реквизиты (см. рисунок 2):

  • Поставщик (тип СправочникСсылка.Поставщики);
  • Ответственный (тип СправочникСсылка.Ответственный);
  • Комментарий (Тип Строка).

А так же табличную часть Товары, состоящую из реквизитов Товар (тип СправочникСсылка.Товары) и Количество (тип Число).

Рисунок 2. Структура документа ПриемТовара

1. Установка отбора в свойствах реквизита объекта метаданных

Самый простой вариант отбора. Нужно всего лишь в свойствах реквизита «Связи параметров выбора»  и «Параметры выбора» задать параметры выбора. Допустим, при выборе документа ПриемТовара, нужно в форме выбора показывать документы отобранные по поставщику и только проведенные. Для этого в связях параметров выбора задаем отбор по поставщику, а в параметрах выбора отбор только проведенных документов (см. рисунок 3).

Рисунок 3. Отбор в свойствах реквизита объекта метаданных

Больше ничего делать не нужно, платформа сама завернет указанные параметры выбора в структуру (см. рисунок 4) и поместит её в параметр Отбор формы выбора, далее, анализируя данный параметр формы, платформа устанавливает отборы для динамического списка.

Рисунок 6. Значение параметра формы выбора Отбор

2. Установка отбора в свойствах элемента формы

Такой же простой вариант как и первый, только те же самые свойства задаются для элемента формы (см. рисунок 5).

Рисунок 5. Отбор в свойствах элемента формы

Свойства элемента формы имеют приоритет над свойствами реквизита объекта.

3. Установка собственного отбора при создании формы выбора на сервере

Усложним задачу и будем производить отбор документов по табличной части, а конкретно по товару в ней. Для этого в связях параметров выбора зададим связь, где параметр будет Товар (прям ручками пишем), а реквизит ТоварОтбор (см. рисунок 6).

Рисунок 6. Связь параметра Товар с реквизитом ТоварОтбор

Именно такую задаем связь, так как более одной точки(.) в колонке Имя при написании параметра мы не можем использовать (платформенное ограничение), то есть написать «Отбор.Товары.Товар» мы не сможем.
Так как имя параметра мы задали вручную, то платформа его не поместит в параметр Отбор формы выбора, поэтому в форме выбора документа ПриемТовара в обработчике события ПриСозданииНаСервере напишем программный код, который будет обрабатывать наш параметр Товар и устанавливать отбор по реквизиту табличной части:

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

Товар = Неопределено;
ЭтотОбъект.Параметры.Свойство("Товар", Товар);
Если Товар <> Неопределено Тогда
ФиксОтбор = ЭтотОбъект.Список.КомпоновщикНастроек.ФиксированныеНастройки.Отбор;
ЭлементОтбора = ФиксОтбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Товары.Товар");
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементОтбора.ПравоеЗначение = Товар;
ЭлементОтбора.Использование = Истина;
КонецЕсли;

КонецПроцедуры

4. Программная установка параметров выбора

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

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

// Создаем связи параметров выбора.
МассивСвязей = Новый Массив;
НоваяСвязь = Новый СвязьПараметраВыбора("Отбор.Поставщик", "Объект.ПоставщикОтбор");
МассивСвязей.Добавить(НоваяСвязь);
НоваяСвязь = Новый СвязьПараметраВыбора("Отбор.Ответственный", "Объект.ОтветственныйОтбор");
МассивСвязей.Добавить(НоваяСвязь);
НоваяСвязь = Новый СвязьПараметраВыбора("Товар", "Объект.ТоварОтбор");
МассивСвязей.Добавить(НоваяСвязь);

// Создаем параметры выбора.
МассивПараметров = Новый Массив;
НовыйПараметр = Новый ПараметрВыбора("Отбор.Проведен", Истина);
МассивПараметров.Добавить(НовыйПараметр);

// Устанавливаем связи параметров и параметры выбора для элемента формы.
Элементы.ПриемТовара.СвязиПараметровВыбора = Новый ФиксированныйМассив(МассивСвязей);
Элементы.ПриемТовара.ПараметрыВыбора = Новый ФиксированныйМассив(МассивПараметров);

КонецПроцедуры

Для корректной работы отборов необходимо создать событие ПриСозданииНаСервере с таким же программным кодом как в варианте №3 у формы выбора документа ПриемТовара.

5. Установка параметров выбора в момент начала выбора

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

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

МассивПараметров = Новый Массив;
Если ЗначениеЗаполнено(Объект.ПоставщикОтбор) Тогда
НовыйПараметр = Новый ПараметрВыбора("Отбор.Поставщик", Объект.ПоставщикОтбор);
МассивПараметров.Добавить(НовыйПараметр);
КонецЕсли;
Если ЗначениеЗаполнено(Объект.ОтветственныйОтбор) Тогда
НовыйПараметр = Новый ПараметрВыбора("Отбор.Ответственный", Объект.ОтветственныйОтбор);
МассивПараметров.Добавить(НовыйПараметр);
КонецЕсли;
Если ЗначениеЗаполнено(Объект.ТоварОтбор) Тогда
НовыйПараметр = Новый ПараметрВыбора("Товар", Объект.ТоварОтбор);
МассивПараметров.Добавить(НовыйПараметр);
КонецЕсли;
НовыйПараметр = Новый ПараметрВыбора("Отбор.Проведен", Истина);
МассивПараметров.Добавить(НовыйПараметр);
Элементы.ПриемТовара.ПараметрыВыбора = Новый ФиксированныйМассив(МассивПараметров);

КонецПроцедуры

Для корректной работы отборов необходимо создать событие ПриСозданииНаСервере с таким же программным кодом как в варианте №3 у формы выбора документа ПриемТовара.

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

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

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

СтандартнаяОбработка = Ложь;

Отбор = Новый Структура;
Если ЗначениеЗаполнено(Объект.ПоставщикОтбор) Тогда
Отбор.Вставить("Поставщик", Объект.ПоставщикОтбор);
КонецЕсли;
Если ЗначениеЗаполнено(Объект.ОтветственныйОтбор) Тогда
Отбор.Вставить("Ответственный", Объект.ОтветственныйОтбор);
КонецЕсли;
Если ЗначениеЗаполнено(Объект.ТоварОтбор) Тогда
Отбор.Вставить("Товары", Новый Структура("Товар", Объект.ТоварОтбор));
КонецЕсли;
Отбор.Вставить("Проведен", Истина);
ПараметрыФормы = Новый Структура("Отбор", Отбор);
ОткрытьФорму("Документ.ПриемТовара.ФормаВыбора", ПараметрыФормы, Элемент);

КонецПроцедуры

Отборы на динамический список платформа наложит сама, писать дополнительно код больше не нужно, как в варианте №3.

А что будет, если отбор в связях параметров выбора и параметры выбора пересекаются?

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

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

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

Начнем со связей параметров выбора.

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

Справочники в 1С

Причем справочник Контрагенты является владельцем справочника ДоговорыКонтрагентов.

Владельцы справочника 1с

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

Документ 1с

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

Форма выбора справочников 1С

Что, согласитесь может быть неудобно. И гораздо удобнее, чтобы выходили только договоры выбранного контрагента. Для того, чтобы пользователи могли видеть договоры контрагента, который указан в поле Контрагент, необходимо настроить связи параметров выбора. Для этого, нужно зайти в палитру свойств реквизита Договор, в которой интересует свойство Связи параметров выбора. Если нажать на кнопку «…» этого свойства, то откроется окно «Связи параметров выбора». В этом окне можно настраивать различные связи реквизита, палитру свойств которого мы открыли, с остальными реквизитами. Мы настроим связь с реквизитом Контрагент.

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

После выбора реквизита Контрагент таблица «Параметры» заполнится автоматически.

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

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

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

Всё! Теперь, когда мы будем выбирать договоры в документе Оплата, то будут выходить только договоры выбранного контрагента.

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

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

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

К примеру, у нас бывают договоры контрагентов, которые помечены на удаление.

Пометка на удаление 1С

Эти же элементы отображаются в форме выбора договоров в документе Оплата.

Пометка на удаление 1С

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

Настройка параметров выбора

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

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

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

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

О том, как работать с проверкой заполнения реквизитов объектов, читайте в этой статье:

Проверка заполнения в 1С

Более подробно и основательно начальные вопросы программирования в 1С есть вы можете изучить в
Книга «Программировать в 1С за 11 шагов»

Изучайте программирование в 1С в месте с моей книгой «Программировать в 1С за 11 шагов»

Программировать в 1С за 11 шагов

Книга написана понятным и простым языком — для новичка.

  1. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  2. Научитесь понимать архитектуру 1С;
  3. Станете писать код на языке 1С;
  4. Освоите основные приемы программирования;
  5. Закрепите полученные знания при помощи задачника.

О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»

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

Основы разработки в 1С такси
  1. Очень доступный и понятный язык изложения
  2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  3. Поймете идеологию управляемого приложения 1С
  4. Узнаете, как разрабатывать управляемое приложение;
  5. Научитесь разрабатывать управляемые формы 1С;
  6. Сможете работать с основными и нужными элементами управляемых форм
  7. Программирование под управляемым приложением станет понятным

Промо-код на скидку в 15% — 48PVXHeYu

Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog


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

можно оплатить вручную:

Яндекс.Деньги — 410012882996301
Web Money — R955262494655

Вступайте в мои группы:

Вконтакте: https://vk.com/1c_prosto
Фейсбуке: https://www.facebook.com/groups/922972144448119/
ОК: http://ok.ru/group/52970839015518
Твиттер: https://twitter.com/signum2009

Содержание:

1.      Свойство связи параметров выбора в 1С

2.      Реквизиты объектов метаданных и элементы формы в 1С 8.3. Разница в использовании свойства «Связи параметров выбора»

3.      Как использовать свойства связи параметров выбора в 1С. Пример

4.      Связи параметров выбора в 1С программно  

1.    Свойство связи параметров выбора в 1С

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

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

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

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

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

Вот именно одним из таких «фильтров» является свойство «Связи параметров выбора» (Рисунок 1).

Рисунок 1

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

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

2.    Реквизиты объектов метаданных и элементы формы в 1С 8.3. Разница в использовании свойства «Связи параметров выбора»

Следует отметить, что свойство «Связи параметров выбора» есть и у реквизитов объектов метаданных в 1С (Рисунок 2).

Рисунок 2

И у элементов формы в 1С 8.3(Рисунок 3)

Рисунок 3

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

В большинстве случаев с методологической точки зрения корректнее настраивать свойство «Связи параметров выбора» у реквизита объекта метаданных. 

3.    Как использовать свойства связи параметров выбора в 1С. Пример

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

Рассмотрим использование свойства связи параметров выбора в 1С на простейшем примере.

Вот данные справочника «Контрагенты» (Рисунок 4).

Рисунок 4

И соответственно данные справочника «Договоры» (Рисунок 5).

Рисунок 5

При пустом значении свойства «Связи параметров выбора» (Рисунок 6)…

Рисунок 6

…В режиме 1С:Предприятия в документе «Приходная накладная» при выборе договора отображается полный список договоров, по всем контрагентам (Рисунок 7).

Рисунок 7

Теперь установим значение свойства «Связи параметров выбора» (Рисунок 8, Рисунок 9, Рисунок 10).

Рисунок 8

Рисунок 9

Рисунок 10

И вот что получаем (Рисунок 11).

Рисунок 11

Как видно на скрине, после настройки свойства «Связи параметров выбора» список договоров фильтруется по выбранному в документе контрагенту.

При настройке свойства в конфигураторе 1С Связи параметров выбора в форме настройки есть параметр «Режим изменения связанного значения» установленный в значение «Очищать» (Рисунок 12).

Рисунок 12

При таком параметре в случае изменения или очистки значения поля «Контрагент» значение поля «Договор» тоже будет очищено.

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

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

4.    Связи параметров выбора в 1С программно

Также у элементов формы можно устанавливать и изменять связи параметров выбора в коде 1С программно.

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

(Рисунок 13)

Рисунок 13

Вызывать процедуру установки связи нужно из процедуры:

Специалист компании ООО «Кодерлайн» 

Александр Арутюнов.

УФ Как в колонке таблицы показывать одно из полей в зависимости от значений

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

Потребуются изменения в следующих объектах:

  1. Документ

    1. Реквизиту Упаковка задать значение свойства Связи параметров выбора Номенклатура – Не изменять

  2. Форма документа

    1. Добавить в таблицу на форме группу колонок со значением Группировка — В ячейке. Добавить в эту группу колонку Упаковка и Номенклатура.ЕдиницаИзмерения

  3. Модуль формы документа

    1. Добавить в описание события формы ПриСозданииНаСервере вызов процедуры по установке условного оформления для отображения нужного поля в колонке

    2. Добавить в описание события формы ПослеЗаписиНаСервере вызов процедуры по установке условного оформления для отображения нужного поля в колонке

    3. Добавить процедуру по установке условного оформления для отображения нужного поля в колонке

Подробнее на примере (конфигурация ERP 2.0):

Часть 1. Доработка реквизитов документа.

Добавляем реквизит табличной части Упаковка с типом СправочникСсылка.УпаковкиНоменклатуры и устанавливаем свойству Связи параметров выбора значение Номенклатура – Не изменять (рис. 1).

Рис. 1. Свойства реквизита табличной части

Часть 2. Доработка формы документа.

Открываем форму документа. Добавляем группу колонок в элемент формы табличной части и устанавливаем свойствуГруппировка значение В ячейке (рис. 2).

Рис. 2. Свойства группы колонок

Переносим в новую группу колонок поле ТоварыКПолучениюУпаковка и добавляем новое поле из реквизита табличной части Номенклатура.ЕдиницаИзмерения (рис. 3).

Рис. 3. Добавление полей в группу колонок

Часть 3. Доработка модуля формы документа.

Открываем модуль формы документа. Определяем следующие процедуры:

3.1. ПриСозданииНаСервере()

У формы документа определяем событие ПриСозданииНаСервере:

&НаСервере

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

УстановитьУсловноеОформление();

КонецПроцедуры

3.2. ПослеЗаписиНаСервере()

У формы документа определяем событие ПослеЗаписиНаСервере:

&НаСервере

Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)

УстановитьУсловноеОформление();

КонецПроцедуры

    1. Определяем процедуру по установке условного оформления (если заполнено значение колонки Упаковка, то не отображать колонку ЕдиницаИзмерения):

&НаСервере

Процедура УстановитьУсловноеОформление()

Если Не ПолучитьФункциональнуюОпцию(«ИспользоватьУпаковкиНоменклатуры») Тогда

Возврат;

КонецЕсли;

ИмяПоляВводаЕдиницИзмерения = «ТоварыКПолучениюЕдиницаИзмерения»;

ПутьКПолюОтбора = «Объект.ТоварыКПолучению.Упаковка»;

УО = ЭтаФорма.УсловноеОформление;

ЭлементыФормы = ЭтаФорма.Элементы;

ЭлементУсловногоОформления = УО.Элементы.Добавить();

ПолеЭлемента = ЭлементУсловногоОформления.Поля.Элементы.Добавить();

ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(ЭлементыФормы[ИмяПоляВводаЕдиницИзмерения].Имя);

ОтборЭлемента = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип(«ЭлементОтбораКомпоновкиДанных»));

ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(ПутьКПолюОтбора);

ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Заполнено;

ЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра(«Отображать», Ложь);

КонецПроцедуры

Теперь можно открыть конфигурацию в режиме Предприятие и проверить внесенные изменения. При добавлении номенклатуры в колонке Упаковка, Единица хранения будет отображаться единица хранения номенклатуры (т.к. полеУпаковка еще не заполнено), но в колонке можно будет выбрать упаковку.

Автор

Королева Дина

Подписывайтесь на канал
«Полезный 1С»

В телеграм канале — наш практический опыт, бизнес-кейсы и способы повышения эффективности компании, которые мы опробовали внутри группы Neti.

.

Возврат к списку

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

Содержание[Убрать]

    • Введение
      • Связи параметров выбора
        • Пример: Фильтр по контрагенту
        • Пример: Фильтр по Пометке удаления
        • Пример: 2 условия связи
      • Параметры выбора
        • Пример: Отбор по контрагенту

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

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

Если кратко то, Связи параметров выбора настраивают отбор в открываемой форме на основе реквизитов текущего объекта, а Параметры выбора — настраивают отбор на основе жестко установленных значениях

Введение

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

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

Справочник.Контрагенты

Справочник.Договоры

Документ.Приходная

Реквизит: Контрагент

Реквизит: Договор

Список контрагентов

Для контрагентов созданы следующие договоры

graphic

Все дальнейшие настройки будут происходить со свойствами реквизита Договор документа Приходная. Заметьте свойства не элемента формы, а реквизита в дереве конфигурации.

graphic

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

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

Пример: Фильтр по контрагенту

Для этого нужно сделать следующую настройку

graphic

Мы указали, что в открываемой форме Владелец элементов будет значение указанное в нашем объекте(документе) в реквизите Контрагент. Режим изменения = Очищать, означает, что при очистке реквизита Контрагент очиститься и реквизит Договор, т.е. реквизит свойства которого мы настраиваем

И при выбранном Контрагенте «Контрагент 1» откроется следующая форма

graphic

Я не зря пояснял, что наш объект это документ, а не выбранное значение Контрагент, и это хорошо видно на следующем примере

Пример: Фильтр по Пометке удаления

Сделаем следующую настройку

graphic

И тогда при значении «Контрагент 1» у нас откроется следующая форма

graphic

С первого взгляда может показаться, что фильтр отсутствует, но если приглядетсья, то видно, что в списке нет элемента «Договор 2-2», который помечен на удаление. Программа взяла значение пометки удаления документа и отфильтровала по ней список, а т.к. документ не помечен на удаление, то здесь показаны все элементы не помеченные на удаление.

Теперь давайте пометим документ на удаление и заново откроем список.

graphic

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

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

Пример: 2 условия связи

Сделаем следующую настройку

graphic

Отменим удаление документа, выберем контрагента «Контрагент 2» и откроем форму выбора договоров

В форме доступен только один договор «Договор 2-1».

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

Предназначены для указания конкретных значений отбора

Пример: Отбор по контрагенту

Т.к. настройка приосходит в конфигураторе, то доступны только предопределенные элементы, в нашем случае это «Контрагент 3»

Выбираем тип значения

graphic

и выбираем само значение

graphic

теперь независимо от выбранного в документе Контрагента, будут доступны к выбору только договоры Контрагента 3.

graphic

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

graphic

И конечно же можно использовать свойства Связи параметров выбора и Параметры выбора одновременно

graphic

И тогда при выборе договора для контрагента «Контрагент 2», откроется форма

graphic

Как видим открылся список подчиненных договоров и не помеченных на удаление.

Недостаточно прав для комментирования

Понравилась статья? Поделить с друзьями:
  • Bluetooth наушники с большим временем работы
  • 1с скд дополнительные реквизиты номенклатуры
  • Яндекс поддержка бизнеса отзывы сотрудников
  • Blz что это в банковских реквизитах германии
  • 1с справочник найти по нескольким реквизитам