Имя: Пароль:
1C
1С v8
как разбить запрос остаткиИобороты отдельно на остатки и обороты?
0 Zoeh
 
14.02.22
04:31
|ВЫБРАТЬ
    |ТоварыОрганизацийОстаткиИОбороты.АналитикаУчетаНоменклатуры.МестоХранения КАК АналитикаУчетаНоменклатурыМестоХранения,
    |ТоварыОрганизацийОстаткиИОбороты.АналитикаУчетаНоменклатуры.Номенклатура КАК АналитикаУчетаНоменклатурыНоменклатура,
    
    |ТоварыОрганизацийОстаткиИОбороты.КоличествоНачальныйОстаток КАК КоличествоНачальныйОстаток,
    |ТоварыОрганизацийОстаткиИОбороты.КоличествоКонечныйОстаток КАК КоличествоКонечныйОстаток,
    |ТоварыОрганизацийОстаткиИОбороты.КоличествоПриход КАК КоличествоПриход,
    |ТоварыОрганизацийОстаткиИОбороты.КоличествоРасход КАК КоличествоРасход
    |ИЗ
    |РегистрНакопления.ТоварыОрганизаций.ОстаткиИОбороты(&Дата1,&Дата2, Регистратор, , "+ФильтрНом+ФильтрСклад+") КАК ТоварыОрганизацийОстаткиИОбороты
    |Где"+
    ФильтрКон+"(Регистратор Ссылка Документ.РеализацияТоваровУслуг
    |ИЛИ Регистратор Ссылка Документ.ВозвратТоваровОтКлиента
    |ИЛИ КоличествоКонечныйОстаток > 0 )
        
    |СГРУППИРОВАТЬ ПО
    |ТоварыОрганизацийОстаткиИОбороты.АналитикаУчетаНоменклатуры.МестоХранения ,
    |ТоварыОрганизацийОстаткиИОбороты.АналитикаУчетаНоменклатуры.Номенклатура,
    |ТоварыОрганизацийОстаткиИОбороты.КоличествоНачальныйОстаток,
    |ТоварыОрганизацийОстаткиИОбороты.КоличествоКонечныйОстаток,
    |ТоварыОрганизацийОстаткиИОбороты.КоличествоПриход,
    |ТоварыОрганизацийОстаткиИОбороты.КоличествоРасход
    |УПОРЯДОЧИТЬ ПО
    |АналитикаУчетаНоменклатурыМестоХранения ВОЗР,
    |АналитикаУчетаНоменклатурыНоменклатура ВОЗР");
1 ДенисЧ
 
14.02.22
04:35
У РН есть ещё ВТ Остатки и Обороты.... Ты не поевришь...
2 Zoeh
 
14.02.22
04:58
(1)
вот я и пытаюсь отдельно через внутреннее соединение
разбить этот запрос на остатки и обороты
3 Zoeh
 
14.02.22
04:58
сложность накладыает условие по типурегистратора и котнрагнт
4 Zoeh
 
14.02.22
05:15
Поле не найдено "ТоварыОрганизацийОбороты.Регистратор"
РегистрНакопления.ТоварыОрганизаций.Обороты(&Дата1,&Дата2,Регистратор,АналитикаУчетаНоменклатуры.Номенклатура В ИЕРАРХИИ (&ВыбНоменклатура) И АналитикаУчетаНоменклатуры.МестоХранения В ИЕРАРХИИ (&ВыбМестоХранения)И(<<?>>ТоварыОрганизацийОбороты.Регистратор Ссылка Документ.РеализацияТоваровУслуг
{ВнешнийОтчет.ОтчетПродажиИОостатки.Форма.ФормаОтчета.Форма(174)}:    Результат = Запрос.Выполнить();
{ВнешнийОтчет.ОтчетПродажиИОостатки.Форма.ФормаОтчета.Форма(394)}:    СформироватьНаСервере(ТабДок);
5 hhhh
 
14.02.22
05:20
(4) ТоварыОрганизацийОбороты - это слово здесь зачем? Юмор? Пишите Регистратор Ссылка Документ.РеализацияТоваровУслуг
6 Zoeh
 
14.02.22
06:01
|ВЫБРАТЬ
    |ТоварыОрганизацийОстатки.АналитикаУчетаНоменклатуры.МестоХранения КАК АналитикаУчетаНоменклатурыМестоХранения,
    |ТоварыОрганизацийОстатки.АналитикаУчетаНоменклатуры.Номенклатура КАК АналитикаУчетаНоменклатурыНоменклатура,
    
    |ТоварыОрганизацийОстатки.КоличествоОстаток КАК КоличествоКонечныйОстаток,
    
    |ТоварыОрганизацийОбороты.КоличествоПриход КАК КоличествоПриход,
    |ТоварыОрганизацийОбороты.КоличествоРасход КАК КоличествоРасход,
    
    
    |ИЗ
    |РегистрНакопления.ТоварыОрганизаций.Остатки(&Дата2,"+ФильтрНом+ФильтрСклад+") КАК ТоварыОрганизацийОстатки
    |ВНУТРЕННЕЕ СОЕДИНЕНИЕ
    |РегистрНакопления.ТоварыОрганизаций.Обороты(&Дата1,&Дата2,Регистратор,"+ФильтрНом+ФильтрСклад+") КАК ТоварыОрганизацийОбороты
    |ПО
    |ТоварыОрганизацийОстатки.АналитикаУчетаНоменклатуры.МестоХранения = ТоварыОрганизацийОбороты.АналитикаУчетаНоменклатуры.МестоХранения
    |И ТоварыОрганизацийОстатки.АналитикаУчетаНоменклатуры.Номенклатура = ТоварыОрганизацийОбороты.АналитикаУчетаНоменклатуры.Номенклатура
    
    |ГДЕ
    |ТоварыОрганизацийОбороты.Регистратор Ссылка Документ.РеализацияТоваровУслуг ИЛИ ТоварыОрганизацийОбороты.Регистратор Ссылка Документ.ВозвратТоваровОтКлиента");



Запрос получился , а вот свернуть его не могу
7 Zoeh
 
14.02.22
06:48
Запрос = Новый Запрос("
    |ВЫБРАТЬ
    |ТоварыОрганизацийОстатки.АналитикаУчетаНоменклатуры.МестоХранения КАК АналитикаУчетаНоменклатурыМестоХранения,
    |ТоварыОрганизацийОстатки.АналитикаУчетаНоменклатуры.Номенклатура КАК АналитикаУчетаНоменклатурыНоменклатура,
    
    |ТоварыОрганизацийОстатки.КоличествоОстаток,
    
    |ТоварыОрганизацийОбороты.КоличествоПриход,
    |ТоварыОрганизацийОбороты.КоличествоРасход
    
    
    |ИЗ
    |РегистрНакопления.ТоварыОрганизаций.Остатки(&Дата2,"+ФильтрНом+ФильтрСклад+") КАК ТоварыОрганизацийОстатки
    |ВНУТРЕННЕЕ СОЕДИНЕНИЕ
    |РегистрНакопления.ТоварыОрганизаций.Обороты(&Дата1,&Дата2,Регистратор,"+ФильтрНом+ФильтрСклад+") КАК ТоварыОрганизацийОбороты
    |ПО
    |ТоварыОрганизацийОстатки.АналитикаУчетаНоменклатуры.МестоХранения = ТоварыОрганизацийОбороты.АналитикаУчетаНоменклатуры.МестоХранения
    |И ТоварыОрганизацийОстатки.АналитикаУчетаНоменклатуры.Номенклатура = ТоварыОрганизацийОбороты.АналитикаУчетаНоменклатуры.Номенклатура
    
    |ГДЕ
    |Регистратор Ссылка Документ.РеализацияТоваровУслуг ИЛИ Регистратор Ссылка Документ.ВозвратТоваровОтКлиента
    |СГРУППИРОВАТЬ ПО
    |ТоварыОрганизацийОстатки.АналитикаУчетаНоменклатуры.МестоХранения,
    |ТоварыОрганизацийОстатки.АналитикаУчетаНоменклатуры.Номенклатура,
    |ТоварыОрганизацийОстатки.КоличествоОстаток,
    |ТоварыОрганизацийОбороты.КоличествоПриход,
    |ТоварыОрганизацийОбороты.КоличествоРасход
    //|АВТОУПОРЯДОЧИВАНИЕ");


    |ИТОГИ

    |СУММА(ТоварыОрганизацийОбороты.КоличествоПриход),
    |СУММА(ТоварыОрганизацийОбороты.КоличествоРасход),
    |СРЕДНЕЕ(ТоварыОрганизацийОстатки.КоличествоОстаток)
    |ПО
    |АналитикаУчетаНоменклатурыМестоХранения,
    |АналитикаУчетаНоменклатурыНоменклатура");




    Если ФильтрНом<>"" Тогда
        Запрос.УстановитьПараметр("ВыбНоменклатура",Отчет.СписокНоменклатуры);
    КонецЕсли;
    Если ФильтрСклад<>"" Тогда
        Запрос.УстановитьПараметр("ВыбМестоХранения",Отчет.СписокСкладов);
    КонецЕсли;
    Если ФильтрКон<>"" Тогда
        Запрос.УстановитьПараметр("ВыбКонтрагент",Отчет.СписокСобственныхКонтрагентов);
    КонецЕсли;

    Запрос.УстановитьПараметр("Дата1",Отчет.ДатаНачала);   //(, , Запись, Движения, )
    Запрос.УстановитьПараметр("Дата2",КонецДня(Отчет.ДатаКонца));

    Результат = Запрос.Выполнить();
    //СпособОбхода = ОбходРезультатаЗапроса.ПоГруппировкам;
    ВыборкаОбщийИтог = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"АналитикаУчетаНоменклатурыМестоХранения");
    Пока ВыборкаОбщийИтог.Следующий()>0 Цикл
        ВыборкаНоменкллатура = ВыборкаОбщийИтог.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"АналитикаУчетаНоменклатурыНоменклатура");
           Пока ВыборкаНоменкллатура.Следующий()>0 Цикл

        Стр   = ВыборкаНоменкллатура;
        Сообщить(СокрЛП(Стр.АналитикаУчетаНоменклатурыМестоХранения)+СокрЛП(Стр.АналитикаУчетаНоменклатурыНоменклатура)+СокрЛП(Стр.КоличествоРасход)+"   "+СокрЛП(Стр.КоличествоОстаток));
        КонецЦикла;

    КонецЦикла;
8 Zoeh
 
14.02.22
07:04
Все равно проблема: условие по типу документа накладывается на конечный остаток, и там где движений не было
запись в выборке отсутствует
9 ДенисЧ
 
14.02.22
07:46
(8) В остатках типа регистратора нет в принципе.
10 Ненавижу 1С
 
гуру
14.02.22
07:50
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший