Имя: Пароль:
1C
1С v8
Ошибка в запросе - Измерение не найдено "Период"
0 shavkat
 
19.01.12
20:01
Всем привет.

При выборке результата запроса выскакивает вот такая ошибка - Измерение не найдено "Период", хотя в запросе измерение период есть.

подскажите пожалуйста, где я ошибся? что исправить?

вот код

   Запрос = Новый Запрос;
   Запрос.Текст="ВЫБРАТЬ
                |    КассаОстаткиИОбороты.Период КАК Период,
                |    СУММА(ВложенныйЗапрос.ПриходТопливо) КАК ПриходНП,
                |    СУММА(ЕСТЬNULL(ВложенныйЗапрос1.ПриходСТ, 0)) КАК ПриходСТ,
                |    СУММА(ЕСТЬNULL(КассаОстаткиИОбороты.СуммаПриход, 0)) КАК ВсегоПриход,
                |    СУММА(ЕСТЬNULL(КассаОстаткиИОбороты.СуммаРасход, 0)) КАК СуммаРасход,
                |    СУММА(ЕСТЬNULL(КассаОстаткиИОбороты.СуммаКонечныйОстаток, 0)) КАК СуммаКонечныйОстаток
                |ИЗ
                |    РегистрНакопления.Касса.ОстаткиИОбороты(&Дата1, &Дата2, День, , ) КАК КассаОстаткиИОбороты
                |        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                |            КассаОбороты.СуммаПриход КАК ПриходСТ,
                |            КассаОбороты.Период КАК Период
                |        ИЗ
                |            РегистрНакопления.Касса.Обороты(&Дата1, &Дата2, День, ) КАК КассаОбороты
                |        ГДЕ
                |            КассаОбороты.ВидыПрихода = &ПриходСТ) КАК ВложенныйЗапрос1
                |        ПО КассаОстаткиИОбороты.Период = ВложенныйЗапрос1.Период
                |        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                |            КассаОбороты.СуммаПриход КАК ПриходТопливо,
                |            КассаОбороты.Период КАК Период
                |        ИЗ
                |            РегистрНакопления.Касса.Обороты(&Дата1, &Дата2, День, ) КАК КассаОбороты
                |        ГДЕ
                |            КассаОбороты.ВидыПрихода = &ПриходТоплива) КАК ВложенныйЗапрос
                |        ПО КассаОстаткиИОбороты.Период = ВложенныйЗапрос.Период
                |
                |СГРУППИРОВАТЬ ПО
                |    КассаОстаткиИОбороты.Период
                |
                |УПОРЯДОЧИТЬ ПО
                |    Период
                |ИТОГИ ПО
                |    ОБЩИЕ";
   Запрос.УстановитьПараметр("Дата1", НачалоДня(Дата1));
   Запрос.УстановитьПараметр("Дата2", КонецДня(Дата2));
   Запрос.УстановитьПараметр("ПриходСТ", Перечисления.ВидыПриходовСТ.Сопутка);
   Запрос.УстановитьПараметр("ПриходТоплива", Перечисления.ВидыПриходовСТ.Топливо);
   
   Результат = Запрос.Выполнить();
   Выборка=Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
   Пока Выборка.Следующий() Цикл
       Подвал.Параметры.Заполнить(Выборка);
       ВыборкаПериод=Выборка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"Период","Все");
       Пока ВыборкаПериод.Следующий() Цикл
           Стр.Параметры.Заполнить(ВыборкаПериод);
           ТабДок.Вывести(Стр);
       КонецЦикла;
   КонецЦикла;


заранее благодарю
1 PR
 
19.01.12
20:02
Периодичность укажи
2 shavkat
 
19.01.12
20:24
Указал же, периодичность = день

РегистрНакопления.Касса.ОстаткиИОбороты(&Дата1, &Дата2, День, , ) КАК КассаОстаткиИОбороты
3 shavkat
 
20.01.12
08:07
Может я неправильно указал периодичность?
4 Рэйв
 
20.01.12
08:10
е- латинская?
5 shavkat
 
20.01.12
08:20
нет, русская
6 Рэйв
 
20.01.12
08:23
(5)Убери период и группировку по нему, зайди в конструктор и сделай все там
7 andrewks
 
20.01.12
08:26
интересно ты выбираешь.
сделай один цикл по

Результат = Запрос.Выполнить();
   Выборка=Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
   Пока Выборка.Следующий() Цикл

и анализируй ТипЗаписи()
8 shavkat
 
20.01.12
09:04
Анилизировал ТипЗаписи()

Результат = Запрос.Выполнить();
Выборка=Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока Выборка.Следующий() Цикл
     // здесь ТипЗаписи() ОбщийИтог


ВыборкаПериод=Выборка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"Период","Все"); // а здесь выбрать не получается, отладчиком смотрел поле "Период" равен Null
9 andrewks
 
20.01.12
09:12
намекаю ещё раз: у тебя ОДНА группировка
10 shavkat
 
20.01.12
09:37
(9) понял, первый цикл у меня итоговый, а второй цикл сделал по прямой,
ВыборкаПериод=ВыборкаГруппы.Выбрать(ОбходРезультатаЗапроса.Прямой ,"Период","Все");

все равно эта ошибка выскакивает - Измерение не найдено "Период"
11 Dmitrii
 
гуру
20.01.12
09:42
(10) Ты нормальный? У тебя в запросе в разделе ИТОГИ разве есть "ПО Период"?
У тебя только "ПО ОБЩИЕ".
12 shavkat
 
20.01.12
10:47
(11) Спасибо за теплые слова))

Вот теперь то уж точно понял))

сделал итоги По Период, получилось

Вопрос закрыт, всем спасибо!
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший