![]() |
![]() |
![]() |
|
v7: Отчет работает немного медленно, может можно как-то по другому? | ☑ | ||
---|---|---|---|---|
0
Босечка
19.02.14
✎
10:35
|
Можно ли в цикле ИспользоватьСубконто( делать? Может из-за этого тормоз? За месяц отчет делается 2 минуты. Это нормально?
Ит1 = СоздатьОбъект("БухгалтерскиеИтоги"); Т.ВыбратьСтроки(); Пока Т.ПолучитьСтроку()=1 цикл Ит1.ИспользоватьСубконто(ВидыСубконто.Материалы,Т.Машина, 2); Ит1.ВыполнитьЗапрос(ВыбНачПериода, ВыбКонПериода,,,, 1, "Проводка", "СК"); Ит1.ВыбратьПериоды(); Пока Ит1.ПолучитьПериод() = 1 Цикл Дт = Ит1.ВыбранаПоДт(); Кт = Ит1.ВыбранаПоКт(); Опер1 = Ит1.Операция; ДокумПост1=Опер1.Документ; Если ДокумПост1.Вид()="УслугиСтороннихОрганизаций" тогда Т.Т.НоваяСтрока(); Т.Т.ДокументУсл=ДокумПост1.Контрагент; Т.Т.ДатаУ=Ит1.НачДата; Т.Т.Сумма=Опер1.Сумма; Конецесли; Конеццикла; Конеццикла; |
|||
1
ДенисЧ
19.02.14
✎
10:36
|
Выгрузить все машины из Т, выполнить один раз запрос по списку, потом получать и обрабатывать результат
|
|||
3
lamme
19.02.14
✎
10:40
|
зачем вообще в цикле запрос делается ?
у тебя потом нигде переменная из таблицы Т - не завязана на запросе поэтому сам запрос - вынести за цикл имхо |
|||
4
lamme
19.02.14
✎
10:40
|
да и использование вот этого цикла
Т.ВыбратьСтроки(); Пока Т.ПолучитьСтроку()=1 цикл не понятно. |
|||
5
Холст
19.02.14
✎
10:42
|
прямой запрос по таблице проводок, по фильтру периода и вида документов
или получать данные не из проводок, а из таблицы документов УслугиСтороннихОрганизаций - прямым или непрямым запросом |
|||
6
Холст
19.02.14
✎
10:44
|
запрос в цикле вынести
|
|||
7
lamme
19.02.14
✎
10:44
|
(5)
лучше все-таки из проводок т.к. документ - хз .. может и не сделать проводки .. потом сверяй - в ОСВ (например) документа нет а в отчете этом - есть |
|||
8
Андрей_Андреич
naïve
19.02.14
✎
10:48
|
Правильно спроектированный план счетов позволил бы обойтись стандартными бухгалтерскими отчетами.
|
|||
9
Босечка
19.02.14
✎
10:49
|
(1) В список значений выгрузить из Т?
|
|||
10
Woodpecker
19.02.14
✎
11:00
|
(9) да, выгрузить в список значений
в использоватьСубконто запихать этот список. потом выполнить запрос и перебирать значения субконто полученные в запросе |
|||
11
Босечка
19.02.14
✎
11:39
|
Ит1 = СоздатьОбъект("БухгалтерскиеИтоги");
Сп=СоздатьОбъект("СписокЗначений"); ТЗ.ВыбратьСтроки(); Пока ТЗ.ПолучитьСтроку()=1 цикл Сп.ДобавитьЗначение(ТЗ.Машина); Конеццикла; Ит1.ИспользоватьСубконто(ВидыСубконто.Материалы,Сп, 2); Ит1.ВыполнитьЗапрос(ВыбНачПериода, ВыбКонПериода,,,, 1, "Проводка", "СК"); Ит1.ВыбратьПериоды(); Пока Ит1.ПолучитьПериод() = 1 Цикл Дт = Ит1.ВыбранаПоДт(); Кт = Ит1.ВыбранаПоКт(); Опер1 = Ит1.Операция; ДокумПост1=Опер1.Документ; Если ДокумПост1.Вид()="УслугиСтороннихОрганизаций" тогда ТУ.НоваяСтрока(); ТУ.ДокументУсл=ДокумПост1.Контрагент; ТУ.ДатаУ=Ит1.НачДата; ТУ.Сумма=Опер1.Сумма; ТУ.Машина=Ит1.Субконто; Конецесли; Конеццикла; |
|||
12
Босечка
19.02.14
✎
11:41
|
На ТУ.Машина=Ит1.Субконто ругается. Как взять дебетовое субконто из Операции документа УслугиСтороннихОрганизаций?
|
|||
13
Андрей_Андреич
naïve
19.02.14
✎
11:46
|
(12) Сначала выбратьсубконто, а потом уже периоды.
|
|||
14
Woodpecker
19.02.14
✎
11:54
|
(13) да она проводки перебирает, так что можно и значение субконто из проводки взять
|
|||
15
Босечка
19.02.14
✎
12:17
|
А как это сделать? Я уже все перепробовала.
|
|||
16
Босечка
19.02.14
✎
12:30
|
Все получилось, спасибо надо было ТУ.Машина=Ит1.Субконто();!!!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |