Вход | Регистрация


1С:Предприятие ::

Метки: 

ДанныеРасшифровки - "неразрешимая проблема"!

Я
   Мисти
 
30.11.17 - 23:08
Простите, в каком-то смысле дублирую вопрос, но мне уже позарез надо.
Украла такой прекрасный кусочек - СхемаКомпоновкиДанных = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");

//Из схемы возьмем настройки по умолчанию

Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;

//Помещаем в переменную данные о расшифровке данных

ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;

//Формируем макет, с помощью компоновщика макета

КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;

//Передаем в макет компоновки схему, настройки и данные расшифровки

МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);
 
 
   Мисти
 
1 - 30.11.17 - 23:09
Отчет при этом формируется, а в расшифровку я не попадаю!
Наверное, потому что нет реквизита формы ДанныеРасшифровки
А если делаю такой реквизит, то не работает кусочек выше. Не тот тип, говорит!
   simol
 
2 - 30.11.17 - 23:31
Так делай это в форме отчета
   Мисти
 
3 - 30.11.17 - 23:35
Это - что?
у меня всё в форме отчета!
   Cyberhawk
 
4 - 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
Чего может не хватать в форме?
   Franchiser
 
8 - 01.12.17 - 01:03
Код надо писать в модуле объекта в прикомпоновкерезультата()
   hhhh
 
9 - 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
,,,,,,,,,,,,,,,,,
ДокументРезультат = Новый ТабличныйДокумент;
    // Вывод результат компоновки в табличный документ

    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
    ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
    АдресХранилищаДанныхРасшифровки = ПоместитьВоВременноеХранилище(ДанныеРасшифровки, УникальныйИдентификатор);
    Возврат(ДокументРезультат);


А в начале так - &НаКлиенте
Процедура ЗапуститьФормированиеОтчета(ВФоне = Ложь)
        РезультатВыполнения = СформироватьОтчетНаСервере();
    РезультатВыполнения.ТолькоПросмотр = Истина;
    РезультатВыполнения.Показать();
КонецПроцедуры
   Cyberhawk
 
13 - 01.12.17 - 13:48
(12) В прошлой теме Я уже отвечал по этому поводу
   Мисти
 
14 - 01.12.17 - 14:08
ДокументРезультат нужно загрузить в поле табличного документа на форме - это?
Я вот и думала, что "загрузила"
   Cyberhawk
 
15 - 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
Что сделать-то?
   ildary
 
25 - 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].Значение
 
  Рекламное место пустует



Список тем форума
  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует