|
v7: Запрос по БухИтогам, объединение балансового и забалансового счетов | ☑ | ||
---|---|---|---|---|
0
prochor
15.11.12
✎
08:43
|
Вопрос касается получения выборки по номенклатуре, которая находится на балансовом 29.10 и забалансовом 004 счетах.
У моего предшественника был написан такой код в отчете БухИт.ИспользоватьСубконто(ВидыСубконто.МестаХранения,Филиал.ТекущийЭлемент(), 2); БухИт.ИспользоватьСубконто(ВидыСубконто.Номенклатура); БухИт.ВыполнитьЗапрос(,ДатаОтчета,"29.10",,, 1,, 5); БухИт.ВыбратьСубконто(2); Пока БухИт.ПолучитьСубконто(2)=1 Цикл Если БухИт.СКД("К")>0 Тогда ТЗ.НоваяСтрока(); ТЗ.Номенклатура=БухИт.Субконто(2).ТекущийЭлемент(); ТЗ.НаСкладе=БухИт.СКД("К"); ТЗ.БалСтоим=БухИт.СКД("С"); КонецЕсли; КонецЦикла; БухИт.ИспользоватьСубконто(ВидыСубконто.МестаХранения,Филиал.ТекущийЭлемент()); БухИт.ИспользоватьСубконто(ВидыСубконто.Номенклатура,); БухИт.ВыполнитьЗапрос(,ДатаОтчета,СчетПоКоду("004"),,,1,,5); БухИт.ВыбратьСубконто(2); Пока БухИт.ПолучитьСубконто(2)=1 Цикл Если БухИт.СКД("К")>0 Тогда ТЗ.НоваяСтрока(); ТЗ.Номенклатура=БухИт.Субконто(2).ТекущийЭлемент(); ТЗ.НаСкладе=БухИт.СКД("К"); ТЗ.БалСтоим=БухИт.СКД("С"); КонецЕсли; КонецЦикла; Разумеется, я решил сумничать и сделать все одним запросом для экономии времени, т.е. записал такой фрагмент: БухИт.ИспользоватьСубконто(ВидыСубконто.МестаХранения,Филиал.ТекущийЭлемент(), 2); БухИт.ИспользоватьСубконто(ВидыСубконто.Номенклатура); БухИт.ВыполнитьЗапрос(,ДатаОтчета,"29.10, 004",,, 1,, 5); БухИт.ВыбратьСубконто(2); Пока БухИт.ПолучитьСубконто(2)=1 Цикл Если БухИт.СКД("К")>0 Тогда ТЗ.НоваяСтрока(); ТЗ.Номенклатура=БухИт.Субконто(2).ТекущийЭлемент(); ТЗ.НаСкладе=БухИт.СКД("К"); ТЗ.БалСтоим=БухИт.СКД("С"); КонецЕсли; КонецЦикла; Однако в таблицу перестала попадать номенклатура с забалансового 004 счета. Я вышел из положения следующим образом: БухИт.ИспользоватьСубконто(ВидыСубконто.МестаХранения,Филиал.ТекущийЭлемент(), 2); БухИт.ИспользоватьСубконто(ВидыСубконто.Номенклатура); БухИт.ВыполнитьЗапрос(,ДатаОтчета,"29.10",,, 1,, 5); БухИт.ВыбратьСубконто(2); Пока БухИт.ПолучитьСубконто(2)=1 Цикл БухИт.ВыбратьСчета(); Пока БухИт.ПолучитьСчет() = 1 Цикл Если БухИт.СКД("К")>0 Тогда ТЗ.НоваяСтрока(); ТЗ.Номенклатура=БухИт.Субконто(2).ТекущийЭлемент(); ТЗ.НаСкладе=БухИт.СКД("К"); ТЗ.БалСтоим=БухИт.СКД("С"); КонецЕсли; КонецЦикла; КонецЦикла; |
|||
1
Popkorm
15.11.12
✎
08:46
|
(0)вопрос то в чем?!
|
|||
2
prochor
15.11.12
✎
10:59
|
(1) ну, а почему не работает первый вариант моего кода, без переборки по счетам?
или есть какие-то особенности для балансовых и забалансовых счетов |
|||
3
zak555
15.11.12
✎
11:00
|
> БухИт.ИспользоватьСубконто(ВидыСубконто.МестаХранения,Филиал.ТекущийЭлемент(), 2);
запрос в цикле ? |
|||
4
2S
15.11.12
✎
11:01
|
(2) и не будет работать. Без выборки ты получишь сгруппированную сумму по счетам
77 форева! |
|||
5
zak555
15.11.12
✎
11:02
|
(4) врёшь
|
|||
6
zak555
15.11.12
✎
11:02
|
(2) опции смотри
|
|||
7
prochor
15.11.12
✎
11:22
|
(6) так работало же, если делать два запроса, и без обхода по первому субконто, которое = конкретному значению.
кстати, я добавлял и обход по первому субконто, но результат тот же |
|||
8
chief accountant
15.11.12
✎
11:51
|
(7) тебеж сказали в (6)
БухИт.Опции(1); делов-то |
|||
9
prochor
15.11.12
✎
11:54
|
(8) спасибо!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |