Имя: Пароль:
1C
1C 7.7
v7: Программно получить Анализ счета
0 america2013
 
09.12.13
12:22
Здравствуйте, уважаемые форумчане!!!

Прошу вас, помоги с созданием обработки.

На данный момент в базе есть отчет - Анализ счета (к примеру, по счету "1040"), который выдает данные, типа:

(Счет)   (Сумма)
1030     6 580,00
1031     6 580,00
1210     40 943,75    
3120     614,00
3130     750,00
3150    536,00
...и т.д.


Пробую написать код:


    Ит = СоздатьОбъект("БухгалтерскиеИтоги");  
    Ит.ИспользоватьСубконто(ВидыСубконто.ДенежныеСредства);  
    Ит.ВыполнитьЗапрос(ДатаНачала, ДатаКонца, "104",,,3,,"СК");
    Ит.ВыбратьСубконто();

    Пока Ит.ПолучитьСубконто() = 1 Цикл
        Сообщить(Ит.КО());
    КонецЦикла;



В сообщении выдается общая сумма по всем счетам. Как сделать вывод каждой суммы по всем счетам (1030, 1210...) по отдельности?

Заранее благодарен!
1 AeDen
 
09.12.13
12:25
Так в ЖКК и СП все написано, подробно и с примерами.
Всего то почитать надо немного.
2 america2013
 
09.12.13
12:37
(1) Смотреть параметры ВыполнитьЗапрос()

или

методы бухгалтерских итогов ?
3 america2013
 
09.12.13
14:14
Переделал код, удалось вот это:

    Ит = СоздатьОбъект("БухгалтерскиеИтоги");  
    Ит.ИспользоватьСубконто(ВидыСубконто.ДенежныеСредства);  
    Ит.ВыполнитьЗапрос(ДатаНачала, ДатаКонца, "104", "721" ,,3,,); //"СК"
    Ит.ВыбратьСубконто();

    Пока Ит.ПолучитьСубконто() = 1 Цикл
        Если (Ит.КО() <> 0) Тогда
            Сообщить(Ит.КО());
        КонецЕсли;  
    КонецЦикла;


Но это если указывать конкретно счет ("721" = 7210), а как в Сообщить() вывести каждый счет, подскажите метод.
4 1Сергей
 
09.12.13
14:16
ВыбратьСчета
ПолучитьСчет
5 Злопчинский
 
09.12.13
14:16
ПолучитьСчет()..?
6 Zhuravlik
 
09.12.13
14:20
ИТ.ВключатьСубсчета(-1) перед "ВыполнитьЗапрос" , глянь в сп на всякий
7 Zhuravlik
 
09.12.13
14:21
+ Если я все правильно понял))) " вывод каждой суммы по всем счетам (1030, 1210...) по отдельности" - это в смысле по субсчетам без итогов? тогда в (6).
8 america2013
 
09.12.13
14:25
(7) Нет, это когда делая анализ счета, к примеру, 1410, то выводить суммы и счета по которым были проводки с счетом 1410.
9 aka AMIGO
 
09.12.13
14:27
есть в 7-ке старое маловостребованное средство, называется "генератор отчетов", там можно выбрать и карточку и анализ..

ЗЫ. это прапрапрародитель СКД :)
11 aka AMIGO
 
09.12.13
14:46
+10 уточняю - Конструктор/Бухгалтерский запрос/ а там - визард "Анализ счета" - и по ходу кнопка "Далее" с выбором нужных параметров
12 america2013
 
09.12.13
14:53
Спасибо большое, товарищи! На данный момент, решил обойтись таким способом:

    Ит = СоздатьОбъект("БухгалтерскиеИтоги");  
    Ит.ИспользоватьСубконто();
    Ит.ВыполнитьЗапрос(НачПериода, КонПериода, "104", "721" ,,3,,);
    Сообщить(Ит.КО());


Количество строк (счетов) оказалось фиксированным, и нужную сумму уже получаю. Теперь это следует делать в 8.2 через СОМОбъект, получается:


    Ит = v7.CreateObject("БухгалтерскиеИтоги");//"Справочник.Валюты");    
    Ит.ИспользоватьСубконто();
    Ит.ВыполнитьЗапрос(НачПериода, КонПериода, "104", "721" ,,3,,);
    Сообщить(Ит.КО());


Но выдает ошибку:


{Форма.Форма.Форма(412)}: Ошибка при вызове метода контекста (ВыполнитьЗапрос)
    Ит.ВыполнитьЗапрос(НачПериода, КонПериода, "104", "721" ,,3,,);
по причине:
Типы не совпадают (5)



Почему появляется ошибка? Какие типы имеются в ввиду? Дата периода, но в другой процедуре я выбираю документы с таким же реквизитами и все проходит без ошибок. Какой необходим тип?
13 america2013
 
09.12.13
14:56
НачПериода, КонПериода - реквизит на форме с типом Дата.
Дело в кодах счетов "104", "721" ?
14 ДенисЧ
 
09.12.13
14:57
Возьми бумажку и напиши на ней 100 раз "Я всегда буду заполнять все параметры методов при выозве по OLE"
15 america2013
 
09.12.13
15:02
Простите мою тупость((((( Какие параметры методов???......
16 ДенисЧ
 
09.12.13
15:03
Все.
Ит.ВыполнитьЗапрос(НачПериода, КонПериода, "104", "721" ,,3,,);
Вот тут между запятыми не должно быть пустых значений.
17 america2013
 
09.12.13
15:29
Но мне не нужны эти пропущенные параметры, пусть бы устанавливались по умолчанию...

Но, я так понял никуда не деться, придется указывать параметр, в моем случае только 1.

    Валюты77 = v7.CreateObject("Справочник.Валюты");    
    Валюты77.НайтиПоНаименованию("KZT");
    
    Ит = v7.CreateObject("БухгалтерскиеИтоги");    
    Ит.ИспользоватьСубконто();
    Ит.ВыполнитьЗапрос(НачПериода,КонПериода,"104","721",Валюты77.ТекущийЭлемент(),3);
    Сообщить(Ит.КО());

Сообщает = 0.


В 7.7 также 0, хотя Валюты77 = элемент справочника Валюты!

Что ему ещё надо???

: ((((
18 ДенисЧ
 
09.12.13
15:29
(17) Это оля, она капризная девочка...
19 america2013
 
09.12.13
15:32
"...Коль в нашем деле бабы были бы не нужны, век бы с ними не связывался..." (с) Ручников.
20 america2013
 
09.12.13
15:36
И все же, каким же должен быть 5 параметр в методе ВыполнитьЗапрос? Тип - элемент Справочник.Валюты, - у меня не работает.
21 america2013
 
09.12.13
15:45
...т.е. мне параметр про валюты не нужен - счета, - не валютные.
22 america2013
 
09.12.13
16:18
...методом великого научного тыка установил 3 параметр в методе ВыполнитьЗапрос установил - Неопределено, и... помогло, получил таки нужную сумму. В итоге имеем код:

    Ит = v7.CreateObject("БухгалтерскиеИтоги");//"Справочник.Валюты");    
    Ит.ИспользоватьСубконто();
    Ит.ВыполнитьЗапрос(НачПериода,КонПериода,"104","721",Неопределено,3); //,,);
    Сообщить(Ит.КО());
AdBlock убивает бесплатный контент. 1Сергей