Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

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

СвязиПараметровВыбора
Я
   noffkj
 
14.01.19 - 15:12
Добрый день.

Есть 2 документа.
1. Документ1
Реквизит ДатаДок
И табличная часть с одним реквизитом Номер.

2. Документ2
Табличная часть
Ревизиты: Номер,СсылкаДок1,ДатаДок1

В форме 2ого документа есть процедура

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    Элементы.ТабличнаяЧасть1Ссылка.СвязиПараметровВыбора  = Новый ФиксированныйМассив(Новый массив);
    НовыйМассив = Новый Массив();
    
    НоваяСвязь = Новый СвязьПараметраВыбора("Отбор.ДатаДок", "Элементы.ТабличнаяЧасть1.ТекущиеДанные.ДатаДок1");
    НовыйМассив.Добавить(НоваяСвязь);
    
    НовыеСвязи = Новый ФиксированныйМассив(НовыйМассив);
    Элементы.ТабличнаяЧасть1Ссылка.СвязиПараметровВыбора = НовыеСвязи;
КонецПроцедуры

Все прекрасно работает.

Собственно вопрос. Как сделать программно связьПараметравыбора к строке табличной части Документа1?
В пользовательском режиме это можно сделать и выглядит это следующим образом.
http://prntscr.com/m6yyck
 
 
   Buster007
 
1 - 14.01.19 - 15:31
какой-то бредовый отбор ты пытаешься сделать
   noffkj
 
2 - 14.01.19 - 15:33
ок. ошибся.
вот так.
http://prntscr.com/m6za92
   Numerus Mikhail
 
3 - 14.01.19 - 15:35
Попробуй через параметры выбора, а не через связи параметров.
   noffkj
 
4 - 14.01.19 - 15:44
(3) Неа. не работает. даже в самом конструкторе нет отбора к табличной части.
http://prntscr.com/m6zewz
Что в связи параметров выбора, так и в параметрах выбора
   noffkj
 
5 - 14.01.19 - 15:48
Такая конструкция выдает ошибку
НоваяСвязь = Новый ПараметрВыбора("Отбор.ТабличнаяЧасть1.Номер", "Элементы.ТабличнаяЧасть1.ТекущиеДанные.Номер");

Если руками прописать в конструкторе то тоже ошибка.

http://prntscr.com/m6zhyq
   noffkj
 
6 - 15.01.19 - 12:51
Для тех кто нарвется на эту тему.
такое можно реализовать только обходным путем.

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

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует