Имя: Пароль:
1C
 
Как Заполнить "СвязиПарамтеровВыбора" программно во внешней обработке.
,
0 Документовед
 
03.08.21
11:32
Внешняя обработка для ERP, по заполнению табличной части.

Открывается форма.

На форме есть элементы "Продукция" и "Спецификация", которые являются реквизитами обработки..

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

Бьюсь, бьюсь не получается.

Может у кого есть пример заполнения СвязиПарамтеровВыбора во внешней обработке?
1 hhhh
 
03.08.21
11:48
(0) нафига еще и во внешней обработке заморачиваться с программным заполнением?
2 Документовед
 
03.08.21
11:49
(1) Как предать на форму выбора Спецификации параметры выбора по Продукции?
3 hhhh
 
03.08.21
11:55
(2) ну типа

Элементы.Спецификации.ОтборСтрок = Новый ФиксированнаяСтруктура("Продукция", Элемент.ТекущиеДанные.Продукция);
4 Документовед
 
03.08.21
12:01
(3) Там немного нет. Но спасибо.
5 Документовед
 
03.08.21
12:02
Получилось самому разобраться, что-то тупил местами.

Если кому понадобится.

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


&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    // Вставить содержимое обработчика.
    
    
    Объект.ссОбъектЗаказ =  Параметры.ОбъектыНазначения[0];

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

    
КонецПроцедуры
2 + 2 = 3.9999999999999999999999999999999...