Имя: Пароль:
1C
1С v8
Как корректно составить запрос?
0 Melo533
 
06.09.12
19:33
Запрос выбирает данные для заполнения макета.
 Запрос = Новый Запрос("ВЫБРАТЬ
                       | ХозрасчетныйОборотыДтКт.Регистратор КАК Регистратор,
                       | ХозрасчетныйОборотыДтКт.СубконтоДт1 КАК СубконтоДт1,
                       | ХозрасчетныйОборотыДтКт.КоличествоОборотКт КАК КоличествоОборотКт,
                       | ХозрасчетныйОборотыДтКт.СуммаНУОборотКт КАК СуммаНУОборотКт,
                       | ХозрасчетныйОборотыДтКт.СчетДт КАК СчетДт,
                       | ХозрасчетныйОборотыДтКт.СубконтоКт1 КАК СубконтоКт1,
                       | ХозрасчетныйОборотыДтКт.СубконтоКт3 КАК СубконтоКт3,
                       | ХозрасчетныйОборотыДтКт.КоличествоОборотДт
                       |ИЗ
                       | РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&ДатаНач, &ДатаКон, Запись, , , СчетКт = &СчетКт, , ) КАК ХозрасчетныйОборотыДтКт
                       |ГДЕ
                       | ХозрасчетныйОборотыДтКт.СуммаНУОборотКт <> 0
                       |
                       |УПОРЯДОЧИТЬ ПО
                       | СубконтоКт1,
                       | СубконтоКт3
                       |ИТОГИ
                       | СУММА(КоличествоОборотКт),
                       | СУММА(СуммаНУОборотКт)
                       |ПО
                       | СчетДт
                       |АВТОУПОРЯДОЧИВАНИЕ");
 Запрос.УстановитьПараметр("ДатаНач",ДатаНач);
 Запрос.УстановитьПараметр("ДатаКон", КонецДня(ДатаКон));
 Запрос.УстановитьПараметр("СчетКт",ПланыСчетов.Хозрасчетный.ИнвентарьИХозяйственныеПринадлежности);

 ИтогоСтоимость = 0;
 ИтогоКоличество =0;
 НаправлениеИспользования = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); //обход по счетам дебета
 Пока НаправлениеИспользования.Следующий() цикл
     НаправлениеИпользованияНаименование = ПолучитьНаименованиеНаправлениеИспольования(НаправлениеИспользования.СчетДт);
  Если БезВнутреннегоПеремещения и  НаправлениеИспользования.СчетДт =ПланыСчетов.Хозрасчетный.ИнвентарьИХозяйственныеПринадлежности  тогда Продолжить; КонецЕсли;
   ДокументДвижения =  НаправлениеИспользования.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
 
   Пока ДокументДвижения.Следующий() цикл
   ОбластьСтрока.Параметры.ДатаОперации       = Формат(ДокументДвижения.Регистратор.Дата, "ДФ=dd.MM.yyyy");
   ОбластьСтрока.Параметры.НаправлениеИспользования   = НаправлениеИпользованияНаименование+?(НаправлениеИспользования.СчетДт=ПланыСчетов.Хозрасчетный.ИздержкиОбращения,Символы.ПС+ДокументДвижения.СубконтоДт1,"");
   ОбластьСтрока.Параметры.Номенклатура       =""+ ДокументДвижения.СубконтоКт1 +?(НЕ ДокументДвижения.СубконтоКт3 =Справочники.ХарактеристикиМатериалов.ПустаяСсылка(), Символы.ПС+ "("+ДокументДвижения.СубконтоКт3+")","");
   ОбластьСтрока.Параметры.ОснованиеДата           = Формат(ДокументДвижения.Регистратор.Дата, "ДФ=dd.MM.yyyy");
   ОбластьСтрока.Параметры.ОснованиеНОмер           = ОбщегоНазначения.ПолучитьНомерНаПечать(ДокументДвижения.Регистратор);
   ОбластьСтрока.Параметры.Основание           = ПолучитьОснование(ДокументДвижения.Регистратор);
   ОбластьСтрока.Параметры.Количество           = ?(НЕ ДокументДвижения.КоличествоОборотКт=0,ДокументДвижения.КоличествоОборотКт,"-");
   ОбластьСтрока.Параметры.Цена         =  
   ОбластьСтрока.Параметры.Стоимость       = ?(НЕ ДокументДвижения.СуммаНУОборотКт =0,ДокументДвижения.СуммаНУОборотКт,"-");
   ОбластьСтрока.Параметры.РасшифровкаДокумент     = ДокументДвижения.Регистратор.Ссылка;
   ОбластьСтрока.Параметры.РасшифровкаНоменклатура     = ДокументДвижения.СубконтоКт1;
   ДокументРезультат.Вывести(ОбластьСтрока);
   КонецЦикла;

Вопрос в следующем: цену номенклатуры необходимо получить из табличной части Товары документа поступления, который был оформлен в том же периоде, что и выбранный для запроса период (обычно это месяц).
то есть в запросе выбирается номенклатура, которая списывается, а цена должна быть та, по которой закупалась списываемая номеклатура
1 ChAlex
 
06.09.12
19:37
(0) - блин а чего так через одно место решать методически данную задачу? Какой уж пост смотрю все с какими-то выборками цен из документов все воюют. А что остатки предыдущих периодов не могут быть? а если несколько приходов? А если ... и еще вагончик если
2 Джинн
 
06.09.12
19:44
(0) Где такую траву берете?
3 Melo533
 
07.09.12
02:31
а можно или по делу или уж игнорировать?
4 Alex375
 
07.09.12
03:49
Возьми левое соединение с табличной частью "Товары" требуемого документа по Номенклатуре с отбором по периоду.
А вообще тебе хотели сказать, что такое решение ОЧЕНЬ не правильное. Правда мы и контекста задачи не знаем, но мало вероятно, что этот контекст приводит к твоему решению.
5 Cube
 
07.09.12
04:55
(3) На этом форуме принято девушкам в профиль свою фотку выкладывать. Чем удачнее фото, тем качественнее и оперативнее будешь получать ответы :)
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой