Фильтрация бух.итогов по списку корр. субконто
20.12.2007
10:32
#1
"Релиз платформы: 7.70.027, вариант dbf
База - любая с компонентой Бухгалтерсий учет.
Как выдумаете, почему работает так:
БухИт=СоздатьОбъект("БухгалтерскиеИтоги");
БухИт.ИспользоватьКорСубконто(ВидыСубконто.Контрагенты,ВыбКонтрагент,2);
БухИт.ВыполнитьЗапрос(Дата("01.10.2007"),Дата("31.12.2007"),"51","66.3",,2);
Сообщить(БухИт.ДО());
, но не работает так:
Список=СоздатьОбъект("СписокЗначений");
Список.ДобавитьЗначение(ВыбКонтрагент);
БухИт=СоздатьОбъект("БухгалтерскиеИтоги");
БухИт.ИспользоватьКорСубконто(ВидыСубконто.Контрагенты,Список,1);
БухИт.ВыполнитьЗапрос(Дата("01.10.2007"),Дата("31.12.2007"),"51","66.3",,2);
Сообщить(БухИт.ДО());
в то же время замечательно работает так:
БухИт=СоздатьОбъект("БухгалтерскиеИтоги");
БухИт.ИспользоватьСубконто(ВидыСубконто.Контрагенты,ВыбКонтрагент,2);
БухИт.ВыполнитьЗапрос(Дата("01.10.2007"),Дата("31.12.2007"),"66.3","51",,2);
Сообщить(БухИт.КО());
и так:
Список=СоздатьОбъект("СписокЗначений");
Список.ДобавитьЗначение(ВыбКонтрагент);
БухИт=СоздатьОбъект("БухгалтерскиеИтоги");
БухИт.ИспользоватьСубконто(ВидыСубконто.Контрагенты,Список,1);
БухИт.ВыполнитьЗапрос(Дата("01.10.2007"),Дата("31.12.2007"),"66.3","51",,2);
Сообщить(БухИт.КО());
То есть, подытожим, имею проблему при фильтрации бухитогов по корреспондирующим субконто, если их подавать списком значений. Я чего то недопонимаю и в документации все же что то есть по этому поводу или это грабли движка?"
База - любая с компонентой Бухгалтерсий учет.
Как выдумаете, почему работает так:
БухИт=СоздатьОбъект("БухгалтерскиеИтоги");
БухИт.ИспользоватьКорСубконто(ВидыСубконто.Контрагенты,ВыбКонтрагент,2);
БухИт.ВыполнитьЗапрос(Дата("01.10.2007"),Дата("31.12.2007"),"51","66.3",,2);
Сообщить(БухИт.ДО());
, но не работает так:
Список=СоздатьОбъект("СписокЗначений");
Список.ДобавитьЗначение(ВыбКонтрагент);
БухИт=СоздатьОбъект("БухгалтерскиеИтоги");
БухИт.ИспользоватьКорСубконто(ВидыСубконто.Контрагенты,Список,1);
БухИт.ВыполнитьЗапрос(Дата("01.10.2007"),Дата("31.12.2007"),"51","66.3",,2);
Сообщить(БухИт.ДО());
в то же время замечательно работает так:
БухИт=СоздатьОбъект("БухгалтерскиеИтоги");
БухИт.ИспользоватьСубконто(ВидыСубконто.Контрагенты,ВыбКонтрагент,2);
БухИт.ВыполнитьЗапрос(Дата("01.10.2007"),Дата("31.12.2007"),"66.3","51",,2);
Сообщить(БухИт.КО());
и так:
Список=СоздатьОбъект("СписокЗначений");
Список.ДобавитьЗначение(ВыбКонтрагент);
БухИт=СоздатьОбъект("БухгалтерскиеИтоги");
БухИт.ИспользоватьСубконто(ВидыСубконто.Контрагенты,Список,1);
БухИт.ВыполнитьЗапрос(Дата("01.10.2007"),Дата("31.12.2007"),"66.3","51",,2);
Сообщить(БухИт.КО());
То есть, подытожим, имею проблему при фильтрации бухитогов по корреспондирующим субконто, если их подавать списком значений. Я чего то недопонимаю и в документации все же что то есть по этому поводу или это грабли движка?"
20.12.2007
11:01
#2
Вообщето я нигде не встречала в описании, что субконто может быть списком
Вот для этого метода при выбора операции и проводок написанно
".. Кроме того, в качестве значения данного параметра можно передавать ''Список значений''"
Вот для этого метода при выбора операции и проводок написанно
".. Кроме того, в качестве значения данного параметра можно передавать ''Список значений''"
20.12.2007
11:09
#3
Да нет, не значение субконто = Список значений, а значение фильтра при выборке бухгалтерских итогов = Список значений и вид фильтра = 1, то есть, "разворачивать по субконто" = "искать вхождения в список". Такой прием повсеместно применяется в типовых конфигурациях, но относительно прямого субконто выборки, а не корреспондирующего. Относительно корреспондирующего, правда, тоже есть вхождение в типовой, в отчете "Анализ состояния НУ". Не знаю, работает ли там оно.
20.12.2007
11:23
#4
"ИспользоватьКорСубконто(<ВидСубконто>,<Субконто>,<ТипФильтра>,<ПоГруппам>)
> но не работает так:
> Список=СоздатьОбъект("СписокЗначений");
> Список.ДобавитьЗначение(ВыбКонтрагент);
> БухИт=СоздатьОбъект("БухгалтерскиеИтоги");
> БухИт.ИспользоватьКорСубконто(ВидыСубконто.Контрагенты,Список,1);
и после этого вы утверждаете что <субконто> у вас не список значений?
" Использование параметра <типфильтра> со значением 1(разворачивать)в сочетание с выбранной группой справочника в параметре <субконто> позволяет получить итоги по всем элеметам данной группы"
> Такой прием повсеместно применяется в типовых конфигурациях, но
> относительно прямого субконто выборки, а не корреспондирующего.
Еще раз посмотрите описание . Метод использоватьсубконто() конкретно сказано, что <субконто> может быть объектом "СписокЗначени"
Для БИ метода использоватькорсубконто() такого упоминания нет."
> но не работает так:
> Список=СоздатьОбъект("СписокЗначений");
> Список.ДобавитьЗначение(ВыбКонтрагент);
> БухИт=СоздатьОбъект("БухгалтерскиеИтоги");
> БухИт.ИспользоватьКорСубконто(ВидыСубконто.Контрагенты,Список,1);
и после этого вы утверждаете что <субконто> у вас не список значений?
" Использование параметра <типфильтра> со значением 1(разворачивать)в сочетание с выбранной группой справочника в параметре <субконто> позволяет получить итоги по всем элеметам данной группы"
> Такой прием повсеместно применяется в типовых конфигурациях, но
> относительно прямого субконто выборки, а не корреспондирующего.
Еще раз посмотрите описание . Метод использоватьсубконто() конкретно сказано, что <субконто> может быть объектом "СписокЗначени"
Для БИ метода использоватькорсубконто() такого упоминания нет."
20.12.2007
11:44
#5
> Еще раз посмотрите описание . Метод использоватьсубконто() конкретно сказано, что <субконто> может быть объектом "СписокЗначени"
> Для БИ метода использоватькорсубконто() такого упоминания нет.
Вот про это я и спрашивал!! У меня нет под рукой описания, я и хотел знать, что там про это написано. Но вообще то, неудобно и нелогично
> Для БИ метода использоватькорсубконто() такого упоминания нет.
Вот про это я и спрашивал!! У меня нет под рукой описания, я и хотел знать, что там про это написано. Но вообще то, неудобно и нелогично
16.06.2009
10:28
#6
"Я снова столкнулся с задачкой, в которой это было востребовано. Пришлось разобраться. Оказывается, оно все таки работает
Просто надо применять верные методы. В документации может про это и написано, но "между строк". Итак, не работало у меня потому что надо было писать не БухИт.ДО(), а БухИт.КорДО()
Вообще, вот пример, который показывает где какие методы использовать, может пригодится кому:
БухИт=СоздатьОбъект("БухгалтерскиеИтоги");
БухИт.ИспользоватьСубконто(ВидыСубконто.РасходыБудущихПериодов,СписокСтатей,1);
БухИт.ИспользоватьКорСубконто(ВидыСубконто.Сотрудники,СписокСотрудников,1);
БухИт.ВыполнитьЗапрос(НачДата,КонДата,"97","70",,2);
Сообщить("Общая сумма оборотов: "+СокрЛП(Формат(БухИт.КорДО(),"Ч15.2.'")));
БухИт.ВыбратьСубконто(ВидыСубконто.РасходыБудущихПериодов,,1);
Пока БухИт.ПолучитьСубконто(ВидыСубконто.РасходыБудущихПериодов)=1 Цикл
Сообщить("Значение аналитики (доминантное субконто): "+Строка(БухИт.Субконто(ВидыСубконто.РасходыБудущихПериодов))+", сумма: "+СокрЛП(Формат(БухИт.ДО(),"Ч15.2.'"))); //странно, правда? тут все таки надо писать именно ДО()
БухИт.ВыбратьКорСубконто(ВидыСубконто.Сотрудники,,1);
Пока БухИт.ПолучитьКорСубконто(ВидыСубконто.Сотрудники)=1 Цикл
Сообщить("Значение аналитики (корреспондирующее субконто): "+Строка(БухИт.КорСубконто(ВидыСубконто.Сотрудники))+", сумма: "+СокрЛП(Формат(БухИт.КорДО(),"Ч15.2.'")));
КонецЦикла;
КонецЦикла;
вот таким образом работает все корректно
"
Вообще, вот пример, который показывает где какие методы использовать, может пригодится кому:
БухИт=СоздатьОбъект("БухгалтерскиеИтоги");
БухИт.ИспользоватьСубконто(ВидыСубконто.РасходыБудущихПериодов,СписокСтатей,1);
БухИт.ИспользоватьКорСубконто(ВидыСубконто.Сотрудники,СписокСотрудников,1);
БухИт.ВыполнитьЗапрос(НачДата,КонДата,"97","70",,2);
Сообщить("Общая сумма оборотов: "+СокрЛП(Формат(БухИт.КорДО(),"Ч15.2.'")));
БухИт.ВыбратьСубконто(ВидыСубконто.РасходыБудущихПериодов,,1);
Пока БухИт.ПолучитьСубконто(ВидыСубконто.РасходыБудущихПериодов)=1 Цикл
Сообщить("Значение аналитики (доминантное субконто): "+Строка(БухИт.Субконто(ВидыСубконто.РасходыБудущихПериодов))+", сумма: "+СокрЛП(Формат(БухИт.ДО(),"Ч15.2.'"))); //странно, правда? тут все таки надо писать именно ДО()
БухИт.ВыбратьКорСубконто(ВидыСубконто.Сотрудники,,1);
Пока БухИт.ПолучитьКорСубконто(ВидыСубконто.Сотрудники)=1 Цикл
Сообщить("Значение аналитики (корреспондирующее субконто): "+Строка(БухИт.КорСубконто(ВидыСубконто.Сотрудники))+", сумма: "+СокрЛП(Формат(БухИт.КорДО(),"Ч15.2.'")));
КонецЦикла;
КонецЦикла;
вот таким образом работает все корректно
"
19.05.2010
10:06
#7
"БухИт=СоздатьОбъект("БухгалтерскиеИтоги");
БухИт.ИспользоватьКорСубконто(ВидыСубконто.Контрагенты,ВыбКонтрагент,2);
БухИт.ВыполнитьЗапрос(Дата("01.10.2007"),Дата("31.12.2007"),"51","66.3",,3);
Сообщить(БухИт.ДО());"
БухИт.ИспользоватьКорСубконто(ВидыСубконто.Контрагенты,ВыбКонтрагент,2);
БухИт.ВыполнитьЗапрос(Дата("01.10.2007"),Дата("31.12.2007"),"51","66.3",,3);
Сообщить(БухИт.ДО());"
Читают тему
(гостей: 1)