[РЕШЕНО] Как организовать 2 запроса в фарме отчета и можно ли? или нужно модифицировать 1 запрос?

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем Kas-tet, 20 янв 2017.

  1. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    15.150
    Симпатии:
    560
    Баллы:
    204
    Если нет нач. остатков, значит их нет на дату начала. Если партию уберете, дубли должны уйти.
  2. TopicStarter Overlay
    Kas-tet
    Offline

    Kas-tet Опытный в 1С

    Регистрация:
    30 сен 2016
    Сообщения:
    62
    Симпатии:
    1
    Баллы:
    29
    убирал партию, ничего не изменилось, все равно дублирует,получается если 2 наклыдных прихода, то и данные 2 раза дублируются, если 3, то 3 раза дублируются...

    Снимок.PNG
    Последнее редактирование: 24 янв 2017
  3. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    15.150
    Симпатии:
    560
    Баллы:
    204
    Сгруппируйте по номенлатуре. Регистратор выбирали в запросе ? Если да, то думаю нужно убрать. Вы попробуйте в консоли запросов сначала запрос отладить
  4. TopicStarter Overlay
    Kas-tet
    Offline

    Kas-tet Опытный в 1С

    Регистрация:
    30 сен 2016
    Сообщения:
    62
    Симпатии:
    1
    Баллы:
    29
    Группировал...Насчет регистратора не понял...ниже код с запросом...
    так консоль запросов не работает, я бы с радостью)

    Код:
    &НаСервере
    Процедура СформироватьОтчет(ТабДок)
        //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
        // Данный фрагмент построен конструктором.
        // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
    
        Макет = Отчеты.Отчет1.ПолучитьМакет("Макет1");
        Запрос = Новый Запрос;
        Запрос.Текст =
            "ВЫБРАТЬ РАЗЛИЧНЫЕ
            |    ОстаткиНоменклатурыОстаткиИОбороты.Номенклатура КАК Номенклатура,
            |    ПРЕДСТАВЛЕНИЕ(ОстаткиНоменклатурыОстаткиИОбороты.Номенклатура),
            |    ОстаткиНоменклатурыОстаткиИОбороты.КоличествоНачальныйОстаток КАК КоличествоНачальныйОстаток,
            |    ОстаткиНоменклатурыОстаткиИОбороты.СтоимостьНачальныйОстаток КАК СтоимостьНачальныйОстаток,
            |    ОстаткиНоменклатурыОстаткиИОбороты.КоличествоПриход КАК КоличествоПриход,
            |    ОстаткиНоменклатурыОстаткиИОбороты.СтоимостьПриход КАК СтоимостьПриход,
            |    ОстаткиНоменклатурыОстаткиИОбороты.КоличествоРасход КАК КоличествоРасход,
            |    ОстаткиНоменклатурыОстаткиИОбороты.СтоимостьРасход КАК СтоимостьРасход,
            |    ОстаткиНоменклатурыОстаткиИОбороты.КоличествоКонечныйОстаток КАК КоличествоКонечныйОстаток,
            |    ОстаткиНоменклатурыОстаткиИОбороты.СтоимостьКонечныйОстаток КАК СтоимостьКонечныйОстаток,
            |    ПриходнаяНакладнаяСписокНоменклатуры.Ссылка.Дата КАК Дата
            |ИЗ
            |    РегистрНакопления.ОстаткиНоменклатуры.ОстаткиИОбороты(, , , , ) КАК ОстаткиНоменклатурыОстаткиИОбороты,
            |    Документ.ПриходнаяНакладная.СписокНоменклатуры КАК ПриходнаяНакладнаяСписокНоменклатуры
            |
            |СГРУППИРОВАТЬ ПО
            |    ОстаткиНоменклатурыОстаткиИОбороты.Номенклатура,
            |    ОстаткиНоменклатурыОстаткиИОбороты.КоличествоНачальныйОстаток,
            |    ОстаткиНоменклатурыОстаткиИОбороты.СтоимостьНачальныйОстаток,
            |    ОстаткиНоменклатурыОстаткиИОбороты.КоличествоПриход,
            |    ОстаткиНоменклатурыОстаткиИОбороты.СтоимостьПриход,
            |    ОстаткиНоменклатурыОстаткиИОбороты.КоличествоРасход,
            |    ОстаткиНоменклатурыОстаткиИОбороты.СтоимостьРасход,
            |    ОстаткиНоменклатурыОстаткиИОбороты.КоличествоКонечныйОстаток,
            |    ОстаткиНоменклатурыОстаткиИОбороты.СтоимостьКонечныйОстаток,
            |    ПриходнаяНакладнаяСписокНоменклатуры.Ссылка.Дата
            |
            |УПОРЯДОЧИТЬ ПО
            |    Номенклатура,
            |    Дата,
            |    КоличествоНачальныйОстаток,
            |    СтоимостьНачальныйОстаток,
            |    КоличествоПриход,
            |    СтоимостьПриход,
            |    КоличествоРасход,
            |    СтоимостьРасход,
            |    КоличествоКонечныйОстаток,
            |    СтоимостьКонечныйОстаток";
    
        Результат = Запрос.Выполнить();
    
        ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
        ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
        ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
        ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы");
        ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");
    
        ТабДок.Очистить();
        ТабДок.Вывести(ОбластьЗаголовок);
        ТабДок.Вывести(ОбластьШапкаТаблицы);
        ТабДок.НачатьАвтогруппировкуСтрок();
    
        ВыборкаДетальныеЗаписи = Результат.Выбрать();
    
        Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
            ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетальныеЗаписи);
            ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетальныеЗаписи.Уровень());
        КонецЦикла;
    
        ТабДок.ЗакончитьАвтогруппировкуСтрок();
        ТабДок.Вывести(ОбластьПодвалТаблицы);
        ТабДок.Вывести(ОбластьПодвал);
    
        //}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
    
      КонецПроцедуры
    
  5. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    15.150
    Симпатии:
    560
    Баллы:
    204
    Зачем два раза одно и то же выводить ?
    Код:
    | ОстаткиНоменклатурыОстаткиИОбороты.Номенклатура КАК Номенклатура,
    | ПРЕДСТАВЛЕНИЕ(ОстаткиНоменклатурыОстаткиИОбороты.Номенклатура),
    Код:
    |ИЗ
    | РегистрНакопления.ОстаткиНоменклатуры.ОстаткиИОбороты(, , , , ) КАК ОстаткиНоменклатурыОстаткиИОбороты,
    | Документ.ПриходнаяНакладная.СписокНоменклатуры КАК ПриходнаяНакладнаяСписокНоменклатуры
    Обороты всегда должны браться за период, тогда нач.и конеч. остатки будут.
    Две таблицы у вас никак не связаны, это я про РН и документ. Для чего это ? В РН есть поле - Регистратор (это такая штука, которая отображает какой документ внес данные в регистр)

    Попробуйте таким образом изменить запрос (пишу на коленке, так что извиняйте :) )

    Код:
    Запрос.Текст =
    "ВЫБРАТЬ РАЗЛИЧНЫЕ
    | ОстаткиНоменклатурыОстаткиИОбороты.Регистратор Как Документ,
    | ОстаткиНоменклатурыОстаткиИОбороты.Регистратор.Дата Как ДатаДокумента,
    | ОстаткиНоменклатурыОстаткиИОбороты.Номенклатура КАК Номенклатура,
    | ОстаткиНоменклатурыОстаткиИОбороты.КоличествоНачальныйОстаток КАК КоличествоНачальныйОстаток,
    | ОстаткиНоменклатурыОстаткиИОбороты.СтоимостьНачальныйОстаток КАК СтоимостьНачальныйОстаток,
    | ОстаткиНоменклатурыОстаткиИОбороты.КоличествоПриход КАК КоличествоПриход,
    | ОстаткиНоменклатурыОстаткиИОбороты.СтоимостьПриход КАК СтоимостьПриход,
    | ОстаткиНоменклатурыОстаткиИОбороты.КоличествоРасход КАК КоличествоРасход,
    | ОстаткиНоменклатурыОстаткиИОбороты.СтоимостьРасход КАК СтоимостьРасход,
    | ОстаткиНоменклатурыОстаткиИОбороты.КоличествоКонечныйОстаток КАК КоличествоКонечныйОстаток,
    | ОстаткиНоменклатурыОстаткиИОбороты.СтоимостьКонечныйОстаток КАК СтоимостьКонечныйОстаток,
    |ИЗ
    | РегистрНакопления.ОстаткиНоменклатуры.ОстаткиИОбороты(&НачалоПериода, &КонецПериода , , , Авто) КАК ОстаткиНоменклатурыОстаткиИОбороты
    |
    |СГРУППИРОВАТЬ ПО
    | ОстаткиНоменклатурыОстаткиИОбороты.Регистратор,
    | ОстаткиНоменклатурыОстаткиИОбороты.Регистратор.Дата,
    | ОстаткиНоменклатурыОстаткиИОбороты.Номенклатура,
    | ОстаткиНоменклатурыОстаткиИОбороты.КоличествоНачальныйОстаток,
    | ОстаткиНоменклатурыОстаткиИОбороты.СтоимостьНачальныйОстаток,
    | ОстаткиНоменклатурыОстаткиИОбороты.КоличествоПриход,
    | ОстаткиНоменклатурыОстаткиИОбороты.СтоимостьПриход,
    | ОстаткиНоменклатурыОстаткиИОбороты.КоличествоРасход,
    | ОстаткиНоменклатурыОстаткиИОбороты.СтоимостьРасход,
    | ОстаткиНоменклатурыОстаткиИОбороты.КоличествоКонечныйОстаток,
    | ОстаткиНоменклатурыОстаткиИОбороты.СтоимостьКонечныйОстаток,
    |
    |УПОРЯДОЧИТЬ ПО
    | Номенклатура";
    Последнее редактирование: 25 янв 2017
  6. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    9.900
    Симпатии:
    1.035
    Баллы:
    204
    Код:
    |ИЗ
    | РегистрНакопления.ОстаткиНоменклатуры.ОстаткиИОбороты(, , , , ) КАК ОстаткиНоменклатурыОстаткиИОбороты,
    | Документ.ПриходнаяНакладная.СписокНоменклатуры КАК ПриходнаяНакладнаяСписокНоменклатуры
    Да вы прикалываетесь что ли? :) Пожалейте SQL сервер :)
    alexburn нравится это.
  7. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    15.150
    Симпатии:
    560
    Баллы:
    204
    Блин, тупанул, забыл исправить :)
  8. TopicStarter Overlay
    Kas-tet
    Offline

    Kas-tet Опытный в 1С

    Регистрация:
    30 сен 2016
    Сообщения:
    62
    Симпатии:
    1
    Баллы:
    29
    Спасибо большое, все работает
    Код:
    Процедура СформироватьОтчет(ТабДок)
        //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
        // Данный фрагмент построен конструктором.
        // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
    
        Макет = Отчеты.Отчет1.ПолучитьМакет("Макет1");
        Запрос = Новый Запрос;
        Запрос.УстановитьПараметр("НачалоПериода", НачалоДня(Период.ДатаНачала));
        Запрос.УстановитьПараметр("КонецПериода", КонецДня(Период.ДатаОкончания));
        Запрос.Текст =
            "ВЫБРАТЬ РАЗЛИЧНЫЕ
            |    ОстаткиНоменклатурыОстаткиИОбороты.Номенклатура КАК Номенклатура,
            |    ПРЕДСТАВЛЕНИЕ(ОстаткиНоменклатурыОстаткиИОбороты.Номенклатура),
            |    ОстаткиНоменклатурыОстаткиИОбороты.КоличествоНачальныйОстаток КАК КоличествоНачальныйОстаток,
            |    ОстаткиНоменклатурыОстаткиИОбороты.СтоимостьНачальныйОстаток КАК СтоимостьНачальныйОстаток,
            |    ОстаткиНоменклатурыОстаткиИОбороты.КоличествоПриход КАК КоличествоПриход,
            |    ОстаткиНоменклатурыОстаткиИОбороты.СтоимостьПриход КАК СтоимостьПриход,
            |    ОстаткиНоменклатурыОстаткиИОбороты.КоличествоРасход КАК КоличествоРасход,
            |    ОстаткиНоменклатурыОстаткиИОбороты.СтоимостьРасход КАК СтоимостьРасход,
            |    ОстаткиНоменклатурыОстаткиИОбороты.КоличествоКонечныйОстаток КАК КоличествоКонечныйОстаток,
            |    ОстаткиНоменклатурыОстаткиИОбороты.СтоимостьКонечныйОстаток КАК СтоимостьКонечныйОстаток,
            |    ПриходнаяНакладнаяСписокНоменклатуры.НомерПартии КАК НомерПартии,
            |    ПриходнаяНакладнаяСписокНоменклатуры.Ссылка.Дата КАК Дата
            |ИЗ
            |    РегистрНакопления.ОстаткиНоменклатуры.ОстаткиИОбороты(&НачалоПериода, &КонецПериода , , ,) КАК ОстаткиНоменклатурыОстаткиИОбороты
            |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПриходнаяНакладная.СписокНоменклатуры КАК ПриходнаяНакладнаяСписокНоменклатуры
            |        ПО ОстаткиНоменклатурыОстаткиИОбороты.Номенклатура.Ссылка = ПриходнаяНакладнаяСписокНоменклатуры.Номенклатура
            |
            |СГРУППИРОВАТЬ ПО
            |    ОстаткиНоменклатурыОстаткиИОбороты.Номенклатура,
            |    ОстаткиНоменклатурыОстаткиИОбороты.КоличествоНачальныйОстаток,
            |    ОстаткиНоменклатурыОстаткиИОбороты.СтоимостьНачальныйОстаток,
            |    ОстаткиНоменклатурыОстаткиИОбороты.КоличествоПриход,
            |    ОстаткиНоменклатурыОстаткиИОбороты.СтоимостьПриход,
            |    ОстаткиНоменклатурыОстаткиИОбороты.КоличествоРасход,
            |    ОстаткиНоменклатурыОстаткиИОбороты.СтоимостьРасход,
            |    ОстаткиНоменклатурыОстаткиИОбороты.КоличествоКонечныйОстаток,
            |    ОстаткиНоменклатурыОстаткиИОбороты.СтоимостьКонечныйОстаток,
            |    ПриходнаяНакладнаяСписокНоменклатуры.НомерПартии,
            |    ПриходнаяНакладнаяСписокНоменклатуры.Ссылка.Дата
            |
            |УПОРЯДОЧИТЬ ПО
            |    Номенклатура,
            |    КоличествоНачальныйОстаток,
            |    СтоимостьНачальныйОстаток,
            |    КоличествоПриход,
            |    СтоимостьПриход,
            |    КоличествоРасход,
            |    СтоимостьРасход,
            |    КоличествоКонечныйОстаток,
            |    СтоимостьКонечныйОстаток,
            |    НомерПартии,
            |    Дата
            |ИТОГИ ПО
            |    Номенклатура";
    
        Результат = Запрос.Выполнить();
    
        ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
        ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
        ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
        ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы");
        ОбластьНоменклатура = Макет.ПолучитьОбласть("Номенклатура");
        ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");
    
        ТабДок.Очистить();
        ТабДок.Вывести(ОбластьЗаголовок);
        ТабДок.Вывести(ОбластьШапкаТаблицы);
        ТабДок.НачатьАвтогруппировкуСтрок();
    
        ВыборкаНоменклатура = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    
        Пока ВыборкаНоменклатура.Следующий() Цикл
            ОбластьНоменклатура.Параметры.Заполнить(ВыборкаНоменклатура);
            ТабДок.Вывести(ОбластьНоменклатура, ВыборкаНоменклатура.Уровень());
    
            ВыборкаДетальныеЗаписи = ВыборкаНоменклатура.Выбрать();
    
            Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
                ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетальныеЗаписи);
                ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетальныеЗаписи.Уровень());
            КонецЦикла;
        КонецЦикла;
    
        ТабДок.ЗакончитьАвтогруппировкуСтрок();
        ТабДок.Вывести(ОбластьПодвалТаблицы);
        ТабДок.Вывести(ОбластьПодвал);
    
        //}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
    
      КонецПроцедуры
    
    alexburn нравится это.
Похожие темы
  1. New1CCoder8
    Ответов:
    2
    Просмотров:
    1.993
  2. Ленок87
    Ответов:
    8
    Просмотров:
    653
  3. Yury
    Ответов:
    5
    Просмотров:
    3.044
  4. Vladius
    Ответов:
    17
    Просмотров:
    7.145
  5. Ktyf
    Ответов:
    5
    Просмотров:
    1.132
Загрузка...