СКД программное редактирование содержимого табличного поля #677772


#0 by Unkas
Продолжаем серию вопросов, генерирующих тонны ненависти ))) Сталкивался ли кто-нибудь с необходимостью программно отредактировать поля табличного поля, уже после вывода отчета (на СКД)? С какой стороны к этому можно подойти вообще? Например, набор данных расшифровки я могу перебрать в цикле и получить программно значения всех полей отчета. Но вот для редактирования полей табличного поля нужна уже другая технология.
#1 by serffer
когда реализовывал подобное принял за правило: - высота выводимых строк отчетов строк 1 строка ТабДок - Первая ячейка строки содержит идентификатор строки Отчета - кешировал соответствие имени области первой ячейки и соответствующим измерениям
#2 by Unkas
Расскажи подробнее, пожалуйста: - в какой процедуре можно поймать ячейки табличного поля для их окольцовывания и кэширования (кстати - что это?)
#3 by Defender aka LINN
А что, СКД выводит данные в какой-то другой объект, не в табличный документ?
#4 by Unkas
Нет, насколько я знаю все по прежнему. А где вы взяли этот слух?
#5 by Defender aka LINN
Поциент троллит сам себя. Забавно.
#6 by Unkas
тьфу ты, ошибся цифрой - конечно же это был вопрос к вам. Ответите?
#7 by Nexux
делать расшифровку для каждой ячейки табличного документа, сохраняя соотвествие имяячейки - структура этих параметров (значения ресурсов получить нельзя, только если делать через внешнюю таблицу набор и применять фильтр), но это будет очень долго для всех ячеек
#8 by zladenuw
а кто мешает в таблицу значений выгрузить ?
#9 by Nexux
редактируется поле в табличном документе - по имение ячеек можно поменять это значение для массива строк таблицы внешнего источника
#10 by Nexux
либо выполнять расшифровку непоредлвенно передредактированием
#11 by Nexux
оп, задумайся надо ли оно тебе)) я такой мурой занимаюсь уже три неделю уже тошнит)
#12 by Defender aka LINN
И поле табличного документа, и табличное поле прекрасно редактируются, независимо от того, чем именно в них выведены данные.
#13 by Unkas
Игнор вопроса. Ну я так сразу и понял, что вы балабол. Никто не мешает, в принципе - но, с другой стороны, и помощников рядом не наблюдается. Три недели это жесть - на что же ушли такие временные ресурсы? Мне надо - потому что у меня трехмесячный проект по созданию адского отчета, от которого содрогнется мир. Так вот, август кончается, а отчет работает прекрасно за исключением одно колонки, которая почему-то считается неправильно. Так что мне очень надо пройтись по отчету после вывода, рассчитать этот показатель из остальных ресурсов и сдать уже проект. Так а в какой процедуре можно поймать табличное поле, да еще и с перебором по ячейкам?
#14 by Nexux
универсальный документ с вводом данных аля эксель, типа поддрежки вычислений по формулам в ячейках Так а в какой процедуре можно поймать табличное поле, да еще и с перебором по ячейкам? прикомпоновке результата, либо после вывода таличноо документа обходить весь диапазон R и С, либо в обработкарасшифровки табличного документа
#15 by Nexux
вот делать нефиг было пока ехал в электричке)) спрашивай свои ответы
#16 by Nexux
кэш заюзать забыл, но там очевидно) с телефона сложно кодтписать
#17 by Defender aka LINN
Угу. Я оже сразу понял, что ты долбоеб.
#18 by Unkas
Итак, поле табличного документа я поймал. Но проблема в том, что поле табличного документа, как элемент формы - не может быть итератором, то есть его нельзя обойти циклом. Как получить коллекцию для обхода? Например, область там всего одна, т.е. .Области.Количество = 1; В чем смысл той обработки? В пользовательском режиме она не открывается.
#19 by Unkas
Разобрался! Обходить ячейки поля табличного документа следует не получением некой коллекции - а используя адреса ячеек, типа: Вот и всё, текст в ячейках изменяется вполне легко. Nexux, спасибо!
#20 by Nexux
ага, только данные не меняются при этом, а так всё ок
#21 by Unkas
В смысле "не меняются данные"? Еще как меняются. Реально текст в ячейках становится таким, каким пожелаем. И, кстати, достаточно быстро отрабатывает. Таблицу 100х100 обрабатывает за мгновение.
#22 by Nexux
ок, круто, пили пример
#23 by Unkas
Пример в . Синтаксис именно такой ПолеТабличногоДокумента.Область("R1C1").Текст = "Привет". Ну если уж так хочешь пример прям из модуля, то пожалста:     Если НЕ бДлительностьПрисутствует ИЛИ         НЕ бОборотКтПрисутствует ИЛИ         НЕ бСальдоКтПрисутствует ИЛИ
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С