Имя: Пароль:
1C
1С v8
Ошибка в запросе. Помогите разобраться что не так.
0 Ivanych
 
17.11.11
09:39
Помогите разобраться новичку что не так. Спасибо. Вот такое сообщение выдает:
{Отчет.РасходМатериаловПоЗаказу.Форма.Отчет(134)}: Ошибка при вызове метода контекста (Выполнить): {(57, 16)}: Ожидается выражение "("
Материал в <<?>>&ВыбМатериал
   Результат = Запрос.Выполнить();
по причине:
{(57, 16)}: Ожидается выражение "("
Материал в <<?>>&ВыбМатериал

Модуль:
Процедура ДействияФормыОтчетСформировать(Кнопка)

   
   ТабДокумент = ЭлементыФормы.ПолеТабличногоДокумента;
   ТабДокумент.Очистить();
   ОтчетВывести(ТабДокумент);
КонецПроцедуры

Процедура ОтчетВывести(ТабДокумент) Экспорт
   Макет = ОтчетОбъект.ПолучитьМакет("Отчет");
   Запрос = Новый Запрос;
   Запрос.Текст =
   "ВЫБРАТЬ
   |    ВложенныйЗапрос.Материал КАК Материал,
   |    СУММА(ВложенныйЗапрос.КоличествоЗатребованно) КАК КоличествоЗатребованно,
   |    СУММА(ВложенныйЗапрос.КоличествоВыданно) КАК КоличествоВыданно,
   |    СУММА(ВложенныйЗапрос.КоличествоСписание) КАК КоличествоСписание,
   |    СУММА(ВложенныйЗапрос.СуммаСписание) КАК СуммаСписание,
   |    СУММА(ВложенныйЗапрос.КоличествоЗаказ) КАК КоличествоЗаказ,
   |    СУММА(ВложенныйЗапрос.СуммаЗаказ) КАК СуммаЗаказ
   |ИЗ
   |    (ВЫБРАТЬ
   |        АктСписанияМатериаловТЧ.Материал КАК Материал,
   |        АктСписанияМатериаловТЧ.Количество КАК КоличествоСписание,
   |        АктСписанияМатериаловТЧ.Сумма КАК СуммаСписание,
   |        (0) КАК КоличествоЗатребованно,
   |        (0) КАК КоличествоВыданно,
   |        (0) КАК КоличествоЗаказ,
   |        (0) КАК СуммаЗаказ
   |    ИЗ
   |        Документ.АктСписанияМатериалов.ТЧ КАК АктСписанияМатериаловТЧ
   |    ГДЕ
   |        АктСписанияМатериаловТЧ.Ссылка.Проведен
   |        И АктСписанияМатериаловТЧ.Ссылка.Дата МЕЖДУ &Дата1 И &Дата2
   |    
   |    ОБЪЕДИНИТЬ ВСЕ
   |    
   |    ВЫБРАТЬ
   |        ТребованиеПеремещенияТабличнаяЧасть.Материал,
   |        (0),
   |        (0),
   |        ТребованиеПеремещенияТабличнаяЧасть.Затребовано,
   |        ТребованиеПеремещенияТабличнаяЧасть.Выдано,
   |        (0),
   |        (0)
   |    ИЗ
   |        Документ.ТребованиеПеремещения.ТабличнаяЧасть КАК ТребованиеПеремещенияТабличнаяЧасть
   |    ГДЕ
   |        ТребованиеПеремещенияТабличнаяЧасть.Ссылка.Проведен
   |        И ТребованиеПеремещенияТабличнаяЧасть.Ссылка.Дата МЕЖДУ &Дата1 И &Дата2
   |
   |   ОБЪЕДИНИТЬ ВСЕ
   |
   |    ВЫБРАТЬ
   |        ЗаказНаИзготовлениеПродукцииМатериалы.Материал,
   |        (0),
   |        (0),
   |        (0),
   |        (0),
   |        ЗаказНаИзготовлениеПродукцииМатериалы.Количество,
   |        ЗаказНаИзготовлениеПродукцииМатериалы.Сумма
   |    ИЗ
   |        Документ.ЗаказНаИзготовлениеПродукции.Материалы КАК ЗаказНаИзготовлениеПродукцииМатериалы
   |    ГДЕ
   |        ЗаказНаИзготовлениеПродукцииМатериалы.Ссылка.Проведен
   |        И ЗаказНаИзготовлениеПродукцииМатериалы.Ссылка.Дата МЕЖДУ &Дата1 И &Дата2) КАК ВложенныйЗапрос";
   Если ЗначениеЗаполнено(ВыбМатериал) Тогда
       Запрос.Текст=Запрос.Текст+"
       |  
       |ГДЕ
       |    Материал в &ВыбМатериал
       |";
       Запрос.УстановитьПараметр("Материал", ВыбМатериал);
   КонецЕсли;
   Запрос.Текст=Запрос.Текст+"
   |
   |СГРУППИРОВАТЬ ПО
   |    ВложенныйЗапрос.Материал";
   
   Запрос.УстановитьПараметр("Дата2", Дата2);
   Запрос.УстановитьПараметр("Дата1", Дата1);
   Результат = Запрос.Выполнить();
   
   ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
   ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
   ОбластьТМЦ = Макет.ПолучитьОбласть("ТМЦ");
   ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы");
   ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
   
   ОбластьЗаголовок.Параметры.Дата1 = Формат(Дата1, "ДФ=dd.MM.yyyy");
   ОбластьЗаголовок.Параметры.Дата2 = Формат(Дата2, "ДФ=dd.MM.yyyy");
   ТабДокумент.Вывести(ОбластьЗаголовок);
   
   ТабДокумент.Вывести(ОбластьШапкаТаблицы);
   ТабДокумент.НачатьАвтогруппировкуСтрок();
   
   //Выборка = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
   Выборка = Результат.Выбрать();
   
   Пока Выборка.Следующий() Цикл
       ОбластьТМЦ.Параметры.Заполнить(ОбластьТМЦ);
       ОбластьТМЦ.Параметры.Материал= Выборка.Материал;
       ОбластьТМЦ.Параметры.КолвоСписание= Выборка.КоличествоСписание;
       ОбластьТМЦ.Параметры.СуммаСписание= Выборка.СуммаСписание;
       ОбластьТМЦ.Параметры.КолвоЗатребованно= Выборка.КоличествоЗатребованно;
       ОбластьТМЦ.Параметры.КолвоВыданно= Выборка.КоличествоВыданно;
       ОбластьТМЦ.Параметры.КолвоЗаказ= Выборка.КоличествоЗаказ;
       ОбластьТМЦ.Параметры.СуммаЗаказ= Выборка.СуммаЗаказ;
       ТабДокумент.Вывести(ОбластьТМЦ, Выборка.Уровень());
   КонецЦикла;
   
   ТабДокумент.ЗакончитьАвтогруппировкуСтрок();
   
   Таб = Запрос.Выполнить().Выгрузить();
   Таб.Свернуть("","КоличествоСписание,СуммаСписание,СуммаЗаказ,КоличествоЗатребованно,КоличествоВыданно,КоличествоЗаказ");
   ОбластьПодвалТаблицы.Параметры.КолвоСписание= Таб[0].КоличествоСписание;
   ОбластьПодвалТаблицы.Параметры.СуммаСписание= Таб[0].СуммаСписание;
   ОбластьПодвалТаблицы.Параметры.КолвоЗатребованно= Таб[0].КоличествоЗатребованно;
   ОбластьПодвалТаблицы.Параметры.КолвоВыданно= Таб[0].КоличествоВыданно;
   ОбластьПодвалТаблицы.Параметры.КолвоЗаказ= Таб[0].КоличествоЗаказ;
   ОбластьПодвалТаблицы.Параметры.СуммаЗаказ= Таб[0].СуммаЗаказ;

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


Процедура ВыбПериодНажатие(Элемент)
   НастройкаПериода = Новый НастройкаПериода;
   НастройкаПериода.УстановитьПериод(Дата1, ?(Дата2='0001-01-01', Дата2, КонецДня(Дата2)));
   НастройкаПериода.РедактироватьКакИнтервал = Истина;
   НастройкаПериода.РедактироватьКакПериод = Истина;
   НастройкаПериода.ВариантНастройки = ВариантНастройкиПериода.Период;
   Если НастройкаПериода.Редактировать() Тогда
       Дата1 = НастройкаПериода.ПолучитьДатуНачала();
       Дата2 = НастройкаПериода.ПолучитьДатуОкончания();
   КонецЕсли;
КонецПроцедуры

Процедура ПриОткрытии()
   Если обЗначениеНеЗаполнено(Дата1) Тогда
       Дата1 = НачалоМесяца(ТекущаяДата());    
   КонецЕсли;
   
   Если обЗначениеНеЗаполнено(Дата2) Тогда
       Дата2 = КонецМесяца(ТекущаяДата());    
   КонецЕсли;
КонецПроцедуры
1 guitar_player
 
17.11.11
09:40
Материал в (&ВыбМатериал)
2 YF
 
17.11.11
09:40
(0) зачем? может 0
3 xXeNoNx
 
