Имя: Пароль:
1C
 
Расшифровка СКД в таблицу значений
,
0 first_may
 
18.05.24
17:30
Добрый день.

Есть отчет на скд.
В нем настроена структура и крайняя колонка это сумма.
https://disk.yandex.ru/i/bDxb1lkEBnchTQ

При нажатии на ней правой кнопкой мыши открывается документ.

Отчет делается в типовой форме ФормаОтчета. В ней при нажатии сформировать
получается результат типа Структура:
ВариантМодифицирован    Ложь
ДанныеЕщеОбновляются    Ложь
ПользовательскиеНастройкиМодифицированы    Ложь
Расшифровка    ДанныеРасшифровкиКомпоновкиДанных
ТабличныйДокумент    ТабличныйДокумент
ТекстОшибки    
Успех    Истина


Сам отчет, выгружаю в таблицу значений функцией, которую нашел в интернете,
а именно ТабличныйДокумент из структуры выше

Функция ПреобразоватьТабличныйДокументВТаблицуЗначений(ТабДокумент)
	ПоследняяСтрока = ТабДокумент.ВысотаТаблицы;
	ПоследняяКолонка = ТабДокумент.ШиринаТаблицы;
	ОбластьЯчеек = ТабДокумент.Область(4, 1, ПоследняяСтрока, ПоследняяКолонка); 
	// Создаем описание источника данных на основании области ячеек табличного документа.
	ИсточникДанных = Новый ОписаниеИсточникаДанных(ОбластьЯчеек);  
	// Создаем объект для интеллектуального построения отчетов,
	// указываем источник данных и выполняем построение отчета.
	ПостроительОтчета = Новый ПостроительОтчета; 
	ПостроительОтчета.ИсточникДанных = ИсточникДанных;
	ПостроительОтчета.Выполнить();
	// Результат выгружаем в таблицу значений.
	ТабЗначений = ПостроительОтчета.Результат.Выгрузить();
	
	Возврат ТабЗначений;
КонецФункции



Подскажите пож, можно ли и как получить документ в таблицу значений,
если его нет в структуре отчета?

В результате есть
Расшифровка    ДанныеРасшифровкиКомпоновкиДанных

Оттуда можно получить документ?
1 DrZombi
 
гуру
20.05.24
06:10
Даже не смешно... :)🤦
2 DrZombi
 
гуру
20.05.24
06:11
3 DrZombi
 
гуру
20.05.24
06:12
ТаблДок = Табличный Документ... :)

ПроцессорВыводаОСКД = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;

ПроцессорВыводаОСКД.УстановитьДокумент(ТаблДок);

ПроцессорВыводаОСКД.Вывести(ПроцессорКомпоновкиОСКД);
4 VS-1976
 
20.05.24
09:56
1. В после формирования отчёта можно получить документ, который не будет указан в отчёте, если к примеру в поле ссылки на документ в выражение представления будешь выводить любое нужное поле отчёта и выводить ссылку которая будет отображаться тем, что укажешь. Ну а ссылку можно будет получить из расшифровки.
5 first_may
 
20.05.24
22:03
отчет на СКД сделан уже, через типовую форму ФормаОтчета..

я просто на эту форму добавил свою кнопку и по ней ТабличныйДокумент прпеобразую в ТаблицуЗначений
с помощью функции из инета..

но вот в итоге нет документа, так как его нет в структуре..
а он есть в расшифровке.. вот как получить его из нее, я этого не знаю


Функция ПреобразоватьТабличныйДокументВТаблицуЗначений(ТабДокумент)
    ПоследняяСтрока = ТабДокумент.ВысотаТаблицы;
    ПоследняяКолонка = ТабДокумент.ШиринаТаблицы;
    ОбластьЯчеек = ТабДокумент.Область(1, 1, ПоследняяСтрока, ПоследняяКолонка);

    // Создаем описание источника данных на основании области ячеек табличного документа.
    ИсточникДанных = Новый ОписаниеИсточникаДанных(ОбластьЯчеек);
    // Создаем объект для интеллектуального построения отчетов,
    // указываем источник данных и выполняем построение отчета.
    ПостроительОтчета = Новый ПостроительОтчета;
    ПостроительОтчета.ИсточникДанных = ИсточникДанных;
    ПостроительОтчета.Выполнить();

    // Результат выгружаем в таблицу значений.
    ТабЗначений = ПостроительОтчета.Результат.Выгрузить();

    Возврат ТабЗначений
КонецФункции
6 DrZombi
 
гуру
21.05.24
07:58
(5) По вашему что такое расшифровка в СКД?
7 VS-1976
 
22.05.24
00:28
(5) Что там знать то...
https://infostart.ru/1c/articles/195432/
8 VS-1976
 
22.05.24
00:30
(7) Расшифровка в этом примере это индекс в структуре расшифровки. Индекс берется из ячейки табличного документа после вывода СКД поле расшифровка.
9 first_may
 
24.05.24
10:34
(8) Расшифровка в этом примере это индекс в структуре расшифровки - да, согласен..

но при выгрузке в ТЗ этого индекса не вижу..

или для этого надо, что бы колонка с документом была выведена в отчет?
10 VS-1976
 
26.05.24
17:57
(9) Тебе нужно сформировать типовыми средствами отчёт, далее все ссылки лежат в объекте расшифровка, который формируется при типовом формировании отчёта.

пСсылкаНаДоккмент = ДанныеРасшифровки.Элементы[ТекущаяЯчейка.Расшифровка].ПолучитьПоля()[0].Значение;

PS: Пишу на память, проверь получить поля() что выдаёт, если ошибка.