1С 8.x Управляемое приложение 1С 7.7. Бухучет Статьи Ссылки
1С 8.x arrow 1С 7.7. arrow Узелки на память (7.7) arrow Как из 1С 7.7. подключиться по OLE к 1С 8.1 и работать с ним
Как из 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);

КонецЦикла;

КонецПроцедуры