17.11.11
09:44
+(1) тока ВложенныйЗапрос.Материал в (&ВыбМатериал)
4 Ivanych
 
17.11.11
09:45
(2) Пробывал
5 Ivanych
 
17.11.11
09:45
(3) Пробывал
6 Ivanych
 
17.11.11
09:47
(2) Не понял? может 0
7 Птица
 
17.11.11
09:48
если это  условие

 Если ЗначениеЗаполнено(ВыбМатериал) Тогда
       Запрос.Текст=Запрос.Текст+"
       |  
       |ГДЕ
       |    Материал в &ВыбМатериал
       |";
       Запрос.УстановитьПараметр("Материал", ВыбМатериал);
   КонецЕсли;

выполнено, то у тебя будет 2 секции ГДЕ
8 SnarkHunter
 
17.11.11
09:49
(4)
(5)
Правильно пишется "пробОвал"
9 xXeNoNx
 
17.11.11
09:51
в ВыбМатериал список или массив?
10 Ivanych
 
17.11.11
09:52
(7)
{Отчет.РасходМатериаловПоЗаказу.Форма.Отчет(112)}: Ошибка при вызове метода контекста (Выполнить): {(57, 16)}: Ожидается выражение "("
Материал в <<?>>&ВыбМатериал
   Результат = Запрос.Выполнить();
по причине:
{(57, 16)}: Ожидается выражение "("
Материал в <<?>>&ВыбМатериал
11 Ivanych
 
17.11.11
09:53
(9) Поле ввода СправочникСсылка.Номенклатура
12 hhhh
 
17.11.11
09:55
(10) ну это, поставь скобки, раз она ожидает их.
13 Ivanych
 
17.11.11
10:02
(12) Ага. Фигня полная.
14 Птица
 
17.11.11
10:05
(10) тебе про скобки еще в первом посте сказали.
15 Шапокляк
 
17.11.11
10:07
(0) смотри (7) - если условие выполняется, то в тексте запроса будет две секции ГДЕ:
 |    ГДЕ
   |        ЗаказНаИзготовлениеПродукцииМатериалы.Ссылка.Проведен
   |        И ЗаказНаИзготовлениеПродукцииМатериалы.Ссылка.Дата МЕЖДУ &Дата1 И &Дата2) КАК ВложенныйЗапрос
       |  
       |ГДЕ
       |    Материал в &ВыбМатериал
       |";
       Запрос.УстановитьПараметр("Материал", ВыбМатериал);
   КонецЕсли;
что само по себе неправильно. Мало того, конструкция "В &ЧтоТоТам" без скобок не применяется. Третье - Если в запросе есть параметр &ЧтоТоТам, то его и надо устанавливать в параметрах, а именно: не Запрос.Установитьпараметр("Материал"...), а Запрос.УстановитьПараметр("ВыбМатериал"...)

Попробуйте переписать в запросе это место следующим образом:

  |    ГДЕ
   |        ЗаказНаИзготовлениеПродукцииМатериалы.Ссылка.Проведен
   |        И ЗаказНаИзготовлениеПродукцииМатериалы.Ссылка.Дата МЕЖДУ &Дата1 И &Дата2 И Материал В Иерархии(&ВыбМатериал)) КАК ВложенныйЗапрос";
   
       Запрос.УстановитьПараметр("ВыбМатериал", ВыбМатериал);
16 Ivanych
 
17.11.11
10:10
(14) Пробовал
17 hotZED
 
17.11.11
10:14
Иваныч, сделай как советуют в (1), выбери материал, во время отладки останови перед "Результат = Запрос.Выполнить();" и покажи весь запрос целиком.
18 Ivanych
 
17.11.11
10:21
(17) До  "Результат = Запрос.Выполнить();" все ок.


//Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)

//    //ОтчетИнициализация();

//КонецПроцедуры


Процедура ДействияФормыОтчетНастройка(Кнопка)
   //{{КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ_ПОСТРОИТЕЛЬОТЧЕТА_НАСТРОЙКА(Отчет)
   // Данный фрагмент построен конструктором.
   // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
   
   //Форма = ОтчетОбъект.ПолучитьФорму("ОтчетНастройка");
   //Форма.ПостроительОтчета = ПостроительОтчетаОтчет;
   //Настройка = ПостроительОтчетаОтчет.ПолучитьНастройки();
   //Если Форма.ОткрытьМодально() = Истина Тогда
   //    ОтчетВывести();
   //Иначе
   //    ПостроительОтчетаОтчет.УстановитьНастройки(Настройка);
   //КонецЕсли;
   
   
   //}}КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ_ПОСТРОИТЕЛЬОТЧЕТА_НАСТРОЙКА
КонецПроцедуры

Процедура ДействияФормыОтчетСформировать(Кнопка)
   //{{КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ_ПРОЦЕДУРА_ВЫЗОВА(Отчет)
   // Данный фрагмент построен конструктором.
   // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
   
   ТабДокумент = ЭлементыФормы.ПолеТабличногоДокумента;
   ТабДокумент.Очистить();
   ОтчетВывести(ТабДокумент);
   
   //}}КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ_ПРОЦЕДУРА_ВЫЗОВА
КонецПроцедуры

Процедура ОтчетВывести(ТабДокумент) Экспорт
   Макет = ОтчетОбъект.ПолучитьМакет("Отчет");
   Запрос = Новый Запрос;
   Запрос.Текст =
   "ВЫБРАТЬ
   |    ВложенныйЗапрос.Материал,
   |    СУММА(ВложенныйЗапрос.КоличествоЗатребованно) КАК КоличествоЗатребованно,
   |    СУММА(ВложенныйЗапрос.КоличествоВыданно) КАК КоличествоВыданно,
   |    СУММА(ВложенныйЗапрос.КоличествоСписание) КАК КоличествоСписание,
   |    СУММА(ВложенныйЗапрос.СуммаСписание) КАК СуммаСписание,
   |    СУММА(ВложенныйЗапрос.КоличествоЗаказ) КАК КоличествоЗаказ,
   |    СУММА(ВложенныйЗапрос.СуммаЗаказ) КАК СуммаЗаказ
   |ИЗ
   |    (ВЫБРАТЬ
   |        АктСписанияМатериаловТЧ.Материал КАК Материал,
   |        АктСписанияМатериаловТЧ.Количество КАК КоличествоСписание,
   |        АктСписанияМатериаловТЧ.Сумма КАК СуммаСписание,
   |        (0) КАК КоличествоЗатребованно,
   |        (0) КАК КоличествоВыданно,
   |        (0) КАК КоличествоЗаказ,
   |        (0) КАК СуммаЗаказ
   |    ИЗ
   |        Документ.АктСписанияМатериалов.ТЧ КАК АктСписанияМатериаловТЧ
   |    ГДЕ
   |        АктСписанияМатериаловТЧ.Ссылка.Проведен
   |        И АктСписанияМатериаловТЧ.Ссылка.Дата МЕЖДУ &Дата1 И &Дата2
   |    
   |    ОБЪЕДИНИТЬ ВСЕ
   |    
   |    ВЫБРАТЬ
   |        ТребованиеПеремещенияТабличнаяЧасть.Материал,
   |        (0),
   |        (0),
   |        ТребованиеПеремещенияТабличнаяЧасть.Затребовано,
   |        ТребованиеПеремещенияТабличнаяЧасть.Выдано,
   |        (0),
   |        (0)
   |    ИЗ
   |        Документ.ТребованиеПеремещения.ТабличнаяЧасть КАК ТребованиеПеремещенияТабличнаяЧасть
   |    ГДЕ
   |        ТребованиеПеремещенияТабличнаяЧасть.Ссылка.Проведен
   |        И ТребованиеПеремещенияТабличнаяЧасть.Ссылка.Дата МЕЖДУ &Дата1 И &Дата2
   |
   |   ОБЪЕДИНИТЬ ВСЕ
   |
   |    ВЫБРАТЬ
   |        ЗаказНаИзготовлениеПродукцииМатериалы.Материал,
   |        (0),
   |        (0),
   |        (0),
   |        (0),
   |        ЗаказНаИзготовлениеПродукцииМатериалы.Количество,
   |        ЗаказНаИзготовлениеПродукцииМатериалы.Сумма
   |    ИЗ
   |        Документ.ЗаказНаИзготовлениеПродукции.Материалы КАК ЗаказНаИзготовлениеПродукцииМатериалы
   |    ГДЕ
   |        ЗаказНаИзготовлениеПродукцииМатериалы.Ссылка.Проведен
   |        И ЗаказНаИзготовлениеПродукцииМатериалы.Ссылка.Дата МЕЖДУ &Дата1 И &Дата2) КАК ВложенныйЗапрос";
   Если ЗначениеЗаполнено(ВыбМатериал) Тогда
       
       Запрос.Текст=Запрос.Текст+"
       |  
       |ГДЕ
       |    ВложенныйЗапрос.Материал в (&ВыбМатериал)
       |";
       Запрос.УстановитьПараметр("Материал", ВыбМатериал);
   КонецЕсли;
   Запрос.Текст=Запрос.Текст+"
   |
   |СГРУППИРОВАТЬ ПО
   |    ВложенныйЗапрос.Материал";
   
   Запрос.УстановитьПараметр("Дата2", Дата2);
   Запрос.УстановитьПараметр("Дата1", Дата1);
   Результат = Запрос.Выполнить();
   
   ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
   ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
   ОбластьТМЦ = Макет.ПолучитьОбласть("ТМЦ");
   ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы");
   ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
   
   ОбластьЗаголовок.Параметры.Дата1 = Формат(Дата1, "ДФ=dd.MM.yyyy");
   ОбластьЗаголовок.Параметры.Дата2 = Формат(Дата2, "ДФ=dd.MM.yyyy");
   ТабДокумент.Вывести(ОбластьЗаголовок);
   
   ТабДокумент.Вывести(ОбластьШапкаТаблицы);
   ТабДокумент.НачатьАвтогруппировкуСтрок();
   
   //Выборка = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
   Выборка = Результат.Выбрать();
   
   Пока Выборка.Следующий() Цикл
       ОбластьТМЦ.Параметры.Заполнить(ОбластьТМЦ);
       ОбластьТМЦ.Параметры.Материал= Выборка.Материал;
       ОбластьТМЦ.Параметры.КолвоСписание= Выборка.КоличествоСписание;
       ОбластьТМЦ.Параметры.СуммаСписание= Выборка.СуммаСписание;
       ОбластьТМЦ.Параметры.КолвоЗатребованно= Выборка.КоличествоЗатребованно;
       ОбластьТМЦ.Параметры.КолвоВыданно= Выборка.КоличествоВыданно;
       ОбластьТМЦ.Параметры.КолвоЗаказ= Выборка.КоличествоЗаказ;
       ОбластьТМЦ.Параметры.СуммаЗаказ= Выборка.СуммаЗаказ;
       ТабДокумент.Вывести(ОбластьТМЦ, Выборка.Уровень());
   КонецЦикла;
   
   ТабДокумент.ЗакончитьАвтогруппировкуСтрок();
   
   Таб = Запрос.Выполнить().Выгрузить();
   Таб.Свернуть("","КоличествоСписание,СуммаСписание,СуммаЗаказ,КоличествоЗатребованно,КоличествоВыданно,КоличествоЗаказ");
   ОбластьПодвалТаблицы.Параметры.КолвоСписание= Таб[0].КоличествоСписание;
   ОбластьПодвалТаблицы.Параметры.СуммаСписание= Таб[0].СуммаСписание;
   ОбластьПодвалТаблицы.Параметры.КолвоЗатребованно= Таб[0].КоличествоЗатребованно;
   ОбластьПодвалТаблицы.Параметры.КолвоВыданно= Таб[0].КоличествоВыданно;
   ОбластьПодвалТаблицы.Параметры.КолвоЗаказ= Таб[0].КоличествоЗаказ;
   ОбластьПодвалТаблицы.Параметры.СуммаЗаказ= Таб[0].СуммаЗаказ;

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


Процедура ВыбПериодНажатие(Элемент)
   НастройкаПериода = Новый НастройкаПериода;
   НастройкаПериода.УстановитьПериод(Дата1, ?(Дата2='0001-01-01', Дата2, КонецДня(Дата2)));
   НастройкаПериода.РедактироватьКакИнтервал = Истина;
   НастройкаПериода.РедактироватьКакПериод = Истина;
   НастройкаПериода.ВариантНастройки = ВариантНастройкиПериода.Период;
   Если НастройкаПериода.Редактировать() Тогда
       Дата1 = НастройкаПериода.ПолучитьДатуНачала();
       Дата2 = НастройкаПериода.ПолучитьДатуОкончания();
   КонецЕсли;
КонецПроцедуры

Процедура ПриОткрытии()
   Если обЗначениеНеЗаполнено(Дата1) Тогда
       Дата1 = НачалоМесяца(ТекущаяДата());    
   КонецЕсли;
   
   Если обЗначениеНеЗаполнено(Дата2) Тогда
       Дата2 = КонецМесяца(ТекущаяДата());    
   КонецЕсли;
КонецПроцедуры
19 hotZED
 
17.11.11
10:22
(18) я попросил показать текст самого запроса, а не код всего отчета. Можешь это сделать?
20 Ivanych
 
17.11.11
10:24
(19)    

Запрос = Новый Запрос;
   Запрос.Текст =
   "ВЫБРАТЬ
   |    ВложенныйЗапрос.Материал,
   |    СУММА(ВложенныйЗапрос.КоличествоЗатребованно) КАК КоличествоЗатребованно,
   |    СУММА(ВложенныйЗапрос.КоличествоВыданно) КАК КоличествоВыданно,
   |    СУММА(ВложенныйЗапрос.КоличествоСписание) КАК КоличествоСписание,
   |    СУММА(ВложенныйЗапрос.СуммаСписание) КАК СуммаСписание,
   |    СУММА(ВложенныйЗапрос.КоличествоЗаказ) КАК КоличествоЗаказ,
   |    СУММА(ВложенныйЗапрос.СуммаЗаказ) КАК СуммаЗаказ
   |ИЗ
   |    (ВЫБРАТЬ
   |        АктСписанияМатериаловТЧ.Материал КАК Материал,
   |        АктСписанияМатериаловТЧ.Количество КАК КоличествоСписание,
   |        АктСписанияМатериаловТЧ.Сумма КАК СуммаСписание,
   |        (0) КАК КоличествоЗатребованно,
   |        (0) КАК КоличествоВыданно,
   |        (0) КАК КоличествоЗаказ,
   |        (0) КАК СуммаЗаказ
   |    ИЗ
   |        Документ.АктСписанияМатериалов.ТЧ КАК АктСписанияМатериаловТЧ
   |    ГДЕ
   |        АктСписанияМатериаловТЧ.Ссылка.Проведен
   |        И АктСписанияМатериаловТЧ.Ссылка.Дата МЕЖДУ &Дата1 И &Дата2
   |    
   |    ОБЪЕДИНИТЬ ВСЕ
   |    
   |    ВЫБРАТЬ
   |        ТребованиеПеремещенияТабличнаяЧасть.Материал,
   |        (0),
   |        (0),
   |        ТребованиеПеремещенияТабличнаяЧасть.Затребовано,
   |        ТребованиеПеремещенияТабличнаяЧасть.Выдано,
   |        (0),
   |        (0)
   |    ИЗ
   |        Документ.ТребованиеПеремещения.ТабличнаяЧасть КАК ТребованиеПеремещенияТабличнаяЧасть
   |    ГДЕ
   |        ТребованиеПеремещенияТабличнаяЧасть.Ссылка.Проведен
   |        И ТребованиеПеремещенияТабличнаяЧасть.Ссылка.Дата МЕЖДУ &Дата1 И &Дата2
   |
   |   ОБЪЕДИНИТЬ ВСЕ
   |
   |    ВЫБРАТЬ
   |        ЗаказНаИзготовлениеПродукцииМатериалы.Материал,
   |        (0),
   |        (0),
   |        (0),
   |        (0),
   |        ЗаказНаИзготовлениеПродукцииМатериалы.Количество,
   |        ЗаказНаИзготовлениеПродукцииМатериалы.Сумма
   |    ИЗ
   |        Документ.ЗаказНаИзготовлениеПродукции.Материалы КАК ЗаказНаИзготовлениеПродукцииМатериалы
   |    ГДЕ
   |        ЗаказНаИзготовлениеПродукцииМатериалы.Ссылка.Проведен
   |        И ЗаказНаИзготовлениеПродукцииМатериалы.Ссылка.Дата МЕЖДУ &Дата1 И &Дата2) КАК ВложенныйЗапрос";
   Если ЗначениеЗаполнено(ВыбМатериал) Тогда
       
       Запрос.Текст=Запрос.Текст+"
       |  
       |ГДЕ
       |    Материал в (&ВыбМатериал)
       |";
       Запрос.УстановитьПараметр("Материал", ВыбМатериал);
   КонецЕсли;
   Запрос.Текст=Запрос.Текст+"
   |
   |СГРУППИРОВАТЬ ПО
   |    ВложенныйЗапрос.Материал";
   
   Запрос.УстановитьПараметр("Дата2", Дата2);
   Запрос.УстановитьПараметр("Дата1", Дата1);
   Результат = Запрос.Выполнить();
