8.х Строка содержит в ЗАПРОСЕ

Тема в разделе "Другие решения", создана пользователем LizaVETTA, 15 мар 2016.

  1. TopicStarter Overlay
    LizaVETTA
    Offline

    LizaVETTA Опытный в 1С

    Регистрация:
    14 окт 2015
    Сообщения:
    50
    Симпатии:
    0
    Баллы:
    26
    Подскажите пожалуйста как можно в запросе получить набор строк, содержащих данные, введенные в поле ввода на форме? если можно с примерами
  2. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    Поле ввода - реквизит объекта или формы ?
  3. TopicStarter Overlay
    LizaVETTA
    Offline

    LizaVETTA Опытный в 1С

    Регистрация:
    14 окт 2015
    Сообщения:
    50
    Симпатии:
    0
    Баллы:
    26
    Реквизит формы
    --- Объединение сообщений, 15 мар 2016 ---
    внешней обработки
  4. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    Запрос выполняется на сервере, и ничего не знает про клиента.
  5. TopicStarter Overlay
    LizaVETTA
    Offline

    LizaVETTA Опытный в 1С

    Регистрация:
    14 окт 2015
    Сообщения:
    50
    Симпатии:
    0
    Баллы:
    26
    процедура вызывается на клиенте, сам запрос выполняется на сервере
  6. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    Ну так сервер ничего не знает про клиентские реквизиты:). Тут не запросом нужно, а кодом уже прописывать. Сначала загонять реквизиты формы в объект, и потом обрабатывать.
    РеквизитФормыВЗначение()
  7. TopicStarter Overlay
    LizaVETTA
    Offline

    LizaVETTA Опытный в 1С

    Регистрация:
    14 окт 2015
    Сообщения:
    50
    Симпатии:
    0
    Баллы:
    26
    Пробовала так:
    ВЫБРАТЬ
    RDM_OBJECTS.ID,
    RDM_OBJECTS.DISPLAYNAME КАК DISPLAYNAME
    ИЗ
    Справочник.RDM_OBJECTS КАК RDM_OBJECTS
    ГДЕ
    RDM_OBJECTS.CLASSID = "tKICUtbt01wikEOWmuv4Aa"
    И RDM_OBJECTS.DISPLAYNAME Подобно "%[Лист]%"

    Но так ищет только по заданной строке, т.е. строки со словом "Лист", а нужно что бы вместо лист был параметр, поставить тупо знак & - не решает проблемы. как сделать аналогичный отбор, только с параметром?
    --- Объединение сообщений, 15 мар 2016 ---
    хочу передать значение переменной серверу (введенную строку из поля) и запросу задать такой параметр
  8. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    У вас походу строка не ограниченной длины. Нужно ее сначала привести к определенной длине, только потом что-то с ней делать.
    --- Объединение сообщений, 15 мар 2016 ---
    И в чем проблема поправить
    И RDM_OBJECTS.DISPLAYNAME Подобно "%[Лист]%
    на
    И RDM_OBJECTS.DISPLAYNAME = &ВашПараметрОтбора
  9. TopicStarter Overlay
    LizaVETTA
    Offline

    LizaVETTA Опытный в 1С

    Регистрация:
    14 окт 2015
    Сообщения:
    50
    Симпатии:
    0
    Баллы:
    26
    проблема что он так ищет точное совпадение, а мне нужно, что бы искал СОДЕРЖИТ параметр
    --- Объединение сообщений, 15 мар 2016 ---
    реквизит ввода строки имеет ограничения и в выборке строка тоже ограничена. или я не так вас поняла?
  10. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    Ну а в чем проблема? Передавайте с клиента в процедуру значение реквизита формы - Элементы.Реквизит.Значение - только это на коленке
  11. TopicStarter Overlay
    LizaVETTA
    Offline

    LizaVETTA Опытный в 1С

    Регистрация:
    14 окт 2015
    Сообщения:
    50
    Симпатии:
    0
    Баллы:
    26
    Проблема в том, что нужно, что бы в запросе отбирал строки СОДЕРЖАЩИЕ параметр. в передачи параметра серверу проблем никаких
  12. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    Ну так вы использовали же конструкцию ПОДОБНО, что не получается?
  13. TopicStarter Overlay
    LizaVETTA
    Offline

    LizaVETTA Опытный в 1С

    Регистрация:
    14 окт 2015
    Сообщения:
    50
    Симпатии:
    0
    Баллы:
    26
    не получается получить строки, содержащие значение параметра, не знаю как это прописать.
    мой запрос получает строки, содержащие слово "лист", т.е. могу только получить строки с конкретной строкой, заданной в запросе вручную. без % и ПОДОБНО просто задать параметр - не выход, так отбор осуществляется по точному совпадению, а не по СОДЕРЖИТ!
  14. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    Вам осталось только параметр предварительно подготовить - %ЗначениВашегоПараметра%
    Можно еще запрос "разрезать" и подставить что-то типа такого:
    Код:
    ВЫБРАТЬ
    RDM_OBJECTS.ID,
    RDM_OBJECTS.DISPLAYNAME КАК DISPLAYNAME
    ИЗ
    Справочник.RDM_OBJECTS КАК RDM_OBJECTS
    ГДЕ
    RDM_OBJECTS.CLASSID = "tKICUtbt01wikEOWmuv4Aa"
    И RDM_OBJECTS.DISPLAYNAME Подобно" + Запрос.Текст + "%" + Запрос.Текст + ВашеЗначение + Запрос.Текст+ "%"
    Но это написано на коленке.
  15. TopicStarter Overlay
    LizaVETTA
    Offline

    LizaVETTA Опытный в 1С

    Регистрация:
    14 окт 2015
    Сообщения:
    50
    Симпатии:
    0
    Баллы:
    26
    Впервые сталкиваюсь с таким видом запроса Запрос.Текст - это он должен вернуться на исполнение моего запроса?
    --- Объединение сообщений, 15 мар 2016 ---
    а как его подготовить то? в этом то и весь вопрос(((
    Пробовала :
    "%[&Стр]%"
    "%&Стр%" - не помогает ничего(((( -&Стр- это мой параметр
  16. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    Ну так вы же вначале пишите:
    Запрос = Новый Запрос();
    Запрос.Текст= "Ваш Запрос".
    Вот вам нужно "резать" этот запрос (это строка) и вставлять в него уже нужные данные.
  17. TopicStarter Overlay
    LizaVETTA
    Offline

    LizaVETTA Опытный в 1С

    Регистрация:
    14 окт 2015
    Сообщения:
    50
    Симпатии:
    0
    Баллы:
    26
    а он так будет знак % как строку видить, т.е. как нечто, что должно содержаться в искомых строчках, а назначение % - это любое кол-во любых символов до и после нужной строки(моего параметра)
  18. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    Строка = "Казнить";
    Строка = Строка + " нельзя ";
    Строка = Строка + "помиловать";
    Вот это тоже самое с запросом.
  19. TopicStarter Overlay
    LizaVETTA
    Offline

    LizaVETTA Опытный в 1С

    Регистрация:
    14 окт 2015
    Сообщения:
    50
    Симпатии:
    0
    Баллы:
    26
    Ну так, как я понимаю, вопрос с % так и остается тем, что так он будет считаться строкой
  20. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    % - это символ.
    Строка = "Ваша строка" + "%";

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