|
Вопрос по отчету СКД | ☑ | ||
---|---|---|---|---|
0
Tumakota
13.10.17
✎
15:08
|
Уважаемые коллеги!
что может быть не так в этом условии запроса, что он ругается на параметры. Параметры ввел свои не стандартные ИЗ РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(&ДатаНачал, &ДатаКонца, Период, ) КАК ВыручкаИСебестоимостьПродажОбороты ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары ПО ВыручкаИСебестоимостьПродажОбороты.ЗаказКлиента = ЗаказКлиентаТовары.Ссылка И ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаНоменклатуры.Номенклатура = ЗаказКлиентаТовары.Номенклатура И ВыручкаИСебестоимостьПродажОбороты.Склад = ЗаказКлиентаТовары.Ссылка.Склад ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаКонца, ВидЦены = &ВидЦены) КАК ЦеныНоменклатурыСрезПоследних ПО ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаНоменклатуры.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура, РегистрСведений.КурсыВалют.СрезПоследних(&ДатаКонца, Валюта = &Валюта) КАК КурсыВалютСрезПоследних |
|||
1
Tumakota
13.10.17
✎
15:08
|
Ругается на представление
|
|||
2
Гипервизор
13.10.17
✎
15:30
|
(0) Так и сообщает: "представление параметров, машу вать"?
|
|||
3
Диманыч
14.10.17
✎
10:53
|
(0) Так на параметры или представление ? Левое соединение во втором случае с чем, само с собой ?
|
|||
4
Мандалай
14.10.17
✎
14:15
|
Это нормально что РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты и РегистрСведений.КурсыВалют.СрезПоследних ни по чем не соединены?
|
|||
5
Мандалай
14.10.17
✎
14:16
|
СрезПоследних попробуй в эту таблицу не передавать свой параметр - посмотри что получится.
|
|||
6
Мандалай
14.10.17
✎
14:17
|
+(5)параметр дата
|
|||
7
Mankubus
14.10.17
✎
15:41
|
(0) твои параметры в СКД смысла не имеют. Они будут называться как Период, НачалоПериода, КонецПериода
|
|||
8
Мандалай
14.10.17
✎
19:15
|
(7)Почему не имеют? Может он их при компоновке определяет.
|
|||
9
Mikhail Volkov
16.10.17
✎
08:32
|
Форму для СКД обязательно делать? Его надо открывать из документа с определенными параметрами (даты начала, конца, и еще пара) из документа.
|
|||
10
Mikhail Volkov
16.10.17
✎
11:31
|
Без формы отчет на СКД из документа никак не запустить?
|
|||
11
Mikhail Volkov
16.10.17
✎
16:02
|
Без формы отчет на СКД открываешь из меню (для отладки), надо нажать "Настойки...", заполнить параметры, нажать "Сформировать". Добавил пустую ФормаОтчета, чтобы не ругалась на
ОтчетПоЧекамФР = Отчеты.ДенежныеСредстваПоЧекамФР.Создать(); ОтчетПоЧекамФР.ДатаНачала = НачалоДня(Дата); ОтчетПоЧекамФР.ДатаКонца = КонецДня(Дата); ОтчетПоЧекамФР.КассаККМ = КассаККМ; ОтчетПоЧекамФР.ФР = мвДоработки.ФискальныйРегистратор(Ложь); ФормаОтчета = ОтчетПоЧекамФР.ПолучитьФорму("ФормаОтчета"); ФормаОтчета.Открыть(); Открывается эта пустая форма, ничего не формируется!? |
|||
12
Mikhail Volkov
16.10.17
✎
16:04
|
+ не ругалась на ФормаОтчета = ОтчетПоЧекамФР.ПолучитьФорму("ФормаОтчета");
|
|||
13
Mikhail Volkov
16.10.17
✎
18:05
|
Форму удалил (зачем пустая нужна), переделал:
ПараметрыФормы = Новый Структура; // ПараметрыФормы.Вставить("СформироватьПриОткрытии", Истина); ПараметрыФормы.Вставить("ДатаНачала", НачалоДня(Дата)); ПараметрыФормы.Вставить("ДатаКонца", КонецДня(Дата)); ПараметрыФормы.Вставить("КассаККМ", КассаККМ); ПараметрыФормы.Вставить("ФР", мвДоработки.ФискальныйРегистратор(Ложь)); ФормаОтчета = ПолучитьФорму("Отчет.ДенежныеСредстваПоЧекамФР.Форма", ПараметрыФормы); ФормаОтчета.Открыть(); Открывается теперь из документа, но параметры пустые!? Это наверное параметры не формы, а отбора? Как их вставить? |
|||
14
Mikhail Volkov
17.10.17
✎
06:07
|
Альфа-Авто обычное приложение (не УФ). В ней СКД не используют. Где посмотреть пример передачи параметров в отчет СКД без формы?
|
|||
15
Mikhail Volkov
17.10.17
✎
07:19
|
Нашел пример вроде для обычных форм: http://devtrainingforum.v8.1c.ru/forum/thread.jsp?id=607402, сделал также, но ругается: Поле объекта не обнаружено (Отчет)
ПараметрДанныхДатаНачала = Форма.Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы[0]; |
|||
16
catena
17.10.17
✎
07:26
|
(15)Если вы хотите использовать СКД без формы, зачем вы мучаете пример вызова через форму?
Форма - просто инструмент, все элементы компоновщика на форме связаны со свойствами самого компоновщика. И обращаться к ним напрямую можно. |
|||
17
Mikhail Volkov
17.10.17
✎
07:34
|
(16) Гуглю СКД - все для УФ. Как передать параметры в СКД в обычном приложении?
|
|||
18
catena
17.10.17
✎
07:40
|
(17)УФ и ОФ различаются только выводом. Компоновщик и там и там один и тот же.
Как гуглил? Первая же ссылка с установкой отбора для скд. http://catalog.mista.ru/public/286563/ |
|||
19
Mikhail Volkov
17.10.17
✎
11:12
|
(18) > с установкой отбора для скд.
Отбор - это и есть Параметры СКД? (вроде в СКД свои отборы есть) Прежде всего нужно передать: ДатаНачала и ДатаКонца, и еще пару параметров... В том примере: НовыйОтбор = НастройкиКД.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); НовыйОтбор.ЛевоеЗначение = ПолеНоменклатура.Поле; НовыйОтбор.ПравоеЗначение = ЭлементыФормы.Список.ТекущаяСтрока; НовыйОтбор.Использование = Истина; НовыйОтбор = НастройкиКД.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); НовыйОтбор.ЛевоеЗначение = ПолеНоменклатураСкидка.Поле; НовыйОтбор.ПравоеЗначение = ЭлементыФормы.Список.ТекущаяСтрока; НовыйОтбор.Использование = Истина; ЭлементыФормы.Список.ТекущаяСтрока - это сама номенклатура? В обоих случаях ПравоеЗначение одно и тоже? |
|||
20
catena
17.10.17
✎
11:23
|
Параметры - это параметры, отборы - это отборы.
С параметрами вообще просто: Параметр = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("НачалоПериода")); Параметр.Значение = НачалоПериода; Параметр.Использование = Истина; ПравоеЗначение - то, что справа в отборе. Вручную отборы заполняли когда нибудь? Левое-вид сравнения-правое. |
|||
21
Mikhail Volkov
17.10.17
✎
15:16
|
(20) Значит правильно понял, в примере это Номенклатура. В обоих случаях: для самой номенклатуры и скидки? Все же Номенклатура - параметр или отбор? У меня только параметры: даты, КассаККМ и ФР. Не видя Набор данных примера трудно гадать...
У меня жалуется на: Значение не является значением объектного типа (Поле) НовыйОтбор.ЛевоеЗначение = ПолеКассаККМ.Поле; Для примера это: ПолеНоменклатура = тОтчет.КомпоновщикНастроек.Настройки.Отбор.ДоступныеПоляОтбора.Элементы.Найти("Номенклатура"); //поле отбора присутствует в СКД |
|||
22
Mikhail Volkov
19.10.17
✎
08:41
|
(20) Параметры переписал по твоему примеру:
Отчет = Отчеты.ДенежныеСредстваПоЧекамФР.Создать(); НастройкиКД = Отчет.КомпоновщикНастроек.ПолучитьНастройки(); ПараметрДатаНачала = Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("ДатаНачала")); ПараметрДатаНачала.Значение = ДатаНачала; ПараметрДатаНачала.Использование = Истина; // Также для ДатаКонца, КассаККМ и ФР Отчет.КомпоновщикНастроек.ЗагрузитьНастройки(НастройкиКД); Форма = Отчет.ПолучитьФорму("Отчет.ДенежныеСредстваПоЧекамФР.Форма"); // у меня нет ФормаОтчета Отчет.СкомпоноватьРезультат(Форма.ЭлементыФормы.Результат); // табличный документ на форме Форма.Открыть(); Пишет: Ошибка при вызове метода контекста (СкомпоноватьРезультат) Отчет.СкомпоноватьРезультат(Форма.ЭлементыФормы.Результат); // табличный документ на форме по причине: Ошибка исполнения отчета по причине: Ошибка получения данных по причине: Ошибка создания набора данных "НаборДанных1" по причине: Ошибка при исполнении запроса набора данных по причине: {(20, 30)}: Не задано значение параметра "ДатаНачала" ЧекОплаты.Ссылка.Дата МЕЖДУ <<?>>&ДатаНачала И &ДатаКонца Параметр ДатаНачала не передался, или ошибка раньше в "НаборДанных1"? |
|||
23
Mankubus
19.10.17
✎
08:54
|
(22) сначала устанавливаешь параметр в настройках, потом эти настройки заменяешь на другие
Отчет.КомпоновщикНастроек.ЗагрузитьНастройки(НастройкиКД); устанавливать параметр можно сразу без поиска Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("ДатаНачала",ДатаНачала) |
|||
24
Mikhail Volkov
19.10.17
✎
10:50
|
(23) Спс, получилось! Еще бы заголовок параметров в + свернуть!?
|
|||
25
Mikhail Volkov
27.10.17
✎
15:13
|
Только после этого расшифровка не работает, документы из отчета на открываются? А если открыть настройку, параметры эти же задать, сформируется этот же отчет, но документы прямо из отчета открываются. Что-то еще в не указано, что?
|
|||
26
DrShad
27.10.17
✎
15:20
|
(25) нужно инициализировать данные расшифровки
|
|||
27
Mikhail Volkov
27.10.17
✎
16:33
|
(26) Где и как? В итоге получилось следующее:
Отчет = Отчеты.ДенежныеСредстваПоЧекамФР.Создать(); НастройкиКД = Отчет.КомпоновщикНастроек.ПолучитьНастройки(); Отчет.КомпоновщикНастроек.ЗагрузитьНастройки(НастройкиКД); Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("ДатаНачала", ДатаНачала); Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("ДатаКонца", ДатаКонца); Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("КассаККМ", КассаККМ); Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("ФР", ФР); Форма = Отчет.ПолучитьФорму("Отчет.ДенежныеСредстваПоЧекамФР.Форма"); Отчет.СкомпоноватьРезультат(Форма.ЭлементыФормы.Результат); Форма.Открыть(); |
|||
28
Mikhail Volkov
28.10.17
✎
17:33
|
(26) Добавил ДанныеРасшифровки:
Форма = Отчет.ПолучитьФорму("Отчет.ДенежныеСредстваПоЧекамФР.Форма"); ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных; Отчет.СкомпоноватьРезультат(Форма.ЭлементыФормы.Результат, ДанныеРасшифровки); Форма.Открыть(); по двойному клику мыши стал какие-то цифры выводить. Как правильно инициализировать данные расшифровки? |
|||
29
Mikhail Volkov
29.10.17
✎
13:51
|
+ Вроде в форме должна быть Процедура РезультатОбработкаРасшифровки(). Но у меня нет формы?
|
|||
30
Mikhail Volkov
29.10.17
✎
19:30
|
+ Вроде нашел схожую по проблеме тему v8: СКД: Цифры вместо расшифровки добавил:
Форма = Отчет.ПолучитьФорму("Отчет.ДенежныеСредстваПоЧекамФР.Форма"); ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных; КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(Отчет.СхемаКомпоновкиДанных, НастройкиКД, ДанныеРасшифровки); ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных, , ДанныеРасшифровки); Отчет.СкомпоноватьРезультат(Форма.ЭлементыФормы.Результат, ДанныеРасшифровки); Форма.Открыть(); Не помогло. Что ни так? |
|||
31
Mikhail Volkov
30.10.17
✎
05:58
|
+ Всего-то строчку изменил Форма.ДанныеРасшифровки:
Отчет.СкомпоноватьРезультат(Форма.ЭлементыФормы.Результат, Форма.ДанныеРасшифровки); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |