Имя: Пароль:
1C
 
Программное создание реквизита произвольной формы
0 ER1337
 
19.12.17
11:03
Вечер в хату, господа девелоперы :D Всех с наступающим!
Сегодня такой вопрос. Нужно программно создать реквизит произвольной формы с типом "Динамический список". Делаю так:
    МассивРеквизитов = Новый Массив;
    МассивРеквизитов.Добавить(Новый РеквизитФормы("СписокТаблица", Новый ОписаниеТипов("ДинамическийСписок"),,"Поле таблицы"));
    ЭтаФорма.ИзменитьРеквизиты(МассивРеквизитов);

Останавливается с ошибкой "Метод объекта не обнаружен (ИзменитРеквизиты)". Куда копать? По логике вещей, реквизит должен добавляться через этот метод. Пробовал выпонлять действия в процедуре на сервере, результат тот же
1 Lexey_
 
19.12.17
11:09
(0) ИзменитРеквизиты
2 xxTANATORxx
 
19.12.17
11:14
(0)боюсь спросить кому вы делаете доработки, если у вас заход на форум начинается с таких фраз
3 GANR
 
19.12.17
11:20
(2) прошу заметить - 1998 года рождения
4 ER1337
 
19.12.17
11:22
(3) Кушать всем хочется :) И вообще говоря, это уже почти 20 лет
5 GANR
 
19.12.17
11:23
(0) Начни с просмотра значений переменных в отладчике и просмотра описаний их типов в синтаксис помощнике. Стек вызовов глянь - на сервере этот метод выполняется или на клиенте. Доступен ли метод ИзменитьРеквизиты на клиенте/на сервере.
6 nordbox
 
19.12.17
11:23
(4) и что?
7 silent person
 
19.12.17
11:24
Пробовал выпонлять действия в процедуре на сервере


Синтаксис:

ИзменитьРеквизиты(<ДобавляемыеРеквизиты>, <УдаляемыеРеквизиты>)

Доступность:

Сервер, мобильное приложение(сервер).


Надо не пробовать, а делать.
8 vde69
 
модератор
19.12.17
11:25
Ошибка в описании ошибки :)


в ошибке - ИзменитРеквизиты
в коде - - ИзменитьРеквизиты
9 ER1337
 
19.12.17
11:26
(8) Опечатался, вручную писал
10 Lexey_
 
19.12.17
11:28
(0) форма управляемая?
11 ER1337
 
19.12.17
11:28
(10) Да
12 nordbox
 
19.12.17
11:28
(9) скрин сделай и в студию
13 ER1337
 
19.12.17
11:33
(12) Скрин чего?
14 nordbox
 
19.12.17
11:33
&НаСервере
МассивРеквизитов = Новый Массив;
МассивРеквизитов.Добавить(..................<твои художества>
ИзменитьРеквизиты(МассивРеквизитов);
15 hhhh
 
19.12.17
11:36
(13) да, проверь, есть там немного повыше строчка &НаСервере ?
16 Franchiser
 
гуру
19.12.17
11:38
Эта форма не нужно
17 ER1337
 
19.12.17
11:38
18 Lexey_
 
19.12.17
11:40
(17) процедуры объявлять не умеешь
19 ER1337
 
19.12.17
11:42
(18) Не допечатал просто, поленился, суть то в другом
20 vde69
 
модератор
19.12.17
11:42
(17) в 1с при описании процедур/функций после имени обязательно должна быть скобка, у тебя ее нет...
21 Lexey_
 
19.12.17
11:45
(19) в чем же суть?
22 nordbox
 
19.12.17
11:45
(19) >>Не допечатал просто
в программировании нет такого понятия,
1с еще телепатическими способностями не наделена
23 silent person
 
19.12.17
11:45
(17) ну молодец, реквизит формы добавил. А теперь добавь его к элементам формы.

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    //Вставить содержимое обработчика
    ШрифтШапки = Новый Шрифт("Verdana", 20,Истина);
    МассивЭлементов = Новый Массив();
    МассивЭлементов.Добавить("Первое ");
    МассивЭлементов.Добавить(Новый ФорматированнаяСтрока("второе ",ШрифтШапки));
    МассивЭлементов.Добавить("третье ");
    МассивЭлементов.Добавить(Новый ФорматированнаяСтрока("четвертое",ШрифтШапки));
    Реквизит1 = Новый ФорматированнаяСтрока(МассивЭлементов);
    
    
    МассивРеквизитов = Новый Массив;
    МассивРеквизитов.Добавить(Новый РеквизитФормы("Реквизит2", Новый ОписаниеТипов("ФорматированнаяСтрока"),,));
    ЭтаФорма.ИзменитьРеквизиты(МассивРеквизитов);
    
    ЭтаФорма.Реквизит2 = Новый ФорматированнаяСтрока(МассивЭлементов);    
    НовыйЭлемент = Элементы.Добавить("Реквизит2", Тип("ПолеФормы"));
    НовыйЭлемент.ПутьКДанным = "Реквизит2";
КонецПроцедуры

Реквизит2 - добавлен полностью программно.
24 vde69
 
модератор
19.12.17
11:46
там опечатался, тут не допечатал... короче растет новое поколение ....

ты это самое, давай сюда не заготовку выкладывай а конкретную проблему...

а то сейчас похоже
хирург звонит другу - у меня проблема, я печень не могу найти у клиента.
Друг - фотку скинь
Хирург - вот фотка трепанации черепа, но суть не в этом
25 silent person
 
19.12.17
11:49
а вообще вот https://its.1c.ru/db/pubmanagedui#content:247:hdoc

Добавление динамического списка
....
Теперь эти же самые действия выполним программно, из встроенного языка.
26 nordbox
 
19.12.17
11:51
(17) из того что там написал

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

(25) Ты думаешь у него доступ есть?
хотя на 7 дней оформит сам
27 ER1337
 
19.12.17
11:53
(26) Есть доступ, не переживайте