Имя: Пароль:
 
1C
1С v8
Где бы взять кусочек для расшифровки из СКД?
0 Мисти
 
19.11.17
20:18
Нужно, чтобы из одного отчета открылся другой
Предположим, надо передать всего 2 параметра - по горизонтали "Расход", по вертикали - "собственник"
1 Мисти
 
19.11.17
20:19
&НаКлиенте
Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка) - это я нарисовала.
А дальше?
2 Jofa
 
19.11.17
20:25
3 Мисти
 
19.11.17
21:30
А вдруг мне эта книжка не поможет? Вдруг там нет такого примера?
А похожих я видела уже много, но всё никак не получается применить! Всё у меня не так.
В 7, помню, расшифровку надо было по ходу дела отдельно заполнять при выводе отчета, в 8 в общем случае - наверное, тоже, а на скд как это делается?
4 Cyberhawk
 
19.11.17
21:39
Идентификатор расшифровки в виде циферки получить - это только начало. Чтобы получить значения полей на пересечении (сверху и слева) от ячейки, это прилично кода написать надо
5 Мисти
 
19.11.17
21:46
Ну, где бы взять такой кусочек?
Никто ж не пишет из головы!
6 Jofa
 
19.11.17
21:52
(5)Бери книгу читай там кучка примеров
7 Мисти
 
19.11.17
22:06
Так нет у меня книги, а надо сделать завтра.
8 PuhUfa
 
19.11.17
22:23
(3) все так же. добавляешь макет поля, в него, в расшифровку ставишь "расход" и "собственник" и дальше через
&НаКлиенте
Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
9 Мисти
 
19.11.17
22:43
Макет поля - это где? В компоновке?
10 PiotrLoginov
 
19.11.17
23:00
Да. Здесь, видимо, речь о макете на соответствующей вкладке СКД. Сразу замечу, что я в Вашу задачу, переходящую из темы в тему, не вникал.

Если у Вас мало опыта в работе с СКД, а сдавать надо завтра, попытайтесь сделать вариант попроще. Без ручных расшифровок. Сразу несколько методик программирования построены на том, что зачастую лучше дать юзеру частично функциональный продукт, чем не дать ничего.
11 Мисти
 
19.11.17
23:06
Не, ладно, не завтра. И попроще я уже пробовала!
Хочу добить теперь этот вариант.
Пошла по пути переписывания кусков из типового отчета, где это работает
            ДлительныеОперацииКлиент.ОбновитьПараметрыОбработчикаОжидания(ПараметрыОбработчикаОжидания);
Там, например, такая штука, но ПараметрыОбработчикаОжидания я не могу найти, где определено!
В типовом не ругается, а у меня - не найдено.
12 Мисти
 
19.11.17
23:14
Уф, нашла. Это просто переменная в форме.
13 Мисти
 
19.11.17
23:38
Отчет.АР_ОтчетПоРасходам.Форма.ФормаОтчета.Форма(273)}: Ошибка при вызове метода контекста (ПолучитьИзВременногоХранилища)
    ПараметрыОтчета.Вставить("СхемаКомпоновкиДанных"            , ПолучитьИзВременногоХранилища(СхемаКомпоновкиДанных));
по причине:
Недопустимое значение параметра (параметр номер '1')
Недопустимое значение параметра (параметр номер '1')
пачиму??
14 Fram
 
20.11.17
03:31
(13) если обратиться к СП, что ожидается в качестве параметра в этом методе?
15 rphosts
 
20.11.17
04:23
(3) ну тогда бесплатный курс Е.Гилева в зубы, там есть пример работы с расшифровкой
16 Otark
 
20.11.17
09:13
(3)Почта у тебя не указана. Иначе могла бы убедиться, что на странице 259, сей замечательной книги есть пример который демонстрирует работу с расшифровкой отчета.
17 Ly_Alena
 
20.11.17
12:45
(16) У меня похожая задача - нужно чтобы выходил мой отчет при расшифровке. Почта у меня указана - буду очень признательна если скинете книжку.
18 SleepyHead
 
20.11.17
13:04
Мисти не устает радовать.
19 Мисти
 
29.11.17
12:31
Вставила почту! Шлите!
Расшифровку из своего отчета я умею.
А из СКД - целый день билась, ничего не добилась.
Вот не знаю, или сдаться и сделать из своего (там простецкий отчет, скд и не к чему, 2 параметра только)или еще повоевать.
20 Мисти
 
30.11.17
17:50
Самое главное - мне ведь эту расшифровку сначала надо заполнить! Как это в скд делается?
21 Вафель
 
30.11.17
17:54
22 Ц_У
 
30.11.17
17:56
(20)
ВАЖНО!
Для того, чтобы при выводе отчета объект ДанныеРасшифровки был заполнен, следует его создать при компоновке макета и передать в процессор компоновки данных.

Для создания объекта ДанныеРасшифровки, при вызове метода Выполнить компоновщика макета, следует передать переменную, в которую требуется поместить созданный объект.
Пример:

МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.Настройки, ДанныеРасшифровки);

Для того, чтобы данные расшифровки заполнились при формировании результата, необходимо передать объект ДанныеРасшифровки в метод Инициализировать процессора компоновки данных.

Пример:

ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных, , ДанныеРасшифровки);

Если используется метод объекта Отчет СкомпоноватьРезультат, то для заполнения данных расшифровки следует передать в метод переменную, в которую необходимо поместить данные расшифровки.

Пример:

СкомпоноватьРезультат(ЭлементыФормы.Результат, ДанныеРасшифровки);

Если отчет формируется при помощи стандартной команды отчета Сформировать, то данные расшифровки помещаются в свойство расширения формы отчета ДанныеРасшифровки.
https://its.1c.ru/db/metod8dev/content/2797/hdoc
23 Мисти
 
30.11.17
17:57
Процедура СформироватьОтчет()
  
    // Получение готовой схемы компоновки данных
    СхемаКомпоновкиДанных = ЭтотОбъект.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
    // Установка настроек схемы компоновки данных
    Настройки = КомпоновщикНастроек.Настройки;
    // В этот объект помещается информация о расщифровке данных
    ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
    // Формирование макета компоновки данных с помощью компоновщика макета
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    // В макет компоновки передаются СхемаКомпоновкиДанных, ее Настройки и ДанныеРасшифровки для заполнения информации о расшифровке
    МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);
    // Выполнение компоновки данных с помощью процессора компоновки
    ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки);
    // Очистка поля табличного документа - Результат
    ЭлементыФормы.Результат.Очистить();
    ДокументРезультат = ЭлементыФормы.Результат;
    // Вывод результат компоновки в табличный документ
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
    ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
  
КонецПроцедуры

Вот такую красоту нашла. Это же какой-то универсальный вариант? Куда это пихать? в модуль*
24 yavasya
 
30.11.17
18:28
(23) Это не поможет
25 Мисти
 
30.11.17
18:47
Почему не поможет?
26 Мисти
 
30.11.17
19:01
Если начать сначала - "при вызове метода Выполнить компоновщика макета" - читаю по тексту с ИТС...
А я ведь вообще ничего не вызываю!
В самом простом отчете на скд ничего этого нет!
В какой момент и вместо чего это надо сделать? В примере в (23) я вижу стройную схему, только, наверное, не для управляемых форм - типа как "вручную" запустить отчет на скд.
27 Мисти
 
30.11.17
19:25
СхемаКомпоновкиДанных = Отчеты.АР_ОтчетПоРасходам.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
- написала это в форме отчета.
В отладчике видно почему-то, что СхемаКомпоновкиДанных имеет значение СхемаКомпоновкиДанных и тип строка!
28 Мисти
 
30.11.17
19:29
Поняла, это у меня реквизит такой еще был
29 GANR
 
30.11.17
19:42
(0) http://catalog.mista.ru/public/195432/ - очень помогло лично мне.
30 Мисти
 
30.11.17
19:45
Спасибо! У меня всё проще, там нет никаких группировок.
Вопрос только в том, чтобы запустить формирование отчета через скд "руками" с расшифровкой.
31 Cyberhawk
 
30.11.17
19:58
32 Cyberhawk
 
30.11.17
19:59
(но если у тебя отчет, то ты не инициализируй компоновщик настроек и еще чего-нибудь, что уже есть в реквизитах формы или объекта формы)
33 Мисти
 
30.11.17
20:28
У меня изначально в реквизитах формы ничего не было. Это я уже в процессе борьбы напихала.
34 Мисти
 
30.11.17
20:38
СхемаКомпоновкиДанных = Отчеты.АР_ОтчетПоРасходам.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
    // Установка настроек схемы компоновки данных
    Настройки = Отчет.КомпоновщикНастроек.Настройки;
    // В этот объект помещается информация о расщифровке данных
    ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
    // Формирование макета компоновки данных с помощью компоновщика макета
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    // В макет компоновки передаются СхемаКомпоновкиДанных, ее Настройки и ДанныеРасшифровки для заполнения информации о расшифровке
    МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);
    // Выполнение компоновки данных с помощью процессора компоновки
    ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки);
    // Очистка поля табличного документа - Результат
    ДокументРезультат = Новый ТабличныйДокумент;
    // Вывод результат компоновки в табличный документ
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
    ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
35 Мисти
 
30.11.17
20:38
Вот так - не ругается, но и ничего не выводится!
36 Cyberhawk
 
30.11.17
20:45
(35) ДокументРезультат нужно загрузить в поле табличного документа на форме
37 Мисти
 
30.11.17
20:53
Да, уже сообразила, загрузила.
Теперь моя расшифровка опять мне показывает - "144", например, причем, отладчик туда не попадает
&НаКлиенте
Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
    н = 1;
Похоже, я недалеко продвинулась.
38 Мисти
 
30.11.17
20:58
Вот из советов -
Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)

    СтандартнаяОбработка = Ложь;

    //Значение текущего поля    
    Поле = ДанныеРасшифровки.Элементы[Расшифровка].ПолучитьПоля()[0];
39 Мисти
 
30.11.17
20:59
ДанныеРасшифровки - у меня это создано в пред. процедуре, и это - не реквизит формы, так откуда это возьмется в этой процедуре?
40 Cyberhawk
 
30.11.17
21:11
(39) На форме заводишь реквизит АдресХранилищаДанныхРасшифровки
41 Cyberhawk
 
30.11.17
21:11
Заполняешь его при формировании отчета, а потом когда надо получить данные расшифровки - получаешь
42 Мисти
 
30.11.17
21:18
Спасибо!
Не уходите!!! Как я мечтаю покончить с этим...
А где эта расшифровка заполняется? В 7 я помню, руками писала что-то вроде - расшифровка.Контрагент = ...
А здесь?
43 Cyberhawk
 
30.11.17
21:22
Она заполняется "автоматически" после формирования результата в СКД
44 Cyberhawk
 
30.11.17
21:23
Соответственно, после сказанного выше тебе надо поместить ДанныеРасшифровки в хранилище и запомнить в реквизите формы адрес этого хранилища
45 Мисти
 
30.11.17
22:51
Не попадаю в РезультатОбработкаРасшифровки!
В обработкуРасшифровки вставила эту процедуру.
46 Мисти
 
30.11.17
22:51
Подозрительно, что в "данныхрасшифровки"
У меня ничего нет
47 Мисти
 
30.11.17
22:54
А если вставить ДанныеРасшифровки как реквизит, то он имеет тип строка и тогда не работает этот кусок.

ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
    // Формирование макета компоновки данных с помощью компоновщика макета
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    // В макет компоновки передаются СхемаКомпоновкиДанных, ее Настройки и ДанныеРасшифровки для заполнения информации о расшифровке
    МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);
48 GANR
 
01.12.17
11:39
(30) А самое сложное там достать группировки, что и делает этот алгоритм. Ну а передать их как параметры в форму в которой отчет-расшифровка откроется проще пареной репы.
49 Вафель
 
01.12.17
11:46
Только настройки нужно так:
Настройки = Отчет.КомпоновщикНастроек.ПолучитьНастройки();
50 Вафель
 
01.12.17
11:47
(48) передать тоже не так просто, ведь нужно самому сформировать новые настройки другого отчета.
писать код в ПриСоздании не рассматриваем - ибо лишнее
51 Мисти
 
04.12.17
18:16
Осталась часть, которая "проще пареной репы" - передать параметры в другую форму отчета! Тот тоже скд и реквизитов у него нет.
52 Ц_У
 
04.12.17
18:29
53 Мисти
 
04.12.17
18:33
Спасибо, добрый человек!