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

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

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. r0610201 293 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 18 06.02.19 17:42 Сейчас в теме
(3)А ведь вопрос был правильный
15. json 2996 07.02.19 08:34 Сейчас в теме
(14) ответил же на вопрос. Или ответ не понятен?
В управляемых формах есть реквизит формы ДанныеРасшифровки, в котором хранится адрес во временном хранилище, а в обычных формах в этом реквизите хранятся сами данные

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


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

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

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

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

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

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


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

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

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

10. rasswet 82 09.11.16 08:07 Сейчас в теме
спасибо, интересные вещи.
11. German_Tagil 35 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 руб.
Полный день

Программист 1С
Москва
зарплата от 150 000 руб. до 220 000 руб.
Полный день

1С Программист по 1С:Управление торговлей
Кострома
зарплата от 100 000 руб. до 110 000 руб.
Полный день

Руководитель отдела разработки
Москва
зарплата от 200 000 руб. до 230 000 руб.
Полный день

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