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