Имя: Пароль:
1C
1C 7.7
v7: Ole 7.7
,
0 Svetka
 
14.11.12
14:39
Здравствуйте.
Задание: В текущей ИБ открыть другую ИБ (прошлый период => скорее всего идентичная) и сформировать отчет.

Другую базу подключила.
Запрос по текущему году в текущей ИБ сделала.


Ит = СоздатьОбъект("БухгалтерскиеИтоги");
Ит.ИспользоватьРазделительУчета(РазделительУчета);
Если Ит.ВыполнитьЗапрос(Дата1, Дата2,,"60",,, "Проводка") = 0 Тогда
 Возврат;
КонецЕсли;

Док=СоздатьОбъект("Документ");
Ит.ВыбратьПериоды();
Пока Ит.ПолучитьПериод() = 1 Цикл
 
   Опер = Ит.Операция;
   Если (Сред(СокрЛП(Опер.Кредит.Счет),1,2)="60") и (Сред(СокрЛП(Опер.Дебет.Счет),1,2)="60")  Тогда
   Продолжить;
КонецЕсли;
Если Лев(СокрЛП(Опер.Документ),11)<>"Поступление" Тогда
Продолжить;
КонецЕсли;
1 Ёпрст
 
14.11.12
14:41
и ?
2 Svetka
 
14.11.12
14:42
блин, недописала )), ентер случайно нажала. 7.7 естественно


Если (Опер.Кредит.Счет=СчетПоКоду("60.02"))  Тогда
                   Если (Сред(СокрЛП(Опер.Дебет.Счет),1,2)="19") Тогда    
                       
                       СуммаТек=0;
                       СуммаТекНДС=0;
                       
                       Если Док.НайтиДокумент(Опер.Документ)>0 Тогда    //поступление
                           Если ПустоеЗначение(Док.ДокументОснование)=0 Тогда
                               Если ДокО.НайтиДокумент(Док.ДокументОснование)>0 Тогда  //счет-фактура поставщика
                                   СуммаТек=ДокО.Всего-ДокО.СуммаНДС;
                                   СуммаТекНДС=ДокО.СуммаНДС;
                               КонецЕсли;
                           КонецЕсли;
                       Иначе
                           Сообщить("Документ не найден! (чего не должно быть)");
                       КонецЕсли;        ТЗ2.НоваяСтрока();
                       ТЗ2.РеквизитыСчета =СокрЛП(Док.СчетДоговор);
                       ТЗ2.Дебет          =СокрЛП(Опер.Дебет.Счет);
                       ТЗ2.ДебетСубконто1  =СокрЛП(Опер.Дебет.ПредставлениеСубконто(1,1));
                       ТЗ2.ДебетСубконто2  =СокрЛП(Опер.Дебет.ПредставлениеСубконто(2,1));
                       ТЗ2.ДебетСубконто3  =СокрЛП(Опер.Дебет.ПредставлениеСубконто(3,1));
                       ТЗ2.Кредит         =СокрЛП(Опер.Кредит.Счет);
                       ТЗ2.КредитСубконто1  =СокрЛП(Опер.Кредит.ПредставлениеСубконто(1,1));
                       ТЗ2.КредитСубконто2  =СокрЛП(Опер.Кредит.ПредставлениеСубконто(2,1));
                       ТЗ2.КредитСубконто3  =СокрЛП(Опер.Кредит.ПредставлениеСубконто(3,1));
                       ТЗ2.Документ       =СокрЛП(Опер.Документ);
                       //ТЗ2.Субконто       =СокрЛП(ИмяСубконто);
                       ТЗ2.Сумма          =Опер.Сумма;
                       ТЗ2.Регистрация    =СокрЛП(ДокО.НомерДок);
                       ТЗ2.НомерСФ        =СокрЛП(ДокО.СчетФактураНомер);
                       ТЗ2.ДатаСФ         =ДокО.ДатаДок;
                       ТЗ2.СуммаБезНДС    =СуммаТек;
                       ТЗ2.СуммаНДС       =СуммаТекНДС;




Собственно вопрос, как такой запрос отправить в Оле базу, чтоб он вернул то, что мне надо
3 GLazNik
 
14.11.12
14:42
(0) И?
4 Svetka
 
14.11.12
14:42
Харош стебаться
5 Ёпрст
 
14.11.12
14:43
6 Popkorm
 
14.11.12
14:53
(0)
ПоДоговору=v7.CreateObject("БухгалтерскиеИтоги");
   ПоДоговору.ИспользоватьСубконто(v7.EvalExpr("ВидыСубконто.Контрагенты"));
   ПоДоговору.ИспользоватьСубконто(v7.EvalExpr("ВидыСубконто.Договоры"));
   ПоДоговору.ВключатьСубсчета(1);
   Если ПоДоговору.ВыполнитьЗапрос(ДатаПереноса2, ДатаПереноса2) = 0 Тогда
       Предупреждение("Запрос не выполнен!");
   КонецЕсли;
   
   ПоДоговору.ВыбратьСчета();
   Пока ПоДоговору.ПолучитьСчет() = 1 Цикл
       Если ПоДоговору.Счет.ЭтоГруппа()=0 Тогда
           Продолжить;
       КонецЕсли;
       
       ПоДоговору.ВыбратьСубконто(1);
       Пока ПоДоговору.ПолучитьСубконто(1) = 1 Цикл // Контрагенты

           ПоДоговору.ВыбратьСубконто(2);
           Пока ПоДоговору.ПолучитьСубконто(2) = 1 Цикл //Договора
7 Svetka
 
14.11.12
14:55
(5) спасибо, читаю.
Как оле база должна понять про выполни запрос из текушего отчета?

Ит = ОЛЕ.CreateObject ("БухгалтерскиеИтоги");
       
       Если ОЛЕ.Метаданные.РазделительУчета.Выбран() = 1 Тогда
           ОЛЕПредставлениеРУ = ОЛЕ.Метаданные.РазделительУчета.Представление();
       КонецЕсли;
       
       Ит.ИспользоватьРазделительУчета(ОЛЕПредставлениеРУ);
Если Ит.ВыполнитьЗапрос(Дата1, Дата2,,,,, "Проводка") = 0 Тогда
           Возврат;
       КонецЕсли;
Док=ОЛЕ.CreateObject("Документ");
ДокО=ОЛЕ.CreateObject("Документ");

Ит.ВыбратьПериоды();
       Пока Ит.ПолучитьПериод() = 1 Цикл
         Опер = Ит.Операция;   //вот тут, наверно, проблема, т.к. это текущая операция????
Если (Опер.Кредит.Счет.Код=СчетПоКоду("60.02"))  Тогда
               Если (Сред(СокрЛП(Опер.Дебет.Счет.Код),1,2)="19") Тогда    
                   
                   СуммаТек=0;
                   СуммаТекНДС=0;
8 Svetka
 
14.11.12
14:57
пошла почитаю, фигню какую - то спрашиваю.
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн