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


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

Метки: 

Где бы взять кусочек для расшифровки из СКД?

Я
   Мисти
 
19.11.17 - 20:18
Нужно, чтобы из одного отчета открылся другой
Предположим, надо передать всего 2 параметра - по горизонтали "Расход", по вертикали - "собственник"
 
  Рекламное место пустует
   Мисти
 
1 - 19.11.17 - 20:19
&НаКлиенте
Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка) - это я нарисовала.
А дальше?
   Jofa
 
2 - 19.11.17 - 20:25
   Мисти
 
3 - 19.11.17 - 21:30
А вдруг мне эта книжка не поможет? Вдруг там нет такого примера?
А похожих я видела уже много, но всё никак не получается применить! Всё у меня не так.
В 7, помню, расшифровку надо было по ходу дела отдельно заполнять при выводе отчета, в 8 в общем случае - наверное, тоже, а на скд как это делается?
   Cyberhawk
 
4 - 19.11.17 - 21:39
Идентификатор расшифровки в виде циферки получить - это только начало. Чтобы получить значения полей на пересечении (сверху и слева) от ячейки, это прилично кода написать надо
   Мисти
 
5 - 19.11.17 - 21:46
Ну, где бы взять такой кусочек?
Никто ж не пишет из головы!
   Jofa
 
6 - 19.11.17 - 21:52
(5)Бери книгу читай там кучка примеров
   Мисти
 
7 - 19.11.17 - 22:06
Так нет у меня книги, а надо сделать завтра.
   PuhUfa
 
8 - 19.11.17 - 22:23
(3) все так же. добавляешь макет поля, в него, в расшифровку ставишь "расход" и "собственник" и дальше через
&НаКлиенте
Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
   Мисти
 
9 - 19.11.17 - 22:43
Макет поля - это где? В компоновке?
   PiotrLoginov
 
10 - 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')
пачиму??
   Fram
 
14 - 20.11.17 - 03:31
(13) если обратиться к СП, что ожидается в качестве параметра в этом методе?
   rphosts
 
15 - 20.11.17 - 04:23
(3) ну тогда бесплатный курс Е.Гилева в зубы, там есть пример работы с расшифровкой
   Otark
 
16 - 20.11.17 - 09:13
(3)Почта у тебя не указана. Иначе могла бы убедиться, что на странице 259, сей замечательной книги есть пример который демонстрирует работу с расшифровкой отчета.
   Ly_Alena
 
17 - 20.11.17 - 12:45
(16) У меня похожая задача - нужно чтобы выходил мой отчет при расшифровке. Почта у меня указана - буду очень признательна если скинете книжку.
   SleepyHead
 
18 - 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
Процедура СформироватьОтчет()
   
    // Получение готовой схемы компоновки данных

    СхемаКомпоновкиДанных = ЭтотОбъект.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
    // Установка настроек схемы компоновки данных

    Настройки = КомпоновщикНастроек.Настройки;
    // В этот объект помещается информация о расщифровке данных

    ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
    // Формирование макета компоновки данных с помощью компоновщика макета

    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    // В макет компоновки передаются СхемаКомпоновкиДанных, ее Настройки и ДанныеРасшифровки для заполнения информации о расшифровке

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

    ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки);
    // Очистка поля табличного документа - Результат

    ЭлементыФормы.Результат.Очистить();
    ДокументРезультат = ЭлементыФормы.Результат;
    // Вывод результат компоновки в табличный документ

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

Вот такую красоту нашла. Это же какой-то универсальный вариант? Куда это пихать? в модуль*
   yavasya
 
24 - 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
Поняла, это у меня реквизит такой еще был
   GANR
 
29 - 30.11.17 - 19:42
(0) http://catalog.mista.ru/public/195432/ - очень помогло лично мне.
   Мисти
 
30 - 30.11.17 - 19:45
Спасибо! У меня всё проще, там нет никаких группировок.
Вопрос только в том, чтобы запустить формирование отчета через скд "руками" с расшифровкой.
   Cyberhawk
 
31 - 30.11.17 - 19:58
   Cyberhawk
 
32 - 30.11.17 - 19:59
(но если у тебя отчет, то ты не инициализируй компоновщик настроек и еще чего-нибудь, что уже есть в реквизитах формы или объекта формы)
   Мисти
 
33 - 30.11.17 - 20:28
У меня изначально в реквизитах формы ничего не было. Это я уже в процессе борьбы напихала.
 
  Рекламное место пустует
   Мисти
 
34 - 30.11.17 - 20:38
СхемаКомпоновкиДанных = Отчеты.АР_ОтчетПоРасходам.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
    // Установка настроек схемы компоновки данных

    Настройки = Отчет.КомпоновщикНастроек.Настройки;
    // В этот объект помещается информация о расщифровке данных

    ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
    // Формирование макета компоновки данных с помощью компоновщика макета

    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    // В макет компоновки передаются СхемаКомпоновкиДанных, ее Настройки и ДанныеРасшифровки для заполнения информации о расшифровке

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

    ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки);
    // Очистка поля табличного документа - Результат

    ДокументРезультат = Новый ТабличныйДокумент;
    // Вывод результат компоновки в табличный документ

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

ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
    // Формирование макета компоновки данных с помощью компоновщика макета

    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    // В макет компоновки передаются СхемаКомпоновкиДанных, ее Настройки и ДанныеРасшифровки для заполнения информации о расшифровке

    МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);
   GANR
 
48 - 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
Спасибо, добрый человек!



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