7.7 Необходимо поцепиться к 1С 8.0 и перебрать справочник

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем Alec Delion, 3 июл 2007.

  1. TopicStarter Overlay
    Alec Delion
    Offline

    Alec Delion

    Регистрация:
    3 июл 2007
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Суть проблемы мне нужно подцепить к 1С 8.0 что я сделал, выбрать справочник что тоже сделал, и вот тут сам вопрос не могу перебрать этот справочник на коде Пока Выборка.Следующий()=1 Цикл программа ни чего не выдаёт! Подскажите что может быть, надо очень горит бухгалтерия. Заранее благодарен. Ниже приведен весь код

    V8 = CreateObject("V8.COMConnector");
    ver8=V8.Connect("Srvr=xxxx;Ref=xxx");
    //*******************************************************************

    //*******************************************************************
    если ver8=0 Тогда
    сообщить("Ошибка подключения к базе 1С 8.0! Error Warning");
    СтатусВозврата(0);
    Иначе
    сообщить("База 1С 8.0 удачно подключена OK ALL");
    Конецёсли;
    //*******************************************************************

    //*******************************************************************
    БазаВ8 = ver8.Справочники.Абитуриент;
    если БазаВ8=0 Тогда
    сообщить("Ошибка подключения справочника! Error Warning");
    СтатусВозврата(0);
    Иначе
    сообщить("Справочник удачно подключен OK ALL");
    Конецёсли;
    //*******************************************************************

    //*******************************************************************
    Выборка = БазаВ8.Выбрать();
    //если Выборка=0 Тогда
    //сообщить("Ошибка ВЫБОРА БАЗЫ! Error Warning");
    ////СтатусВозврата(0);
    //Иначе
    //сообщить("БАЗА удачно подключена OK ALL");
    //Конецёсли;
    //сообщить("Начинаем выборку :)))))");
    //*******************************************************************


    //*******************************************************************
    Пока Выборка.Следующий()=1 Цикл
    сообщить(""+Выборка.Наименование);
    сообщить("типа выбераем");
    КонецЦикла;
  2. рамиль
    Offline

    рамиль Опытный в 1С

    Регистрация:
    12 мар 2006
    Сообщения:
    595
    Симпатии:
    0
    Баллы:
    26
    Пока Выборка.Следующий()=1 Цикл - неправильное выражение.
    Выборка.Следующий()=Истина или Выборка.Следующий()
    -правильное выражение.
  3. TopicStarter Overlay
    Alec Delion
    Offline

    Alec Delion

    Регистрация:
    3 июл 2007
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Я тут пошукал по форуму наткнулся на вот это Пока Выборка.Следующий()=-1 Цикл и это работает, перебирает справочник как бы всё нормально, но вот встала проблема я могу получить поля даты числовые а ссылки и перечисления не могу подскажите как правильно обратиться
    Вот пример

    Пока Выборка.Следующий()=-1 Цикл


    если Выборка.РезультатСобеседования="Рекомендован" тогда условие не срабатывает

    Табл.НоваяСтрока();
    Табл.Имя=сокрлп(Выборка.Имя); //получаю
    Табл.Фамилия=сокрлп(Выборка.Фамилия);//получаю
    Табл.Отчество=сокрлп(Выборка.Отчество);//получаю
    Табл.Специальность=сокрлп(Выборка.Специальность); не получает пишет OLE
    Табл.ФормаОбучения=сокрлп(Выборка.ФормаОбучения); перечесление вообще ничего не пишет
    Табл.СтупеньОбучения=сокрлп(Выборка.СтупеньОбучения);перечесление вообще ничего не пишет


    Да вот в дополнение 1С 7.7 25 релиз у меня цепляется в 1С 8.0 8.0.14.39 я считываю данные из 8 средствами 7
  4. x_under
    Offline

    x_under Модераторы Команда форума Модератор

    Регистрация:
    25 апр 2007
    Сообщения:
    2.576
    Симпатии:
    13
    Баллы:
    29
    При Com соединении можно получить только простейшие типы: число строку, дату. Структурные типы ты конечно не получишь. 7 просто не знает что есть в 8. Можно получить наименование или код.

    Табл.Специальность=СокрЛП(Выборка.Специальность.Наименование); если это конечно справочник, а для Перечислений можно получить например значение
    Табл.ФормаОбучения=сокрлп(Выборка.ФормаОбучения.Значение);
  5. AntiKoerper
    Offline

    AntiKoerper

    Регистрация:
    8 авг 2007
    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    1
    1) В OLE Automation -1 являет собой значение TRUE, а 0 - FALSE.
    2) При связке двух баз 7.7 для получения значения перечисления использовал следующий код:
    Код:
     ....//Подкючаю базу, переменная БазаОЛЕ
    ЗначПеречисления=БазаОЛЕ.Перечисление.ПолучитьАтрибут(ВидПеречисления).ЗначениеПоИдентификатору(СтрЗначПер);
    
    
    Такой момент, с двух сторон оператора присваивания могут находиться элементы только одной и той же базы. При попытке присвоить напрямую элемент справочника подключаемой базы значению субконто кредита проводки другой базы никакой ошибки не выдается, но и значение не подставляется. хорошая статья по работе 1С:Предприятия 7.7 и ОЛЕ здесь

Поделиться этой страницей