A
AlexeyP
Возник вопрос: Можно ли через OLE получить бух. итоги? Если да, то как?
Версия 7.7.
Я опишу свою проблему, чтобы было понятнее.
Имеется две базы (разные юр. лица):
1. "отдел сбыта", который отгружает товары;
2. "завод", который производит продаваемую продукцию.
Отдел сбыта продает товар покупателям (как-будто он уже купил его у завода). В конце квартала на "заводе" делают накладные на на отгрузку "отделу сбыта" на все товары, проданные этим "сбытом".
То есть, все, что продал сбыт, он должен купить у завода.
Задача состоит в том, чтобы автоматизировать ввод накладных у завода на отгрузку товара сбыту.
Ведь при условии, что в базах одинаковые наименования номенклатуры в справочнике, можно получить у сбыта количество отгруженных товаров. Все это дело помещаем в ТЗ, а потом в базе "завода" заполняем накладную на отгрузку на основе нащей ТЗ.
Вот тут я столкнулся с OLE.
Я хочу от программы вот что: заходим в базу завода, заполняем реквизиты, которые пойдут в РасходнуюНакладную, коннектимся через OLE к сбыту, получаем через бух. итоги кредитовые обороты по счету 41 (Товары), записываем данные в ТЗ, а потом на основе этой ТЗ заполняем табличную часть накладной в заводе.
ps. Спасибо тем, кто прочитает мой пост. Я не смог обяснить короче
Возможно я усложняю. Можно было бы использовать промежуточный файл, для выгрузки/загрузки ТЗ. Тогда надобности в ОЛЕ не возникнет. Но мне показалось, что так изящнее что ли
получение итогов в местной базе:
БИ=СоздатьОбъект("БухгалтерскиеИтоги");
БИ.ИспользоватьСубконто(ВидыСубконто.Номенклатура, , );
БИ.ИспользоватьСубконто(ВидыСубконто.МестаХранения, ВыбСклад, );
БИ.ВыполнитьЗапрос(НачДата, КонДата, "41",,,,,4);
БИ.ВыбратьСубконто(1);
Пока БИ.ПолучитьСубконто(1) = 1 цикл
БИ.ВыбратьСубконто(2);
Пока БИ.ПолучитьСубконто(2) = 1 цикл
Если (БИ.ЭтоГруппа() = 0) И (БИ.КО("К")<>0) Тогда
ТЗ.НоваяСтрока();
ТЗ.Товар=БИ.Субконто().Наименование;
ТЗ.ЕдИзм=БИ.Субконто().ЕдиницаИзмерения;
ТЗ.КредОборот=БИ.КО("К");
КонецЕсли;
КонецЦикла;
КонецЦикла;
Версия 7.7.
Я опишу свою проблему, чтобы было понятнее.
Имеется две базы (разные юр. лица):
1. "отдел сбыта", который отгружает товары;
2. "завод", который производит продаваемую продукцию.
Отдел сбыта продает товар покупателям (как-будто он уже купил его у завода). В конце квартала на "заводе" делают накладные на на отгрузку "отделу сбыта" на все товары, проданные этим "сбытом".
То есть, все, что продал сбыт, он должен купить у завода.
Задача состоит в том, чтобы автоматизировать ввод накладных у завода на отгрузку товара сбыту.
Ведь при условии, что в базах одинаковые наименования номенклатуры в справочнике, можно получить у сбыта количество отгруженных товаров. Все это дело помещаем в ТЗ, а потом в базе "завода" заполняем накладную на отгрузку на основе нащей ТЗ.
Вот тут я столкнулся с OLE.
Я хочу от программы вот что: заходим в базу завода, заполняем реквизиты, которые пойдут в РасходнуюНакладную, коннектимся через OLE к сбыту, получаем через бух. итоги кредитовые обороты по счету 41 (Товары), записываем данные в ТЗ, а потом на основе этой ТЗ заполняем табличную часть накладной в заводе.
ps. Спасибо тем, кто прочитает мой пост. Я не смог обяснить короче

Возможно я усложняю. Можно было бы использовать промежуточный файл, для выгрузки/загрузки ТЗ. Тогда надобности в ОЛЕ не возникнет. Но мне показалось, что так изящнее что ли

получение итогов в местной базе:
БИ=СоздатьОбъект("БухгалтерскиеИтоги");
БИ.ИспользоватьСубконто(ВидыСубконто.Номенклатура, , );
БИ.ИспользоватьСубконто(ВидыСубконто.МестаХранения, ВыбСклад, );
БИ.ВыполнитьЗапрос(НачДата, КонДата, "41",,,,,4);
БИ.ВыбратьСубконто(1);
Пока БИ.ПолучитьСубконто(1) = 1 цикл
БИ.ВыбратьСубконто(2);
Пока БИ.ПолучитьСубконто(2) = 1 цикл
Если (БИ.ЭтоГруппа() = 0) И (БИ.КО("К")<>0) Тогда
ТЗ.НоваяСтрока();
ТЗ.Товар=БИ.Субконто().Наименование;
ТЗ.ЕдИзм=БИ.Субконто().ЕдиницаИзмерения;
ТЗ.КредОборот=БИ.КО("К");
КонецЕсли;
КонецЦикла;
КонецЦикла;