8.х Запрос

Тема в разделе "Общие вопросы "1С:Предприятие 8"", создана пользователем mialord, 3 фев 2010.

  1. TopicStarter Overlay
    mialord
    Offline

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

    Регистрация:
    31 июл 2009
    Сообщения:
    5.400
    Симпатии:
    40
    Баллы:
    54
    Здраствуйте!
    Прошу составить простой пример запроса продаж по номенклатурным группам, с получением количества продаж, суммы с НДС.
    Конф: БП.
    Заранее благодарю!
  2. Itsys
    Offline

    Itsys Опытный в 1С

    Регистрация:
    3 янв 2010
    Сообщения:
    1.394
    Симпатии:
    0
    Баллы:
    26
    Код:
    ВЫБРАТЬ
    ХозрасчетныйДвиженияССубконто.СубконтоКт1 КАК НоменклатурнаяГруппа,
    СУММА(ХозрасчетныйДвиженияССубконто.Сумма) КАК СуммаСНДС,
    КОЛИЧЕСТВО(ХозрасчетныйДвиженияССубконто.Регистратор) КАК КоличествоПродаж
    ИЗ
    РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто КАК ХозрасчетныйДвиженияССубконто
    ГДЕ
    ХозрасчетныйДвиженияССубконто.СчетКт = &Счет90011
    И ХозрасчетныйДвиженияССубконто.Организация = &Организация
    И ХозрасчетныйДвиженияССубконто.Период МЕЖДУ &ДатаНачала И &ДатаОкончания
    
    СГРУППИРОВАТЬ ПО
    ХозрасчетныйДвиженияССубконто.СубконтоКт1 
    
  3. TopicStarter Overlay
    mialord
    Offline

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

    Регистрация:
    31 июл 2009
    Сообщения:
    5.400
    Симпатии:
    40
    Баллы:
    54
    Благодарю за ответ!
    На данный момент я уже составил запрос
    Код:
    Функция ПолучитьРезультатЗапроса_КопияКонечный()
    
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ
    |	Продажи.Субконто1 КАК НоменклатурнаяГруппа,
    |	СУММА(Продажи.СуммаОборотКт) КАК СуммаСНДС,
    |	ВложенныйЗапросНДС.НДС,
    |	Продажи.СуммаОборотКт - ВложенныйЗапросНДС.НДС КАК СуммаБезНДС,
    |	Продажи.КоличествоКорОборотДт КАК Количество
    |ИЗ
    |	РегистрБухгалтерии.Хозрасчетный.Обороты(
    |			&НачалоПериода,
    |			&КонецПериода,
    |			Месяц,
    |			Счет В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.Продажи)),
    |			,
    |			Организация = &Организация
    |				И ИСТИНА,
    |			,
    |			) КАК Продажи
    |		ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
    |			ВложенныйЗапросНДС.Субконто1 КАК НоменклатурнаяГруппа,
    |			ВложенныйЗапросНДС.СуммаОборотДт КАК НДС
    |		ИЗ
    |			РегистрБухгалтерии.Хозрасчетный.Обороты(
    |					&НачалоПериода,
    |					&КонецПериода,
    |					Месяц,
    |					Счет В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.Продажи_НДС)),
    |					,
    |					Организация = &Организация
    |						И ИСТИНА,
    |					,
    |					) КАК ВложенныйЗапросНДС) КАК ВложенныйЗапросНДС
    |		ПО Продажи.Субконто1 = ВложенныйЗапросНДС.НоменклатурнаяГруппа
    |
    |СГРУППИРОВАТЬ ПО
    |	Продажи.Субконто1,
    |	ВложенныйЗапросНДС.НДС,
    |	Продажи.СуммаОборотКт - ВложенныйЗапросНДС.НДС,
    |	Продажи.КоличествоКорОборотДт
    |
    |УПОРЯДОЧИТЬ ПО
    |	НоменклатурнаяГруппа";
    //Параметры запроса
    Запрос.УстановитьПараметр("КонецПериода",КонецПериода);// Дата
    Запрос.УстановитьПараметр("НачалоПериода",НачалоПериода);// Дата
    Запрос.УстановитьПараметр("Организация",);// Справочник ссылка: Организации
    Результат = Запрос.Выполнить();
    
    Возврат Результат;
    
    КонецФункции //ПолучитьРезультатЗапроса_КопияКонечный
    
    Вопрос эффективности
    Вашь вариант
    Мой вариант
    Так что оставляю свой вариант, но всё равно ьлагодарю за участие
    ЗЫ: Извиняюсь что не правильно написал, надо не кол-во прожаж, а кол-во проданного товара в номенклатурной группе
  4. Itsys
    Offline

    Itsys Опытный в 1С

    Регистрация:
    3 янв 2010
    Сообщения:
    1.394
    Симпатии:
    0
    Баллы:
    26
    А так:
    Код:
    ВЫБРАТЬ
    ХозрасчетныйОбороты.Субконто1 КАК НоменклатурнаяГруппа,
    ХозрасчетныйОбороты.СуммаОборотКт КАК СуммаПродаж,
    НалоговыйОбороты.КоличествоОборотКт КАК КоличествоПродаж
    ИЗ
    РегистрБухгалтерии.Хозрасчетный.Обороты(&ДатаНачала, &ДатаОкончания, , Счет = &СчетБУ90011, &НоменклатурныеГруппы, , , ) КАК ХозрасчетныйОбороты
    ПОЛНОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Налоговый.Обороты(&ДатаНачала, &ДатаОкончания, , Счет = &СчетНУ90011 ИЛИ Счет = &СчетНУ90012, &НоменклатурныеГруппы, , , ) КАК НалоговыйОбороты
    ПО ХозрасчетныйОбороты.Субконто1 = НалоговыйОбороты.Субконто1
    
  5. TopicStarter Overlay
    mialord
    Offline

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

    Регистрация:
    31 июл 2009
    Сообщения:
    5.400
    Симпатии:
    40
    Баллы:
    54
    Ну да, за счёт отсутствия вложенного запроса скорость выполнения запроса увеличится. Спасибо.
  6. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Еще быстрее будет, если субконто четко выразите через конструкцию
    ВЫРАЗИТЬ(ХозрасчетныйОбороты.Субконто1 КАК Справочник.<ИмяСправочника>)
  7. nomad_irk
    Online

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.581
    Симпатии:
    717
    Баллы:
    204
    А если в параметры виртуальной таблицы добавить

    Субконто1 ССЫЛКА Справочник.<ИмяСправочника>

    - это не одно и то же будет?
  8. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Это тоже даст скорость, но тип все равно лучше привести явно.

Поделиться этой страницей