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

СвязиПараметровВыбора... у колонки ТЧ на УФ

СвязиПараметровВыбора... у колонки ТЧ на УФ
Я
   warkan
 
30.07.19 - 09:18
Миста, вразуми, пожалуйста.

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

&НаСервере
Процедура ИзмТипКолонкиСчетчики()
    
    табСчетчики = Объект.Счетчики.Выгрузить();
    табСчетчики.Колонки.Добавить("Счетчик", Новый ОписаниеТипов("СправочникСсылка.Расш1_Счетчики"));
    Объект.Счетчики.Загрузить(табСчетчики);
    
    ДобавляемыеРеквизиты = Новый Массив;
    ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы("Счетчик", Новый ОписаниеТипов("СправочникСсылка.Расш1_Счетчики"), "Объект.Счетчики", "спр.Счетчик"));
    ИзменитьРеквизиты(ДобавляемыеРеквизиты);
    
    ЭлементРеквизита = Элементы.Добавить("СчетчикиСчетчик", Тип("ПолеФормы"), Элементы["Счетчики"]);
    ЭлементРеквизита.ПутьКДанным = "Объект.Счетчики.Счетчик"; // ИмяРеквизитаДанныеФормыКоллекция + "." + Колонка.Имя;
    ЭлементРеквизита.Вид = ВидПоляФормы.ПолеВвода;
    
    
    //* связи выбора
    НовыйМассив = Новый Массив();
    НовыйМассив.Добавить(Новый СвязьПараметраВыбора("Отбор.Владелец", "СчетчикиФизЛицо"));
    
    НовыеСвязи = Новый ФиксированныйМассив(НовыйМассив);
    
    Элементы["СчетчикиСчетчик"].СвязиПараметровВыбора = НовыеСвязи;    
    
КонецПроцедуры


Ругается на недопустимое значение: .....Форма(454)}: Ошибка при установке значения атрибута контекста (СвязиПараметровВыбора)
    Элементы["СчетчикиСчетчик"].СвязиПараметровВыбора = НовыеСвязи;    
по причине:
Недопустимое значение

Что ей нужно?
В отладчике смотрю - есть "Элементы["СчетчикиСчетчик"]" и параметр "СвязиПараметровВыбора" у него есть. И он даже "ФиксированныйМассив".
А не едет...(((

Надоумьте, пожалуйста, люди добрые!!!


Спасибо!
 
 
   olegves
 
1 - 30.07.19 - 09:25
(0) в какой момент вызываешь ИзмТипКолонкиСчетчики? Случаем, не при начале добавления строки?
   warkan
 
2 - 30.07.19 - 10:22
Нет. ПриОткрытии().
   warkan
 
3 - 30.07.19 - 10:23
А как правильнее?

Пробовал в ПриСозданииНаСервере(), но... в этот момент, похоже, формы ещё нет в природе...
   olegves
 
4 - 30.07.19 - 10:31
(3) вот там и надо
   olegves
 
5 - 30.07.19 - 10:33
+(4) а если условия не динамические, то лучше в конфигураторе в свойствах формы прописать
   warkan
 
6 - 30.07.19 - 10:34
(4) А оно там ругается...
Но, может, неправильно именую объекты...
Указание колонки ТЧ: так правильно ["СчетчикиСчетчик"]?
ТЧ - Счетчики, колонка - Счетчик.
И, соответственно, "СчетчикиФизЛицо": ТЧ - Счетчики, колонка - ФизЛицо.

Попробую.
Спасибо.
   pyha
 
7 - 30.07.19 - 10:41
(6) "Элементы.Счетчики.Текущие данные.ФизЛицо" у меня в свойствах формы конструктор построил так. Причем "Текущие данные" почему то с пробелом
   warkan
 
8 - 30.07.19 - 13:22
(5) - условия не динамические, но в Конфигураторе не указать - справочник "Счетчики" из Расширения. Конфигуратор этот справочник не "видит".

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


В отладчике:
Элементы.СчетчикиСчетчик.СвязиПараметровВыбора = ФиксированныйМассив
НовыеСвязи                                   = ФиксированныйМассив

Причем, в первом случае, размер массива 0, а во втором 1 значение есть.
А присвоить (Элементы.СчетчикиСчетчик.СвязиПараметровВыбора = НовыеСвязи;) не дает:
Ошибка при установке значения атрибута контекста (СвязиПараметровВыбора)
    Элементы.СчетчикиСчетчик.СвязиПараметровВыбора = НовыеСвязи;    
по причине:
Недопустимое значение

Почему - не понятно. Может "Элементы.СчетчикиСчетчик" не может иметь значения в параметре "СвязиПараметровВыбора"?

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