Выполнить запрос в другой базе 1С через COM соединение

1. nayd 9 18.02.14 12:46 Сейчас в теме
Доброго времени суток!

Подскажите, как можно через COM соединение вытащить данные запроса из другой базы?
Имеются УПП и Бухгалтерия, хочу из базы УПП подключиться к базе Бухгалтерии, сформировать там запрос по регистру бухгалтерии (короче, ОСВ) и получить эти данные в базе УПП. Как можно это сделать?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Rothschild 18.02.14 12:57 Сейчас в теме
(1) nayd, я постуал так:
1. в базе-источнике
в предусмотренном на этот случай общем модуле
размещал экспортную функцию, возвращающую необходимую
выборку запроса в виде таблицы значений.

2. а в базе-назначение просто вызывал эту функцию
через COM-объект внешнего соединения:
тзВыборкаCOM = БазаCOM.<ИмяМодуля>.ИмяФункции(..параметры..);
3. nayd 9 18.02.14 13:38 Сейчас в теме
а вот такой текст не сработает?



	V8 = Новый COMOбъект(----);
Открытие = V8.Connect(-----);
Запрос = Новый Запрос("ВЫБРАТЬ
	                      |	ХозрасчетныйОстаткиИОбороты.Субконто2 КАК Склад,
	                      |	ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Номенклатура,
	                      |	ХозрасчетныйОстаткиИОбороты.КоличествоНачальныйОстаток КАК КолНачОст,
	                      |	ХозрасчетныйОстаткиИОбороты.КоличествоОборотДт КАК КолДт,
	                      |	ХозрасчетныйОстаткиИОбороты.КоличествоОборотКт КАК КолКт,
	                      |	ХозрасчетныйОстаткиИОбороты.КоличествоКонечныйОстаток КАК КолКонОст,
	                      |	ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстаток КАК СумНачОст,
	                      |	ХозрасчетныйОстаткиИОбороты.СуммаОборотДт КАК СумДт,
	                      |	ХозрасчетныйОстаткиИОбороты.СуммаОборотКт КАК СумКт,
	                      |	ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстаток КАК СумКонОст
	                      |ИЗ
	                      |	"+Открытие+".РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НачалоПериода, &ОкончаниеПериода, , , Счет = &Счет, , ) КАК ХозрасчетныйОстаткиИОбороты");
	
	Запрос.УстановитьПараметр("НачалоПериода",НачалоДня(ДатаНачалаОтбора));
	Запрос.УстановитьПараметр("ОкончаниеПериода",КонецДня(ДатаОкончанияОтбора));
	Запрос.УстановитьПараметр("Счет",СчетБУ);
	
	Запрос.Выполнить().Выгрузить();
Показать
4. Rothschild 18.02.14 13:56 Сейчас в теме
(3) nayd, нет,
если на то пошло то так:
КоннекторV8 = Новый COMOбъект(----);
БазаCOM = КоннекторV8 .Connect(-----);
ЗапросCOM = БазаCOM.NewObject("Запрос");
ЗапросCOM.Текст = "ВЫБРАТЬ
                  |    ХозрасчетныйОстаткиИОбороты.Субконто2 КАК Склад,
                  |    ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Номенклатура,
                  |    ХозрасчетныйОстаткиИОбороты.КоличествоНачальныйОстаток КАК КолНачОст,
                  |    ХозрасчетныйОстаткиИОбороты.КоличествоОборотДт КАК КолДт,
                  |    ХозрасчетныйОстаткиИОбороты.КоличествоОборотКт КАК КолКт,
                  |    ХозрасчетныйОстаткиИОбороты.КоличествоКонечныйОстаток КАК КолКонОст,
                  |    ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстаток КАК СумНачОст,
                  |    ХозрасчетныйОстаткиИОбороты.СуммаОборотДт КАК СумДт,
                  |    ХозрасчетныйОстаткиИОбороты.СуммаОборотКт КАК СумКт,
                  |    ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстаток КАК СумКонОст
                  |ИЗ
                  |    РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НачалоПериода, &ОкончаниеПериода, , , Счет.Код = &Счет, , ) КАК ХозрасчетныйОстаткиИОбороты");
    
ЗапросCOM.УстановитьПараметр("НачалоПериода",НачалоДня(ДатаНачалаОтбора));
ЗапросCOM.УстановитьПараметр("ОкончаниеПериода",КонецДня(ДатаОкончанияОтбора));
ЗапросCOM.УстановитьПараметр("Счет",СчетБУ.Код); // в параметрах можно использовать только примитивные типы
    
тзВыборкаCOM = ЗапросCOM.Выполнить().Выгрузить(); // результат выгрузки - СОМ-объект!!!
Показать
dexxxqqq; eLeMeNtaLe; S_D_M; sergsqr; emakei; nayd; +6 Ответить
5. Rothschild 18.02.14 13:57 Сейчас в теме
(4)
обрати внимание, что результат выгрузки результата запроса - это СОМ-объект!!!
7. frkbvfnjh 787 03.04.23 16:04 Сейчас в теме
(5) А как этот результат преобразовать в ТЗ?
8. Prikum 3 03.04.23 16:36 Сейчас в теме
10. user1826630 03.04.23 17:37 Сейчас в теме
(7) 13 лет с рейтингом 720? И все еще являешься некрофилом?
6. nayd 9 18.02.14 14:05 Сейчас в теме
(4)(5)
супер. Спасибо. Как раз то, что было нужно.
9. dka80 20 03.04.23 17:10 Сейчас в теме
(6) не супер. Работать будет, вопросов нет, но неспеша Если Бухгалтерия 3.0, то посмотри в сторону oData, в другом случае, если есть возможность изменять конфигурацию - в сторону http, либо web-сервисов
11. alex_bob 246 05.04.23 16:49 Сейчас в теме
(6) Нарывался пару раз на потерю копеек при передаче чисел 1С через COM из-за неявного преобразования числового типа 1С в double.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот