Как можно получить значение колонки табличной части?
По теме из базы знаний
- Универсальное заполнение табличных частей
- Перечень множественных значений в ячейке динамического списка. Как стало и как было
- Альтернативная загрузка из файла в табличную часть или использование подсистемы БСП "Загрузка данных из файла"
- Табличная часть в доп. реквизитах и формирование таблиц в шаблоне docx для 1С:ДО 3.0
- Расширяем возможности дополнительных обработок и настраиваем их отладку
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(3)
В данном коде Номенклатура это необъявленная переменная, на которую и ругается. Нужно передавать строку:
ЗначениеКолонки = ЭлементыФормы.Товары.Колонки.ТекущиеДанные[Номенклатура];
В данном коде Номенклатура это необъявленная переменная, на которую и ругается. Нужно передавать строку:
ЗначениеКолонки = ЭлементыФормы.Товары.ТекущиеДанные["Номенклатура"];
(3)
ТекущиеДанные в таблице - это строка.
Получив строку - можно в ней найти значение в нужной колонке:
Подразумевается что "Номенклатура" это название (идентификатор) нужной колонки
ЗначениеКолонки = ЭлементыФормы.Товары.Колонки.ТекущиеДанные[Номенклатура];
ТекущиеДанные в таблице - это строка.
Получив строку - можно в ней найти значение в нужной колонке:
ЗначениеКолонки = ЭлементыФормы.Товары.ТекущиеДанные["Номенклатура"];
Подразумевается что "Номенклатура" это название (идентификатор) нужной колонки
значение колонки табличной части
Это же и будет реквизит табличной части. Зная его имя, например "Контрагент" к нему можно обратитьсяЗначениеКонтрагента = ЭлементыФормы.МояТаблЧасть.ТекущиеДанные["Контрагент"]
Если вы добавили свою произвольную колонку в таблицу, у которой в свойстве "Данные" указано на какую-либо табличную часть, то обратиться к такой колонке и прочитать из нее значение по моему нет возможности. Можно только в событии "ПриВыводеСтроки" что-то выводить в эту свою произвольную колонку.
(12) Для обычных форм, если у табличного поля в свойстве данные указано ТЧ (например "Товары" как в вашем примере), ваш код вывалится с ошибкой "Индекс находится за границами массива" уже при индексе равном 0 т.е. на первой же строке. Получить отдельно взятую строку табличного поля, у которого в свойстве данные указано ТЧ по индексу нет возможности, если не ошибаюсь можно только для выделенного диапазона строк и еще предполагаю может быть в событии ПриВыводеСтроки.
(14) Согласен. Находился в заблуждении. Спасибо, продемонстрировали рабочий вариант.
На своем примере у меня ТЧ и ТП имеют разные имена. И я обращался ТП[Индекс]. Это не работало. Выходила ошибка: "Индекс находится за границами массива". И оказывается ТЧ[Индекс].МояПроизвольнаяКолонкаВ_ТП - рабочий вариант.
На своем примере у меня ТЧ и ТП имеют разные имена. И я обращался ТП[Индекс]. Это не работало. Выходила ошибка: "Индекс находится за границами массива". И оказывается ТЧ[Индекс].МояПроизвольнаяКолонкаВ_ТП - рабочий вариант.
(14) Все таки я был прав. Вот такой код у меня вываливается с ошибкой: Получение элемента по индексу для значения не определено
СпискиКонтрагентов[ИндексСтроки].СписокКонтрагентов =
В вашем примере из УТ 10.3 Цена является реквизитом ТЧ. И вы обращаетесь к строке ТЧ через индекс - так можно. Но если у вас произвольная колонка в ТП, у которой данные ТЧ, то ничего не получается. К строке ТП не подобраться никак.
Процедура ПриЗаписи(Отказ)
Для ИндексСтроки = 0 По СпискиКонтрагентов.Количество()-1 Цикл
СпискиКонтрагентов[ИндексСтроки].СписокКонтрагентов =
Новый ХранилищеЗначения(ЭлементыФормы.СпискиКонтрагентов[ИндексСтроки].СписокКонтрагентовТП);
КонецЦикла;
СпискиКонтрагентов[ИндексСтроки].СписокКонтрагентов =
В вашем примере из УТ 10.3 Цена является реквизитом ТЧ. И вы обращаетесь к строке ТЧ через индекс - так можно. Но если у вас произвольная колонка в ТП, у которой данные ТЧ, то ничего не получается. К строке ТП не подобраться никак.
(16)
Не совсем понял, что тут у вас имелось ввиду. Если колонка не привязана к данным - можно установить ее текст. Получить - хз как..
В типовых такая штука работает в журналах документов и табличных частях.
2 варианта:
либо ПриПолученииДанных() что предпочтительнее для производительности
либо ПриВыводеСтроки()
Но если колонка не привязана к данным - как ее редактировать интерактивно?
Программно - понятно, а вот пользюку - эта колонка чисто информативная вещь.
Вот попробуйте в типовой УТ 10.3 изменить врукопашную колонку "Всего" в документе РТиУ
UPD: Пока писал - FatPanzer уже на все ответил =)
Но если у вас произвольная колонка в ТП, у которой данные ТЧ,
Не совсем понял, что тут у вас имелось ввиду. Если колонка не привязана к данным - можно установить ее текст. Получить - хз как..
В типовых такая штука работает в журналах документов и табличных частях.
2 варианта:
либо ПриПолученииДанных() что предпочтительнее для производительности
либо ПриВыводеСтроки()
Но если колонка не привязана к данным - как ее редактировать интерактивно?
Программно - понятно, а вот пользюку - эта колонка чисто информативная вещь.
Вот попробуйте в типовой УТ 10.3 изменить врукопашную колонку "Всего" в документе РТиУ
UPD: Пока писал - FatPanzer уже на все ответил =)
Прикрепленные файлы:
1. Получить строку по индексу.
Можно легко получить строку ТЧ по индексу. Но по строке ТЧ не получишь значение в произвольной колонке.2. Получить оформление строки.
Оформление строки - это для строки ТП в событии ПриВыводеСтроки реализовано. А например перебрать строки ТП и записать значения в произвольной колонке в реквизит типа ХранилищеЗ. - не получается. Не подберешься к строкам ТП никак.
(21) И в чем проблема скрестить две строки? По моему в обычных формах это никогда не было проблемой. Это в УФ их сильно разнесли по сути, и поиск стал возможен через посредник-идентификатор...
А в обычных просто перебиралась таблица. Для чтения/записи реквизитов использовалось Строка.Реквизит. Для чтения/записи допколонки использовалось Строка.Оформление.Ячейки.ДопКолонка...
Че-то вы там мухлюете.
А в обычных просто перебиралась таблица. Для чтения/записи реквизитов использовалось Строка.Реквизит. Для чтения/записи допколонки использовалось Строка.Оформление.Ячейки.ДопКолонка...
Че-то вы там мухлюете.
(23) Эм, а разве ОформлениеСтроки так работает? Уже не уверен, но вроде как-то так нужно:
Для каждого СтрокаТП Из ЭлементыФормы.СпискиКонтрагентов.Значение Цикл
Ячейки = ЭлементыФормы.СпискиКонтрагентов.ОформлениеСтроки(СтрокаТП).Ячейки;
КонецЦикла;
(25) Ну да, но мой вопрос был по ОформлениеСтроки. Разве можно получить значение ОформлениеСтроки просто через точку? Там вроде как только через функцию. Но точно я не помню, с обычными формами уже года 2 не занимался.
Я в СП смотрел, но что-то его в последних версиях урезали, справки по самому табличному полю нет, только по подчинённым элементам (полям, методам). Так что я не уверен.
Я в СП смотрел, но что-то его в последних версиях урезали, справки по самому табличному полю нет, только по подчинённым элементам (полям, методам). Так что я не уверен.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот