Показать сообщение отдельно
Старый 23.09.2008, 17:28   #1  
niktata is offline
niktata
Участник
 
17 / 10 (1) +
Регистрация: 23.07.2008
Адрес: Санкт-Петербург
Импорт бинарных данных
Приветствую!

Занимался тем, что делал механизм импорта из 1С'a в аксапту , и наткнулся на то, что многие поля в 1С'e имеют тип binary , даже поле Пол (не понимаю, почему не могли 0/1 использовать).

X++:
static void Ic8_testTradeQueryCom(Args _args)
{
    str             text;
    com             query,md;
    com             Result;
    com             Choose;
    EmplTable       emplTable;
    Com cc = new Com("v81.COMConnector");
// Подключение к БД
    com con = cc.Connect("srvr=\"cs005\";ref=\"db_1c_hrm_test\";Usr=\"Администратор\";pwd=\"\";");
// Вывод сообщения о названии конфигурации
    md = con.Metadata();
    print md.name();

    Text = " ВЫБРАТЬ * ИЗ Справочник.ФизическиеЛица КАК ФизическиеЛица"
         + " ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ФИОФизЛиц КАК ФИОФизЛиц"
         + " ПО ФизическиеЛица.Ссылка = ФИОФизЛиц.ФизЛицо"
         + " ГДЕ ФизическиеЛица.Код <> \"000000001\"";

// Создаем объект Запрос
    Query = con.NewObject("Запрос");
    Query.Text(Text);

// Выполнение запроса
    Result = Query.Execute();
    Choose = Result.Choose();

// Выборка результата выполнения запроса
    While (Choose.Next())
    {
        select forupdate firstonly firstfast
            emplTable
                where emplTable.EmplId == strLTrim(strRTrim(Choose.()));

        emplTable.EmplId      = strLTrim(strRTrim(Choose.()));
        emplTable.lastName    = Choose.();
        emplTable.firstName   = Choose.();
        emplTable.middleName  = Choose.();
        emplTable.BirthDate   = Choose.();
        EmplTable.PayInn_RU   = Choose.();
        EmplTable.PayInnPf_RU = Choose.();
        if (Choose.() == "0x863A7C890BC7DB6849BB5C5D636552AA
") // в БД пол лежит в формате binary(16). мужчина выглядит, как 0x863A7C890BC7DB6849BB5C5D636552AA
                //то мужчина
        else
                //иначе женщина
}
}
на сравнении есстно вылетает ошибка. Как же все-таки сравнить бинарные данные из 1С?