Имя: Пароль:
1C
1С v8
ИзменитьРеквизиты() ругает на несоответствие типов
0 Dendroid92
 
31.01.17
16:54
Здравствуйте!
Создаю программно таблицу значений:

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

МассивДобавляемыхРеквизитов.Добавить(Новый РеквизитФормы("ФИО", Новый ОписаниеТипов("СправочникСсылка.ФизическиеЛица"),"СводнаяТаблица" ,"ФИО"));
МассивДобавляемыхРеквизитов.Добавить(Новый РеквизитФормы("ЗачетнаяКнига", Новый ОписаниеТипов("СправочникСсылка.ЗачетныеКниги"),"СводнаяТаблица" ,"ЗачетнаяКнига"));
МассивДобавляемыхРеквизитов.Добавить(Новый РеквизитФормы("ФормаОбучения", Новый ОписаниеТипов("СправочникСсылка.ФормаОбучения"),"СводнаяТаблица" ,"ФормаОбучения"));
МассивДобавляемыхРеквизитов.Добавить(Новый РеквизитФормы("РабочийПлан", Новый ОписаниеТипов("ДокументСсылка.УчебныйПлан"),"СводнаяТаблица" ,"РабочийПлан"));
Счетчик = 0;
КвалификаторыДаты = Новый КвалификаторыДаты(ЧастиДаты.Дата);
Для каждого Зап из Объект.Дисциплины Цикл
    Счетчик = Счетчик + 1;
    МассивДобавляемыхРеквизитов.Добавить(Новый РеквизитФормы("Отметка" + Строка(Счетчик), Новый ОписаниеТипов("СправочникСсылка.Отметки"),"СводнаяТаблица" ,"Отметка"));
    МассивДобавляемыхРеквизитов.Добавить(Новый РеквизитФормы("ДатаЗанятия" + Строка(Счетчик), Новый ОписаниеТипов("Дата", , ,КвалификаторыДаты),"СводнаяТаблица" ,"ДатаЗанятия"));
КонецЦикла;

ИзменитьРеквизиты(МассивДобавляемыхРеквизитов);

Выходит, что Массиве присутствую записи с типом РеквизитФормы, тогда почему тогда ругается на код ниже?

МассивДобавляемыхРеквизитов = Новый Массив;
МассивДобавляемыхРеквизитов.Добавить(Рек[1]);
ИзменитьРеквизиты(, МассивДобавляемыхРеквизитов);
1 Dendroid92
 
31.01.17
16:55
(0) P.S. Необходимо удалить эту таблицу и пересоздать
2 Dendroid92
 
31.01.17
16:59
(1)

Рек = ПолучитьРеквизиты();
МассивДобавляемыхРеквизитов = Новый Массив;
МассивДобавляемыхРеквизитов.Добавить(Рек[1]);
ИзменитьРеквизиты(, МассивДобавляемыхРеквизитов);


Разве через Рек = ПолучитьРеквизиты(); я не получаю реквизиты, которые могу удалить?
3 DailyLookingOnA Sunse
 
31.01.17
17:46
Потому что код написан безобразно, без заглядывания в синтакс-помощник.
4 aleks_default
 
31.01.17
17:46
Почитай описание второго параметра. Это не реквизиты а пути к реквизитам
5 Dendroid92
 
01.02.17
10:43
(3) Мне главное понять суть, рефакторинг потом делать буду, когда пойму что почем. И смотрел я в синтаксис-помощник, там только описание, которое я внимательно прочел и пытался ему следовать. В интернете искал, но внятных примеров не нашел =(

(4) Т.е. найти нужный элемент на форме и передать ПутьКДанным в массив для удаления, я тебя правильно понял?
6 Dendroid92
 
01.02.17
10:55
(4) v8: Не могу удалить реквизиты 8.2 Нашел по данной проблеме.

В моем случае нужно было написать:

Рек = ПолучитьРеквизиты();
МассивДобавляемыхРеквизитов = Новый Массив;
МассивДобавляемыхРеквизитов.Добавить(Рек[1].Имя);
ИзменитьРеквизиты(, МассивДобавляемыхРеквизитов);
7 Dendroid92
 
01.02.17
11:07
(4) Спасибо, что указал на то что надо искать в интернете. Тему можно закрыть.
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс