AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 25.09.2008, 11:49   #1  
niktata is offline
niktata
Участник
 
17 / 10 (1) +
Регистрация: 23.07.2008
Адрес: Санкт-Петербург
Нужно сделать выборку из нескольких таблиц (в данном случае из четырех).
В продолжение темы Импорт бинарных данных

Столкнулся еще с одной проблемой при импорте из 1С а AX. Буду благодарен, если кто-нибудь поможет..
Нужно сделать выборку из нескольких таблиц (в данном случае из четырех). Т.е. нужно выбрать все образования для физических лиц из таблицы Справочник.ФизическиеЛица.Образование и для выбранных образований вытащить из таблиц Справочник.ФизическиеЛица, Справочник.УчебныеЗаведения и ФизическиеЛицаОбразование.ВидОбразования код сотрудника, название учебного заведения и вид образования соответственно. Код следующий:
X++:
    Text =  "ВЫБРАТЬ "
             +"   ФизическиеЛица.Код                                    КАК Код,"
             +"   УчебныеЗаведения.Наименование                         КАК УчебноеЗаведение,"
             +"   ВидыОбразованияФизЛиц.Наименование                    КАК ВидОбразования,"
             +"   ФизическиеЛицаОбразование.Диплом                      как Диплом,  "
             +"   ФизическиеЛицаОбразование.ГодОкончания                как ГодОкончания,"
             +"   ФизическиеЛицаОбразование.Квалификация                как Квалификация"
          +"  ИЗ"
             +"   Справочник.ФизическиеЛица.Образование КАК ФизическиеЛицаОбразование"
             +"   ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица КАК ФизическиеЛица"
             +"   ПО ФизическиеЛицаОбразование.Ссылка = ФизическиеЛица.Ссылка"
             +"   ЛЕВОЕ СОЕДИНЕНИЕ Справочник.УчебныеЗаведения КАК УчебныеЗаведения"
             +"   ПО ФизическиеЛицаОбразование.УчебноеЗаведение = УчебныеЗаведения.Ссылка"
             +"   ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВидыОбразованияФизЛиц КАК ВидыОбразованияФизЛиц"
             +"   ПО ФизическиеЛицаОбразование.ВидОбразования = ВидыОбразованияФизЛиц.Ссылка"
          +"  ГДЕ"
             +"   ФизическиеЛица.Ссылка <> \"000000001\"";
    Query.Text(Text);

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

    // Выборка результата выполнения запроса
    While (Choose.Next())
    {
        i++;
        info(strFmt('%1 - %2 - %3', i, Choose.(), Choose.(), Choose.()));
    }
Код вылетает на строчке с info(), т.е. при обращении к Choose.УчебноеЗаведение() с ошибкой "Ошибка времени выполнения. : Вариантный тип, возвращенный методом COM-объекта, не поддерживается.".
Вылетает, как я понимаю, из-за того, что не у всех строчек таблицы Справочник.ФизическиеЛица.Образование заполнено поле УчебноеЗаведение

Пробовал делать так:
X++:
    While (Choose.Next())
    {
        i++;
        if (Choose.())
            info(strFmt('%1 - %2 - %3', i, Choose.(), Choose.(), Choose.()));
    }
но тогда код вываливается на if (Choose.УчебноеЗаведение()). Как же от этого избавиться?

Пробовал также делать эту выборку за несколько заходов:
1. Сначала выбирать из таблицы Справочник.ФизическиеЛица.Образование все записи, у которых заполнено поле УчебноеЗаведение (точнее ссылка на таблицу Справочник.УчебныеЗаведения).
2. Потом выбирать все записи, у которых заполнено поле ВидОбразования (ссылка на таблицу Справочник.ВидыОбразованияФизЛиц)
3. Связывать эти 2 выборки по ссылке из этой таблицы (типа аксаптовского RecId), но ссылка опять же имеет бинарный формат, который мне не удается как-либо обработать (преобразовать в текст или сравнить например). В общем опять все уперлось в то, с чего я и начал. Как обработать binary в ax

Последний раз редактировалось niktata; 25.09.2008 в 12:24.
Теги
интеграция, 1c

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Как сделать фильтр по группе пользователей? Zabr DAX: Программирование 12 08.04.2009 11:40
Перебор всех таблиц, имеющих поле определенного типа AKIS-Falcon DAX: Программирование 8 11.02.2005 17:07
Синхронизация таблиц при изменении EDT z_av DAX: Программирование 1 16.12.2004 11:55
Передача нескольких временных таблиц в отчет Pegiy DAX: Программирование 5 03.06.2004 17:44
Связывание нескольких таблиц jan_psn DAX: Программирование 11 18.11.2003 05:23

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 05:19.