Имя: Пароль:
1C
1C 7.7
V7.CreateObject("БухгалтерскиеИтоги") в разрезе Договора
0 Popkorm
 
22.08.12
09:19
Понимаю что как то так,поправте если что:
Субк=v7.EvalExpr("ВидыСубконто.Договор");
БИ_ТАМ=v7.CreateObject("БухгалтерскиеИтоги");
БИ_ТАМ.ИспользоватьСубконто(Субк,,1,0);
БИ_ТАМ.ВыполнитьЗапрос(ДатаПереноса2,ДатаПереноса2);
БИ_ТАМ.ВыбратьСубконто(Субк);

Вот так по всем счетам,по всем видам Субконт:    
Ит      = V7.CreateObject("БухгалтерскиеИтоги");
   Ит.ВключатьСубсчета(1);
    Если Ит.ВыполнитьЗапрос(ДатаПереноса2,ДатаПереноса2)=0 Тогда
       Предупреждение("Запрос не выполнен!");
       Возврат;
   КонецЕсли;
   НомерСтроки = 1;
   Ит.ВыбратьСчета();
   Пока Ит.ПолучитьСчет() = 1 Цикл
       Если Ит.Счет.ЭтоГруппа()=1 Тогда
           Продолжить;
       КонецЕсли;
       КоличествоСубконто = Ит.Счет.КоличествоСубконто();
       ИтПоСчету = V7.CreateObject("БухгалтерскиеИтоги");
       Если КоличествоСубконто>0 Тогда
           Для К=1 По КоличествоСубконто Цикл
               СчетНомер = Ит.Счет.Код;
               ИтПоСчету.ИспользоватьСубконто(Предприятие7ВидСубконто(V7, СчетНомер, К));
           КонецЦикла;
           ИтПоСчету.ВключатьСубсчета(0);
           Если ИтПоСчету.ВыполнитьЗапрос(ДатаПереноса2, ДатаПереноса2, Ит.Счет) = 0 Тогда
               Предупреждение("Запрос не выполнен!");
               Возврат;
           КонецЕсли;
           ИтПоСчету.ВыбратьСубконто(1);
           Пока ИтПоСчету.ПолучитьСубконто(1) = 1 Цикл



Функция Предприятие7ВидСубконто(V7, СчетНомер, СубконтоНомер)
   СчетОЛЕ = V7.CreateObject("Счет");
   СчетОЛЕ.НайтиПоКоду(СчетНомер);
   Возврат СчетОЛЕ.ВидСубконто(СубконтоНомер);

КонецФункции
1 ДенисЧ
 
22.08.12
09:22
БИ_ТАМ=v7.CreateObject("БухгалтерскиеИтоги");
БИ_ТАМ.ИспользоватьСубконто(v7.ВидыСубконто.Договоры,,1,0);
БИ_ТАМ.ВыполнитьЗапрос(ДатаПереноса2,ДатаПереноса2);
БИ_ТАМ.ВыбратьСубконто(1);
2 Ёпрст
 
гуру
22.08.12
09:29
+ как бэ в оле нужно ВСЕ параметры методов передавать, если че..
3 ДенисЧ
 
22.08.12
09:30
(2) ну да... Забыл.
4 Popkorm
 
22.08.12
09:59
(2)поправь
5 ЧеловекДуши
 
22.08.12
10:19
(0)>>> Субк=v7.EvalExpr("ВидыСубконто.Договор");

Какой тип вернет сеё чудо?
Ты хоть в отладчике посмотри :)
6 Popkorm
 
22.08.12
11:21
Не получается ВидыСубконто найти                
   Субк  = v7.CreateObject("Справочник.Договоры");
                   БИ_ТАМ= v7.CreateObject("БухгалтерскиеИтоги");
                   БИ_ТАМ.ИспользоватьСубконто(Субк,,1,0);
                   БИ_ТАМ.ВыполнитьЗапрос(ДатаПереноса2,ДатаПереноса2);
                   БИ_ТАМ.ВыбратьСубконто(Субк);
                   Пока БИ_ТАМ.ПолучитьСубконто(1) = 1 Цикл
7 Злопчинский
 
22.08.12
16:06
(6) это что за хрень..с СУБК..?
8 Злопчинский
 
22.08.12
16:07
Ит = Оле.CreateObject("БухгалтерскиеИтоги");
   
   ОлеФ.ВыбратьЭлементы();
   Пока ОлеФ.ПолучитьЭлемент()=1
   Цикл
       Сообщить(СимволТабуляции+ТекущееВремя()+": выполняется запрос на извлечение бух.данных по "+ОлеФ.Наименование);
       Ит.ИспользоватьСубконто(Оле.EvalExpr("ВидыСубконто.Контрагенты"));
       Ит.ИспользоватьСубконто(Оле.EvalExpr("ВидыСубконто.Договоры"));
       Ит.ИспользоватьРазделительУчета(ОлеФ.ТекущийЭлемент());
       
       Если Ит.ВыполнитьЗапрос(ДатаАнализа,ДатаАнализа,СтрокаСчетов) = 0
       Тогда
           Сообщить("ОШИБКА: не удалось выполнить бух. запрос. Обработка не выполнена!","!");
           Сообщить("ОШИБКА: устраните проблему и попытайтесь еще раз...","!");
           Возврат;
       КонецЕсли;
9 Popkorm
 
22.08.12
17:10
(8)я так и делаю,а как ты тут договор находишь?!:
Ит.ВыбратьСубконто(1);
Пока Ит.ПолучитьСубконто(1) = 1 Цикл
Если Ит.Счет.Код = ИтПоСчету.Счет.Код Тогда
.......Так не реально


так не будит работать:
Если Ит.НайтиЗначение(ИтПоСчету.Счет.Код)=1 Тогда
10 Popkorm
 
22.08.12
17:18
+8 т.е.в Цикле находится все обороты Контрагентов
11 Злопчинский
 
22.08.12
17:21
Сообщить(СимволТабуляции+ТекущееВремя()+": запрос выполнен, собираем данные по "+ОлеФ.Наименование);
       Ит.ВыбратьСчета();
       Пока Ит.ПолучитьСчет() = 1
       Цикл

           Ит.ВыбратьСубконто(1);
           Пока Ит.ПолучитьСубконто(1) = 1
           Цикл // Контрагенты
               
               Ит.ВыбратьСубконто(2);
               Пока Ит.ПолучитьСубконто(2) = 1
               Цикл //Договора

                   СКД = Ит.СКД();
                   СКК = Ит.СКК();                

                   //Тип взаиморасчета (покупатель/поставщик) определяется исходя из счетов учета
                   тз_бух.НоваяСтрока();
                   текИНН        = Ит.Субконто(1).ИНН;
                   тз_бух.ИНН    = фуНормализоватьИНН(текИНН);
                   тз_бух.Контрагент        = СокрЛП(Ит.Субконто(1).Наименование);    //ОТЛАДКА: использовать гуид, бо код могут и перенумеровать!            
                   тз_бух.КонтрагентИД    = Оле.ЗначениеВСтрокуВнутр(Ит.Субконто(1));
                   тз_бух.Договор          = СокрЛП(Ит.Субконто(2).Наименование);  //ОТЛАДКА: должна совпадать с представлением перечисленяи в торгбазе
                   тз_бух.ДоговорИД        = Оле.ЗначениеВСтрокуВнутр(Ит.Субконто(2));                    
                   тз_бух.ВидДеятельности    = СокрЛП(ОлеФ.Наименование);            //в нашем случае это фирма