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