Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   Запрос к итогам по OLE (http://forums.kuban.ru/f1040/zapros_k_itogam_po_ole-2914835.html)

USSR 07.08.2012 20:55

Запрос к итогам по OLE
 
собираю по OLE выписки за день из разных бухгалтерских баз. И вот косяк. Выбираются не все проводки, в конкретном примере 15 из 22.
Запрос в "родной" базе работает:
Ит = CreateObject("БухгалтерскиеИтоги");
Ит.ИспользоватьСубконто(ВидыСубконто.БанковскиеСчета,,1);
Ит.ВыполнитьЗапрос(НачДата, КонДата, "51,52",,, 1, "Проводка", "С");
Ит.ВыбратьСубконто();
Пока Ит.ПолучитьСубконто(1) = 1 Цикл

Счет = Ит.Субконто(1).Номер;
Сообщить(Счет);

Сч = 0;
Ит.ВыбратьПериоды(0);
Пока Ит.ПолучитьПериод() = 1 Цикл

Сч = Сч + 1;
Сообщить(Сч);
Сообщить(Ит.Операция.СодержаниеПроводки);
Дт = Ит.ВыбранаПоДт();
Кт = Ит.ВыбранаПоКт();
Опер = Ит.Операция;

СчетДт = Опер.Дебет.Счет;
СчетКт = Опер.Кредит.Счет;

КонецЦикла;
КонецЦикла;

а вот по OLE выбирает не все проводки выписки:
Ит = БазаOLE.CreateObject("БухгалтерскиеИтоги");
Ит.ИспользоватьСубконто(БазаOLE.ВидыСубконто.БанковскиеСчета,,1);
Ит.ВыполнитьЗапрос(НачДата, КонДата, "51,52",,, 1, "Проводка", "С");
Ит.ВыбратьСубконто();
Пока Ит.ПолучитьСубконто(1) = 1 Цикл
......
что за заморочка. Заменены всего 2 строчки алгоритма

VZ 07.08.2012 23:12

Посмотрел, что не выбирает? С датами ничего не связано? Процедура OLE твою форму не видит... Как собственно, все окружение клиента.

VZ 07.08.2012 23:24

И вообще, если оле-сервер затягивает с ответом (при долгой выборке, например), клиент может потерять соединение с сервером. Где этот таймаут регулируется - мне неведомо.
Итог: не используй втуне.

Чучундер 08.08.2012 00:59

используй евал в фильтре по субконто.
.
Ит = Оле.CreateObject("БухгалтерскиеИтоги");

ОлеФ=Оле.CreateObject("Справочник.Фирмы");
ОлеК=Оле.CreateObject("Справочник.Контрагенты");
ОлеД=Оле.CreateObject("Справочник.Договоры");

ОлеФ.ВыбратьЭлементы();
Пока ОлеФ.ПолучитьЭлемент()=1
Цикл
Сообщить(СимволТабуляции+ТекущееВремя()+": выполняется запрос на извлечение бух.данных по "+ОлеФ.Наименование);
Ит.ИспользоватьСубконто(Оле.EvalExpr("ВидыСубконто.Контрагенты"));
Ит.ИспользоватьСубконто(Оле.EvalExpr("ВидыСубконто.Договоры"));
Ит.ИспользоватьРазделительУчета(ОлеФ.ТекущийЭлемент());

USSR 08.08.2012 05:51

(1,2)По скорости работает нормально, но по OLE выборка обрывается на 15-ой проводке (сч=15). В родной базе - все ОК. Выбираю за 1 день
(3) щас попробую

USSR 08.08.2012 05:56

(3)c Eval выбирает, но точно также неправильно. Что за лажа такая

USSR 08.08.2012 06:30

вот щас просто скопировал выписку за другой день, то есть в одном дне 2 одинаковых. Родная база видит все проводки, по OLE только одну выписку

USSR 08.08.2012 07:11

морочил всем голову, все работает, смотрел в разных базах. ПипеЦ!! Приношу извинения ))

bma1 08.08.2012 07:52

[quote=USSR;26292180]ПипеЦ!! Приношу извинения )) [/quote]
Значит пора в отпуск...


Текущее время: 04:08. Часовой пояс GMT +3.