Имя: Пароль:
1C
1С v8
Проблема при добавлении обычной группы формы
,
0 satoru
 
12.01.18
10:46
На управляемой форме создаю обычную группу программным путем и программа выдаёт ошибку:

{Документ.ПеремещениеТоваров.Форма.ФормаВводаПеремещения.Форма(956)}: Ошибка при вызове метода контекста (Добавить)
            ГруппаДляКнопок = Элементы.Добавить("ГруппаДляКнопок"+КоличествоГрупп+"",Тип("ОбычнаяГруппаФормы"),Элементы.ГруппаПодборКнопки);
по причине:
Недопустимое значение параметров



Платформа 8.3.10.2168
Конфигурация Управление торговлей для Украины ред. 2.3
1 hhhh
 
12.01.18
10:51
(0) может нельзя обычную группу внутрь кнопки впихивать?
2 satoru
 
12.01.18
10:53
(1) Элементы.ГруппаПодборКнопки - это тоже обычная группа
3 Тихий омут
 
12.01.18
10:54
(0) Тип("ГруппаФормы"), не? Чёт не вижу  в ЖКК типа "ОбычнаяГруппаФормы"
4 dezss
 
12.01.18
10:55
какой тип у Элементы.ГруппаПодборКнопки?
5 dezss
 
12.01.18
10:57
и попробуй явное преобразование, т.е. не "+КоличествоГрупп+", а "+Строка(КоличествоГрупп)+".
6 satoru
 
12.01.18
10:59
(4) тип "ГруппаФормы"
7 dezss
 
12.01.18
11:01
(5) + просто у тебя ошибка "Недопустимое значение параметров", т.е. не указан номер неправильного параметра, а это говорит, ИМХО, о том, что дело не в параметрах метода, а в том, что происходит до этого, т.е. в конкатенации.
8 satoru
 
12.01.18
11:02
Поменял код, с учетом замечаний:
            ГруппаДляКнопок = Элементы.Добавить("ГруппаДляКнопок"+КоличествоГрупп+"",Тип("ГруппаФормы"),Элементы.ГруппаПодборКнопки);
            ГруппаДляКнопок.Вид = ВидГруппыФормы.ОбычнаяГруппа;

И всё заработало. Всем спасибо.
9 satoru
 
12.01.18
12:45
В продолжении темы ещё момент: кнопки добавляются, но необходимо ещё, чтобы на кнопках отображалось изображение товара. Но согласно СП картинка может быть только из библиотеки, так же это касается и декорации формы.
Вопрос: выходит, что если программно создать любой объект на форме, который содержит атрибут "Картинка", нельзя указывать программным путем картинку из файла, хранилища и т.п.?
10 satoru
 
12.01.18
14:44
Нашёл костыльный способ, может кому-то пригодится:
        //добавляем картинку через создание нового реквизита
        ИмяРеквизита = "АдресКнопки"+СокрЛП(Строка.Код)+"";
        РеквизитКнопки = Новый РеквизитФормы(ИмяРеквизита,Новый ОписаниеТипов("Строка"));
        //добавляем новый реквизит, если его нет в форме
        Попытка
            РеквизитКнопки = ЭтаФорма[ИмяРеквизита];
        Исключение
            Массив = Новый Массив;
            Массив.Добавить(РеквизитКнопки);
            ИзменитьРеквизиты(Массив);
        КонецПопытки;
        //создаём поле с видом "ПолеКартинки"
        ИзображениеКнопки = Элементы.Добавить("ИзображениеКнопки"+СокрЛП(Строка.Код)+"",Тип("ПолеФормы"),ГруппаКнопки);
        ИзображениеКнопки.ПутьКДанным = ИмяРеквизита;
        ИзображениеКнопки.Вид = ВидПоляФормы.ПолеКартинки;