M
MaxiMina
Здравствуйте. Помогите пожалуйста разобраться в использовании бух.итогов посредством OLE-соединения.
У меня есть две базы неидентичные. Из одной базы в другую подключаюсь и пытаюсь использовать бух.итоги. В базе, к которой подключаюсь, использую следующий код, который работает верно:
ВСчет = ВыбСчет79;
БИ=СоздатьОбъект("БухгалтерскиеИтоги");
БИ.ИспользоватьСубконто(ВидыСубконто.Подразделения,Подразделение);
БИ.ВыполнитьЗапрос(НачДата,КонДата,ВыбСчет79,,,,"Проводка");
БИ.ВыбратьПериоды();
Пока БИ.ПолучитьПериод()=1 Цикл
флД=0;
флК=0;
//ДебИт - дабы не зацензурено было
Если (БИ.Операция.Дебит.Счет=Всчет) и (БИ.Операция.Кредит.Счет=Всчет) Тогда
Если БИ.Операция.Дебит.Субконто(1)<>Подразделение Тогда
флД=1;
КонецЕсли;
Если БИ.Операция.Кредит.Субконто(1)<>Подразделение Тогда
флК=1;
КонецЕсли;
КонецЕсли;
КонецЦикла;
При подключении использую следующий код:
БазаОле = СоздатьОбъект("V77.Application");
.......
ВыбСчет79 = БазаОле.CreateObject("Счет");
Если ВыбСчет79.НайтиПоКоду("79.2.1") = 1 Тогда
ВСчет = ВыбСчет79.ТекущийСчет();
КонецЕсли;
справПодр = БазаОле.CreateObject("Справочник.Подразделения");
справПодр.ВыбратьЭлементы();
Пока справПодр.ПолучитьЭлемент() = 1 Цикл
Вхожд = найти(справПодр.Наименование, "МоеПодразделение");
Если Вхожд > 0 Тогда
Подразделение = справПодр.ТекущийЭлемент();
Прервать;
КонецЕсли;
КонецЦикла;
БИ = БазаОле.CreateObject("БухгалтерскиеИтоги");
ВидСубкПодрОле = БазаОле.ВидыСубконто.Подразделения;
БИ.ИспользоватьСубконто(ВидСубкПодрОле, Подразделение);
БИ.ВыполнитьЗапрос(НачДата,КонДата,ВСчет,,,1,"Проводка",);
БИ.ВыбратьПериоды(0,0,0,0);
Пока БИ.ПолучитьПериод()=1 Цикл
флД=0;
флК=0;
Если (БИ.Операция.Дебит.Счет=Всчет) и (БИ.Операция.Кредит.Счет=Всчет) Тогда
Если БИ.Операция.Дебит.Субконто(1)<>Подразделение Тогда
флД=1;
КонецЕсли;
Если БИ.Операция.Кредит.Субконто(1)<>Подразделение Тогда
флК=1;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Дальше в код не вдаюсь. В базе, к которой подключаюсь, код отрабатывает по определенному подразделению. Во втором случае подразделение не проходит и перебирает все бух.итоги. Подскажите пожалуйста, где ошибка?
Заранее спасибо.
У меня есть две базы неидентичные. Из одной базы в другую подключаюсь и пытаюсь использовать бух.итоги. В базе, к которой подключаюсь, использую следующий код, который работает верно:
ВСчет = ВыбСчет79;
БИ=СоздатьОбъект("БухгалтерскиеИтоги");
БИ.ИспользоватьСубконто(ВидыСубконто.Подразделения,Подразделение);
БИ.ВыполнитьЗапрос(НачДата,КонДата,ВыбСчет79,,,,"Проводка");
БИ.ВыбратьПериоды();
Пока БИ.ПолучитьПериод()=1 Цикл
флД=0;
флК=0;
//ДебИт - дабы не зацензурено было
Если (БИ.Операция.Дебит.Счет=Всчет) и (БИ.Операция.Кредит.Счет=Всчет) Тогда
Если БИ.Операция.Дебит.Субконто(1)<>Подразделение Тогда
флД=1;
КонецЕсли;
Если БИ.Операция.Кредит.Субконто(1)<>Подразделение Тогда
флК=1;
КонецЕсли;
КонецЕсли;
КонецЦикла;
При подключении использую следующий код:
БазаОле = СоздатьОбъект("V77.Application");
.......
ВыбСчет79 = БазаОле.CreateObject("Счет");
Если ВыбСчет79.НайтиПоКоду("79.2.1") = 1 Тогда
ВСчет = ВыбСчет79.ТекущийСчет();
КонецЕсли;
справПодр = БазаОле.CreateObject("Справочник.Подразделения");
справПодр.ВыбратьЭлементы();
Пока справПодр.ПолучитьЭлемент() = 1 Цикл
Вхожд = найти(справПодр.Наименование, "МоеПодразделение");
Если Вхожд > 0 Тогда
Подразделение = справПодр.ТекущийЭлемент();
Прервать;
КонецЕсли;
КонецЦикла;
БИ = БазаОле.CreateObject("БухгалтерскиеИтоги");
ВидСубкПодрОле = БазаОле.ВидыСубконто.Подразделения;
БИ.ИспользоватьСубконто(ВидСубкПодрОле, Подразделение);
БИ.ВыполнитьЗапрос(НачДата,КонДата,ВСчет,,,1,"Проводка",);
БИ.ВыбратьПериоды(0,0,0,0);
Пока БИ.ПолучитьПериод()=1 Цикл
флД=0;
флК=0;
Если (БИ.Операция.Дебит.Счет=Всчет) и (БИ.Операция.Кредит.Счет=Всчет) Тогда
Если БИ.Операция.Дебит.Субконто(1)<>Подразделение Тогда
флД=1;
КонецЕсли;
Если БИ.Операция.Кредит.Субконто(1)<>Подразделение Тогда
флК=1;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Дальше в код не вдаюсь. В базе, к которой подключаюсь, код отрабатывает по определенному подразделению. Во втором случае подразделение не проходит и перебирает все бух.итоги. Подскажите пожалуйста, где ошибка?
Заранее спасибо.