Полезные процедуры по работе с СКД и табличными документами (часть 2)

0. json 26.09.16 23:13 Сейчас в теме
Еще несколько универсальных процедур

Перейти к публикации

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. r0610201 296 27.09.16 08:51 Сейчас в теме
Выровнять заголовки по центру можно вообще без кода при помощи условного оформления.
2. json 27.09.16 09:15 Сейчас в теме
(1) r0610201, спасибо за комментарий. Но предполагаю, что вы невнимательно прочитали публикацию.
Существует ряд случаев, когда условным оформлением это сделать проблематично. Об этом сказано в статье.
German_Tagil; +1 Ответить
3. soulsteps 74 27.09.16 11:14 Сейчас в теме
В этой процедуре

Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ОчиститьСообщения();

// 1
ТекущееПодразделение = ПолучитьЗначениеПоИмениГруппировкиВРасшифровке(
"Подразделение",
ДанныеРасшифровки,
Расшифровка);
Сообщить("Подразделение : " + ТекущееПодразделение);

// 2
ПоляРасшифровкиВВидеТаблицы = ПолучитьПоляРасшифровкиВВидеТаблицы(
Расшифровка,
ДанныеРасшифровки);
Для Каждого Строка Из ПоляРасшифровкиВВидеТаблицы Цикл
ТекстСообщения =
"Уровень: " + Строка.Уровень + "; " +
"Поле: " + Строка.Поле + "; " +
"Значение: " + Строка.Значение + "; ";

Сообщить(ТекстСообщения);
КонецЦикла;

КонецПроцедуры

не обнаружил передачу (локальное определение) переменной ДанныеРасшифровки? Хотя идет обращение по коду:
ТекущееПодразделение = ПолучитьЗначениеПоИмениГруппировкиВРасшифровке(
"Подразделение",
ДанныеРасшифровки,
Расшифровка);
Обработку не скачивал, смотрю только код. Если это какая-то глобальная переменная или параметр формы, просьба уточнить, возможно ДанныеРасшифровки = Расшифровка?
user717534; +1 Ответить
4. json 27.09.16 11:18 Сейчас в теме
(3) soulsteps,
Расширение формы отчета (Report form extension)
ДанныеРасшифровки (DetailsData)
Использование:

Чтение и запись.
Описание:

Тип: ДанныеРасшифровкиКомпоновкиДанных.
Содержит данные расшифровки последнего выполненного отчета.

Доступность:

Толстый клиент.

В тексте приведен пример для обычных форм. В управляемых формах в этой переменной хранится не сам объект, а ссылка на него во временном хранилище. Эти нюансы учтены в приложенном к статье примере
5. soulsteps 74 27.09.16 13:42 Сейчас в теме
(4) я это и хотел услышать (уточнение))
user717534; +1 Ответить
14. ol_xak 19 06.02.19 17:42 Сейчас в теме
(3)А ведь вопрос был правильный
15. json 3046 07.02.19 08:34 Сейчас в теме
(14) ответил же на вопрос. Или ответ не понятен?
В управляемых формах есть реквизит формы ДанныеРасшифровки, в котором хранится адрес во временном хранилище, а в обычных формах в этом реквизите хранятся сами данные

Для обычных форм:
	// 1
	ТекущееПодразделение = ПолучитьЗначениеПоИмениГруппировкиВРасшифровке(
								"Подразделение", 
								ДанныеРасшифровки, 
								Расшифровка);


Для управляемых:
	// 1
	ТекущееПодразделение = ПолучитьЗначениеПоИмениГруппировкиВРасшифровке(
								"Подразделение", 
								ПолучитьИзВременногоХранилища(ДанныеРасшифровки), 
								Расшифровка);
16. ol_xak 19 07.02.19 15:47 Сейчас в теме
(15) Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
откуда в данной процедуре появляется переменная ДанныеРасшифровки
17. json 3046 07.02.19 15:59 Сейчас в теме
(16) читайте внимательно предыдущее сообщение. Там все разжевано.
В управляемых формах есть реквизит формы ДанныеРасшифровки
18. ol_xak 19 07.02.19 16:51 Сейчас в теме
(17)А в обычной форме? Я не критикую, просто пытаюсь использовать предложенный метод, но не получается. Где взять ДанныеРасшифровки в процедуре РезультатОбработкаРасшифровки? Использую неуправляемую форму обработки.
19. json 3046 07.02.19 16:58 Сейчас в теме
(18) по обычной форме цитата из справки

Расширение формы отчета (Report form extension)
ДанныеРасшифровки (DetailsData)
Использование:

Чтение и запись.
Описание:

Тип: ДанныеРасшифровкиКомпоновкиДанных.
Содержит данные расшифровки последнего выполненного отчета.

Доступность:

Толстый клиент.
Показать


То есть расширение формы отчета имеет такой реквизит ДанныеРасшифровки. В форме отчета он есть по умолчанию (если основной реквизит формы - внешний или внутренний отчет).

Разница между параметрами Расшифровка и ДанныеРасшифровки следующая:
в ДанныеРасшифровки - хранятся данные по всему сформированному отчету
в Расшифровка - хранится ключ, по которому можно искать в ДанныеРасшифровки. Этот ключ хранится в значении ячейки, по которой кликает пользователь
6. Поручик 4575 27.09.16 19:59 Сейчас в теме
(0) Не обращай внимания на критиканов.
user717534; +1 Ответить
7. PrinzOfMunchen 83 29.09.16 05:19 Сейчас в теме
Недавно писал нечто подобное, описанному в первом примере. Только мне надо было получить ВСЕ значения полей группировки и детальных записей (без ресурсов) в виде плоской таблицы, где колонки - это выбранные поля. Знатные извращения...))
8. Nuuq 76 02.11.16 13:13 Сейчас в теме
А есть пример по образу сделать получение области итогов СКД по вертикали и общие по горизонтали - программно добавить туда новое поле и заполнить его?
9. Yashazz 4268 07.11.16 21:01 Сейчас в теме
Забавно. Тоже буквально вчера понадобилось выгрести значения текущей расшифровки, всех полей уровня и, естесссно, родительских группировок. Тоже сделал через таблицу значений. Подумывал сериализовать "ДанныеРасшифровки" и поиграться с её xdto, но там не оказалось ничего интересного. Остальное - тоже, в общем, очевидные вещи.

Автор прав, пост-обработка это зло. Но иногда зла не хватает)) Могу от себя добавить, что ввиду непредсказуемости внешнего вида результатного табличного документа делаю такие пост-обработки, привязываясь к специально заданным расшифровкам, перегоняя моксель в его сериализованный вид xml и орудуя уже в нём. Так хоть меньше шансов обломаться, если юзверь перенастроит СКД. Так что рекомендую отказаться от дикости вроде "ВысотаТаблицы" и работать через xpath или объекты DOM. Ей-ей, надёжнее)

10. rasswet 82 09.11.16 08:07 Сейчас в теме
спасибо, интересные вещи.
11. German_Tagil 36 10.11.16 20:33 Сейчас в теме
12. Makushimo 159 11.11.16 06:31 Сейчас в теме
13. AzagTot 40 11.11.16 12:00 Сейчас в теме
Спасибо! Очень полезный цикл статей.
А кто знает как можно сдвинуть таблицу на несколько колонок? Чтобы вывод начинался не с первой колонки, а, например, с 3-й. При этом другие таблицы в отчете должны остаться без изменения.
Оставьте свое сообщение
Вакансии
Бизнес-аналитик 1С
Санкт-Петербург
зарплата от 150 000 руб. до 200 000 руб.
Полный день

Программист, аналитик, эксперт 1С
Санкт-Петербург
По совместительству

Программист 1С
Нижний Новгород
зарплата от 170 000 руб.
Полный день

Эксперт-программист 1С
Санкт-Петербург
зарплата от 200 000 руб.
Полный день

Администратор 1C
Москва
зарплата до 110 000 руб.
Полный день