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


1С:Предприятие :: 1С:Предприятие 8 общая

Вопрос по отчету СКД

Вопрос по отчету СКД
Я
   Tumakota
 
13.10.17 - 15:08
Уважаемые коллеги!

что может быть не так в этом условии запроса, что он ругается на параметры. Параметры ввел свои не стандартные

ИЗ
    РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(&ДатаНачал, &ДатаКонца, Период, ) КАК ВыручкаИСебестоимостьПродажОбороты
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары
        ПО ВыручкаИСебестоимостьПродажОбороты.ЗаказКлиента = ЗаказКлиентаТовары.Ссылка
            И ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаНоменклатуры.Номенклатура = ЗаказКлиентаТовары.Номенклатура
            И ВыручкаИСебестоимостьПродажОбороты.Склад = ЗаказКлиентаТовары.Ссылка.Склад
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаКонца, ВидЦены = &ВидЦены) КАК ЦеныНоменклатурыСрезПоследних
        ПО ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаНоменклатуры.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура,
    РегистрСведений.КурсыВалют.СрезПоследних(&ДатаКонца, Валюта = &Валюта) КАК КурсыВалютСрезПоследних
 
 
   Tumakota
 
1 - 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)параметр дата
   Mankubus
 
7 - 14.10.17 - 15:41
(0) твои параметры в СКД смысла не имеют. Они будут называться как Период, НачалоПериода, КонецПериода
   Мандалай
 
8 - 14.10.17 - 19:15
(7)Почему не имеют? Может он их при компоновке определяет.
   Mikhail Volkov
 
9 - 16.10.17 - 08:32
Форму для СКД обязательно делать? Его надо открывать из документа с определенными параметрами (даты начала, конца, и еще пара) из документа.
   Mikhail Volkov
 
10 - 16.10.17 - 11:31
Без формы отчет на СКД из документа никак не запустить?
 
 Рекламное место пустует
   Mikhail Volkov
 
11 - 16.10.17 - 16:02
Без формы отчет на СКД открываешь из меню (для отладки), надо нажать "Настойки...", заполнить параметры, нажать "Сформировать". Добавил пустую ФормаОтчета, чтобы не ругалась на
        ОтчетПоЧекамФР = Отчеты.ДенежныеСредстваПоЧекамФР.Создать();
        ОтчетПоЧекамФР.ДатаНачала = НачалоДня(Дата);
        ОтчетПоЧекамФР.ДатаКонца  = КонецДня(Дата);
        ОтчетПоЧекамФР.КассаККМ      = КассаККМ;
        ОтчетПоЧекамФР.ФР          = мвДоработки.ФискальныйРегистратор(Ложь);
        ФормаОтчета = ОтчетПоЧекамФР.ПолучитьФорму("ФормаОтчета"); 
        ФормаОтчета.Открыть();
Открывается эта пустая форма, ничего не формируется!?
   Mikhail Volkov
 
12 - 16.10.17 - 16:04
+ не ругалась на ФормаОтчета = ОтчетПоЧекамФР.ПолучитьФорму("ФормаОтчета");
   Mikhail Volkov
 
13 - 16.10.17 - 18:05
Форму удалил (зачем пустая нужна), переделал:
        ПараметрыФормы = Новый Структура;
    //    ПараметрыФормы.Вставить("СформироватьПриОткрытии", Истина);

        ПараметрыФормы.Вставить("ДатаНачала", НачалоДня(Дата));
        ПараметрыФормы.Вставить("ДатаКонца",  КонецДня(Дата));
        ПараметрыФормы.Вставить("КассаККМ",      КассаККМ);
        ПараметрыФормы.Вставить("ФР",          мвДоработки.ФискальныйРегистратор(Ложь));
        ФормаОтчета = ПолучитьФорму("Отчет.ДенежныеСредстваПоЧекамФР.Форма", ПараметрыФормы); 
        ФормаОтчета.Открыть();

Открывается теперь из документа, но параметры пустые!? Это наверное параметры не формы, а отбора? Как их вставить?
   Mikhail Volkov
 
