Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
18 Дек 2017, 21:46
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Прочитать строку по словам из запроса  (Прочитано 2069 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Greiv

  • *
  • Сообщений: 37
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-07-09
  • Сайт: 
  • Профессия: Ученик 1С
Есть запрос
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| СписокТеррористов.ФИО
|ИЗ
| Справочник.СписокТеррористов КАК СписокТеррористов
|ГДЕ
| СписокТеррористов.ФИО ПОДОБНО &Имя
| И СписокТеррористов.ФИО ПОДОБНО &Фамилия
| И СписокТеррористов.ФИО ПОДОБНО &Отчество";
Так вот строка ФИО в справочнике имеет в себе очень длинную строку, в этой же строке записано куча текста через пробел, мне из этой строки требуется только первые 3 слова это и есть Фамилия Имя и Отчество, по ним нужно провести сличение, только вот возникает вопрос, как прочитать первые 3 слова в виде 1оеСлово=Имя, 2оеСлово = Фамилия, 3иеСлово = Отчество?


Оффлайн vitasw

  • *****
  • Сообщений: 2575
  • РЕПУТАЦИЯ: 311
  • КПД: 12%
  • Регистрация: 2015-02-10
  • Сайт: 
  • Профессия: Программист 1С
Боюсь запросом в таком варианте организации данных - не получится. Добавляйте 3 новых реквизита в справочник. заполняйте и ищите по ним.

Оффлайн Greiv

  • *
  • Сообщений: 37
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-07-09
  • Сайт: 
  • Профессия: Ученик 1С
Невозможно, так как этот справочник с которым производится сличение заполняется загрузкой из dbf, там более 10000 записей, решение найдено следующее.
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| СписокТеррористов.ФИО,
| СписокТеррористов.Ссылка
|ИЗ
| Справочник.СписокТеррористов КАК СписокТеррористов
|ГДЕ
| СписокТеррористов.ФИО ПОДОБНО &Имя
| И СписокТеррористов.ФИО ПОДОБНО &Фамилия
| И СписокТеррористов.ФИО ПОДОБНО &Отчество";

Запрос.УстановитьПараметр("Имя", Запись.Имя+"%");
Запрос.УстановитьПараметр("Отчество", Запись.Отчество+"%");
Запрос.УстановитьПараметр("Фамилия", Запись.Фамилия+"%");

Оффлайн has

  • Модератор
  • *****
  • Сообщений: 1308
  • РЕПУТАЦИЯ: 285
  • КПД: 22%
  • Регистрация: 2011-01-28
  • Сайт: 
  • Профессия: Программист 1С
Тогда уж так лучше, вдруг строка не будет начинаться с ФИО, а ФИО будет в середине
    Запрос.УстановитьПараметр("Имя",         "%"+Запись.Имя+"%");
    Запрос.УстановитьПараметр("Отчество",     "%"+Запись.Отчество+"%");
    Запрос.УстановитьПараметр("Фамилия",  "%"+Запись.Фамилия+"%");

Оффлайн Greiv

  • *
  • Сообщений: 37
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-07-09
  • Сайт: 
  • Профессия: Ученик 1С
Тогда уж так лучше, вдруг строка не будет начинаться с ФИО, а ФИО будет в середине
    Запрос.УстановитьПараметр("Имя",         "%"+Запись.Имя+"%");
    Запрос.УстановитьПараметр("Отчество",     "%"+Запись.Отчество+"%");
    Запрос.УстановитьПараметр("Фамилия",  "%"+Запись.Фамилия+"%");

Нет не лучше, потому что бывает фамилия находится внутри имени, или внутри другой фамилии, а мне этого не нужно так как начинает вываливать кучу левых людей, нужно чтобы чётко сначала искал, поэтому спереди процент был убран. Не важно откуда начинается строка просто ищется по 3 параметрам можно в поле имя забить фамилию и всё ровно найдёт, меня такой расклад устраивает, человеку всё ровно по вывалевшемуся списку придётся просматривать данных персон.

Онлайн LexaK

  • *****
  • Сообщений: 1268
  • РЕПУТАЦИЯ: 347
  • КПД: 27%
  • Регистрация: 2012-05-16
  • Сайт: 
  • Профессия: Программист 1С
 |ГДЕ
        |    СписокТеррористов.ФИО ПОДОБНО &Имя
        |    И СписокТеррористов.ФИО ПОДОБНО &Фамилия
        |    И СписокТеррористов.ФИО ПОДОБНО &Отчество";

    Запрос.УстановитьПараметр("Имя",         Запись.Имя+"%");
    Запрос.УстановитьПараметр("Отчество",     Запись.Отчество+"%");
    Запрос.УстановитьПараметр("Фамилия",     Запись.Фамилия+"%");

Это условие не будет работать!
если только: Не (Имя "подобно" Отчество "подобно" Фамилия, в любых сочетаниях)

если у вас точно в начале строки: Фамилия Имя Отчество (через пробел),
тогда попробуйте так

 |ГДЕ
        |    СписокТеррористов.ФИО ПОДОБНО &ФИО

Запрос.УстановитьПараметр("ФИО", Запись.Фамилия + " " + Запись.Имя + " " + Запись.Отчество+" %");

Помогло? - Нажми СПАСИБО!!!
                       :)

Оффлайн has

  • Модератор
  • *****
  • Сообщений: 1308
  • РЕПУТАЦИЯ: 285
  • КПД: 22%
  • Регистрация: 2011-01-28
  • Сайт: 
  • Профессия: Программист 1С
LexaK, ИОФ может же тоже быть.
Мне кажется тут через соединение делать надо.
Вот, попробовал на физ лицах, как-то так
ВЫБРАТЬ
ФизЛицаИмя.Ссылка,
ФизЛицаИмя.Представление,
ФизЛицаИмя.Наименование
ИЗ
Справочник.ФизическиеЛица КАК ФизЛицаИмя
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица КАК ФизЛицаФамилия
ПО ФизЛицаИмя.Ссылка = ФизЛицаФамилия.Ссылка
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица КАК ФизЛицаОтчество
ПО ФизЛицаИмя.Ссылка = ФизЛицаОтчество.Ссылка
ГДЕ
ФизЛицаИмя.Наименование ПОДОБНО "%" + &Имя + "%"
И ФизЛицаФамилия.Наименование ПОДОБНО "%" + &Фамилия + "%"
И ФизЛицаОтчество.Наименование ПОДОБНО "%" + &Отчество + "%"

Онлайн LexaK

  • *****
  • Сообщений: 1268
  • РЕПУТАЦИЯ: 347
  • КПД: 27%
  • Регистрация: 2012-05-16
  • Сайт: 
  • Профессия: Программист 1С
has,

если вы в запросе пишите
    ФизЛицаИмя.Наименование ПОДОБНО "%" + &Имя + "%"

два "%" то внутренние соединения не нужны, но здесь получается что части имени будут найдены в любом месте в любом сочетании, что не устраивает автора.
Помогло? - Нажми СПАСИБО!!!
                       :)

Оффлайн has

  • Модератор
  • *****
  • Сообщений: 1308
  • РЕПУТАЦИЯ: 285
  • КПД: 22%
  • Регистрация: 2011-01-28
  • Сайт: 
  • Профессия: Программист 1С
два "%" то внутренние соединения не нужны, но здесь получается что части имени будут найдены в любом месте в любом сочетании, что не устраивает автора.
Это более универсальный вариант получается, в данном случае ищется ссылка, в наименовании которой могут присутствовать имя, фамилия и отчество в любом месте и порядке.


Теги:
 

Из запроса не выводятся значения полей - выводятся пустые значения

Автор Alex1111Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 24
Просмотров: 12289
Последний ответ 14 Июн 2012, 17:44
от Alex1111
"ПОДОБНО" в условие связи запроса

Автор Станиславъ ЗверевъРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 8
Просмотров: 3297
Последний ответ 11 Май 2016, 15:29
от LexaK
"Таблица значений" в результате запроса - 1С

Автор mvk843Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 8
Просмотров: 756
Последний ответ 15 Июн 2017, 07:53
от mvk843
Возможно ли языком запросов без конкатенации текста запроса и без СКД преобразовать строки таблицы в столбцы (колонки) выходной таблицы?

Автор acces969Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 3
Просмотров: 457
Последний ответ 29 Май 2017, 15:29
от alex0402
Ошибка при выполнении запроса - "неоднозначное поле"

Автор Marta_LiРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 14
Просмотров: 11983
Последний ответ 21 Апр 2011, 16:00
от Marta_Li

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
141 Сообщений
AIFrame
73 Сообщений
ilyay ilyay
65 Сообщений
alex0402
52 Сообщений
andron81_81
44 Сообщений
oleg-x
41 Сообщений
MuI_I_Ika MuI_I_Ika
31 Сообщений
BuhRust
31 Сообщений
Golickoff Golickoff
27 Сообщений
alexandr_ll
23 Сообщений

* Кто онлайн

  • Точка Гостей: 349
  • Точка Скрытых: 0
  • Точка Пользователей: 4
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal