Как из 1С 7.7. подключиться по OLE к 1С 8.1 и работать с ним |
В 1С 7.7. //Подключает ИБ Процедура ПодключитьИБ() Если НастройкиПодключенияКорректны() = 0 Тогда возврат; КонецЕсли; // НовыйПодключенныйОбъект = СоздатьОбъект("V81.COMConnector"); v8 = НовыйПодключенныйОбъект.Connect("Srvr=" + Srvr + ";Ref=" + Ref + ";Usr=" + Usr + ";Pwd=" + Pwd + ";"); Если v8=0 Тогда Сообщить("Ошибка открытия базы!", "!"); СтатусВозврата(0); Иначе Сообщить("База удачно подключена"); КонецЕсли; КонецПроцедуры В 1С 8.1 Удобно работать через модуль внешнего соединения. В модуле внешнего соединения создаются процедуры и функции для "общения" с 8.1, а из 7.7. вызываются Например: (внешнее соединение 8.1) //Возвращает выборку документов за период //Используется при загрузке данных в 1С Бухгалтерию 7.7 Функция ВернутьВыборку(ИмяДокумента, ДатаНач, ДатаКон, ИНН_КПП, ОснованиеКорректировки = Неопределено) Экспорт Запрос = Новый Запрос; ТекстЗапроса = "ВЫБРАТЬ Организации.Ссылка Как Организация ИЗ Справочник.Организации КАК Организации ГДЕ Организации.ИНН_КПП = &ИНН_КПП" ; Запрос.Текст = ТекстЗапроса; Запрос.УстановитьПараметр("ИНН_КПП", СокрЛП(ИНН_КПП)); Выборка = Запрос.Выполнить().Выбрать(); Если Выборка.Количество()=0 Тогда Возврат Выборка;//возвращаем пустую выборку, так как не можем идентифицировать организацию КонецЕсли; Если Выборка.Следующий() Тогда мОрганизация = Выборка.Организация; КонецЕсли; Запрос = Новый Запрос; ТекстЗапроса = "ВЫБРАТЬ Док.Ссылка Как {ИмяДокумента} ИЗ Документ.{ИмяДокумента} КАК Док ГДЕ Док.Организация = &Организация И Док.Дата МЕЖДУ &Дата1 И &Дата2" + ?(ИмяДокумента = "Реализация"," И Док.Упр = Ложь","") + //отбираем документы Реализация, для которых не установлен реквизит Упр; ?(ИмяДокумента = "Корректировка",?(ЗначениеЗаполнено(ОснованиеКорректировки),"ОснованиеКорректировки = &ОснованиеКорректировки","")""); ТекстЗапроса = СтрЗаменить(ТекстЗапроса,"{ИмяДокумента}",СокрЛП(ИмяДокумента)); Запрос.Текст = ТекстЗапроса; Запрос.УстановитьПараметр("Дата1", НачалоДня(ДатаНач)); Запрос.УстановитьПараметр("Дата2", КонецДня (ДатаКон)); Запрос.УстановитьПараметр("Организация", мОрганизация); Выборка = Запрос.Выполнить().Выбрать(); Возврат Выборка; КонецФункции В 7.7. обращаемся так: //********************************************** ПодготовитьДанныеДляСозданияДокОказаниеУслуг() Выборка_81 = v8.ВернутьВыборку("Реализация", ДатаНач, ДатаКон,ИНН); Пока Выборка_81.Следующий() = -1 Цикл докРеализация_81 = Выборка_81.Реализация; //текущий документ Реализация Сообщить("Смотрю реализацию:" + Строка(докРеализация_81.Номер) + "....Всего в выборке: " + Строка(Выборка_81.Количество()) + " реализаций" ); СоздатьДокОказаниеУслуг(докРеализация_81); КонецЦикла; КонецПроцедуры |