Уважаемые гуру 1С, очень прошу помочь начинающиму 1снику...
В запросе обрабатываю табличные части документа, нужно подтягивать цены с регистра на дату документа, весь день мозг себе выношу, не могу реализовать.
Как мне установить параметр &Дата как у СборкаЗапасов.Ссылка.Дата
Вот код запроса:
ВЫБРАТЬ
СборкаЗапасов.Ссылка.Дата КАК ДатаДокумента,
СборкаЗапасов.Номенклатура КАК Запас,
СборкаЗапасов.Количество КАК Количество,
СборкаЗапасов.ЕдиницаИзмерения.Наименование КАК ЕдиницаИзмеренияНаименование,
СборкаЗапасов.Номенклатура.Код КАК НоменклатурныйНомер,
СборкаЗапасов.Количество * ЕСТЬNULL(тЦена.Цена, 0) КАК Сумма,
тЦена.Цена КАК Цена
ИЗ
Документ.СборкаЗапасов.Запасы КАК СборкаЗапасов
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата, ВидЦен = &ТипЦен) КАК тЦена
ПО (СборкаЗапасов.Номенклатура = тЦена.Номенклатура)
ЛЕВОЕ СОЕДИНЕНИЕ Документ.СборкаЗапасов КАК СборкаЗапасов1
ПО (СборкаЗапасов.Ссылка = СборкаЗапасов1.Ссылка)
ГДЕ
СборкаЗапасов1.Дата МЕЖДУ &ДатаОТ И &ДатаДО
И СборкаЗапасов1.Автор = &Автор
Срезпоследних в данном случае не работает.
Надо сначала получить временную таблицу с ценами на каждую дату документов, потом соединять с этой таблицей по дате
Непонятно, зачем соединение на себя(ЛЕВОЕ СОЕДИНЕНИЕ Документ.СборкаЗапасов КАК СборкаЗапасов1). Убрал.
Нужно примерно так (могут быть опечатки):
ВЫБРАТЬ
СборкаЗапасов.Ссылка.Дата КАК ДатаДокумента,
СборкаЗапасов.Номенклатура КАК Запас,
СборкаЗапасов.Количество КАК Количество,
СборкаЗапасов.ЕдиницаИзмерения.Наименование КАК ЕдиницаИзмеренияНаименование,
СборкаЗапасов.Номенклатура.Код КАК НоменклатурныйНомер
Поместить ВТ_СборкаЗапасов
ИЗ
Документ.СборкаЗапасов.Запасы КАК СборкаЗапасов
ГДЕ
СборкаЗапасов.Дата МЕЖДУ &ДатаОТ И &ДатаДО
И СборкаЗапасов.Автор = &Автор
;
Выбрать ЦеныНоменклатуры.Номенклатура,
ЦеныНоменклатуры.период,
ЦеныНоменклатуры.цена
Поместить ВТ_ВсеЦеныПоНужнойНоменклатуре
ИЗ РегистрСведений.ЦеныНоменклатуры Как ЦеныНоменклатуры
внутреннее соединение ВТ_СборкаЗапасов как ВТ_СборкаЗапасов
по ЦеныНоменклатуры.Номенклатура=ВТ_СборкаЗапасов.Запас
И (ЦеныНоменклатуры.ВидЦен = &ТипЦен)
;
Выбрать ВТ_СборкаЗапасов.*,
Максимум(ВТ_ВсеЦеныПоНужнойНоменклатуре.Период) Как ПериодЦены
поместить ВТ_СборкаЗапасовСНужнымПериодомЦены
ИЗ ВТ_СборкаЗапасов как ВТ_СборкаЗапасов
Левое соединение ВТ_ВсеЦеныПоНужнойНоменклатуре как ВТ_ВсеЦеныПоНужнойНоменклатуре
по ВТ_СборкаЗапасов.Запас=ВТ_ВсеЦеныПоНужнойНоменклатуре.Номенклатура
И ВТ_СборкаЗапасов.ДатаДокумента>=ВТ_ВсеЦеныПоНужнойНоменклатуре.Период
Сгруппировать по
ВТ_СборкаЗапасов.*
;
выбрать ВТ_СборкаЗапасовСНужнымПериодомЦены.*,
ВТ_СборкаЗапасовСНужнымПериодомЦены.Количество * ЕСТЬNULL(ВТ_ВсеЦеныПоНужнойНоменклатуре.Цена, 0) КАК Сумма,
ВТ_ВсеЦеныПоНужнойНоменклатуре.Цена как цена
ИЗ ВТ_СборкаЗапасовСНужнымПериодомЦены как ВТ_СборкаЗапасовСНужнымПериодомЦены
левое Соединение ВТ_ВсеЦеныПоНужнойНоменклатуре как ВТ_ВсеЦеныПоНужнойНоменклатуре
По ВТ_СборкаЗапасовСНужнымПериодомЦены.Запас=ВТ_ВсеЦеныПоНужнойНоменклатуре.Номенклатура
И ВТ_СборкаЗапасовСНужнымПериодомЦены.ПериодЦены=ВТ_ВсеЦеныПоНужнойНоменклатуре.Период
выбрать ВТ_СборкаЗапасовСНужнымПериодомЦены.*,
ВТ_СборкаЗапасовСНужнымПериодомЦены.Количество * ЕСТЬNULL(ВТ_ВсеЦеныПоНужнойНоменклатуре.Цена, 0) КАК Сумма,
ВТ_ВсеЦеныПоНужнойНоменклатуре.Цена как цена
ИЗ ВТ_СборкаЗапасовСНужнымПериодомЦены как ВТ_СборкаЗапасовСНужнымПериодомЦены
левое Соединение ВТ_ВсеЦеныПоНужнойНоменклатуре как ВТ_ВсеЦеныПоНужнойНоменклатуре
По ВТ_СборкаЗапасовСНужнымПериодомЦены.Запас=ВТ_ВсеЦеныПоНужнойНоменклатуре.Номенклатура
И ВТ_СборкаЗапасовСНужнымПериодомЦены.ПериодЦены=ВТ_ВсеЦеныПоНужнойНоменклатуре.Период
Так я и написал, что могут быть опечатки, у меня-то таких объектов в конфигурации нет. Набирал в текстовом редакторе.
Копируете пример, открываете конструктор запросов, открываете текст запроса, вставляете, пытаетесь сохранить. Должен "*" заменить на все поля таблицы (если не может, то ручками). В том числе и в "Сгруппировать по
ВТ_СборкаЗапасов.* "
Если не работает, пишите, на что ругается.
Конструктор, обычно, указывает на ошибочную строку, когда вы пытаетесь сохранить в окне текста запроса.
(6) Спасибо ОГРОМНОЕ. Только я вот не пойму почему так много информации получается. Я имею ввиду должно быть 8 строк в 8 документах (запасы) а в отчет 24 штуки выдается.
ВЫБРАТЬ
СборкаЗапасов.Ссылка.Дата КАК ДатаДокумента,
СборкаЗапасов.Номенклатура КАК Запас,
СборкаЗапасов.Количество КАК Количество,
СборкаЗапасов.ЕдиницаИзмерения.Наименование КАК ЕдиницаИзмеренияНаименование,
СборкаЗапасов.Номенклатура.Код КАК НоменклатурныйНомер
ПОМЕСТИТЬ ВТ_СборкаЗапасов
ИЗ
Документ.СборкаЗапасов.Запасы КАК СборкаЗапасов
ГДЕ
СборкаЗапасов.Ссылка.Дата МЕЖДУ &ДатаОТ И &ДатаДО
И СборкаЗапасов.Ссылка.Автор = &Автор
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ЦеныНоменклатуры.Номенклатура КАК Номенклатура,
ЦеныНоменклатуры.Период КАК Период,
ЦеныНоменклатуры.Цена КАК Цена
ПОМЕСТИТЬ ВТ_ВсеЦеныПоНужнойНоменклатуре
ИЗ
РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_СборкаЗапасов КАК ВТ_СборкаЗапасов
ПО (ЦеныНоменклатуры.Номенклатура = ВТ_СборкаЗапасов.Запас)
И (ЦеныНоменклатуры.ВидЦен = &ТипЦен)
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВТ_СборкаЗапасов.Запас КАК Запас,
ВТ_СборкаЗапасов.Количество КАК Количество,
МАКСИМУМ(ВТ_ВсеЦеныПоНужнойНоменклатуре.Период) КАК ПериодЦены
ПОМЕСТИТЬ ВТ_СборкаЗапасовСНужнымПериодомЦены
ИЗ
ВТ_СборкаЗапасов КАК ВТ_СборкаЗапасов
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ВсеЦеныПоНужнойНоменклатуре КАК ВТ_ВсеЦеныПоНужнойНоменклатуре
ПО (ВТ_СборкаЗапасов.Запас = ВТ_ВсеЦеныПоНужнойНоменклатуре.Номенклатура)
И (ВТ_СборкаЗапасов.ДатаДокумента >= ВТ_ВсеЦеныПоНужнойНоменклатуре.Период)
СГРУППИРОВАТЬ ПО
ВТ_СборкаЗапасов.Запас,
ВТ_СборкаЗапасов.Количество
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВТ_СборкаЗапасовСНужнымПериодомЦены.Запас,
ВТ_СборкаЗапасовСНужнымПериодомЦены.Количество,
ВТ_СборкаЗапасовСНужнымПериодомЦены.ПериодЦены,
ВТ_СборкаЗапасовСНужнымПериодомЦены.Количество * ЕСТЬNULL(ВТ_ВсеЦеныПоНужнойНоменклатуре.Цена, 0) КАК Сумма,
ВТ_ВсеЦеныПоНужнойНоменклатуре.Цена КАК цена
ИЗ
ВТ_СборкаЗапасовСНужнымПериодомЦены КАК ВТ_СборкаЗапасовСНужнымПериодомЦены
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ВсеЦеныПоНужнойНоменклатуре КАК ВТ_ВсеЦеныПоНужнойНоменклатуре
ПО ВТ_СборкаЗапасовСНужнымПериодомЦены.Запас = ВТ_ВсеЦеныПоНужнойНоменклатуре.Номенклатура
И ВТ_СборкаЗапасовСНужнымПериодомЦены.ПериодЦены = ВТ_ВсеЦеныПоНужнойНоменклатуре.Период
(7) Дубли обычно добавляет левое соединение. А так смотрите результат каждого пакета.
Например, в консоли запросов Владимира Тезина (https://sites.google.com/site/vtezin/zaprosnik-1s), Можно и в стандартной. Копируете запрос в консоль. В конце добавляете еще один пакет-запрос на всё к исследуемой временной таблице. Например для первой, достаточно набрать "; Выбрать * из ВТ_СборкаЗапасов"
Вот это действительно интересно. !!! ЗАГАДКА !!!
Есть период в котором строиться отчет (неделя) если выставить параметр период за день, то в отчете сумма за день правильная, но если выставить период два дня и больше то сумма увеличивается... ПОМОГИТЕ ПОЖАЛУЙСТА
вот запрос:
ВЫБРАТЬ
СборкаЗапасов.Ссылка.Дата КАК ДатаДокумента,
СборкаЗапасов.Номенклатура КАК Запас,
СборкаЗапасов.Количество * СборкаЗапасов.Ссылка.ДетиКолво КАК Количество,
СборкаЗапасов.ЕдиницаИзмерения.Наименование КАК ЕдиницаИзмеренияНаименование,
СборкаЗапасов.Номенклатура.Код КАК НоменклатурныйНомер,
СборкаЗапасов.Ссылка.ДетиКолво КАК ДетиКолво
ПОМЕСТИТЬ ВТ_СборкаЗапасов
ИЗ
Документ.СборкаЗапасов.Запасы КАК СборкаЗапасов
ГДЕ
СборкаЗапасов.Ссылка.Дата МЕЖДУ НАЧАЛОПЕРИОДА(&ДатаОТ, ДЕНЬ) И КОНЕЦПЕРИОДА(&ДатаДО, ДЕНЬ)
И СборкаЗапасов.Ссылка.Автор = &Автор
И СборкаЗапасов.Ссылка.ПометкаУдаления = ЛОЖЬ
И СборкаЗапасов.Ссылка.Школа = &Школа
СГРУППИРОВАТЬ ПО
СборкаЗапасов.Ссылка.Дата,
СборкаЗапасов.Номенклатура,
СборкаЗапасов.ЕдиницаИзмерения.Наименование,
СборкаЗапасов.Номенклатура.Код,
СборкаЗапасов.Количество * СборкаЗапасов.Ссылка.ДетиКолво,
СборкаЗапасов.Ссылка.ДетиКолво
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ЦеныНоменклатуры.Номенклатура КАК Номенклатура,
ЦеныНоменклатуры.Период КАК Период,
ЦеныНоменклатуры.Цена КАК Цена
ПОМЕСТИТЬ ВТ_ВсеЦеныПоНужнойНоменклатуре
ИЗ
РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_СборкаЗапасов КАК ВТ_СборкаЗапасов
ПО ЦеныНоменклатуры.Номенклатура = ВТ_СборкаЗапасов.Запас
И (ЦеныНоменклатуры.ВидЦен = &ТипЦен)
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВТ_СборкаЗапасов.Запас КАК Запас,
ВТ_СборкаЗапасов.Количество КАК Количество,
МАКСИМУМ(ВТ_ВсеЦеныПоНужнойНоменклатуре.Период) КАК ПериодЦены
ПОМЕСТИТЬ ВТ_СборкаЗапасовСНужнымПериодомЦены
ИЗ
ВТ_СборкаЗапасов КАК ВТ_СборкаЗапасов
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ВсеЦеныПоНужнойНоменклатуре КАК ВТ_ВсеЦеныПоНужнойНоменклатуре
ПО ВТ_СборкаЗапасов.Запас = ВТ_ВсеЦеныПоНужнойНоменклатуре.Номенклатура
И ВТ_СборкаЗапасов.ДатаДокумента >= ВТ_ВсеЦеныПоНужнойНоменклатуре.Период
СГРУППИРОВАТЬ ПО
ВТ_СборкаЗапасов.Запас,
ВТ_СборкаЗапасов.Количество
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВТ_СборкаЗапасовСНужнымПериодомЦены.Запас КАК Запас,
ВТ_СборкаЗапасовСНужнымПериодомЦены.Количество КАК Количество,
ВТ_СборкаЗапасовСНужнымПериодомЦены.ПериодЦены КАК ПериодЦены,
ВТ_СборкаЗапасовСНужнымПериодомЦены.Количество * ЕСТЬNULL(ВТ_ВсеЦеныПоНужнойНоменклатуре.Цена, 0) КАК Сумма,
ВТ_ВсеЦеныПоНужнойНоменклатуре.Цена КАК цена
ПОМЕСТИТЬ ВТ_ШКОЛЫ
ИЗ
ВТ_СборкаЗапасовСНужнымПериодомЦены КАК ВТ_СборкаЗапасовСНужнымПериодомЦены
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ВсеЦеныПоНужнойНоменклатуре КАК ВТ_ВсеЦеныПоНужнойНоменклатуре
ПО ВТ_СборкаЗапасовСНужнымПериодомЦены.Запас = ВТ_ВсеЦеныПоНужнойНоменклатуре.Номенклатура
И ВТ_СборкаЗапасовСНужнымПериодомЦены.ПериодЦены = ВТ_ВсеЦеныПоНужнойНоменклатуре.Период
ГДЕ
ВТ_ВсеЦеныПоНужнойНоменклатуре.Цена > 0
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВТ_ШКОЛЫ.Запас КАК Запас,
ВТ_ШКОЛЫ.Запас.ЕдиницаИзмерения КАК ЗапасЕдиницаИзмерения,
ВТ_ШКОЛЫ.цена КАК цена,
ВТ_ШКОЛЫ.Количество КАК Количество,
ВТ_ШКОЛЫ.Сумма КАК Сумма,
ВТ_ШКОЛЫ.Запас.Артикул КАК ЗапасАртикул
ИЗ
ВТ_ШКОЛЫ КАК ВТ_ШКОЛЫ
ИТОГИ
СУММА(Сумма)
ПО
ОБЩИЕ
(8), А по последнему вопросу смотрите в сторону группировок, где-то двоит(троит, четверит...) строки запроса, а после группировки поля суммы складываются и получаете что получаете.
(8)Вы или по каждому документу отбирайте
(для чего нужно группировать по ссылке в первом пакете),
или суммируйте количество за указанный период, т.е. вместо строки "СборкаЗапасов.Ссылка.ДетиКолво КАК ДетиКолво". будет:
("Сумма(СборкаЗапасов.Ссылка.ДетиКолво) КАК ДетиКолво" тоже в первом).
И не понятно, что вы хотите получить, умножая количество табличной
части на количество из шапки в строке:
"СборкаЗапасов.Количество * СборкаЗапасов.Ссылка.ДетиКолво КАК Количество"
Всем огромное спасибо за помощь с запросом разобрался.
Помогите не сойти с ума!!! Почему может быть такое, запрос в консоли работает, а из внешней обработки нет !?
Я уже весь мозг сломал... Не могу понять что не так то. Проверил все параметры идентичны как и в консоли разработчика.
&НаСервере
Процедура OKНаСервере1(ДатаОТ, ДатаДО, Школа)
//{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
ОтчетОбъект = РеквизитФормыВЗначение("Объект");
Макет = ОтчетОбъект.ПолучитьМакет("Макет1");
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| СборкаЗапасов.Ссылка.Дата КАК ДатаДокумента,
| СборкаЗапасов.Номенклатура КАК Запас,
| СборкаЗапасов.Количество * СборкаЗапасов.Ссылка.ДетиКолво КАК Количество,
| СборкаЗапасов.ЕдиницаИзмерения.Наименование КАК ЕдиницаИзмеренияНаименование,
| СборкаЗапасов.Номенклатура.Код КАК НоменклатурныйНомер,
| СборкаЗапасов.Ссылка.ДетиКолво КАК ДетиКолво
|ПОМЕСТИТЬ ВТ_СборкаЗапасов
|ИЗ
| Документ.СборкаЗапасов.Запасы КАК СборкаЗапасов
|ГДЕ
| СборкаЗапасов.Ссылка.Дата МЕЖДУ НАЧАЛОПЕРИОДА(&ДатаОТ, ДЕНЬ) И КОНЕЦПЕРИОДА(&ДатаДО, ДЕНЬ)
| И СборкаЗапасов.Ссылка.Автор = &Автор
| И СборкаЗапасов.Ссылка.ПометкаУдаления = ЛОЖЬ
| И СборкаЗапасов.Ссылка.Школа = &Школа
|
|СГРУППИРОВАТЬ ПО
| СборкаЗапасов.Ссылка.Дата,
| СборкаЗапасов.Номенклатура,
| СборкаЗапасов.ЕдиницаИзмерения.Наименование,
| СборкаЗапасов.Номенклатура.Код,
| СборкаЗапасов.Количество * СборкаЗапасов.Ссылка.ДетиКолво,
| СборкаЗапасов.Ссылка.ДетиКолво
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ЦеныНоменклатуры.Номенклатура КАК Номенклатура,
| ЦеныНоменклатуры.Период КАК Период,
| ЦеныНоменклатуры.Цена КАК Цена
|ПОМЕСТИТЬ ВТ_ВсеЦеныПоНужнойНоменклатуре
|ИЗ
| РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_СборкаЗапасов КАК ВТ_СборкаЗапасов
| ПО ЦеныНоменклатуры.Номенклатура = ВТ_СборкаЗапасов.Запас
| И (ЦеныНоменклатуры.ВидЦен = &ТипЦен)
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ВТ_СборкаЗапасов.Запас КАК Запас,
| ВТ_СборкаЗапасов.Количество КАК Количество,
| МАКСИМУМ(ВТ_ВсеЦеныПоНужнойНоменклатуре.Период) КАК ПериодЦены
|ПОМЕСТИТЬ ВТ_СборкаЗапасовСНужнымПериодомЦены
|ИЗ
| ВТ_СборкаЗапасов КАК ВТ_СборкаЗапасов
| ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ВсеЦеныПоНужнойНоменклатуре КАК ВТ_ВсеЦеныПоНужнойНоменклатуре
| ПО ВТ_СборкаЗапасов.Запас = ВТ_ВсеЦеныПоНужнойНоменклатуре.Номенклатура
| И ВТ_СборкаЗапасов.ДатаДокумента >= ВТ_ВсеЦеныПоНужнойНоменклатуре.Период
|
|СГРУППИРОВАТЬ ПО
| ВТ_СборкаЗапасов.Запас,
| ВТ_СборкаЗапасов.Количество
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| ВТ_СборкаЗапасовСНужнымПериодомЦены.Запас КАК Запас,
| ВТ_СборкаЗапасовСНужнымПериодомЦены.Количество КАК Количество,
| ВТ_СборкаЗапасовСНужнымПериодомЦены.ПериодЦены КАК ПериодЦены,
| ВТ_СборкаЗапасовСНужнымПериодомЦены.Количество * ЕСТЬNULL(ВТ_ВсеЦеныПоНужнойНоменклатуре.Цена, 0) КАК Сумма,
| ВТ_ВсеЦеныПоНужнойНоменклатуре.Цена КАК цена
|ПОМЕСТИТЬ ВТ_ШКОЛЫ
|ИЗ
| ВТ_СборкаЗапасовСНужнымПериодомЦены КАК ВТ_СборкаЗапасовСНужнымПериодомЦены
| ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ВсеЦеныПоНужнойНоменклатуре КАК ВТ_ВсеЦеныПоНужнойНоменклатуре
| ПО ВТ_СборкаЗапасовСНужнымПериодомЦены.Запас = ВТ_ВсеЦеныПоНужнойНоменклатуре.Номенклатура
| И ВТ_СборкаЗапасовСНужнымПериодомЦены.ПериодЦены = ВТ_ВсеЦеныПоНужнойНоменклатуре.Период
|ГДЕ
| ВТ_ВсеЦеныПоНужнойНоменклатуре.Цена > 0
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ВТ_ШКОЛЫ.Запас КАК Запас,
| ВТ_ШКОЛЫ.Запас.ЕдиницаИзмерения КАК ЗапасЕдиницаИзмерения,
| ВТ_ШКОЛЫ.цена КАК цена,
| СУММА(ВТ_ШКОЛЫ.Количество) КАК Количество,
| СУММА(ВТ_ШКОЛЫ.Сумма) КАК Сумма,
| ВТ_ШКОЛЫ.Запас.Артикул КАК ЗапасАртикул
|ИЗ
| ВТ_ШКОЛЫ КАК ВТ_ШКОЛЫ
|
|СГРУППИРОВАТЬ ПО
| ВТ_ШКОЛЫ.Запас,
| ВТ_ШКОЛЫ.Запас.ЕдиницаИзмерения,
| ВТ_ШКОЛЫ.цена,
| ВТ_ШКОЛЫ.Запас.Артикул";
Запрос.УстановитьПараметр("Автор", Справочники.Сотрудники.НайтиПоНаименованию("Кострова"));
Запрос.УстановитьПараметр("ДатаДО", ДатаДО);
Запрос.УстановитьПараметр("ДатаОТ", ДатаОТ);
Запрос.УстановитьПараметр("ТипЦен", Справочники.ВидыЦен.НайтиПоНаименованию("бюджетная цена"));
Запрос.УстановитьПараметр("Школа", Школа);
РезультатЗапроса = Запрос.Выполнить();
ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы");
ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");
ТабДок = ТабличныйДокументОтчет;
ТабДок.Очистить();
ТабДок.Вывести(ОбластьЗаголовок);
ТабДок.Вывести(ОбластьШапкаТаблицы);
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Сообщить(ВыборкаДетальныеЗаписи.Количество());
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетальныеЗаписи);
ТабДок.Вывести(ОбластьДетальныхЗаписей);
КонецЦикла;
ТабДок.Вывести(ОбластьПодвалТаблицы);
ТабДок.Вывести(ОбластьПодвал);
//}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
КонецПроцедуры
Скорее всего, дело в параметрах.
Посмотрите в отладчике каждый параметр, какое значение Вы передаете в запрос.
И не используйте (так труднее ловить причины странного поведения):
И желательно вставить проверку с предупреждением , что-то типа, если уж без "НайтиПоНаименованию" никак:
Если ЗначениеЗаполнено(БюджетнаяЦена)=Ложь Тогда
ПредупредитьСисАдминаИПользователя("Какая-то падла удалила или переименовала (бюджетная цена). Теперь отчет не сформируется");
КонецЕсли;