|
Запрос к Бух.регистру | ☑ | ||
---|---|---|---|---|
0
cyberandr
15.11.11
✎
16:13
|
Всем привет! Такой вопрос, не подскажите как оптимизировать Запрос к регистру бухгалтерии (нужна Таблица оборотов), если приходится получать сам регистратор. По времени он получается в 3 раза медленней простого перебора документов.
Запрос.Текст = "ВЫБРАТЬ | УправленческийОбороты.Субконто1 КАК Товар, | СУММА(УправленческийОбороты.СуммаОборотКт) КАК Сумма, | УправленческийОбороты.Субконто1.Код КАК ТоварКод, | УправленческийОбороты.Субконто1.Тип КАК ТоварТип, | УправленческийОбороты.Субконто1.Артикул КАК ТоварАртикул, | СУММА(УправленческийОбороты.КоличествоОборотКт) КАК Колво |ИЗ | РегистрБухгалтерии.Управленческий.Обороты(&ДатаНач, &ДатаКон, Регистратор, , , , , ) КАК УправленческийОбороты |ГДЕ | УправленческийОбороты.Счет = &Счет10 | И УправленческийОбороты.КорСчет В(&КорСчет) | |СГРУППИРОВАТЬ ПО |УправленческийОбороты.Регистратор, |УправленческийОбороты.Субконто1 "; Остатки=Запрос.Выполнить().Выгрузить(); Для Каждого Стр Из Остатки Цикл // Для Р=0 ПО Стр.ТоварРасход.Количество()-1 ЦИКЛ НоваяСтр=РезТб.Добавить(); НоваяСтр.Дата=НачалоДня(Стр.Регистратор.Дата); Если ТипЗнч(Стр.Регистратор)=Тип("ДокументСсылка.РасходКл") Тогда НоваяСтр.ВидОтгрузки="Отгрузка клиенту"; ИначеЕсли ТипЗнч(Стр.Регистратор)=Тип("ДокументСсылка.РасходБезнал")Тогда НоваяСтр.ВидОтгрузки="Безнал"; Иначе НоваяСтр.ВидОтгрузки="Продажи"; КонецЕсли; |
|||
1
catena
15.11.11
✎
16:16
|
А почему счет и корсчет в условия вирт таблицы не занести?
|
|||
2
cyberandr
15.11.11
✎
16:26
|
Это принципиально? Но попробую.
|
|||
3
hhhh
15.11.11
✎
16:29
|
(2) должно быть быстрее в 125 раз.
|
|||
4
izekia
15.11.11
✎
16:38
|
(3) в 28
|
|||
5
cyberandr
15.11.11
✎
16:42
|
Я бы не сказал что в 28 вот новая версия
Запрос.Текст = "ВЫБРАТЬ | УправленческийОбороты.Субконто1 КАК Товар, | СУММА(УправленческийОбороты.СуммаОборотКт) КАК Сумма, | УправленческийОбороты.Субконто1.Код КАК ТоварКод, | УправленческийОбороты.Субконто1.Тип КАК ТоварТип, | УправленческийОбороты.Субконто1.Артикул КАК ТоварАртикул, | СУММА(УправленческийОбороты.КоличествоОборотКт) КАК Колво, | УправленческийОбороты.Регистратор |ИЗ | РегистрБухгалтерии.Управленческий.Обороты(&ДатаНач, &ДатаКон, Регистратор, Счет = &счет10, , , , ) КАК УправленческийОбороты |ГДЕ | УправленческийОбороты.КорСчет В(&КорСчет) | |СГРУППИРОВАТЬ ПО | УправленческийОбороты.Регистратор, | УправленческийОбороты.Субконто1"; Остатки=Запрос.Выполнить().Выгрузить(); Для Каждого Стр Из Остатки Цикл // Для Р=0 ПО Стр.ТоварРасход.Количество()-1 ЦИКЛ НоваяСтр=РезТб.Добавить(); НоваяСтр.Дата=НачалоДня(Стр.Регистратор.Дата); Если ТипЗнч(Стр.Регистратор)=Тип("ДокументСсылка.РасходКл") Тогда НоваяСтр.ВидОтгрузки="Отгрузка клиенту"; ИначеЕсли ТипЗнч(Стр.Регистратор)=Тип("ДокументСсылка.РасходБезнал")Тогда НоваяСтр.ВидОтгрузки="Безнал"; Иначе НоваяСтр.ВидОтгрузки="Продажи"; КонецЕсли; Быстрее но не так критично. |
|||
6
Maxus43
15.11.11
✎
16:45
|
кор счет тоже в условия вирт таблицы
|
|||
7
cyberandr
15.11.11
✎
17:44
|
(6) Выдает что нет такого поля как Корсчет
|
|||
8
Lys
15.11.11
✎
17:51
|
(7) Покажи запрос с условием по корсчету, на который у тебя программа ругается
|
|||
9
cyberandr
15.11.11
✎
18:00
|
Запрос.Текст = "ВЫБРАТЬ
| УправленческийОбороты.Субконто1 КАК Товар, | СУММА(УправленческийОбороты.СуммаОборотКт) КАК Сумма, | УправленческийОбороты.Субконто1.Код КАК ТоварКод, | УправленческийОбороты.Субконто1.Тип КАК ТоварТип, | УправленческийОбороты.Субконто1.Артикул КАК ТоварАртикул, | СУММА(УправленческийОбороты.КоличествоОборотКт) КАК Колво, | УправленческийОбороты.Регистратор |ИЗ | РегистрБухгалтерии.Управленческий.Обороты( | &ДатаНач, | &ДатаКон, | Регистратор, | КорСчет В (&КорСчет) | И Счет = &Счет10, | , | , | , | ) КАК УправленческийОбороты | |СГРУППИРОВАТЬ ПО | УправленческийОбороты.Регистратор, | УправленческийОбороты.Субконто1, | УправленческийОбороты.Субконто1.Код, | УправленческийОбороты.Субконто1.Тип, | УправленческийОбороты.Субконто1.Артикул"; Остатки=Запрос.Выполнить().Выгрузить(); Поле не найдено "КорСчет" <<?>>КорСчет В (&КорСчет) |
|||
10
Lys
15.11.11
✎
18:03
|
(9) Ясно. Открой для себя конструктор запросов.
Условие по КорСчету - это отдельный параметр виртуальной таблицы. |
|||
11
cyberandr
15.11.11
✎
18:07
|
сорри и впрямь торможу. счас поэксперементируем
|
|||
12
cyberandr
15.11.11
✎
18:35
|
спасибо всем!
|
|||
13
GROOVY
15.11.11
✎
18:43
|
Еще думаю сильно поможет типизация поля субконто1.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |