Уважаемые помогите с запросом (СрезПоследних)

1. yakdenitdn 14.04.17 16:55 Сейчас в теме
Уважаемые гуру 1С, очень прошу помочь начинающиму 1снику...
В запросе обрабатываю табличные части документа, нужно подтягивать цены с регистра на дату документа, весь день мозг себе выношу, не могу реализовать.

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

Показать
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. alex-l19041 8 14.04.17 17:00 Сейчас в теме
Срезпоследних в данном случае не работает.
Надо сначала получить временную таблицу с ценами на каждую дату документов, потом соединять с этой таблицей по дате
3. alex-l19041 8 14.04.17 17:02 Сейчас в теме
поищите примеры как создать таблицу с курсами валют на каждый день. С ценами аналогично
4. Onwardv 64 14.04.17 17:45 Сейчас в теме
Непонятно, зачем соединение на себя(ЛЕВОЕ СОЕДИНЕНИЕ Документ.СборкаЗапасов КАК СборкаЗапасов1). Убрал.
Нужно примерно так (могут быть опечатки):

ВЫБРАТЬ
    СборкаЗапасов.Ссылка.Дата КАК ДатаДокумента,
    СборкаЗапасов.Номенклатура КАК Запас,
    СборкаЗапасов.Количество КАК Количество,
    СборкаЗапасов.ЕдиницаИзмерения.Наименование КАК ЕдиницаИзмеренияНаименование,
    СборкаЗапасов.Номенклатура.Код КАК НоменклатурныйНомер
Поместить ВТ_СборкаЗапасов
ИЗ
    Документ.СборкаЗапасов.Запасы КАК СборкаЗапасов
ГДЕ
    СборкаЗапасов.Дата МЕЖДУ &ДатаОТ И &ДатаДО
    И СборкаЗапасов.Автор = &Автор	
;
Выбрать 	ЦеныНоменклатуры.Номенклатура,
			ЦеныНоменклатуры.период,
			ЦеныНоменклатуры.цена 
Поместить ВТ_ВсеЦеныПоНужнойНоменклатуре			
ИЗ РегистрСведений.ЦеныНоменклатуры Как ЦеныНоменклатуры
	внутреннее соединение ВТ_СборкаЗапасов как ВТ_СборкаЗапасов
	по ЦеныНоменклатуры.Номенклатура=ВТ_СборкаЗапасов.Запас
	И (ЦеныНоменклатуры.ВидЦен = &ТипЦен)
;
Выбрать ВТ_СборкаЗапасов.*,
	Максимум(ВТ_ВсеЦеныПоНужнойНоменклатуре.Период) Как ПериодЦены
поместить ВТ_СборкаЗапасовСНужнымПериодомЦены
ИЗ ВТ_СборкаЗапасов	как ВТ_СборкаЗапасов
	Левое соединение ВТ_ВсеЦеныПоНужнойНоменклатуре как ВТ_ВсеЦеныПоНужнойНоменклатуре
	по ВТ_СборкаЗапасов.Запас=ВТ_ВсеЦеныПоНужнойНоменклатуре.Номенклатура
	И ВТ_СборкаЗапасов.ДатаДокумента>=ВТ_ВсеЦеныПоНужнойНоменклатуре.Период
Сгруппировать по 	
	ВТ_СборкаЗапасов.*
;
выбрать ВТ_СборкаЗапасовСНужнымПериодомЦены.*,
	ВТ_СборкаЗапасовСНужнымПериодомЦены.Количество * ЕСТЬNULL(ВТ_ВсеЦеныПоНужнойНоменклатуре.Цена, 0) КАК Сумма,
	ВТ_ВсеЦеныПоНужнойНоменклатуре.Цена как цена
ИЗ ВТ_СборкаЗапасовСНужнымПериодомЦены как ВТ_СборкаЗапасовСНужнымПериодомЦены
	левое Соединение ВТ_ВсеЦеныПоНужнойНоменклатуре как ВТ_ВсеЦеныПоНужнойНоменклатуре
	По ВТ_СборкаЗапасовСНужнымПериодомЦены.Запас=ВТ_ВсеЦеныПоНужнойНоменклатуре.Номенклатура
	И ВТ_СборкаЗапасовСНужнымПериодомЦены.ПериодЦены=ВТ_ВсеЦеныПоНужнойНоменклатуре.Период
Показать
5. yakdenitdn 14.04.17 21:56 Сейчас в теме
(4)
выбрать ВТ_СборкаЗапасовСНужнымПериодомЦены.*,
ВТ_СборкаЗапасовСНужнымПериодомЦены.Количество * ЕСТЬNULL(ВТ_ВсеЦеныПоНужнойНоменклатуре.Цена, 0) КАК Сумма,
ВТ_ВсеЦеныПоНужнойНоменклатуре.Цена как цена
ИЗ ВТ_СборкаЗапасовСНужнымПериодомЦены как ВТ_СборкаЗапасовСНужнымПериодомЦены
левое Соединение ВТ_ВсеЦеныПоНужнойНоменклатуре как ВТ_ВсеЦеныПоНужнойНоменклатуре
По ВТ_СборкаЗапасовСНужнымПериодомЦены.Запас=ВТ_ВсеЦеныПоНужнойНоменклатуре.Номенклатура
И ВТ_СборкаЗапасовСНужнымПериодомЦены.ПериодЦены=ВТ_ВсеЦеныПоНужнойНоменклатуре.Период


Увы не работает Ваш запрос, пример.
6. Onwardv 64 15.04.17 00:19 Сейчас в теме
Так я и написал, что могут быть опечатки, у меня-то таких объектов в конфигурации нет. Набирал в текстовом редакторе.
Копируете пример, открываете конструктор запросов, открываете текст запроса, вставляете, пытаетесь сохранить. Должен "*" заменить на все поля таблицы (если не может, то ручками). В том числе и в "Сгруппировать по
ВТ_СборкаЗапасов.* "

Если не работает, пишите, на что ругается.
Конструктор, обычно, указывает на ошибочную строку, когда вы пытаетесь сохранить в окне текста запроса.
7. yakdenitdn 15.04.17 13:05 Сейчас в теме
(6) Спасибо ОГРОМНОЕ. Только я вот не пойму почему так много информации получается. Я имею ввиду должно быть 8 строк в 8 документах (запасы) а в отчет 24 штуки выдается.

ВЫБРАТЬ
	СборкаЗапасов.Ссылка.Дата КАК ДатаДокумента,
	СборкаЗапасов.Номенклатура КАК Запас,
	СборкаЗапасов.Количество КАК Количество,
	СборкаЗапасов.ЕдиницаИзмерения.Наименование КАК ЕдиницаИзмеренияНаименование,
	СборкаЗапасов.Номенклатура.Код КАК НоменклатурныйНомер
ПОМЕСТИТЬ ВТ_СборкаЗапасов
ИЗ
	Документ.СборкаЗапасов.Запасы КАК СборкаЗапасов
ГДЕ
	СборкаЗапасов.Ссылка.Дата МЕЖДУ &ДатаОТ И &ДатаДО
	И СборкаЗапасов.Ссылка.Автор = &Автор
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ЦеныНоменклатуры.Номенклатура КАК Номенклатура,
	ЦеныНоменклатуры.Период КАК Период,
	ЦеныНоменклатуры.Цена КАК Цена
ПОМЕСТИТЬ ВТ_ВсеЦеныПоНужнойНоменклатуре
ИЗ
	РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_СборкаЗапасов КАК ВТ_СборкаЗапасов
		ПО (ЦеныНоменклатуры.Номенклатура = ВТ_СборкаЗапасов.Запас)
			И (ЦеныНоменклатуры.ВидЦен = &ТипЦен)
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ВТ_СборкаЗапасов.Запас КАК Запас,
	ВТ_СборкаЗапасов.Количество КАК Количество,
	МАКСИМУМ(ВТ_ВсеЦеныПоНужнойНоменклатуре.Период) КАК ПериодЦены
ПОМЕСТИТЬ ВТ_СборкаЗапасовСНужнымПериодомЦены
ИЗ
	ВТ_СборкаЗапасов КАК ВТ_СборкаЗапасов
		ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ВсеЦеныПоНужнойНоменклатуре КАК ВТ_ВсеЦеныПоНужнойНоменклатуре
		ПО (ВТ_СборкаЗапасов.Запас = ВТ_ВсеЦеныПоНужнойНоменклатуре.Номенклатура)
			И (ВТ_СборкаЗапасов.ДатаДокумента >= ВТ_ВсеЦеныПоНужнойНоменклатуре.Период)

СГРУППИРОВАТЬ ПО
	ВТ_СборкаЗапасов.Запас,
	ВТ_СборкаЗапасов.Количество
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ВТ_СборкаЗапасовСНужнымПериодомЦены.Запас,
	ВТ_СборкаЗапасовСНужнымПериодомЦены.Количество,
	ВТ_СборкаЗапасовСНужнымПериодомЦены.ПериодЦены,
	ВТ_СборкаЗапасовСНужнымПериодомЦены.Количество * ЕСТЬNULL(ВТ_ВсеЦеныПоНужнойНоменклатуре.Цена, 0) КАК Сумма,
	ВТ_ВсеЦеныПоНужнойНоменклатуре.Цена КАК цена
ИЗ
	ВТ_СборкаЗапасовСНужнымПериодомЦены КАК ВТ_СборкаЗапасовСНужнымПериодомЦены
		ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ВсеЦеныПоНужнойНоменклатуре КАК ВТ_ВсеЦеныПоНужнойНоменклатуре
		ПО ВТ_СборкаЗапасовСНужнымПериодомЦены.Запас = ВТ_ВсеЦеныПоНужнойНоменклатуре.Номенклатура
			И ВТ_СборкаЗапасовСНужнымПериодомЦены.ПериодЦены = ВТ_ВсеЦеныПоНужнойНоменклатуре.Период
Показать
11. Onwardv 64 17.04.17 10:41 Сейчас в теме
(7) Дубли обычно добавляет левое соединение. А так смотрите результат каждого пакета.
Например, в консоли запросов Владимира Тезина (https://sites.google.com/site/vtezin/zaprosnik-1s), Можно и в стандартной. Копируете запрос в консоль. В конце добавляете еще один пакет-запрос на всё к исследуемой временной таблице. Например для первой, достаточно набрать "; Выбрать * из ВТ_СборкаЗапасов"
8. yakdenitdn 15.04.17 14:35 Сейчас в теме
Вот это действительно интересно. !!! ЗАГАДКА !!!
Есть период в котором строиться отчет (неделя) если выставить параметр период за день, то в отчете сумма за день правильная, но если выставить период два дня и больше то сумма увеличивается... ПОМОГИТЕ ПОЖАЛУЙСТА
вот запрос:
ВЫБРАТЬ
	СборкаЗапасов.Ссылка.Дата КАК ДатаДокумента,
	СборкаЗапасов.Номенклатура КАК Запас,
	СборкаЗапасов.Количество * СборкаЗапасов.Ссылка.ДетиКолво КАК Количество,
	СборкаЗапасов.ЕдиницаИзмерения.Наименование КАК ЕдиницаИзмеренияНаименование,
	СборкаЗапасов.Номенклатура.Код КАК НоменклатурныйНомер,
	СборкаЗапасов.Ссылка.ДетиКолво КАК ДетиКолво
ПОМЕСТИТЬ ВТ_СборкаЗапасов
ИЗ
	Документ.СборкаЗапасов.Запасы КАК СборкаЗапасов
ГДЕ
	СборкаЗапасов.Ссылка.Дата МЕЖДУ НАЧАЛОПЕРИОДА(&ДатаОТ, ДЕНЬ) И КОНЕЦПЕРИОДА(&ДатаДО, ДЕНЬ)
	И СборкаЗапасов.Ссылка.Автор = &Автор
	И СборкаЗапасов.Ссылка.ПометкаУдаления = ЛОЖЬ
	И СборкаЗапасов.Ссылка.Школа = &Школа

СГРУППИРОВАТЬ ПО
	СборкаЗапасов.Ссылка.Дата,
	СборкаЗапасов.Номенклатура,
	СборкаЗапасов.ЕдиницаИзмерения.Наименование,
	СборкаЗапасов.Номенклатура.Код,
	СборкаЗапасов.Количество * СборкаЗапасов.Ссылка.ДетиКолво,
	СборкаЗапасов.Ссылка.ДетиКолво
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ЦеныНоменклатуры.Номенклатура КАК Номенклатура,
	ЦеныНоменклатуры.Период КАК Период,
	ЦеныНоменклатуры.Цена КАК Цена
ПОМЕСТИТЬ ВТ_ВсеЦеныПоНужнойНоменклатуре
ИЗ
	РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_СборкаЗапасов КАК ВТ_СборкаЗапасов
		ПО ЦеныНоменклатуры.Номенклатура = ВТ_СборкаЗапасов.Запас
			И (ЦеныНоменклатуры.ВидЦен = &ТипЦен)
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ВТ_СборкаЗапасов.Запас КАК Запас,
	ВТ_СборкаЗапасов.Количество КАК Количество,
	МАКСИМУМ(ВТ_ВсеЦеныПоНужнойНоменклатуре.Период) КАК ПериодЦены
ПОМЕСТИТЬ ВТ_СборкаЗапасовСНужнымПериодомЦены
ИЗ
	ВТ_СборкаЗапасов КАК ВТ_СборкаЗапасов
		ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ВсеЦеныПоНужнойНоменклатуре КАК ВТ_ВсеЦеныПоНужнойНоменклатуре
		ПО ВТ_СборкаЗапасов.Запас = ВТ_ВсеЦеныПоНужнойНоменклатуре.Номенклатура
			И ВТ_СборкаЗапасов.ДатаДокумента >= ВТ_ВсеЦеныПоНужнойНоменклатуре.Период

СГРУППИРОВАТЬ ПО
	ВТ_СборкаЗапасов.Запас,
	ВТ_СборкаЗапасов.Количество
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ВТ_СборкаЗапасовСНужнымПериодомЦены.Запас КАК Запас,
	ВТ_СборкаЗапасовСНужнымПериодомЦены.Количество КАК Количество,
	ВТ_СборкаЗапасовСНужнымПериодомЦены.ПериодЦены КАК ПериодЦены,
	ВТ_СборкаЗапасовСНужнымПериодомЦены.Количество * ЕСТЬNULL(ВТ_ВсеЦеныПоНужнойНоменклатуре.Цена, 0) КАК Сумма,
	ВТ_ВсеЦеныПоНужнойНоменклатуре.Цена КАК цена
ПОМЕСТИТЬ ВТ_ШКОЛЫ
ИЗ
	ВТ_СборкаЗапасовСНужнымПериодомЦены КАК ВТ_СборкаЗапасовСНужнымПериодомЦены
		ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ВсеЦеныПоНужнойНоменклатуре КАК ВТ_ВсеЦеныПоНужнойНоменклатуре
		ПО ВТ_СборкаЗапасовСНужнымПериодомЦены.Запас = ВТ_ВсеЦеныПоНужнойНоменклатуре.Номенклатура
			И ВТ_СборкаЗапасовСНужнымПериодомЦены.ПериодЦены = ВТ_ВсеЦеныПоНужнойНоменклатуре.Период
ГДЕ
	ВТ_ВсеЦеныПоНужнойНоменклатуре.Цена > 0
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ВТ_ШКОЛЫ.Запас КАК Запас,
	ВТ_ШКОЛЫ.Запас.ЕдиницаИзмерения КАК ЗапасЕдиницаИзмерения,
	ВТ_ШКОЛЫ.цена КАК цена,
	ВТ_ШКОЛЫ.Количество КАК Количество,
	ВТ_ШКОЛЫ.Сумма КАК Сумма,
	ВТ_ШКОЛЫ.Запас.Артикул КАК ЗапасАртикул
ИЗ
	ВТ_ШКОЛЫ КАК ВТ_ШКОЛЫ
ИТОГИ
	СУММА(Сумма)
ПО
	ОБЩИЕ
Показать
10. leks88 25 15.04.17 21:53 Сейчас в теме
(8), А по последнему вопросу смотрите в сторону группировок, где-то двоит(троит, четверит...) строки запроса, а после группировки поля суммы складываются и получаете что получаете.
12. Onwardv 64 17.04.17 10:49 Сейчас в теме
(8)Вы или по каждому документу отбирайте
(для чего нужно группировать по ссылке в первом пакете),
или суммируйте количество за указанный период, т.е. вместо строки "СборкаЗапасов.Ссылка.ДетиКолво КАК ДетиКолво". будет:
("Сумма(СборкаЗапасов.Ссылка.ДетиКолво) КАК ДетиКолво" тоже в первом).
И не понятно, что вы хотите получить, умножая количество табличной
части на количество из шапки в строке:
"СборкаЗапасов.Количество * СборкаЗапасов.Ссылка.ДетиКолво КАК Количество"
13. yakdenitdn 18.04.17 11:20 Сейчас в теме
Всем огромное спасибо за помощь с запросом разобрался.

Помогите не сойти с ума!!! Почему может быть такое, запрос в консоли работает, а из внешней обработки нет !?
Я уже весь мозг сломал... Не могу понять что не так то. Проверил все параметры идентичны как и в консоли разработчика.
&НаСервере
Процедура OKНаСервере1(ДатаОТ, ДатаДО, Школа)

	//{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
	// Данный фрагмент построен конструктором.
	// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
	ОтчетОбъект = РеквизитФормыВЗначение("Объект");
	Макет = ОтчетОбъект.ПолучитьМакет("Макет1");	
	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	СборкаЗапасов.Ссылка.Дата КАК ДатаДокумента,
		|	СборкаЗапасов.Номенклатура КАК Запас,
		|	СборкаЗапасов.Количество * СборкаЗапасов.Ссылка.ДетиКолво КАК Количество,
		|	СборкаЗапасов.ЕдиницаИзмерения.Наименование КАК ЕдиницаИзмеренияНаименование,
		|	СборкаЗапасов.Номенклатура.Код КАК НоменклатурныйНомер,
		|	СборкаЗапасов.Ссылка.ДетиКолво КАК ДетиКолво
		|ПОМЕСТИТЬ ВТ_СборкаЗапасов
		|ИЗ
		|	Документ.СборкаЗапасов.Запасы КАК СборкаЗапасов
		|ГДЕ
		|	СборкаЗапасов.Ссылка.Дата МЕЖДУ НАЧАЛОПЕРИОДА(&ДатаОТ, ДЕНЬ) И КОНЕЦПЕРИОДА(&ДатаДО, ДЕНЬ)
		|	И СборкаЗапасов.Ссылка.Автор = &Автор
		|	И СборкаЗапасов.Ссылка.ПометкаУдаления = ЛОЖЬ
		|	И СборкаЗапасов.Ссылка.Школа = &Школа
		|
		|СГРУППИРОВАТЬ ПО
		|	СборкаЗапасов.Ссылка.Дата,
		|	СборкаЗапасов.Номенклатура,
		|	СборкаЗапасов.ЕдиницаИзмерения.Наименование,
		|	СборкаЗапасов.Номенклатура.Код,
		|	СборкаЗапасов.Количество * СборкаЗапасов.Ссылка.ДетиКолво,
		|	СборкаЗапасов.Ссылка.ДетиКолво
		|;
		|
		|////////////////////////////////////////////////////////////­////////////////////
		|ВЫБРАТЬ
		|	ЦеныНоменклатуры.Номенклатура КАК Номенклатура,
		|	ЦеныНоменклатуры.Период КАК Период,
		|	ЦеныНоменклатуры.Цена КАК Цена
		|ПОМЕСТИТЬ ВТ_ВсеЦеныПоНужнойНоменклатуре
		|ИЗ
		|	РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
		|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_СборкаЗапасов КАК ВТ_СборкаЗапасов
		|		ПО ЦеныНоменклатуры.Номенклатура = ВТ_СборкаЗапасов.Запас
		|			И (ЦеныНоменклатуры.ВидЦен = &ТипЦен)
		|;
		|
		|////////////////////////////////////////////////////////////­////////////////////
		|ВЫБРАТЬ
		|	ВТ_СборкаЗапасов.Запас КАК Запас,
		|	ВТ_СборкаЗапасов.Количество КАК Количество,
		|	МАКСИМУМ(ВТ_ВсеЦеныПоНужнойНоменклатуре.Период) КАК ПериодЦены
		|ПОМЕСТИТЬ ВТ_СборкаЗапасовСНужнымПериодомЦены
		|ИЗ
		|	ВТ_СборкаЗапасов КАК ВТ_СборкаЗапасов
		|		ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ВсеЦеныПоНужнойНоменклатуре КАК ВТ_ВсеЦеныПоНужнойНоменклатуре
		|		ПО ВТ_СборкаЗапасов.Запас = ВТ_ВсеЦеныПоНужнойНоменклатуре.Номенклатура
		|			И ВТ_СборкаЗапасов.ДатаДокумента >= ВТ_ВсеЦеныПоНужнойНоменклатуре.Период
		|
		|СГРУППИРОВАТЬ ПО
		|	ВТ_СборкаЗапасов.Запас,
		|	ВТ_СборкаЗапасов.Количество
		|;
		|
		|////////////////////////////////////////////////////////////­////////////////////
		|ВЫБРАТЬ РАЗЛИЧНЫЕ
		|	ВТ_СборкаЗапасовСНужнымПериодомЦены.Запас КАК Запас,
		|	ВТ_СборкаЗапасовСНужнымПериодомЦены.Количество КАК Количество,
		|	ВТ_СборкаЗапасовСНужнымПериодомЦены.ПериодЦены КАК ПериодЦены,
		|	ВТ_СборкаЗапасовСНужнымПериодомЦены.Количество * ЕСТЬNULL(ВТ_ВсеЦеныПоНужнойНоменклатуре.Цена, 0) КАК Сумма,
		|	ВТ_ВсеЦеныПоНужнойНоменклатуре.Цена КАК цена
		|ПОМЕСТИТЬ ВТ_ШКОЛЫ
		|ИЗ
		|	ВТ_СборкаЗапасовСНужнымПериодомЦены КАК ВТ_СборкаЗапасовСНужнымПериодомЦены
		|		ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ВсеЦеныПоНужнойНоменклатуре КАК ВТ_ВсеЦеныПоНужнойНоменклатуре
		|		ПО ВТ_СборкаЗапасовСНужнымПериодомЦены.Запас = ВТ_ВсеЦеныПоНужнойНоменклатуре.Номенклатура
		|			И ВТ_СборкаЗапасовСНужнымПериодомЦены.ПериодЦены = ВТ_ВсеЦеныПоНужнойНоменклатуре.Период
		|ГДЕ
		|	ВТ_ВсеЦеныПоНужнойНоменклатуре.Цена > 0
		|;
		|
		|////////////////////////////////////////////////////////////­////////////////////
		|ВЫБРАТЬ
		|	ВТ_ШКОЛЫ.Запас КАК Запас,
		|	ВТ_ШКОЛЫ.Запас.ЕдиницаИзмерения КАК ЗапасЕдиницаИзмерения,
		|	ВТ_ШКОЛЫ.цена КАК цена,
		|	СУММА(ВТ_ШКОЛЫ.Количество) КАК Количество,
		|	СУММА(ВТ_ШКОЛЫ.Сумма) КАК Сумма,
		|	ВТ_ШКОЛЫ.Запас.Артикул КАК ЗапасАртикул
		|ИЗ
		|	ВТ_ШКОЛЫ КАК ВТ_ШКОЛЫ
		|
		|СГРУППИРОВАТЬ ПО
		|	ВТ_ШКОЛЫ.Запас,
		|	ВТ_ШКОЛЫ.Запас.ЕдиницаИзмерения,
		|	ВТ_ШКОЛЫ.цена,
		|	ВТ_ШКОЛЫ.Запас.Артикул";
	
	Запрос.УстановитьПараметр("Автор", Справочники.Сотрудники.НайтиПоНаименованию("Кострова"));
	Запрос.УстановитьПараметр("ДатаДО", ДатаДО);
	Запрос.УстановитьПараметр("ДатаОТ", ДатаОТ);
	Запрос.УстановитьПараметр("ТипЦен", Справочники.ВидыЦен.НайтиПоНаименованию("бюджетная цена"));
	Запрос.УстановитьПараметр("Школа", Школа);
	
	РезультатЗапроса = Запрос.Выполнить();
	ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
	ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
	ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
	ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы");
	ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");
	
	ТабДок = ТабличныйДокументОтчет;
	ТабДок.Очистить();
	ТабДок.Вывести(ОбластьЗаголовок);
	ТабДок.Вывести(ОбластьШапкаТаблицы);
	
	ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	Сообщить(ВыборкаДетальныеЗаписи.Количество());
	
	Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
		ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетальныеЗаписи);
		ТабДок.Вывести(ОбластьДетальныхЗаписей);
	КонецЦикла;
	
	ТабДок.Вывести(ОбластьПодвалТаблицы);
	ТабДок.Вывести(ОбластьПодвал);
	
	//}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
КонецПроцедуры
Показать
Прикрепленные файлы:
14. Onwardv 64 18.04.17 13:15 Сейчас в теме
Скорее всего, дело в параметрах.
Посмотрите в отладчике каждый параметр, какое значение Вы передаете в запрос.
И не используйте (так труднее ловить причины странного поведения):
    Запрос.УстановитьПараметр("ТипЦен", Справочники.ВидыЦен.НайтиПоНаименованию("бюджетная цена")

добавляйте переменные, тогда отлаживать будет просто:
БюджетнаяЦена=Справочники.ВидыЦен.НайтиПоНаименованию("бюджетная цена");
Запрос.УстановитьПараметр("ТипЦен",БюджетнаяЦена);


И желательно вставить проверку с предупреждением , что-то типа, если уж без "НайтиПоНаименованию" никак:
Если ЗначениеЗаполнено(БюджетнаяЦена)=Ложь Тогда
   ПредупредитьСисАдминаИПользователя("Какая-то падла удалила или переименовала (бюджетная цена). Теперь отчет не сформируется");
КонецЕсли;
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот