программно задать параметры выбора 1с

Свойство элемента формы ‘ПараметрыВыбора’

Очередная полезная заметка в рубрике ‘Джуниор 1с’. Рассмотрим полезное свойство элемента формы ‘ПараметрыВыбора’ (ChoiceParameters), с помощью которого мы можем ограничить список выбираемых элементов по заданному отбору.

Пример работы с данным свойством рассмотрим в конфигурации 1с ‘БитФинанс’. Что бы было понятно и нагляднее напишем простую обработку, с помощью которой уже изучим данное свойство.

И так, создаем новую обработку и добавляем на неё реквизит ‘СтатьяОборотов’ типа ‘СправочникСсылка.бит_СтатьиОборотов’:

У этого элемента справочника есть реквизит ‘ТипСтатьи’ / ‘ПеречислениеСсылка.бит_ТипыСтатейОборотов’:

Так как же сделать что бы при выборе статьи оборотов нам выходил список только с теми элементами, у которых реквизит ‘ТипСтатьи‘ = ‘БДР’? А очень просто, для этого нам нужно свойство элемента формы ‘ПараметрыВыбора’:

Поскольку параметры выбора это у нас ‘ФиксированныйМассив’, то мы можем задавать несколько условие отбора – все отборы будут работать в связке ‘И’:

программно задать параметры выбора 1с. Смотреть фото программно задать параметры выбора 1с. Смотреть картинку программно задать параметры выбора 1с. Картинка про программно задать параметры выбора 1с. Фото программно задать параметры выбора 1с Параметры выбора – это фиксированный массив.

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

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

Все это можно проделать и программным способом, я считаю его более гибким, так как там можно реализовывать любую логику выбора элементов. Создаем событие у элемента ‘СтатьяОборотовНачалоВыбора’ и прописываем алгоритм заполнения фиксированного массива параметров выбора:

Источник

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

Задача: при открытии формы выбора плана счетов необходимо ограничить список только некоторыми. Устанавливаю:

Тебе никто не говорил что за такое руки отрывать нужно?

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

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

Надеюсь ты в курсе что добавленные объекты тем и хороши что они не мешают использовать типовые обновления?
В чем же именно будет состоять гемор?

И еще раз себя процитирую

Это и есть тот страшный геомор который навсегда привязывает клиента?
Сисадмин и «о-ужас-даже-бухгалтер» сможет накатить типовое обновление на конфигурацию в которую добавлен регистр сведений или пара «лишних» констант все что ему потребуется это еще раз нажать на кнопку «Далее»

Пока работал в фрачайзи неоднократно сталкивался с такими кусками кода которые переставали работать потому что пользователь поменял код.
В том числе не раз видел как меняли код и у плана счетов. Чаще всего меняют у субсчетов 76-го и 10-го

Всегда подозревал что бюджетку пишут безрукие уроды 🙂
В ERP таких вхождений всего 267.
Причем в основном код в таких случаях это переменная.
Когда параметр задается строкой это валюты и единицы измерения.

И только один раз идет поиск по коду балансового счета заданного строкой.

Источник

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

Добрый день, коллеги!

Вопрос по установки связи параметров выбора не в свойствах реквизита, а в коде. Как я делаю, написал процедуру:

И вставляю при открытии формы. Но при открытии он пишет ошибку:
Ошибка при установке значения атрибута контекста (СвязиПараметровВыбора)
Элементы.НоменклатураЗаказаПереработчика.СвязиПараметровВыбора = Новый ФиксированныйМассив(НовыйМассив);
по причине:
Недопустимое значение

В чем может быть проблема?
Заранее спасибо

(5) в серверный модуль. Взял из бп 3.0, увы вызова там нигде нет.
Вот попробовал сперва очистить параметры, а потом добавить как в Вашем примере, вроде установилось

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

(5) в серверный модуль. Взял из бп 3.0, увы вызова там нигде нет.
Вот попробовал сперва очистить параметры, а потом добавить как в Вашем примере, вроде установилось

В ERP ХарактеристикаНоменклатуры может быть подчинена как самой Номенклатуре, так и быть общей для ВидаНоменклатуры, который является реквизитом Номенклатуры. В последнем случае связь с владельцем получается не прямая, и использовать «Отбор.Владелец» не имеет смысла. Попробуйте вместо «Отбор.Владелец» указать «Номенклатура». В этом случае в ФормеВыбора ХаракеристикиНоменклатуры в процедуре ПриСозданииНаСервере выполняется анализ, кто является настоящим владельцем Характеристики и устанавливается соответствующий отбор.

Если Параметры.Отбор.Свойство(«Владелец») Тогда
// Перенесем «стандартный» отбор по владельцу в свойство ПараметрВладелец
Параметры.ПараметрВладелец = Параметры.Отбор.Владелец;
Параметры.Отбор.Удалить(«Владелец»);
КонецЕсли;

Если Параметры.Свойство(«ПараметрВладелец», ВладелецХарактеристик) И ЗначениеЗаполнено(ВладелецХарактеристик) Тогда
ПодборТоваровСервер.УстановитьОтборПоВладельцуХарактеристик(ЭтаФорма);
ИначеЕсли Параметры.Свойство(«Номенклатура», Номенклатура) И ЗначениеЗаполнено(Номенклатура) Тогда
Если Справочники.Номенклатура.ПроверитьИспользованиеХарактеристикИПолучитьВладельцаДляВыбо ­ра(Номенклатура, ВладелецХарактеристик) Тогда
Если ВладелецХарактеристик = Неопределено Тогда
ТекстИсключения = НСтр(«ru = ‘Для данной номенклатуры характеристики не заданы.'»);
ВызватьИсключение ТекстИсключения;
Иначе
ПодборТоваровСервер.УстановитьОтборПоВладельцуХарактеристик(ЭтаФорма);
КонецЕсли;
Иначе
ТекстИсключения = НСтр(«ru = ‘Для данной номенклатуры отключено использование характеристик.'»);
ВызватьИсключение ТекстИсключения;
КонецЕсли;
КонецЕсли;

Источник

Свойство элемента формы ‘СвязиПараметровВыбора’

Автор: Admin 25 сентября, 2019 0 комментария

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

По простому – это свойство отвечает за формирование списка элементов в форме выбора по установленном отбору. Рассмотрим простой пример.

У нас есть справочник [Футбольные клубы] и у него есть реквизит [Страна]:

Пользователь хочет, что бы при выборе футбольного клуба в обработке, появлялся только список из клубов, указанной ранее страны:

Делается это очень просто через свойство элемента формы ‘Клуб’ / ‘Связи параметров выбора’:

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

По-простому: указываем какой отбор мы будем применять в списке выбора и реквизит, откуда отбор возьмет необходимое значение. Параметр ‘Режим изменения связанного значения’ определяет, будет ли при изменении реквизита отбора ‘Страна’ очищаться значение в реквизите ‘Клуб’.

Так же стоит заметить что здесь мы можем задать одновременно несколько необходимых нам отборов!

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

Источник

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Источник

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

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