Элементы.Добавить НЕ РАБОТАЕТ

1. user1222686 1 07.12.21 17:42 Сейчас в теме
Добрый час суток уважаемые!

Управление торговлей, редакция 11 (11.4.13.209)
платформа 8.3.17

Благополучно разобрался с подсистемой БСП ТекущиеДела, но как обычно бывает шефу захотелось эдок извернуться, хотел по мягче послать, но стало интересно.

Метод Элементы.Добавить типовой работает, а добавляю свой не работает, и это не все. (Управляемые формы на сервере).

Просто копирую типовой код и вставляю ниже в той же процедуре, свое убираю естественно, и выдает ошибку!


Ошибка при вызове метода контекста (Добавить)
Элемент = Элементы.Добавить("ВидыЦен", Тип("СписокЗначений"));
по причине:
Недопустимое значение параметров




НаСервере
Процедура СоздатьДело(Дело, Группа, ВключенаВидимостьДела)
    
    ЗаголовокДела = Дело.Представление + ?(Дело.Количество <> 0," (" + Дело.Количество + ")", "");
    
    Элемент = Элементы.Добавить(Дело.Идентификатор, Тип("ДекорацияФормы"), Группа); // РасширениеПоляФормыДляПоляНадписи
    Элемент.Вид = ВидДекорацииФормы.Надпись;
    Элемент.ГоризонтальноеПоложение = ГоризонтальноеПоложениеЭлемента.Лево;
    Элемент.Заголовок = ЗаголовокДела;
    Элемент.Видимость = (ВключенаВидимостьДела И Дело.ЕстьДела);
    Элемент.АвтоМаксимальнаяШирина = Ложь;
    Элемент.Гиперссылка = ЗначениеЗаполнено(Дело.Форма);
    Элемент.УстановитьДействие("Нажатие", "Подключаемый_ОбработатьНажатиеНаГиперссылку");
    Если Дело.Важное Тогда
        Элемент.ЦветТекста = ЦветаСтиля.ПросроченныеДанныеЦвет;
    КонецЕсли;
    
    Если ЗначениеЗаполнено(Дело.Подсказка) Тогда
        Подсказка                    = Новый ФорматированнаяСтрока(Дело.Подсказка);
        Элемент.Подсказка            = Подсказка;
        Элемент.ОтображениеПодсказки = ОтображениеПодсказки.Кнопка;
    КонецЕсли;
    
    //++ ЭТОГО НЕТ В ТИПОВОЙ
    Элемент1 = Элементы.Добавить("ВидыЦен", Тип("СписокЗначений")); //РУГАЕТСЯ СЮДА! Недопустимое значение параметров
    Элемент1.ПутьКДанным = "ВидыЦен";
    ВидыЦен.Добавить("Зн1","Зн1",Истина);
    //--ЭТОГО НЕТ В ТИПОВОЙ
    
    
КонецПроцедуры
Показать
milov.aleksey; +1 Ответить
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. spacecraft 07.12.21 17:53 Сейчас в теме
(1) СП почитать?

ВсеЭлементыФормы (FormAllItems)
Добавить (Add)
Синтаксис:
Добавить(<Имя>, <ТипЭлемента>, <Родитель>)
Параметры:
<Имя> (обязательный)
Тип: Строка.
Уникальное имя добавляемого элемента.
<ТипЭлемента> (обязательный)
Тип: Тип.
Тип добавляемого элемента.
<Родитель> (необязательный)
Тип: ГруппаФормы, ТаблицаФормы, ФормаКлиентскогоПриложения.
Родитель для добавляемого элемента.
Если не указан, то добавляется на верхний уровень.
Возвращаемое значение:
Тип: ДекорацияФормы, ГруппаФормы, КнопкаФормы, ТаблицаФормы, ПолеФормы.
Показать

Выделенное это и есть возможные типы элементов формы. Выбирайте из них.
4. user1222686 1 07.12.21 18:09 Сейчас в теме
(3)
ВсеЭлементыФормы


Ну хорошо, сделал так:

Элемент = Элементы.Добавить("Таблица", Тип("ТаблицаФормы"), Группа);

та же ошибка.
6. spacecraft 07.12.21 18:22 Сейчас в теме
(4)
та же ошибка.

Если "Недопустимое значение параметров", то возможно элемент с именем "Таблица" уже существует.
7. spacecraft 07.12.21 18:25 Сейчас в теме
(4) вот пример, который должен нормально отрабатывать:
СЗ = Элементы.Добавить("СЗ", Тип("ТаблицаФормы"));
СЗ.ПутьКДанным = "ИмяРеквизитаФормы";
СЗЗначение = Элементы.Добавить("СЗЗначение", Тип("ПолеФормы"), СЗ);
СЗЗначение.Вид = ВидПоляФормы.ПолеВвода;
СЗЗначение.ПутьКДанным = "ИмяРеквизитаФормы.Значение";
8. spacecraft 07.12.21 18:38 Сейчас в теме
(4) эта процедура "СоздатьДело" она вызывается несколько раз для каждого дела ведь?
Вот и получается, что ваш же код так же несколько раз пытается создать элемент формы с одним и тем же именем, что и приводит к ошибке.
Ищите другое место присоединения для своего кода.
user1222686; +1 Ответить
12. user1222686 1 08.12.21 08:25 Сейчас в теме
(8)А вот это весьма интересный аргумент.
2. GPL 3 07.12.21 17:51 Сейчас в теме
имхо, для Элементов формы тип("списокЗначений") не походит
тип("списокЗначений") для реквизитов формы
Прикрепленные файлы:
5. user1222686 1 07.12.21 18:13 Сейчас в теме
(2)
Элемент = Элементы.Добавить("Таблица", Тип("ТаблицаФормы"), Группа);


попробовал так, ошибка та же.
9. GPL 3 07.12.21 19:15 Сейчас в теме
(5) так почему таблица-то? это разве не поле для выбора значения реквизита?

ЭлементНовый = Элементы.Добавить("ВидЦены", Тип("ПолеФормы"), Группа);
ЭлементНовый .ПутьКДанным = "ВидыЦен";


к этому моменту у формы должен быть реквизит ВидыЦен
10. spacecraft 07.12.21 21:16 Сейчас в теме
(9)
так почему таблица-то? это разве не поле для выбора значения реквизита?

Можно выводить и как таблица и как поле. Все зависит от необходимости вида отображения.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот