Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 12:08

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

Автор Кот_Леопольд, 27 сен 2018, 14:20

0 Пользователей и 1 гость просматривают эту тему.

Кот_Леопольд

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

P.S: Отнесись с пониманием, я только учусь!!!
Конфигурацию пишу сам, платформа 8.3.

wise

Представьте себе, какая была бы тишина, если бы люди говорили только то, что знают

АлександрВладимирович

Создайте форму выбора для справочника Контрагенты (ФормаВыбораТолькоЗаказчики), только не основную, а то везде будут только заказчики. Ну и выберете ее в документе Заказ для реквизита Заказчик.

В форме (ФормаВыбораТолькоЗаказчики) надо настроить реквизит Список (Список - Настройка списка - Открыть).
На закладке Условное оформление добавить Видимость = Ложь, Условие - Группа НЕ и в ней Ссылка В группе Справочник.Контрагенты.Заказчики.

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

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
   Элементы.Список.ТекущийРодитель = Справочники.Контрагенты.Заказчики;
КонецПроцедуры

DTшник с примером:
https://drive.google.com/file/d/1KH6mdwVg_0urtzUPUaUyTa_DLSpxFEhJ

wise

(2) "}{ОРОШИЙ" совет :-D
и главное "УНИВЕРСАЛЬНЫЙ" :-D

а ЕСЛИ таких документов 10 с РАЗНЫМИ отборами, то создать 10 форм?? ;-)
Представьте себе, какая была бы тишина, если бы люди говорили только то, что знают

АлександрВладимирович

В задаче ТСа документ 1.
А если будет 10, и требования к форме выбора будут до безобразия похожи и только стартовая группа разная, тогда конечно одна универсальная форма будет оптимальнее.

Например, проверять параметр выбора Отбор.Родитель и устанавливать видимость программно:

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

Кот_Леопольд

ЦитироватьСоздайте форму выбора для справочника Контрагенты (ФормаВыбораТолькоЗаказчики), только не основную, а то везде будут только заказчики. Ну и выберете ее в документе Заказ для реквизита Заказчик.

В форме (ФормаВыбораТолькоЗаказчики) надо настроить реквизит Список (Список - Настройка списка - Открыть).
На закладке Условное оформление добавить Видимость = Ложь, Условие - Группа НЕ и в ней Ссылка В группе Справочник.Контрагенты.Заказчики.

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

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
   Элементы.Список.ТекущийРодитель = Справочники.Контрагенты.Заказчики;
КонецПроцедуры
Этот способ отработал. Все работает.:ooifh: Создал две ФормыВыбора одну для Заказчика вторую для Поставщика!!!
А способ с уневерсальнойФормой почемуто не отработал, отображает обе группы:dfbsdfbsdf:

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск