Имя: Пароль:
1C
 
Бух. Помогите оптимизировать отчет по продажам
0 vfrcbv
 
21.03.16
12:19
Добрый день.
Необходимо сделать отчет по продажам, чтобы увидеть за определенный период: когда покупателю была отгружена продукция, какая, в каком количестве и цене.

С помощью запроса по 62.01 получил покупателей и документы реализации за необходимый период:

ВЫБРАТЬ
    ХозрасчетныйОбороты.Субконто1,
    ХозрасчетныйОбороты.Субконто3
ИЗ
    РегистрБухгалтерии.Хозрасчетный.Обороты(&НачалаПериода, &КонецПериода, , Счет = &Счет, , , , ) КАК ХозрасчетныйОбороты

УПОРЯДОЧИТЬ ПО
    ХозрасчетныйОбороты.Субконто1.Наименование

далее в выборке результата запроса планирую вытянуть по документам с помощью другого запроса: информацию о продукции, количестве и цене.

Однако чувствую, что это не самый оптимальный способ решение задачи. Подскажите пожалуйста, как можно оптимизировать отчет...
1 asady
 
21.03.16
12:44
(0) зачем в другом это делать?

делай в одном
2 dubraver
 
21.03.16
12:57
Сначала необходимо написать отчет выдающий корректные данные.
Далее с помощью средств анализа (замеры времени, план запроса, количество чтений, cpu duration и т.д.), необходимо понять нужно ли делать оптимизацию.
Если на текущий момент отчет работает "допустимо" быстро для заказчика. Оставить все как есть.
3 AceVi
 
21.03.16
13:06
(1) Вот правильно человек пишет - делай в 1. потом просто пропиши Итоги по и в первую выборку ОбходРезультатаЗапроса.ПоГруппировкам. Будет тоже самое только все в 1 запросе и не будет у тебя запроса в цикле, он считается плохим кодом.
4 mehfk
 
21.03.16
13:08
(0) Заведи регистр Продажи в конфигурации.
5 vfrcbv
 
21.03.16
13:30
(3) >потом просто пропиши Итоги по и в первую выборку ОбходРезультатаЗапроса.ПоГруппировкам.

можно чуть поподробнее?
6 VIrina
 
21.03.16
13:49
(0) Универсальный отчет не пробовали?
7 vfrcbv
 
21.03.16
14:19
Написал, одним запросом как посоветовал (1). Результат получился, тот что требовался.

ВЫБРАТЬ
    ХозрасчетныйОбороты.Субконто1,
    ХозрасчетныйОбороты.Субконто3
ПОМЕСТИТЬ Продажи
ИЗ
    РегистрБухгалтерии.Хозрасчетный.Обороты(&НачалаПериода, &КонецПериода, , Счет = &Счет, , , , ) КАК ХозрасчетныйОбороты
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    РеализацияТоваровУслугТовары.Ссылка.Контрагент,
    РеализацияТоваровУслугТовары.Ссылка.Дата,
    РеализацияТоваровУслугТовары.Номенклатура,
    РеализацияТоваровУслугТовары.Количество,
    РеализацияТоваровУслугТовары.Цена
ИЗ
    Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
ГДЕ
    РеализацияТоваровУслугТовары.Ссылка.Дата МЕЖДУ &НачалаПериода И &КонецПериода

УПОРЯДОЧИТЬ ПО
    РеализацияТоваровУслугТовары.Ссылка.Контрагент.Наименование

Скажите пожалуйста, нормальный запрос получился или можно, что-то улучшить?
8 FIXXXL
 
21.03.16
14:22
(7) и как связаны первый и второй запросы?
9 vfrcbv
 
21.03.16
14:27
(8) У субконто3 счета 62.01 - документ РеализацияТоваровУслуг, взята табличная часть документа.
10 AceVi
 
21.03.16
14:39
(9) Пиши так
ГДЕ
   РеализацияТоваровУслугТовары.Ссылка В (ВЫБРАТЬ Продажи.Субконто3  ИЗ Продажи)
Вместо условия по датам.

По жатам в твоем случае будет ошибкой отбирать. ведь тогда ты выберешь и непроведенные документы и помеченные на удаление.
11 AceVi
 
21.03.16
14:41
(7) и возьми за правило, в начале названия временных таблиц пиши "вт"(втПродажи) в больших запросах легче будет разбираться.
12 vfrcbv
 
21.03.16
14:47
(11) Спасибо!
13 FIXXXL
 
21.03.16
14:51
(9) в тексте запроса где связь то?
делай как (10) советует :)
14 mehfk
 
21.03.16
15:12
(0) В БП 3.0 есть отчет продажи :)
Основная теорема систематики: Новые системы плодят новые проблемы.