21 hotZED
 
17.11.11
10:26
(19) Иваныч, ты видимо отладкой пользоваться не умеешь? Или не понимаешь, что именно от тебя просят...
22 Ivanych
 
17.11.11
10:26
(21) Поясни
23 hotZED
 
17.11.11
10:27
(19) И что сейчас система пишет при выполнении запроса? Какую именно ошибку?
24 Ivanych
 
17.11.11
10:28
(23)

{Отчет.РасходМатериаловПоЗаказу.Форма.Отчет(113)}: Ошибка при вызове метода контекста (Выполнить): {(57, 17)}: Не задано значение параметра "ВыбМатериал"
Материал в (<<?>>&ВыбМатериал)
   Результат = Запрос.Выполнить();
по причине:
{(57, 17)}: Не задано значение параметра "ВыбМатериал"
Материал в (<<?>>&ВыбМатериал)
25 Шапокляк
 
17.11.11
10:29
(24) Ну прочитай (15), там же все написано
26 hotZED
 
17.11.11
10:29
(23) Исправь Запрос.УстановитьПараметр("Материал", ВыбМатериал);
на Запрос.УстановитьПараметр("ВыбМатериал", ВыбМатериал);
27 Ivanych
 
17.11.11
10:30
(26)
{Отчет.РасходМатериаловПоЗаказу.Форма.Отчет(147)}: Индекс находится за границами массива
   ОбластьПодвалТаблицы.Параметры.КолвоСписание= Таб[0].КоличествоСписание;
28 Ivanych
 
17.11.11
10:31
Если не выбираешь то норм
29 hhhh
 
17.11.11
10:31
миста - лучший отладчик
30 hotZED
 
17.11.11
10:32
(29) +1
(28) ну давай уж сам думай
31 Ivanych
 
17.11.11
10:34
Ладно всем СПС. Буду дальше пробывать.
32 Ivanych
 
17.11.11
10:36
(30) (25) Получилось)

   Если ЗначениеЗаполнено(ВыбМатериал) Тогда
       
       Запрос.Текст=Запрос.Текст+"
       |  
       |ГДЕ
       |    ВложенныйЗапрос.Материал в Иерархии(&ВыбМатериал)
       |";
       Запрос.УстановитьПараметр("ВыбМатериал", ВыбМатериал);
   КонецЕсли;
33 Шапокляк
 
17.11.11
11:01
(32) Не поверишь, данная конструкция работает и без условия что ВыбМатериал заполнен - если там пустая ссылка, то в иерархии пустой ссылки будут все материалы.