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