|
v7: Как запрос бух итогов выгрузить в таблицу? | ☑ | ||
---|---|---|---|---|
0
Andrey_19_73
21.11.14
✎
20:16
|
Добрый день!
Есть самописная конфа по зп, где Док.НачсилениеЗП при проведении выполняет по каждому человеку штук 10 таких запросов по бух счетам, что ниже. Начал перепроводить базу, которая ни разу не проводилась с 2010 года, а там 1 месяц проводится часа 3. Решил оптимизировать. Подскажите, как выгрузить в ТЗ, а там уже искать по человеку. Или не получится из-за двух субконто? _б=СоздатьОбъект("БухгалтерскиеИтоги"); _б.ИспользоватьСубконто(ВидыСубконто.Сотрудники,Сотрудник,2); _б.ИспользоватьСубконто(ВидыСубконто.ДокОтпуск); _б.ВыполнитьЗапрос(НачМесяца(ДатаДок),КонМесяца(ДатаДок),СчетПоКоду("Щ")); _б.ВыбратьСубконто(1); Пока _б.ПолучитьСубконто(1) = 1 Цикл _б.ВыбратьСубконто(2); Пока _б.ПолучитьСубконто(2) = 1 Цикл ПровДок = _б.Субконто(2); глПроводка(Контекст...........); КонецЦикла; КонецЦикла; Спасибо. |
|||
1
Franchiser
гуру
21.11.14
✎
21:19
|
Придумай струтуру ТЗ, потом заполнии ее.
|
|||
2
Franchiser
гуру
21.11.14
✎
21:20
|
Если в 7.7 потом сортируешь по сотруднику и получаешь по порядку все документы...
|
|||
3
Franchiser
гуру
21.11.14
✎
21:21
|
Еще варинат создать в тз колонку типа массив и в нее пихать отпуска... Соответственно в тз сотрудники будут уникальны.
|
|||
4
Федор15
21.11.14
✎
21:22
|
(0) _б.ВыбратьСубконто(1); _б.ВыбратьСубконто(2); - это лишнее.
Там достаточен 1 цикл : _б.ВыбратьСубконто(ВидыСубконто.ДокОтпуск); Пока _б.ПолучитьСубконто(ВидыСубконто.ДокОтпуск) = 1 Цикл |
|||
5
Федор15
21.11.14
✎
21:24
|
(0) Искать по человеку тебе не нужно, так как у тебя уже отбор по сотруднику сделан.
|
|||
6
Franchiser
гуру
21.11.14
✎
21:26
|
Я так понимаю это ошибочный исходный запрос, который он собирается менять, отбора по человеку вероятно не будет...
|
|||
7
Федор15
21.11.14
✎
21:37
|
(6) В любом случае, выгрузкой в ТЗ и затем поиском по ТЗ, он не оптимизирует, а лишь замедлит алгоритм.
Есть же метод ПолучитьСубконто() |
|||
8
Franchiser
гуру
21.11.14
✎
21:50
|
(7) он написал что там такие запросы в цикле...
|
|||
9
Andrey_19_73
21.11.14
✎
21:51
|
В ОбработкаПроведения() есть Цикл по строкам документа, где вызывается Процедура ПроводкаСтрока() в которой и выполняются куча бухитогов, каждый по своему счету.
(1) - А как выгрузить бухитоги в ТЗ? (7) - Я думаю сделать БухИтоги 1 раз по всем сотрудникам, а затем в нем искать человека??? P.S. 15 раз вызывается запрос бухитогов, только что подсчитал. |
|||
10
DCKiller
21.11.14
✎
23:00
|
(9) Бух. запрос делаешь 1 раз, затем в цикле перебора строк:
Если _б.ПолучитьСубконто(1, , Сотрудник) = 1 Тогда // чота делаем... КонецЕсли; |
|||
11
DCKiller
21.11.14
✎
23:04
|
+(10) перед _б.ПолучитьСубконто
написать _б.ВыбратьСубконто(1); |
|||
12
Andrey_19_73
21.11.14
✎
23:05
|
(10) Спасибо, буду пробовать.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |