|
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); //,,); Сообщить(Ит.КО()); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |