Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Можно ли по OLE выполнять запросы из 1с 7.7 в 1с 8.2

Можно ли по OLE выполнять запросы из 1с 7.7 в 1с 8.2
Я
   sidalexsandr
 
13.12.12 - 17:54
Можно ли по OLE выполнять запросы из 1с 7.7 в 1с 8.2?
   ДенисЧ
 
1 - 13.12.12 - 17:55
Тебе нужно разрешение? :-)
   Popkorm
 
2 - 13.12.12 - 17:56
(0) разрешаю
   Ахиллес
 
3 - 13.12.12 - 17:56
(0) Даже к экселю можно.
   Popkorm
 
4 - 13.12.12 - 17:57
Запрос = V7.CreateObject("Запрос");
   sidalexsandr
 
5 - 13.12.12 - 17:59
(4) К 8.
   Popkorm
 
6 - 13.12.12 - 18:00
   Popkorm
 
7 - 13.12.12 - 18:00
(5) в (4) делается из 8-ке
   Popkorm
 
8 - 13.12.12 - 18:02
+(7) можно из 8-ки в 7.7 читать/записывать/создавать
   palpetrovich
 
9 - 13.12.12 - 18:06
Процедура Подключить()     
    База82 = CreateObject("V82.ComConnector");
    Попытка
        Соединение = База82.Connect("File="+КаталогБазы82+"; Usr="+Пользователь82+"; Pwd="+Пароль82);
    Исключение
        Возврат; 
    КонецПопытки;
КонецПроцедуры
                  
Процедура ПрочитатьНоменклатуру()   
    Запрос = Соединение.NewObject("Запрос");  
    Запрос.Текст = "
    |ВЫБРАТЬ
    |СписокНоменклатуры.Ссылка КАК Номенклатура
    |ИЗ
    |Справочник.Номенклатура КАК СписокНоменклатуры
    |";
       Рез = Запрос.Выполнить();     
       ТЗ = Рез.Выгрузить(); 
       Для инд=1 По ТЗ.Количество()-1 Цикл
           ТекСтрока = ТЗ.Получить(инд);
        Сообщить("Номенклатура  "+ТекСтрока.Номенклатура.Наименование);
       КонецЦикла;
КонецПроцедуры
   sidalexsandr
 
10 - 13.12.12 - 18:54
(9) Через ТаблицуЗначений вариант. Но таблица значений может переполниться и начать глючить.

А так не будет ?: Рез = Запрос.Выполнить();  
Р = Рез.Выбрать();
Пока Р.Следующий() Цикл
   // .... 
 
КонецЦикла;
   Serginio1
 
11 - 13.12.12 - 19:08
Пока Р.Следующий()<>0 Цикл
   // .... 
 
 
КонецЦикла;
   hhhh
 
12 - 13.12.12 - 20:16
(10) это в 7.7 глючит. А в 8 не заглючит.
   Рэйв
 
13 - 13.12.12 - 20:19
Я лично предпоситаю по СОМ из 77 к 8 , а не наоборот

Запрос=NewObject("Запрос")
Запрос.Текст="Выьрать..."

и так дале.
   sidalexsandr
 
14 - 14.12.12 - 09:46
(13) Спасибо, но можно по подробней.
   Serginio1
 
15 - 14.12.12 - 11:37
Процедура ЗагрузитьГуидыБанков()
Спр=СоздатьОбъект("Справочник.Банки");
Сервер=ПодключитьсяКВосьмерке();
    Спр8=Сервер.справочники.Банки;
    Выборка=Спр8.Выбрать();
    
    Пока Выборка.Следующий()<>0  Цикл
    Объект = Выборка.ПолучитьОбъект();
     Код=Объект.Код;
     
    Если спр.НайтиПоКоду(Код,0)=1 Тогда
        Если Спр.Ref<>Сервер.XMLСтрока(Объект.Ссылка) Тогда
            Спр.Ref=Сервер.XMLСтрока(Объект.Ссылка);
            Спр.Записать();
            Сообщить("---"+Спр);
        КонецЕсли;
    КонецЕсли;    
КонецЦикла;
КонецПроцедуры

Можешь создать внешнюю обработку в которой вызвать что тебе нужно создать в модуле обработки методы например
Функция ВычислитьВыражение(Выражение) Экспорт
  возврат вычислить(Выражение);    
КонецФункции

Функция ВычислитьСвойствоОбъекта(Объект,Свойство) Экспорт
  возврат Объект[Свойство];    
КонецФункции


И вызывать из семерки

ПутьКОбработке=ТвойПутьКepf;
    ДляВнешнегоСоединения= Сервер.ВнешниеОбработки.Создать(ПутьКОбработке);


Если Мета="Справочник" Тогда
        Объект=ДляВнешнегоСоединения.ВычислитьВыражение("Справочники."+ВидПриемник+".СоздатьЭлемент()");    ИначеЕсли Мета="Документ" Тогда
            Объект=ДляВнешнегоСоединения.ВычислитьВыражение("Документы."+ВидПриемник+".СоздатьДокумент()");
            ДляВнешнегоСоединения.ВычислитьСвойствоОбъекта(Объект,ТЧПриемника).Добавить();
                Иначе
                Объект=ДляВнешнегоСоединения.ВычислитьВыражение("РегистрыНакопления."+ВидПриемник+".СоздатьНаборЗаписей()");
КонецЕсли;

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.