Как получить реквизит табличной части?

1. VKuser241523867 10.04.24 19:12 Сейчас в теме
пишу на 8.3 предприятие

задача следующая:
получить реквизит табличной части и затем, если это ссылка на документ, записать номер этого документа.
механизм определения какого типа этот реквизит имеется, но в коде отсутствует чтобы не засорять взгляд

ВыбранныйДокумент = ЭтотОбъект.Документ;
ТабличныеЧасти = ВыбранныйДокумент.Метаданные().ТабличныеЧасти;

Для Каждого ТабличнаяЧасть ИЗ ТабличныеЧасти Цикл
      Для Каждого РеквизитТЧ Из ТабличнаяЧасть.Реквизиты Цикл
            ИмяРеквизита = РеквизитТЧ.Имя;
            
            Для Каждого СтрокаТЧ ИЗ ВыбранныйДокумент[ТабличнаяЧасть.Имя] Цикл

                  Выполнить("гРеквизит = СтрокаТЧ."+ИмяРеквизита);
Показать



вместо ожидаемых значений реквизитов выдаёт заголовок столбца табличной части
По теме из базы знаний
Найденные решения
4. YozZzhik 10.04.24 21:40 Сейчас в теме
У вас в реквизите Документ лежит ссылка на документ. К нужной табличной части на сервере вы можете обратиться от этой ссылки: Документ.ИмяТабличнойЧасти
Т.е. цикл будет вот такой:
Для Каждого Строка Из Документ.ИмяТабличнойЧасти Цикл

КонецЦикла;

А проверить, лежит ли в поле ссылка или нет, можно проверив на тип:
Если ТипЗнч(Строка.ИмяРеквизита) = Тип("ДокументСсылка.ИмяДокумента") Тогда
МассивНомеров.Добавить(Строка.ИмяРеквизита.Номер;
КонецЕсли;

Лучше, конечно, отобрать такие строки запросом, но для начала можно и так)
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. starjevschik 10.04.24 20:01 Сейчас в теме
тут очевидная путаницу в знаниях. Реквизит табличной части и значение реквизита строки табличной части это разные сущности.
Ты же хочешь получить значение в строке табличной части. А где эта строка? их же много может быть. Надо сначала найти эту нужную строку, а потом уже в ней копаться и искать ссылка на документы.
3. VKuser241523867 10.04.24 20:44 Сейчас в теме
(2) так я же взял строку из табличной части
Для Каждого СтрокаТЧ ИЗ ВыбранныйДокумент[ТабличнаяЧасть.Имя]

не закидывайте ссаными тапками, я реально не понимаю... изучаю 1с примерно две недели
4. YozZzhik 10.04.24 21:40 Сейчас в теме
У вас в реквизите Документ лежит ссылка на документ. К нужной табличной части на сервере вы можете обратиться от этой ссылки: Документ.ИмяТабличнойЧасти
Т.е. цикл будет вот такой:
Для Каждого Строка Из Документ.ИмяТабличнойЧасти Цикл

КонецЦикла;

А проверить, лежит ли в поле ссылка или нет, можно проверив на тип:
Если ТипЗнч(Строка.ИмяРеквизита) = Тип("ДокументСсылка.ИмяДокумента") Тогда
МассивНомеров.Добавить(Строка.ИмяРеквизита.Номер;
КонецЕсли;

Лучше, конечно, отобрать такие строки запросом, но для начала можно и так)
5. VKuser241523867 11.04.24 16:20 Сейчас в теме
(4) мне нужно было проверять универсально. я использовал конструкцию с применением тип.типы. эта часть у меня уже есть и работает (как я и писал в посте)
Оставьте свое сообщение

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