Как реализовать следующую функциональность в 1с 8.2.
Есть справочник элементов. В каждом элементе есть табличная часть с тремя реквизитами:
1. Реквизит документа.
2. Значение по умолчанию.
3. "Галка" возможности редактирования реквизита
1. Как получить список реквизитов документа и добавить ее в табличную часть. (принцип работы такой же как и со справочниками)?
2. Если выбран реквизит, то согласно типа реквизита получить его значения, и выбрать его для второго реквизита колонки.
Для получения реквизитов документа можете использовать код:
Для Каждого Реквизит Из Документ.Метаданные().Реквизиты Цикл
НоваяСтрока = РеквизитыДокумента.Добавить();
НоваяСтрока.Реквизит = Реквизит.Имя;
НоваяСтрока.Значение = Документ[Реквизит.Имя];
КонецЦикла;
РеквизитыДокумента - таблица значений с двумя полями "Реквизит" и "Значение".
А для получения табличных частей документа и их реквизитов можете использовать следующий код:
Для Каждого ТабличнаяЧасть Из Документ.Метаданные().ТабличныеЧасти Цикл
Сообщить(ТабличнаяЧасть);
Для Каждого РеквизитТЧ Из ТабличнаяЧасть.Реквизиты Цикл
Сообщить(" - " + РеквизитТЧ);
КонецЦикла
КонецЦикла;
Остальные моменты я думаю не составит труда разобрать самому.
1. Метаданные.Документы.[ИмяДокумента].Реквизиты (выполнять на сервере)
Решение второго вопроса вытекает из первого. Смотрите тип значения, во второй колонку вставляете пустое значение такого типа (0, "", Дата(1,1,1), Документы[ИмяДокумента].ПустаяСсылка и т.д.). Необходимо также запретить редактирование типа значения во второй колонке.