Имя: Пароль:
1C
1C 7.7
v7: Бухгалтерские итоги
, ,
0 krasa_polina
 
30.08.12
12:16
Добрый день! Получила некии БухИтоги, и проходясь по ним натыкаюсь на документ от некой даты. На эту дату хочу получить сальдо конечное и начальное по счетам:

   БухИтСу = СоздатьОбъект("БухгалтерскиеИтоги");
   БухИтСу.ИспользоватьСубконто(ВидыСубконто.ВидыТарифов);
   БухИтСу.ИспользоватьСубконто(ВидыСубконто.Контрагенты, ВыбКвартиросъемщик);                    
БухИтСу.ВыполнитьЗапрос(БухИтПВТ.Операция.Документ, БухИтПВТ.Операция.Документ, "76.01, 76.ПВ");

БухИтСу.ВыбратьСУбконто(1);
                   пока БухИтСу.ПолучитьСубконто(1) = 1 цикл
                       если БухИтСу.Субконто(1).Код = "010" тогда
                           ТабЗнИт.ДолгОсновной = ТабЗнИт.ДолгОсновной + БухИтСу.СКД() - БухИтСу.СКК();
                           ТабЗнИт.ДолгКонечный = ТабЗнИт.ДолгКонечный + БухИтСу.СКД() - БухИтСу.СКК();
                       иначеесли БухИтСу.Субконто(1).Код = "020" тогда
                           ТабЗнИт.ДолгОсновной = ТабЗнИт.ДолгОсновной + БухИтСу.СКД() - БухИтСу.СКК();
                           ТабЗнИт.ДолгКонечный = ТабЗнИт.ДолгКонечный + БухИтСу.СКД() - БухИтСу.СКК();
                       иначеесли БухИтСу.Субконто(1).Код = "030" тогда
                           ТабЗнИт.ДолгОсновной = ТабЗнИт.ДолгОсновной + БухИтСу.СКД() - БухИтСу.СКК();
                           ТабЗнИт.ДолгКонечный = ТабЗнИт.ДолгКонечный + БухИтСу.СКД() - БухИтСу.СКК();
                       иначеесли БухИтСу.Субконто(1).Код = "050" тогда  
                           ТабЗнИт.ДолгКонечный = ТабЗнИт.ДолгКонечный + БухИтСу.СКД() - БухИтСу.СКК();
                       конецесли;
                   конеццикла;

Но ничего не находит. Как мне на эту дату итоги получить?
1 Злопчинский
 
30.08.12
12:45
Кури параметр "Период" в списке параметров в скобочках для БИ.ВыполнитьЗапрос() - и организуешь нужным тебе образом позиционирование..
2 Злопчинский
 
30.08.12
12:45
Наличие вменяемой фотки в личной карточке - существенно повышает ваши шансы на получение вменяемых ответов.
3 viktor_vv
 
30.08.12
12:46
А 76.ПВ это не забалансовый счет случайно ?
(1) Ну она его вкурила в первом запросе, теперь запрос в цикле идет :)
4 viktor_vv
 
30.08.12
12:48
И это, как определили что ничего не находит ? Отладчик в условия по коду заходит ? Цикл по субконто вообще идет ?
5 krasa_polina
 
30.08.12
12:49
Нет, цикл по субконто не идет. БухИтСу.Счет ничему не равен.
6 viktor_vv
 
30.08.12
12:53
(5) Ну БухИтСу.Счет вы не получите, пока выборку не откроете по счетам, у вас же в запросе два счета.
Может таки добавиь выборку по счетам.

                  пока БухИтСу.ПолучитьСубконто(1) = 1 цикл
БухИтСу.ВыбратьСчет();
Пока БухИтСу.ПолучитьСчет() = 1 Цикл
                       если БухИтСу.Субконто(1).Код = "010" тогда
                           ТабЗнИт.ДолгОсновной = ТабЗнИт.ДолгОсновной + БухИтСу.СКД() - БухИтСу.СКК();
                           ТабЗнИт.ДолгКонечный = ТабЗнИт.ДолгКонечный + БухИтСу.СКД() - БухИтСу.СКК();
                       иначеесли БухИтСу.Субконто(1).Код = "020" тогда
                           ТабЗнИт.ДолгОсновной = ТабЗнИт.ДолгОсновной + БухИтСу.СКД() - БухИтСу.СКК();
                           ТабЗнИт.ДолгКонечный = ТабЗнИт.ДолгКонечный + БухИтСу.СКД() - БухИтСу.СКК();
                       иначеесли БухИтСу.Субконто(1).Код = "030" тогда
                           ТабЗнИт.ДолгОсновной = ТабЗнИт.ДолгОсновной + БухИтСу.СКД() - БухИтСу.СКК();
                           ТабЗнИт.ДолгКонечный = ТабЗнИт.ДолгКонечный + БухИтСу.СКД() - БухИтСу.СКК();
                       иначеесли БухИтСу.Субконто(1).Код = "050" тогда  
                           ТабЗнИт.ДолгКонечный = ТабЗнИт.ДолгКонечный + БухИтСу.СКД() - БухИтСу.СКК();
                       конецесли;
                   конеццикла;
                   конеццикла;
7 viktor_vv
 
30.08.12
12:55
(6)+ Или сначала цикл по счетам, внутри по субконто, не помню. Но если в вашем варианте в цикл не заходит, то либо данных нету, либо на счетах субконто этих нету, либо не знаю.
8 krasa_polina
 
30.08.12
13:00
БухИтСу.ПолучитьСчет() тоже сразу равен 0. Субконто есть (на 76.01 во всяком случае). А вот данные не знаю как он собирает, но на начало месяца и конец это работает. Да и на некоторые промежуточные даты тоже.
9 Злопчинский
 
30.08.12
13:02
а попробовать сначала
БухИтСу.ВыбратьСчета() и только потом получить счет?
10 krasa_polina
 
30.08.12
13:07
Именно так и пробовала ) а без этого тоже работает?
11 Злопчинский
 
30.08.12
13:08
не, без фотки - не взлетит
12 viktor_vv
 
30.08.12
13:11
(11)+ 1. Попробуйте оставить в запросе только один счет, 76.01 .
13 krasa_polina
 
30.08.12
13:11
получилось вот так:
БухИтСу = СоздатьОбъект("БухгалтерскиеИтоги");
                       БухИтСу.ВключатьСубсчета(-1,-1);
           БухИтСу.ИспользоватьСубконто(ВидыСубконто.ВидыТарифов);
           БухИтСу.ИспользоватьСубконто(ВидыСубконто.Контрагенты, ВыбКвартиросъемщик);  
           Список2 = СоздатьОбъект("СписокЗначений");
           Список2.ИзСтрокиСРазделителями(Константа.СчетаРасчетовСКвартиросъемщиками.Получить(Дата2));  
           Список2.ДобавитьЗначение(СчетПоКоду("76.ПВ"));
           БухИтСу.ВыполнитьЗапрос(БухИтПВТ.Операция.Документ, БухИтПВТ.Операция.Документ, Список2);

правда цифры не те )) но это я щас еще посмотрю.