|
ДанныеРасшифровки - "неразрешимая проблема"! | ☑ | ||
---|---|---|---|---|
0
Мисти
30.11.17
✎
23:08
|
Простите, в каком-то смысле дублирую вопрос, но мне уже позарез надо.
Украла такой прекрасный кусочек - СхемаКомпоновкиДанных = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных"); //Из схемы возьмем настройки по умолчанию Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию; //Помещаем в переменную данные о расшифровке данных ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных; //Формируем макет, с помощью компоновщика макета КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; //Передаем в макет компоновки схему, настройки и данные расшифровки МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки); |
|||
1
Мисти
30.11.17
✎
23:09
|
Отчет при этом формируется, а в расшифровку я не попадаю!
Наверное, потому что нет реквизита формы ДанныеРасшифровки А если делаю такой реквизит, то не работает кусочек выше. Не тот тип, говорит! |
|||
2
simol
30.11.17
✎
23:31
|
Так делай это в форме отчета
|
|||
3
Мисти
30.11.17
✎
23:35
|
Это - что?
у меня всё в форме отчета! |
|||
4
Cyberhawk
30.11.17
✎
23:40
|
Никакого реквизита формы для расшифровки не надо
|
|||
5
Мисти
30.11.17
✎
23:49
|
А почему тогда я не попадаю в расшифровку?
У меня другой версии нет! |
|||
6
Мисти
30.11.17
✎
23:50
|
Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
н = 1; СтандартнаяОбработка = Ложь; ДанныеРасшифровки = ПолучитьИзВременногоХранилища(АдресХранилищаДанныхРасшифровки); //Значение текущего поля Поле = ДанныеРасшифровки.Элементы[Расшифровка].ПолучитьПоля()[0]; Вот сюда я не попадаю! |
|||
7
Мисти
30.11.17
✎
23:59
|
Чего может не хватать в форме?
|
|||
8
Franchiser
гуру
01.12.17
✎
01:03
|
Код надо писать в модуле объекта в прикомпоновкерезультата()
|
|||
9
hhhh
01.12.17
✎
07:11
|
(7) ну эта процедура Процедура РезультатОбработкаРасшифровки привязана к событию формы?
|
|||
10
Мисти
01.12.17
✎
13:36
|
(9)Конечно! Не то, чтоб к событию, а стоит в обработке расшифорвки свойства "поле".
(8) а я в форме - добавила свою кнопку "сформировать" и это всё - туда! |
|||
11
Мисти
01.12.17
✎
13:42
|
У меня сейчас 2 кнопки "сформировать" - одна стандартная, одна моя, чтоб прилепить туда весь текст с расшифровкой.
По моей явно выдается отдельная таблица! Она не попадает в таб. часть отчета, наверное, поэтому и расшифровка не срабатывает. А почему не попадает? |
|||
12
Мисти
01.12.17
✎
13:43
|
,,,,,,,,,,,,,,,,,
ДокументРезультат = Новый ТабличныйДокумент; // Вывод результат компоновки в табличный документ ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ДокументРезультат); ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); АдресХранилищаДанныхРасшифровки = ПоместитьВоВременноеХранилище(ДанныеРасшифровки, УникальныйИдентификатор); Возврат(ДокументРезультат); А в начале так - &НаКлиенте Процедура ЗапуститьФормированиеОтчета(ВФоне = Ложь) РезультатВыполнения = СформироватьОтчетНаСервере(); РезультатВыполнения.ТолькоПросмотр = Истина; РезультатВыполнения.Показать(); КонецПроцедуры |
|||
13
Cyberhawk
01.12.17
✎
13:48
|
(12) В прошлой теме Я уже отвечал по этому поводу
|
|||
14
Мисти
01.12.17
✎
14:08
|
ДокументРезультат нужно загрузить в поле табличного документа на форме - это?
Я вот и думала, что "загрузила" |
|||
15
Cyberhawk
01.12.17
✎
15:33
|
Это
|
|||
16
Мисти
03.12.17
✎
21:55
|
Формально получилось, в том смысле, что не ругается.
Почему-то поле отчета выглядит странно - серое, как обычно выглядят недоступные кнопки, но это полбеды. В расшифровке - пусто! ДанныеРасшифровки.Элементы[Расшифровка].ПолучитьПоля() |
|||
17
Мисти
03.12.17
✎
21:55
|
Индекс Значение элемента Тип элемента Поле Значение Иерархия
0 ЗначениеПоляРасшифровкиКомпоновкиДанных ЗначениеПоляРасшифровкиКомпоновкиДанных "Сумма" Ложь |
|||
18
Мисти
03.12.17
✎
21:56
|
Это отладчик так показывает значение
ДанныеРасшифровки.Элементы[Расшифровка].ПолучитьПоля() |
|||
19
Мисти
03.12.17
✎
21:59
|
Наверное, надо еще в СКД где-то что-то обозначить?
Где тот момент, когда в расшифровку запихиваются значения полей? |
|||
20
Дык ё
03.12.17
✎
22:45
|
(10) этот код должен быть в модуле объекта в прикомпоновкерезультата. а на форме реквизит ДанныеРасшифровки должен быть строковым, внезапно. там будет адрес в хранилище. это если пользоваться штатными механизмами
а если хочется странного типа "а я в форме" - надо делать слегка иначе |
|||
21
Мисти
04.12.17
✎
15:01
|
Пусть в модуле!
Я никак не найду примера подходящего, мне кажется, тут ничего сложного - если найти что-то готовое. СхемаКомпоновкиДанных = Отчеты.АР_ОтчетПоРасходам.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных"); // Установка настроек схемы компоновки данных Настройки = Отчет.КомпоновщикНастроек.Настройки; // В этот объект помещается информация о расщифровке данных ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных; // Формирование макета компоновки данных с помощью компоновщика макета КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; // В макет компоновки передаются СхемаКомпоновкиДанных, ее Настройки и ДанныеРасшифровки для заполнения информации о расшифровке МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки); // Выполнение компоновки данных с помощью процессора компоновки ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки); // Очистка поля табличного документа - Результат //Элементы.Результат.Очистить(); //Формы. //ДокументРезультат = Элементы.Результат;//Формы ДокументРезультат = Новый ТабличныйДокумент; // Вывод результат компоновки в табличный документ ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ДокументРезультат); ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); АдресХранилищаДанныхРасшифровки = ПоместитьВоВременноеХранилище(ДанныеРасшифровки, УникальныйИдентификатор); Вот это всё писать в модуле? |
|||
22
Мисти
04.12.17
✎
15:21
|
Отрабатывает это "приКомпоновке", а в расшифровку я опять перестала попадать!
&НаКлиенте Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка) н = 1; СтандартнаяОбработка = Ложь; ОбработатьРезультатНаСервере(Расшифровка); Вот сюда! |
|||
23
Мисти
04.12.17
✎
15:24
|
Ну, логично, этот "ДокументРезультат" никак с полем "результат" формы не связан.
|
|||
24
Мисти
04.12.17
✎
15:35
|
Что сделать-то?
|
|||
25
ildary
04.12.17
✎
15:54
|
(24) Перестать программировать методом "хренак хренак и в продакшен" и сесть читать учебники.
|
|||
26
Мисти
04.12.17
✎
16:00
|
О! Нет! Учебник тут не поможет.
|
|||
27
Мисти
04.12.17
✎
16:13
|
В модуле "ПриКомпоновке... " заканчивается вот этим -
ПроцессорВывода.УстановитьДокумент(ДокументРезультат); ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); Результат = ДокументРезультат; ДанныеРасшифровки - реквизит и еще выбран в поле формы В расшифровку попадаю &НаКлиенте Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка) н = 1; СтандартнаяОбработка = Ложь; ОбработатьРезультатНаСервере(Расшифровка); КонецПроцедуры &НаСервере Процедура ОбработатьРезультатНаСервере(Расшифровка) ДанныеРасшифровкиТек = ПолучитьИзВременногоХранилища(ДанныеРасшифровки); //Значение текущего поля Поле = ДанныеРасшифровкиТек.Элементы[Расшифровка].ПолучитьПоля()[0]; //ПарметрыРасштфровки.Собственник КонецПроцедуры Но что-то ничего интересного там не вижу! Выражение Значение Тип ПолучитьИзВременногоХранилища(ДанныеРасшифровки).Элементы[Расшифровка].ПолучитьПоля()[0] ЗначениеПоляРасшифровкиКомпоновкиДанных ЗначениеПоляРасшифровкиКомпоновкиДанных Значение Null Иерархия Ложь Булево Поле "Сумма" Строка |
|||
28
Мисти
04.12.17
✎
16:25
|
А почему я не вижу названий колонки и строки?
Значение Null - тоже неправильно, я там вижу вполне конкретную сумму! |
|||
29
Мисти
04.12.17
✎
16:39
|
ДанныеРасшифровкиТек.Элементы[Расшифровка].ПолучитьРодителей()
Дает массив из 2 элементов. Может, там что-то хорошее? |
|||
30
Мисти
04.12.17
✎
16:50
|
ДанныеРасшифровкиТек.Элементы[Расшифровка].ПолучитьРодителей()[0].ПолучитьПоля() - там есть моя статья! Правда, только в виде наименования - это по горизонтали.
А где взять по вертикали? |
|||
31
Мисти
04.12.17
✎
16:52
|
ДанныеРасшифровкиТек.Элементы[Расшифровка].ПолучитьРодителей()[0].ПолучитьПоля()[0].Значение - ура, то, что нужно!
Осталось найти вертикаль! |
|||
32
Мисти
04.12.17
✎
16:57
|
Т.е. нашлось значение строки, а значение колонки где?
|
|||
33
Мисти
04.12.17
✎
16:59
|
Вау, есть!
ДанныеРасшифровкиТек.Элементы[Расшифровка].ПолучитьРодителей()[1].ПолучитьПоля()[0].Значение |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |