Имя: Пароль:
1C
1С v8
Есть ли универсальная функция получения оборотов по счетам ?
,
0 Koliaff
 
24.02.12
09:13
Делаю отчет, в котором надо обращаться к оборотам по счетам. Таких запросов надо сделать около 10-ти. В некоторых указывается только счет кредита, в некоторых только счет дебета, в некоторых и кредита и дебета, в некоторых ко всему ещё надо отбирать по конкретному субконто.
Хотелось бы узнать есть ли универсальная функция получения таких оборотов ? Попробовал вот тако
1 Koliaff
 
24.02.12
09:14
й функцией воспользоваться :

СтруктураПараметров  = Новый Структура("СчетДт, СубконтоДт1, СубконтоДт2, СубконтоДт3, СчетКт, СубконтоКт1, СубконтоКт2, СубконтоКт3");
   СтруктураПараметров.Вставить("СчетДт", ПланыСчетов.Хозрасчетный.НайтиПоКоду(СтрДебет));
   СтруктураПараметров.Вставить("СчетКт", ПланыСчетов.Хозрасчетный.НайтиПоКоду(СтрКредит));
   
   СтруктураПараметров.Вставить("СубконтоДт1", СубконтоДт1);
   СтруктураПараметров.Вставить("СубконтоДт2", СубконтоДт2);
   СтруктураПараметров.Вставить("СубконтоДт3", СубконтоДт3);
   
   СтруктураПараметров.Вставить("СубконтоКт1", СубконтоКт1);
   СтруктураПараметров.Вставить("СубконтоКт2", СубконтоКт2);
   СтруктураПараметров.Вставить("СубконтоКт3", СубконтоКт3);

   
   
   ТЗ =  РегистрыБухгалтерии.Хозрасчетный.ОборотыДтКт(НачДата,КонДата,,,СтруктураПараметров);
   
   Если ТЗ.Количество()>0 Тогда
       Возврат(ТЗ.Итог("Сумма"));
   Иначе
       Возврат(0);
   КонецЕсли;
=============================

Что-то не получается ) Помогите пожалуйста знающие люди ...
2 Koliaff
 
24.02.12
09:29
up
3 DrShad
 
24.02.12
09:34
СП что говорит?
4 Koliaff
 
24.02.12
09:39
<Отбор> (необязательный)

Тип: Структура.
Структура, содержащая набор значений измерений регистра, по которым надо отбирать итоги. Допустимые значения ключа: СчетДт, СубконтоДт<Номер>, СчетКт, СубконтоКт<Номер>, <Имя измерения> или <Имя измерения>Дт и <Имя измерения>Кт.
Если параметр не указан, то отбор не используется.
<Измерения> (необязательный)
5 Asmody
 
24.02.12
09:42
(0) есть. Называется "запрос"
6 DrShad
 
24.02.12
09:42
и в ТЗ ни одной записи?
7 Koliaff
 
24.02.12
09:46
(Asmody) Запрос не хочется использовать, хочу разобраться с функцией РегистраБухгалтерии "ОборотыДтКт".
(DrShad) Да, ни одной записи, хотя за выбранный период по счету 90.01, обороты по кредиту есть. Приведу полный текст функции и её вызов ...

Вот сама функция, которую я написал :
Функция ПолучитьОбороты(НачДата,КонДата,СтрДебет,СтрКредит,СубконтоДт1,СубконтоДт2,СубконтоДт3,СубконтоКт1,СубконтоКт2,СубконтоКт3)
   
   
   СтруктураПараметров  = Новый Структура("СчетДт, СубконтоДт1, СубконтоДт2, СубконтоДт3, СчетКт, СубконтоКт1, СубконтоКт2, СубконтоКт3");
   СтруктураПараметров.Вставить("СчетДт", ПланыСчетов.Хозрасчетный.НайтиПоКоду(СтрДебет));
   СтруктураПараметров.Вставить("СчетКт", ПланыСчетов.Хозрасчетный.НайтиПоКоду(СтрКредит));
   
   СтруктураПараметров.Вставить("СубконтоДт1", СубконтоДт1);
   СтруктураПараметров.Вставить("СубконтоДт2", СубконтоДт2);
   СтруктураПараметров.Вставить("СубконтоДт3", СубконтоДт3);
   
   СтруктураПараметров.Вставить("СубконтоКт1", СубконтоКт1);
   СтруктураПараметров.Вставить("СубконтоКт2", СубконтоКт2);
   СтруктураПараметров.Вставить("СубконтоКт3", СубконтоКт3);
 
   ТЗ =  РегистрыБухгалтерии.Хозрасчетный.ОборотыДтКт(НачДата,КонДата,,,СтруктураПараметров);
   
   Если ТЗ.Количество()>0 Тогда
       Возврат(ТЗ.Итог("Сумма"));
   Иначе
       Возврат(0);
   КонецЕсли;    
КонецФункции
8 Koliaff
 
24.02.12
09:46
Вот её вызов :
Перем90_01 = ПолучитьОбороты(НачДата,КонДата,,"90.01",,,,,,);
9 Стальная Крыса
 
24.02.12
09:53
ну значит нету оборотов по неопределенным значениям субконто  :)
10 Стальная Крыса
 
24.02.12
09:55
на общий случай нужно делать как-то так:

Если СубконтоДт1 <> неопределено Тогда
 СтруктураПараметров.Вставить("СубконтоДт1", СубконтоДт1);
КонецЕсли;
11 Koliaff
 
24.02.12
10:01
(Стальная Крыса) Спасибо, условия везде подставю ...

Вот ещё зачада :
Проблема в том что обороты были по счету 90.01.1, если подставляю его - то результат возвращается правильно, если подставляю 90.01 - то резутат 0. Как быть ?
12 hhhh
 
24.02.12
10:04
(11) можно посмотреть в БП регламентированные отчеты, БухОтчетность - там вроде есть общая функция.
13 Стальная Крыса
 
24.02.12
10:10
(11) скорее всего данный метод не выбирает по иерархии субсчетов, а берет только конкретно указанный счет.

зы. запросом было бы проще
14 Scooter
 
24.02.12
10:12
>>Делаю отчет

тогда однозначно СКД, Построитель, Запрос
15 Koliaff
 
24.02.12
10:30
СКД - дело хорошее, только вот когда заказчик начинает какие-нибудь изощрения придумывать, сразу возвращаешься к обычному отчету, т.к. в нем намного все проще ..

ВСЕМ СПАСИБО, ВОПРОС ЗАКРЫТ !