8.х Тип поля в запросе

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем [GIGA]DEDUSHKA, 23 фев 2010.

  1. TopicStarter Overlay
    [GIGA]DEDUSHKA
    Offline

    [GIGA]DEDUSHKA Опытный в 1С

    Регистрация:
    7 мар 2008
    Сообщения:
    167
    Симпатии:
    0
    Баллы:
    26
    В общем хочу создать запрос, который работает с регистром сведений: значения свойств объектов. В данном регистре поле "Значение" может принимать различные типы данных: число, строка, булево, ссылки на всякие справочники. Мне бы хотелось помимо поля значение каким-то образом получить тип значения. Подскажите пожалуйста, как это реализовать?
  2. mialord
    Offline

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

    Регистрация:
    31 июл 2009
    Сообщения:
    5.398
    Симпатии:
    40
    Баллы:
    54
    Здраствуйте!
    Может быть есть путь поизворотливей, но я бы добавил так.
    Код:
    ВЫБОР
    КОГДА НЕ ЕСТЬNULL(ВЫРАЗИТЬ(<Поле> КАК Число)) ТОГДА "ЧИСЛО"
    ИНАЧЕ НЕ ЕСТЬNULL(ВЫРАЗИТЬ(<Поле> КАК Справочник.Контрагент)) ТОГДА "СправочникКогтрагент"
    КОНЕЦ КАК Тип
    
    Что-то вроде этого, можно и дальше продолжить типы перебирать
  3. TopicStarter Overlay
    [GIGA]DEDUSHKA
    Offline

    [GIGA]DEDUSHKA Опытный в 1С

    Регистрация:
    7 мар 2008
    Сообщения:
    167
    Симпатии:
    0
    Баллы:
    26
    А если скажем у меня тип строка имеет значение 2. Сработает ли ВЫРАЗИТЬ ... КАК ЧИСЛО?
    А елси скажем у меня тип число иммет какое-нить значение. Сработает ли ВЫРАЗИТЬ ... КАК БУЛЕВО?
    и т.п. Мне нужна однозначность.
  4. TopicStarter Overlay
    [GIGA]DEDUSHKA
    Offline

    [GIGA]DEDUSHKA Опытный в 1С

    Регистрация:
    7 мар 2008
    Сообщения:
    167
    Симпатии:
    0
    Баллы:
    26
    Может есть у кого другие идеи?
  5. x_under
    Offline

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

    Регистрация:
    25 апр 2007
    Сообщения:
    2.576
    Симпатии:
    13
    Баллы:
    29
    Проще обрабатывать значения уже после запроса. Во время обхода.
  6. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    1. В 8.2 в запросе появилась функция ТИПЗНАЧЕНИЯ
    2. Вариант mialord'а годиться, но его лучше так написать
    Код:
    "ВЫБОР
    КОГДА <Поле> ССЫЛКА Справочник.Контрагенты ТОГДА "Контрагенты"
    // ...
    КОНЕЦ КАК Тип"
    
    так будет быстрее работать.
  7. TopicStarter Overlay
    [GIGA]DEDUSHKA
    Offline

    [GIGA]DEDUSHKA Опытный в 1С

    Регистрация:
    7 мар 2008
    Сообщения:
    167
    Симпатии:
    0
    Баллы:
    26
    Другой вопрос из той же темы:
    Мне надо запросом отобрать все свойства объектов, у которых тип значения - строка
    Пишу запрос:
    Код:
    ВЫБРАТЬ
    |	СвойстваОбъектов.ТипЗначения,
    |	СвойстваОбъектов.Ссылка
    |ИЗ
    |	ПланВидовХарактеристик.СвойстваОбъектов КАК СвойстваОбъектов
    
    Теперь надо сделать конструкицю "ГДЕ". Что туда вставить?
    P.S. Глупые вопросы конечно я задаю, просто пытаюсь решить свою проблему, предварительно разобравшись с элементарными вопросами. Сама же проблема значительно шире: у меня есть таблица, где в одной колонке различные типы данных преобразованы в строку (таблица взята из др источников). Мне надо сравнить ее с регистром сведений "Значения свойств объектов" и отобрать только те, значения которых отличаются. И все это хочется сделать одним запросом... Но на это даже не заморачивайтесь. Хотя если есть свежие идеи жду с нетерпением. А так, помогите хотя бы с верхним запросом.
  8. mialord
    Offline

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

    Регистрация:
    31 июл 2009
    Сообщения:
    5.398
    Симпатии:
    40
    Баллы:
    54
    Здраствуйте!
    Первое чему надо научиться при работе с продуктами 1С то искать информацию. Открываем справку и читаем, раздел по запросам указан ниже...
    Посмотреть вложение 3439

    Вложения:

    • 2.png
      2.png
      Размер файла:
      19,2 КБ
      Просмотров:
      338
  9. TopicStarter Overlay
    [GIGA]DEDUSHKA
    Offline

    [GIGA]DEDUSHKA Опытный в 1С

    Регистрация:
    7 мар 2008
    Сообщения:
    167
    Симпатии:
    0
    Баллы:
    26
    Да перечитал я весь хелп по запросам, но там НЕТ описания как работать с типами "ОписаниеТипов" (на самом деле я не знаю, как он называется на языке запросов. Про него нигде не описано).
  10. TopicStarter Overlay
    [GIGA]DEDUSHKA
    Offline

    [GIGA]DEDUSHKA Опытный в 1С

    Регистрация:
    7 мар 2008
    Сообщения:
    167
    Симпатии:
    0
    Баллы:
    26
    Ну хоть кто-нибудь...? Пока вижу выход через функцию ПРЕДСТАВЛЕНИЕ. Но мне кажется, что это не самый удачный вариант
  11. mialord
    Offline

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

    Регистрация:
    31 июл 2009
    Сообщения:
    5.398
    Симпатии:
    40
    Баллы:
    54
    Значит плохо читаете
    Если надо проверить на содержание строки в выборки тогда так
    Код:
    ВЫБРАТЬ
    Номенклатура.Ссылка
    ИЗ
    Справочник.Номенклатура КАК Номенклатура
    ГДЕ
    Номенклатура.НаименованиеПолное ПОДОБНО &НаименованиеПолное
    
    Если надо проверить является ли строкой нулевой длины, тогда так
    Код:
    ВЫБРАТЬ
    Номенклатура.Ссылка
    ИЗ
    Справочник.Номенклатура КАК Номенклатура
    ГДЕ
    (</span<span style='cursor: pointer; color:red' Onclick="window.open('http://www.1c-pro.ru/wiki/index.php/не')">>НЕ (ВЫРАЗИТЬ(Номенклатура.НаименованиеПолное КАК СТРОКА(100))) = "")
    
  12. TopicStarter Overlay
    [GIGA]DEDUSHKA
    Offline

    [GIGA]DEDUSHKA Опытный в 1С

    Регистрация:
    7 мар 2008
    Сообщения:
    167
    Симпатии:
    0
    Баллы:
    26
    mialord, то что вы тут примеры приводите, я и без вас умею делать. Вы на моем конкретном примере сделайте. Это совершенно другая ситуация. В ваших примерах вы работайте над полями определенного типа. В моем случае ... как бы правильно сказать ... мне нужно сработать над полями типа тип.
  13. mialord
    Offline

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

    Регистрация:
    31 июл 2009
    Сообщения:
    5.398
    Симпатии:
    40
    Баллы:
    54
    Над полями типа тип работайте в 8.2 :unsure:
  14. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    А откуда такая задача? В целом - она решается и в 8.1 без проблем...
    Делаете ВТ с определением типов, а дальше уже с ней работает (по условиям) - так будет быстрее, чем в ГДЕ еще раз условия ВЫБОР прописывать

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