14 - 17.10.17 - 06:07
Альфа-Авто обычное приложение (не УФ). В ней СКД не используют. Где посмотреть пример передачи параметров в отчет СКД без формы?
   Mikhail Volkov
 
15 - 17.10.17 - 07:19
Нашел пример вроде для обычных форм: http://devtrainingforum.v8.1c.ru/forum/thread.jsp?id=607402, сделал также, но ругается: Поле объекта не обнаружено (Отчет)
        ПараметрДанныхДатаНачала = Форма.Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы[0];
   catena
 
16 - 17.10.17 - 07:26
(15)Если вы хотите использовать СКД  без формы, зачем вы мучаете пример вызова через форму?

Форма - просто инструмент, все элементы компоновщика на форме связаны со свойствами самого компоновщика. И обращаться к ним напрямую можно.
   Mikhail Volkov
 
17 - 17.10.17 - 07:34
(16) Гуглю СКД - все для УФ. Как передать параметры в СКД в обычном приложении?
   catena
 
18 - 17.10.17 - 07:40
(17)УФ и ОФ различаются только выводом. Компоновщик и там и там один и тот же.

Как гуглил? Первая же ссылка с установкой отбора для скд.

http://catalog.mista.ru/public/286563/
   Mikhail Volkov
 
19 - 17.10.17 - 11:12
(18) > с установкой отбора для скд.
Отбор - это и есть Параметры СКД? (вроде в СКД свои отборы есть) Прежде всего нужно передать: ДатаНачала и ДатаКонца, и еще пару параметров...
В том примере:
НовыйОтбор = НастройкиКД.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
НовыйОтбор.ЛевоеЗначение = ПолеНоменклатура.Поле;
НовыйОтбор.ПравоеЗначение = ЭлементыФормы.Список.ТекущаяСтрока;
НовыйОтбор.Использование = Истина;

НовыйОтбор = НастройкиКД.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
НовыйОтбор.ЛевоеЗначение = ПолеНоменклатураСкидка.Поле;
НовыйОтбор.ПравоеЗначение = ЭлементыФормы.Список.ТекущаяСтрока;
НовыйОтбор.Использование = Истина;

ЭлементыФормы.Список.ТекущаяСтрока - это сама номенклатура? В обоих случаях ПравоеЗначение одно и тоже?
   catena
 
20 - 17.10.17 - 11:23
Параметры - это параметры, отборы - это отборы.

С параметрами вообще просто:

Параметр                 = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("НачалоПериода"));
Параметр.Значение         = НачалоПериода;
Параметр.Использование     = Истина;


ПравоеЗначение - то, что справа в отборе. Вручную отборы заполняли когда нибудь? Левое-вид сравнения-правое.
   Mikhail Volkov
 
21 - 17.10.17 - 15:16
(20) Значит правильно понял, в примере это Номенклатура. В обоих случаях: для самой номенклатуры и скидки? Все же Номенклатура - параметр или отбор? У меня только параметры: даты, КассаККМ и ФР. Не видя Набор данных примера трудно гадать...
У меня жалуется на: Значение не является значением объектного типа (Поле)
    НовыйОтбор.ЛевоеЗначение  = ПолеКассаККМ.Поле;

Для примера это:
ПолеНоменклатура = тОтчет.КомпоновщикНастроек.Настройки.Отбор.ДоступныеПоляОтбора.Элементы.Найти("Номенклатура");//поле отбора присутствует в СКД
   Mikhail Volkov
 
22 - 19.10.17 - 08:41
(20) Параметры переписал по твоему примеру:

    Отчет = Отчеты.ДенежныеСредстваПоЧекамФР.Создать();
    НастройкиКД = Отчет.КомпоновщикНастроек.ПолучитьНастройки();
    ПараметрДатаНачала  = Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("ДатаНачала"));
    ПараметрДатаНачала.Значение  = ДатаНачала;
    ПараметрДатаНачала.Использование = Истина;
    // Также для ДатаКонца, КассаККМ и ФР

    Отчет.КомпоновщикНастроек.ЗагрузитьНастройки(НастройкиКД);
    Форма = Отчет.ПолучитьФорму("Отчет.ДенежныеСредстваПоЧекамФР.Форма");// у меня нет ФормаОтчета

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

    Форма.Открыть();

Пишет: Ошибка при вызове метода контекста (СкомпоноватьРезультат)
    Отчет.СкомпоноватьРезультат(Форма.ЭлементыФормы.Результат);// табличный документ на форме

по причине:
Ошибка исполнения отчета
по причине:
Ошибка получения данных
по причине:
Ошибка создания набора данных "НаборДанных1"
по причине:
Ошибка при исполнении запроса набора данных
по причине:
{(20, 30)}: Не задано значение параметра "ДатаНачала"
ЧекОплаты.Ссылка.Дата МЕЖДУ <<?>>&ДатаНачала И &ДатаКонца
Параметр ДатаНачала не передался, или ошибка раньше в "НаборДанных1"?
   Mankubus
 
23 - 19.10.17 - 08:54
(22) сначала устанавливаешь параметр в настройках, потом эти настройки заменяешь на другие
 Отчет.КомпоновщикНастроек.ЗагрузитьНастройки(НастройкиКД);

устанавливать параметр можно сразу без поиска Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("ДатаНачала",ДатаНачала)
   Mikhail Volkov
 
24 - 19.10.17 - 10:50
(23) Спс, получилось! Еще бы заголовок параметров в + свернуть!?
   Mikhail Volkov
 
25 - 27.10.17 - 15:13
Только после этого расшифровка не работает, документы из отчета на открываются? А если открыть настройку, параметры эти же задать, сформируется этот же отчет, но документы прямо из отчета открываются. Что-то еще в не указано, что?
   DrShad
 
26 - 27.10.17 - 15:20
(25) нужно инициализировать данные расшифровки
   Mikhail Volkov
 
27 - 27.10.17 - 16:33
(26) Где и как? В итоге получилось следующее:

    Отчет = Отчеты.ДенежныеСредстваПоЧекамФР.Создать();
    НастройкиКД = Отчет.КомпоновщикНастроек.ПолучитьНастройки();
    Отчет.КомпоновщикНастроек.ЗагрузитьНастройки(НастройкиКД);

    Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("ДатаНачала", ДатаНачала);
    Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("ДатаКонца", ДатаКонца);
    Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("КассаККМ", КассаККМ);
    Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("ФР", ФР);

    Форма = Отчет.ПолучитьФорму("Отчет.ДенежныеСредстваПоЧекамФР.Форма");
    Отчет.СкомпоноватьРезультат(Форма.ЭлементыФормы.Результат);
    Форма.Открыть();
   Mikhail Volkov
 
28 - 28.10.17 - 17:33
(26) Добавил ДанныеРасшифровки:
    Форма = Отчет.ПолучитьФорму("Отчет.ДенежныеСредстваПоЧекамФР.Форма");
    ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
    Отчет.СкомпоноватьРезультат(Форма.ЭлементыФормы.Результат, ДанныеРасшифровки);
    Форма.Открыть();
по двойному клику мыши стал какие-то цифры выводить. Как правильно инициализировать данные расшифровки?
   Mikhail Volkov
 
29 - 29.10.17 - 13:51
+ Вроде в форме должна быть Процедура РезультатОбработкаРасшифровки(). Но у меня нет формы?
   Mikhail Volkov
 
30 - 29.10.17 - 19:30
+ Вроде нашел схожую по проблеме тему v8: СКД: Цифры вместо расшифровки добавил:
    Форма = Отчет.ПолучитьФорму("Отчет.ДенежныеСредстваПоЧекамФР.Форма");
    ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
    МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(Отчет.СхемаКомпоновкиДанных, НастройкиКД, ДанныеРасшифровки);
    ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных, , ДанныеРасшифровки);
    Отчет.СкомпоноватьРезультат(Форма.ЭлементыФормы.Результат, ДанныеРасшифровки);
    Форма.Открыть();

Не помогло. Что ни так?
   Mikhail Volkov
 
31 - 30.10.17 - 05:58
+ Всего-то строчку изменил Форма.ДанныеРасшифровки:
Отчет.СкомпоноватьРезультат(Форма.ЭлементыФормы.Результат, Форма.ДанныеРасшифровки);


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