Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Где запрос хранится в СКД

Где запрос хранится в СКД
Я
   sidalexsandr
 
29.06.18 - 11:09
Где хранится текст запроса отчета написанного на СКД?
 
 
   PiotrLoginov
 
1 - 29.06.18 - 11:17
по умолчанию - в "основной" схеме отчета (в макете соответствующего типа). Можно открыть макет и посмотреть запрос на вкладке "Наборы данных"
   NuclearWinter
 
2 - 29.06.18 - 11:19
А где вы его ищите? Странный вопрос.
Итоговый текст запроса может отличаться от указанного в схеме СКД
   sidalexsandr
 
3 - 29.06.18 - 11:22
(2) Нашел в модуле отчета
   sidalexsandr
 
4 - 29.06.18 - 11:23
Ошибка в запросе. Вот запрос:
ВЫБРАТЬ
    |    ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
    |    ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
    |    ТоварыНаСкладахОстатки.СерияНоменклатуры КАК СерияНоменклатуры,
    |    ТоварыНаСкладахОстатки.Качество КАК Качество,
    |    ТоварыНаСкладахОстатки.Склад КАК Склад,
    |    ТоварыНаСкладахОстатки.КоличествоОстаток
    |   МестаХраненияНоменклатуры.МестоХранения
    |ПОМЕСТИТЬ Остатки
    |ИЗ
    |    РегистрНакопления.ТоварыНаСкладах.Остатки(#УсловиеДата, ) КАК ТоварыНаСкладахОстатки
    |ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.МестаХраненияНоменклатуры КАК МестаХраненияНоменклатуры
    | ПО ТоварыНаСкладахОстатки.Номенклатура = МестаХраненияНоменклатуры.Номенклатура
    |
    |ИНДЕКСИРОВАТЬ ПО
    |    Склад,
    |    СерияНоменклатуры,
    |    Номенклатура,
    |    ХарактеристикаНоменклатуры,
    |    Качество




Выдает ошибку
{ВнешнийОтчет.ОтчетСебестоимостьПартийНаСкладах.МодульОбъекта(159)}: Ошибка при вызове метода контекста (Выполнить)
    РезультатЗапроса = Запрос.Выполнить();
по причине:
{(8, 4)}: Неправильный псевдоним "МестаХраненияНоменклатуры.МестоХранения"
<<?>>МестаХраненияНоменклатуры.МестоХранения
   AllJoke
 
5 - 29.06.18 - 11:24
Запятая:

    ТоварыНаСкладахОстатки.КоличествоОстаток,
    |   МестаХраненияНоменклатуры.МестоХранения
   sidalexsandr
 
6 - 29.06.18 - 13:05
(5) Спасибо
   sidalexsandr
 
7 - 29.06.18 - 13:07
Теперь в отчете если щелкаю МестоХранения то появляется значение не определено.

Вот текст программы по заполнению ТЗ:
РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаСклад = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    
    Пока ВыборкаСклад.Следующий() Цикл
        ВыборкаНоменклатура = ВыборкаСклад.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
        Пока ВыборкаНоменклатура.Следующий() Цикл
            ВыборкаХарактеристикаНоменклатуры = ВыборкаНоменклатура.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
            Пока ВыборкаХарактеристикаНоменклатуры.Следующий() Цикл
                ВыборкаСерияНоменклатуры = ВыборкаХарактеристикаНоменклатуры.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
                Пока ВыборкаСерияНоменклатуры.Следующий() Цикл
                    ВыборкаКачество = ВыборкаСерияНоменклатуры.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
                    Пока ВыборкаКачество.Следующий() Цикл
                        ВыборкаДетальныеЗаписи = ВыборкаКачество.Выбрать();
                        КоличествоОстаток = ВыборкаКачество.КоличествоОстаток;
                        НетПартии = Истина;
                        Пока ВыборкаДетальныеЗаписи.Следующий() И КоличествоОстаток > 0 Цикл
                            НоваяСтрока = ТЗ.Добавить();
                            ЗаполнитьЗначенияСвойств(НоваяСтрока, ВыборкаДетальныеЗаписи);
                            КоличествоВПартии = Мин(КоличествоОстаток, ВыборкаДетальныеЗаписи.КоличествоПриход);
                            Если КоличествоВПартии <> 0 Тогда
                                Если КоличествоВПартии = ВыборкаДетальныеЗаписи.КоличествоПриход Тогда
                                    СтоимостьВПартии = ВыборкаДетальныеЗаписи.СтоимостьПриход;
                                Иначе
                                    СтоимостьВПартии = КоличествоВПартии * ВыборкаДетальныеЗаписи.СтоимостьПриход / ВыборкаДетальныеЗаписи.КоличествоПриход;
                                КонецЕсли;
                            Иначе
                                СтоимостьВПартии = 0;
                            КонецЕсли;
                            НоваяСтрока.КоличествоВПартии = КоличествоВПартии;
                            НоваяСтрока.СтоимостьВПартии = СтоимостьВПартии;
                            НоваяСтрока.ЦенаВПартии = ?(КоличествоВПартии = 0, 0, СтоимостьВПартии / КоличествоВПартии);
                            НоваяСтрока.СуммаПоПрайсу = КоличествоВПартии * ВыборкаДетальныеЗаписи.ЦенаПоПрайсу;
                            КоличествоОстаток = КоличествоОстаток - КоличествоВПартии;
                        КонецЦикла;
                        
                        Если КоличествоОстаток > 0 Тогда
                            ЦенаСредняяСебестоимость = ПолучитьЦенуСредняяСебестоимость(ВыборкаКачество);
                            НоваяСтрока = ТЗ.Добавить();
                            ЗаполнитьЗначенияСвойств(НоваяСтрока, ВыборкаКачество);
                            НоваяСтрока.Партия = "Стоимость по документу установки цен";
                            НоваяСтрока.КоличествоВПартии = КоличествоОстаток;
                            НоваяСтрока.ЦенаВПартии = ЦенаСредняяСебестоимость;
                            НоваяСтрока.СтоимостьВПартии = ЦенаСредняяСебестоимость * КоличествоОстаток;
                            НоваяСтрока.СуммаПоПрайсу = КоличествоОстаток * ВыборкаКачество.ЦенаПоПрайсу;
                        КонецЕсли;
                        
                    КонецЦикла;
                КонецЦикла;
            КонецЦикла;
        КонецЦикла;
    КонецЦикла;
    
    НаборДанных = Новый Структура("ТЗ", ТЗ);
    
    КомпоновщикМакет = Новый КомпоновщикМакетаКомпоновкиДанных;
    Макет = КомпоновщикМакет.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.ПолучитьНастройки(), ДанныеРасшифровки);
    ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновки.Инициализировать(Макет, НаборДанных, ДанныеРасшифровки);
    ПроцессорВывода = новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
    ПроцессорВывода.Вывести(ПроцессорКомпоновки);
   sidalexsandr
 
8 - 29.06.18 - 14:36
Дописал// Заполнить МестоХранения

                            НоваяСтрока.МестоХранения = ВыборкаНоменклатура.МестоХранения; 
                            НоваяСтрока.КоличествоВПартии = КоличествоВПартии;
                            НоваяСтрока.СтоимостьВПартии = СтоимостьВПартии;
                            НоваяСтрока.ЦенаВПартии = ?(КоличествоВПартии = 0, 0, СтоимостьВПартии / КоличествоВПартии);
                            НоваяСтрока.СуммаПоПрайсу = КоличествоВПартии * ВыборкаДетальныеЗаписи.ЦенаПоПрайсу;
                            КоличествоОстаток = КоличествоОстаток - КоличествоВПартии;
                        КонецЦикла;
   sidalexsandr
 
9 - 29.06.18 - 14:37
Дописано НоваяСтрока.МестоХранения = ВыборкаНоменклатура.МестоХранения;
   HomoAlbus
 
10 - 29.06.18 - 14:39
(7) Вот за такие простыни у нас чулане закрывают пока неотрефакторишь
 
 Рекламное место пустует
   sidalexsandr
 
11 - 29.06.18 - 14:41
(10) Согласен с тобой. Писал не я поэтому такая простынь.
   sidalexsandr
 
12 - 29.06.18 - 14:42
(9) Выдает ошибку:
{ВнешнийОтчет.ОтчетСебестоимостьПартийНаСкладах.МодульОбъекта(190)}: Поле объекта не обнаружено (МестоХранения)
                            НоваяСтрока.МестоХранения = ВыборкаНоменклатура.МестоХранения;
   HomoAlbus
 
13 - 29.06.18 - 14:48
(12) В твоей таблице значений ТЗ нет такой колонки либо в выборке ее нет
   sidalexsandr
 
14 - 29.06.18 - 15:12
(13) Исправил, написал в запросе |   Остатки.МестоХранения,
   sidalexsandr
 
15 - 29.06.18 - 15:12
Отчет стал работать, но МестоХранения пустое
   sidalexsandr
 
16 - 29.06.18 - 15:46
Подниму

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует