Соединение Остатков с Ценами (СрезПоследних) В запросе.
Доброго времени суток.
Задача следующая:
1 получить остатки через Регистр накопления и связать его с Регистром сведений ЦеныНоменклатурыСрезПоследних, и все эту благодать поместить в отчет.
Все хорошо работало, до того как я начал вносить изменения в запрос....
Есть у кого какие соображения???
Задача следующая:
1 получить остатки через Регистр накопления и связать его с Регистром сведений ЦеныНоменклатурыСрезПоследних, и все эту благодать поместить в отчет.
Все хорошо работало, до того как я начал вносить изменения в запрос....
Макет = ПолучитьМакет("Макет");
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
| ПРЕДСТАВЛЕНИЕ(ТоварыНаСкладахОстатки.Номенклатура) КАК НоменклатураПредставление,
| ТоварыНаСкладахОстатки.Склад КАК Склад,
| ПРЕДСТАВЛЕНИЕ(ТоварыНаСкладахОстатки.Склад) КАК СкладПредставление,
| ТоварыНаСкладахОстатки.КоличествоОстаток КАК КоличествоОстаток,
| ТоварыНаСкладахОстатки.Номенклатура.Артикул КАК Артикул,
| ЦеныНоменклатурыСрезПоследних.Номенклатура КАК Номенклатура1,
| ЦеныНоменклатурыСрезПоследних.Цена КАК Цена
|ИЗ
| РегистрНакопления.ТоварыНаСкладах.Остатки(, ) КАК ТоварыНаСкладахОстатки
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних
| ПО ТоварыНаСкладахОстатки.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
|ИТОГИ
| СУММА(КоличествоОстаток)
|ПО
| Склад"
;
Запрос.УстановитьПараметр("Склад", ФильтрПоСкладу);
Запрос.УстановитьПараметр("Номенклатура", ФильтрПоНоменклатуре);
РезультатЗапроса = Запрос.Выполнить();
ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы");
ОбластьСклад = Макет.ПолучитьОбласть("Склад");
ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");
ТабДок = ЭлементыФормы.ПолеТабличногоДокумента1;
ТабДок.Очистить();
ТабДок.Вывести(ОбластьЗаголовок);
ТабДок.Вывести(ОбластьШапкаТаблицы);
ТабДок.НачатьАвтогруппировкуСтрок();
ВыборкаСклад = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаСклад.Следующий() Цикл
ОбластьСклад.Параметры.Заполнить(ВыборкаСклад);
ТабДок.Вывести(ОбластьСклад, ВыборкаСклад.Уровень());
ВыборкаДетальныеЗаписи = ВыборкаСклад.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
ОбластьДетальныхЗаписей.Параметры.Цена=ВыборкаДетальныеЗаписи.Цена;
ОбластьДетальныхЗаписей.Параметры.Артикул1=ВыборкаДетальныеЗаписи.Артикул;
ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетальныеЗаписи);
ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетальныеЗаписи.Уровень());
КонецЦикла;
КонецЦикла;
ТабДок.ЗакончитьАвтогруппировкуСтрок();
ТабДок.Вывести(ОбластьПодвалТаблицы);
ТабДок.Вывести(ОбластьПодвал);
ПоказатьЕсть у кого какие соображения???
По теме из базы знаний
- 50+ советов для успешной сдачи 1С: Специалист по платформе
- Алгоритмы с решениями для экзамена Специалист УТ 11.1
- Партионный учет ФИФО ЛИФО. Остатки поступлений, пример получения данных партионного учета, если его нет. Вернуть остатки партий. Списать по срокам годности ФИФО ЛИФО
- Как сдать экзамен 1С:Специалист по платформе?
- Неочевидные возможности системы компоновки данных
Найденные решения
(19)Попробуйте вот этот блок
заменить на
к сожалению не помню затирает ли "Заполнить" другие параметры
ОбластьДетальныхЗаписей.Параметры.Цена=ВыборкаДетальныеЗаписи.Цена;
ОбластьДетальныхЗаписей.Параметры.Артикул1=ВыборкаДетальныеЗаписи.Артикул;
ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетальныеЗаписи);
заменить на
ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетальныеЗаписи);
ОбластьДетальныхЗаписей.Параметры.Цена=ВыборкаДетальныеЗаписи.Цена;
ОбластьДетальныхЗаписей.Параметры.Артикул1=ВыборкаДетальныеЗаписи.Артикул;
к сожалению не помню затирает ли "Заполнить" другие параметры
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(16)Не пудрите человеку мозг. Если дата не указана то виртуальные таблицы "СрезПоследних" равно как и "Остатки" возвращают самые последние значения.
А если указать дату то это замедлит выполнение запроса. Потому что без указанной даты он берет значения из системных таблиц (которые всегда рассчитаны) а если указать дату, даже текущую то система будет вычислять виртуальную таблицу среза последних.
А если указать дату то это замедлит выполнение запроса. Потому что без указанной даты он берет значения из системных таблиц (которые всегда рассчитаны) а если указать дату, даже текущую то система будет вычислять виртуальную таблицу среза последних.
(19)Попробуйте вот этот блок
заменить на
к сожалению не помню затирает ли "Заполнить" другие параметры
ОбластьДетальныхЗаписей.Параметры.Цена=ВыборкаДетальныеЗаписи.Цена;
ОбластьДетальныхЗаписей.Параметры.Артикул1=ВыборкаДетальныеЗаписи.Артикул;
ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетальныеЗаписи);
заменить на
ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетальныеЗаписи);
ОбластьДетальныхЗаписей.Параметры.Цена=ВыборкаДетальныеЗаписи.Цена;
ОбластьДетальныхЗаписей.Параметры.Артикул1=ВыборкаДетальныеЗаписи.Артикул;
к сожалению не помню затирает ли "Заполнить" другие параметры
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот