|   |   | 
| 
 | ДанныеРасшифровки - "неразрешимая проблема"! | ☑ | ||
|---|---|---|---|---|
| 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].Значение | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |