8.х Выгрузка реквизитов справочника из внешней БД

Тема в разделе "Общие вопросы "1С:Предприятие 8"", создана пользователем Yoja, 22 май 2012.

  1. TopicStarter Overlay
    Yoja
    Offline

    Yoja

    Регистрация:
    22 май 2012
    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    Здравствуйте!
    Подключен на прямую к базе (т.е. на форме обработчика указываю путь к БД, Имя пользователя и Пароль)

    Открываю
    1С:Підприємство 8.2 (8.2.13.219)
    Управление небольшой фирмой для Украины, редакция 1.3
    ЗАПУСКАЮ, внешнюю обработку

    Подключаюсь напрямую к БД
    1С:Підприємство 8.2 (8.2.13.219)
    Бухгалтерия для Украины, редакция 1.2.
    Код:
    Процедура Кнопка1Нажатие(Элемент)
    //строим запрос к контрагентам
    //Запрос1С = Новый Запрос;
    Запрос1С.Текст =
    "ВЫБРАТЬ
    |	Контрагенты.Ссылка,
    |	Контрагенты.ВерсияДанных,
    |	 Контрагенты.ПометкаУдаления,
    |	Контрагенты.Предопределенный,
    |	Контрагенты.Родитель,
    |	Контрагенты.ЭтоГруппа,
    |	Контрагенты.Код,
    |	Контрагенты.Наименование,
    |	Контрагенты.ОсновнойДоговорКонтрагента,
    |	Контрагенты.Комментарий,
    |	Контрагенты.ГоловнойКонтрагент,
    |	Контрагенты.ЮрФизЛицо,
    |	Контрагенты.ИНН,
    |	 Контрагенты.НаименованиеПолное,
    |	Контрагенты.ОсновнойБанковскийСчет,
    |	Контрагенты.ДокументУдостоверяющийЛичность,
    |	Контрагенты.ОсновноеКонтактноеЛицо,
    |	Контрагенты.КодПоЕДРПОУ,
    |	Контрагенты.НомерСвидетельства,
    |	Контрагенты.НеЯвляетсяРезидентом,
    |	Контрагенты.Представление
    |ИЗ
    |	Справочник.Контрагенты КАК Контрагенты";
    
    РезультатЗапроса = Запрос1С.Выполнить();
    Выборка = РезультатЗапроса.Выбрать();
    Счетчик = 1;
    Пока Выборка.Следующий() Цикл
    Сообщить("Выборка.ПометкаУдаления "+Выборка.ПометкаУдаления);	  
    Сообщить("Выборка.Предопределенный "+Выборка.Предопределенный);	  
    Сообщить("Выборка.ЭтоГруппа "+Выборка.ЭтоГруппа);
    Сообщить("Выборка.Код "+Выборка.Код);
    Сообщить("Выборка.Наименование "+Выборка.Наименование);
    Сообщить("Выборка.ИНН "+Строка(Выборка.ИНН));
    Сообщить("Выборка.НаименованиеПолное "+Выборка.НаименованиеПолное);
    Сообщить("Выборка.КодПоЕДРПОУ "+Строка(Выборка.КодПоЕДРПОУ));
    Сообщить("Выборка.НомерСвидетельства "+Выборка.НомерСвидетельства);
    Сообщить("Выборка.НеЯвляетсяРезидентом "+Выборка.НеЯвляетсяРезидентом);
    Сообщить("Выборка.Представление "+Выборка.Представление);
    Сообщить("Выборка.Комментарий "+Выборка.Комментарий);
    Сообщить("Выборка.ДокументУдостоверяющийЛичность "+Выборка.ДокументУдостоверяющийЛичность);
    Сообщить("---------------------------------------------");
    Сообщить("Выборка.Ссылка "+Выборка.Ссылка);
    Сообщить("Выборка.ВерсияДанных "+Выборка.ВерсияДанных);
    Сообщить("Выборка.Родитель "+Выборка.Родитель);
    Сообщить("Выборка.ОсновнойДоговорКонтрагента "+Выборка.ОсновнойДоговорКонтрагента);
    Сообщить("Выборка.ГоловнойКонтрагент "+Выборка.ГоловнойКонтрагент);
    Сообщить("Выборка.ЮрФизЛицо "+Выборка.ЮрФизЛицо);
    Сообщить("Выборка.ОсновнойБанковскийСчет "+Выборка.ОсновнойБанковскийСчет);
    Сообщить("Выборка.ОсновноеКонтактноеЛицо "+Выборка.ОсновноеКонтактноеЛицо);
    Сообщить("***********************************************************************************");
    Сообщить(" ");
    
    Счетчик = Счетчик + 1;
    #Если Клиент Тогда
    ОбработкаПрерыванияПользователя();
    #КонецЕсли
    КонецЦикла;	
    КонецПроцедуры
    Результат:
    Код:
    Выборка.ПометкаУдаления Ні
    Выборка.Предопределенный Ні
    Выборка.ЭтоГруппа Ні
    Выборка.Код 000000012
    Выборка.Наименование СельхозТехника
    Выборка.ИНН 340000026000
    Выборка.НаименованиеПолное Товариство з обмеженою відповідальністю "ПУПОК"
    Выборка.КодПоЕДРПОУ 12345678
    Выборка.НомерСвидетельства 123456789
    Выборка.НеЯвляетсяРезидентом Ні
    Выборка.Представление Ашан
    Выборка.Комментарий ТЦ СельхозТехника, комментарий
    Выборка.ДокументУдостоверяющийЛичность Паспорт
    ---------------------------------------------
    Выборка.Ссылка COMОбъект
    Выборка.ВерсияДанных AAAAYAAAAAE=
    Выборка.Родитель COMОбъект
    Выборка.ОсновнойДоговорКонтрагента COMОбъект
    Выборка.ГоловнойКонтрагент COMОбъект
    Выборка.ЮрФизЛицо COMОбъект
    Выборка.ОсновнойБанковскийСчет COMОбъект
    Выборка.ОсновноеКонтактноеЛицо COMОбъект
    ***********************************************************************************
    Как сделать правильно, чтобы вторая половина результата была не COMОбъект, а правильные ответ запроса.
    Что нужно делать и куда копать? Может править сам запрос?
    Если кто знает, подскажите.
    Заранее спасибо.
  2. n.s.gnedash
    Offline

    n.s.gnedash Опытный в 1С Команда форума

    Регистрация:
    15 авг 2010
    Сообщения:
    1.358
    Симпатии:
    5
    Баллы:
    29
    Ты можешь через ком получить только строку, т.е. ссылка будет в виде COMОбъект, а если ты посмотришь Выборка.Родитель.Description , то получишь наименование родителя
  3. TopicStarter Overlay
    Yoja
    Offline

    Yoja

    Регистрация:
    22 май 2012
    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    Не сработало, как и куда копать?

    Код:
    Сообщить("Выборка.Родитель.ЮрФизЛицо "+Выборка.Родитель.ЮрФизЛицо);
    //РЕЗУЛЬТАТ
    Выборка.Родитель.ЮрФизЛицо COMОбъект
    
  4. n.s.gnedash
    Offline

    n.s.gnedash Опытный в 1С Команда форума

    Регистрация:
    15 авг 2010
    Сообщения:
    1.358
    Симпатии:
    5
    Баллы:
    29
    так попробуй
    Код:
    Сообщить("Выборка.Родитель.ЮрФизЛицо "+Выборка.Родитель.description)
  5. TopicStarter Overlay
    Yoja
    Offline

    Yoja

    Регистрация:
    22 май 2012
    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    Результат:
    Выборка.Родитель.ЮрФизЛицо
  6. n.s.gnedash
    Offline

    n.s.gnedash Опытный в 1С Команда форума

    Регистрация:
    15 авг 2010
    Сообщения:
    1.358
    Симпатии:
    5
    Баллы:
    29
    это значит оно, или не оно?
  7. TopicStarter Overlay
    Yoja
    Offline

    Yoja

    Регистрация:
    22 май 2012
    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    не, это просто текст, который был в кавычках тега сообщить
    Выдало ПУСТО
  8. n.s.gnedash
    Offline

    n.s.gnedash Опытный в 1С Команда форума

    Регистрация:
    15 авг 2010
    Сообщения:
    1.358
    Симпатии:
    5
    Баллы:
    29
    Поставь точку останова на КонецЦикла и посмотри,что у тебя хранится в Выборка.Родитель.Description , возможно у элемента нет родителя.
  9. TopicStarter Overlay
    Yoja
    Offline

    Yoja

    Регистрация:
    22 май 2012
    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    Выражение: Выборка.Родитель.description
    Значение: ""
    Тип: Строка

    Если выполнить тоже самый код не подключаясь к внешней базе, а с текущей.
    То результатом в этом случае будет
    Выборка.Родитель.ЮрФизЛицо Юр.Лицо
  10. n.s.gnedash
    Offline

    n.s.gnedash Опытный в 1С Команда форума

    Регистрация:
    15 авг 2010
    Сообщения:
    1.358
    Симпатии:
    5
    Баллы:
    29
    нет родителя значит, вот так выведи сообщить
    Код:
    Выборка.ОсновнойДоговорКонтрагента.Description
    Выборка.ГоловнойКонтрагент.Description
    Выборка.ЮрФизЛицо.Description
    Выборка.ОсновнойБанковскийСчет.Description
    Выборка.ОсновноеКонтактноеЛицо.Description 
  11. TopicStarter Overlay
    Yoja
    Offline

    Yoja

    Регистрация:
    22 май 2012
    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    Код:
    Сообщить("Выборка.Родитель.ЮрФизЛицо "+Выборка.ЮрФизЛицо.Description);
    Результат ошибка:
    {Форма.Форма.Форма(123)}: Поле об`єкту не виявлено (Description)
    Сообщить("Выборка.Родитель.ЮрФизЛицо "+Выборка.ЮрФизЛицо.Description);

    Код:
    Сообщить("Выборка.ОсновнойДоговорКонтрагента "+Выборка.ОсновнойДоговорКонтрагента.Description);
    Сообщить("Выборка.ГоловнойКонтрагент "+Выборка.ГоловнойКонтрагент.Description);
    Сообщить("Выборка.ОсновнойБанковскийСчет "+Выборка.ОсновнойБанковскийСчет.Description);
    Сообщить("Выборка.ОсновноеКонтактноеЛицо "+Выборка.ОсновноеКонтактноеЛицо.Description);
    
    Результат:
    Код:
    Выборка.ОсновнойДоговорКонтрагента Основной договор
    Выборка.ГоловнойКонтрагент ТЦ Василек
    Выборка.ОсновнойБанковскийСчет Расчетный в ПАТ"БАНК"
    Выборка.ОсновноеКонтактноеЛицо
    
  12. n.s.gnedash
    Offline

    n.s.gnedash Опытный в 1С Команда форума

    Регистрация:
    15 авг 2010
    Сообщения:
    1.358
    Симпатии:
    5
    Баллы:
    29
    Смотри отладчиком,что в Выборка.ЮрФизЛицо , отсюда не видно
  13. TopicStarter Overlay
    Yoja
    Offline

    Yoja

    Регистрация:
    22 май 2012
    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    1. Спасибо тебе большое.

    Над этим буду думать завтра, сегодня выгоняют с офиса.
    Код:
    Сообщить("Выборка.ОсновноеКонтактноеЛицо "+Выборка.ОсновноеКонтактноеЛицо.Description);
    Сообщить("Выборка.Родитель.ЮрФизЛицо "+Выборка.ЮрФизЛицо.Description);
  14. TopicStarter Overlay
    Yoja
    Offline

    Yoja

    Регистрация:
    22 май 2012
    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    Код:
    Сообщить("Выборка.ОсновноеКонтактноеЛицо "+Выборка.ОсновноеКонтактноеЛицо.Description);
    Здесь при отладке всегда пусто :-(
  15. n.s.gnedash
    Offline

    n.s.gnedash Опытный в 1С Команда форума

    Регистрация:
    15 авг 2010
    Сообщения:
    1.358
    Симпатии:
    5
    Баллы:
    29
    а оно заполнено в базе источнике,чтоб быть не пустым?
  16. x_under
    Offline

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

    Регистрация:
    25 апр 2007
    Сообщения:
    2.576
    Симпатии:
    13
    Баллы:
    29
    Так. Чтобы получить значение ЮрФизЛицо, а это ни что иное как перечисление, нужно воспользоваться методом, чтобы получить значение этого перечисления в строковом виде. Скорее всего надо пользоваться методом "Метаданные()"

    Для родителя вы можете обратиться к свойствам: код и наименование. Примерно так Выборка.Родитель.Код
  17. TopicStarter Overlay
    Yoja
    Offline

    Yoja

    Регистрация:
    22 май 2012
    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    Да, специально заполнял
  18. n.s.gnedash
    Offline

    n.s.gnedash Опытный в 1С Команда форума

    Регистрация:
    15 авг 2010
    Сообщения:
    1.358
    Симпатии:
    5
    Баллы:
    29
    Код:
    Выборка.ОсновноеКонтактноеЛицо
    в отладчике посмотри что хранится внутри

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