|
Поиск по вхождению в строке | ☑ | ||
---|---|---|---|---|
0
yyyuuu
31.08.18
✎
15:39
|
Здравствуйте друзья, столкнулся с задачей.
Есть некая таблица значений, содержащая данные. Читаю ее запросом, в ней есть поле "Наименование" это может быть и компутер и системный блок и вдеокарта и роутер и принтер. Для всех этих элементов есть специальный справочник, куда по категориям надо все запхать. Как мне определить по вхождению в строку, что куда пихать. Условие то напишу не сложно будет определить зная точное вхождение. ТЗ = Новый ТаблицаЗначений; ТЗ.Колонки.Добавить("Сотрудники", Новый ОписаниеТипов("СправочникСсылка.Сотрудники")); Запрос1 = Новый Запрос; Запрос1.Текст = "ВЫБРАТЬ | Сотрудники.Код, | Сотрудники.Наименование |ИЗ | Справочник.Сотрудники КАК Сотрудники"; РезультатЗапроса = Запрос1.Выполнить(); ТЗ = РезультатЗапроса.Выгрузить(ОбходРезультатаЗапроса.Прямой); //////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////// //******************************************************************************// Запрос = Новый Запрос; Запрос.УстановитьПараметр("ТЗ", ТЗ); Запрос.Текст = "ВЫБРАТЬ | ТЗ.Код, | ТЗ.Наименование |ПОМЕСТИТЬ Таблица |ИЗ | &ТЗ КАК ТЗ |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | Таблица.Код, | Таблица.Наименование |ИЗ | Таблица КАК Таблица"; РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл Если ВыборкаДетальныеЗаписи.Наименование; КонецЦикла; Пока на тесте проверяю, и думаю как сделать. ВыборкаДетальныеЗаписи.Наименование здесь у меня точно наименование "компутер Acer 5232" по условию буду хочу проверять на вхождение "компутер" если подошел запишу в нужную группу. Вторая итерация "Системный блок" проверяю на "Компутер" = ложь иначе ..... доходим до "Системный" условие и в нужную группу. Есть у кого нибудь мысли или опыт реализации. Я что то не нашел, вообще в 1с проверки вхождения в строку |
|||
1
Lexey_
31.08.18
✎
15:43
|
(0) в запросе ПОДОБНО, в коде СтрНайти()
|
|||
2
yyyuuu
31.08.18
✎
15:53
|
А вот тут Я честно немного заглох, да тоже хотел сделать подобно. Но вот смотри, запросом выбираю все группы, которые в справочнике. Получаю таблицу значений с группами. В одни запрос могу Я запихать две таблицы значений?
|
|||
3
yyyuuu
31.08.18
✎
15:53
|
(1)
|
|||
4
Lexey_
31.08.18
✎
15:54
|
(2) да
|
|||
5
sitex
naïve
31.08.18
✎
15:57
|
(0) регулярными выражениями в запросе
|
|||
6
yyyuuu
31.08.18
✎
16:03
|
(4)
ТЗ = Новый ТаблицаЗначений; ТЗ.Колонки.Добавить("Сотрудники", Новый ОписаниеТипов("СправочникСсылка.Сотрудники")); ТЗ_Группы = Новый ТаблицаЗначений; Запрос1 = Новый Запрос; Запрос1.Текст = "ВЫБРАТЬ | Сотрудники.Код, | Сотрудники.Наименование |ИЗ | Справочник.Сотрудники КАК Сотрудники"; РезультатЗапроса = Запрос1.Выполнить(); ТЗ = РезультатЗапроса.Выгрузить(ОбходРезультатаЗапроса.Прямой); Запрос2 = Новый Запрос; Запрос2.Текст = "ВЫБРАТЬ | Тест.Родитель, | Тест.Наименование |ИЗ | Справочник.Тест КАК Тест"; РезультатЗапроса = Запрос2.Выполнить(); ТЗ_Группы = РезультатЗапроса.Выгрузить(ОбходРезультатаЗапроса.Прямой); //////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////// Запрос3 = Новый Запрос; Запрос3.УстановитьПараметр("ТЗ", ТЗ); Запрос3.УстановитьПараметр("ТЗ_Группы", ТЗ_Группы); Запрос3.Текст = "ВЫБРАТЬ | ТЗ.Код, | ТЗ.Наименование, | ТЗ_Группы.Наименование1 |ПОМЕСТИТЬ Таблица |ИЗ | &ТЗ КАК ТЗ, | &ТЗ_Группы КАК ТЗ_Группы |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | Таблица.Код, | Таблица.Наименование, | Таблица.Наименование1 |ИЗ | Таблица КАК Таблица"; РезультатЗапроса = Запрос3.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл КонецЦикла; Верно мысль идет? |
|||
7
Lexey_
31.08.18
✎
16:05
|
(6) помести каждую ТЗ в свою временную таблицу
|
|||
8
yyyuuu
31.08.18
✎
16:18
|
(7) Теперь можно соединять?
Запрос1 = Новый Запрос; Запрос1.Текст = "ВЫБРАТЬ | Сотрудники.Код, | Сотрудники.Наименование |Поместить ВТ_ТаблицаГрупп |ИЗ | Справочник.Сотрудники КАК Сотрудники"; МенеджерВТ = Новый МенеджерВременныхТаблиц; Запрос1.МенеджерВременныхТаблиц = МенеджерВТ; РезультатЗапроса = Запрос1.Выполнить(); //ТЗ = РезультатЗапроса.Выгрузить(ОбходРезультатаЗапроса.Прямой); Запрос2 = Новый Запрос; Запрос2.Текст = "ВЫБРАТЬ | Тест.Родитель, | Тест.Наименование |Поместить ВТ_ВремТабл |ИЗ | Справочник.Тест КАК Тест"; МенеджерВТ1 = Новый МенеджерВременныхТаблиц; Запрос2.МенеджерВременныхТаблиц = МенеджерВТ1; РезультатЗапроса = Запрос2.Выполнить(); |
|||
9
Lexey_
31.08.18
✎
16:21
|
(8) достаточно одного запроса
|
|||
10
Lexey_
31.08.18
✎
16:23
|
(8) хотя тут ни одной ТЗ нет
|
|||
11
yyyuuu
31.08.18
✎
16:25
|
(10) Что не так делаю, дай подсказку. Что то сижу сообразить вообще не могу.
|
|||
12
yyyuuu
31.08.18
✎
16:27
|
А вообще постой
|
|||
13
yyyuuu
31.08.18
✎
16:30
|
(10) Как говорить идем от печки.
1)Получаем ТЗ Запрос1 = Новый Запрос; Запрос1.Текст = "ВЫБРАТЬ | Сотрудники.Код, | Сотрудники.Наименование |ИЗ | Справочник.Сотрудники КАК Сотрудники"; РезультатЗапроса = Запрос1.Выполнить(); ТЗ = РезультатЗапроса.Выгрузить(ОбходРезультатаЗапроса.Прямой); Получили.Его во временную таблицу запихиваем? |
|||
14
Lexey_
31.08.18
✎
16:31
|
(13) зачем выгружаешь в ТЗ? Сразу в запросе во временную таблицу помещай
|
|||
15
yyyuuu
31.08.18
✎
16:35
|
Запрос1 = Новый Запрос;
Запрос1.Текст = "ВЫБРАТЬ | Сотрудники.Код, | Сотрудники.Наименование |ПОМЕСТИТЬ Табл_Зап1 |ИЗ | Справочник.Сотрудники КАК Сотрудники"; менеджерВТ = Новый МенеджерВременныхТаблиц; Запрос1.МенеджерВременныхТаблиц = МенеджерВТ; // РезультатЗапроса = Запрос1.Выполнить(); Разобрались. Шаг Второй.. |
|||
16
yyyuuu
31.08.18
✎
16:59
|
Запрос1 = Новый Запрос;
Запрос1.Текст = "ВЫБРАТЬ | Сотрудники.Код, | Сотрудники.Наименование |ПОМЕСТИТЬ Табл_Зап1 |ИЗ | Справочник.Сотрудники КАК Сотрудники"; менеджерВТ1 = Новый МенеджерВременныхТаблиц; Запрос1.МенеджерВременныхТаблиц = МенеджерВТ1; РезультатЗапроса = Запрос1.Выполнить(); //ТЗ = РезультатЗапроса.Выгрузить(ОбходРезультатаЗапроса.Прямой); Запрос2 = Новый Запрос; Запрос2.Текст = "ВЫБРАТЬ | Тест.Родитель, | Тест.Наименование, | Табл_Зап1.Код, | Табл_Зап1.Наименование КАК Наименование1 |ПОМЕСТИТЬ ВТ_ВремТабл |ИЗ | Справочник.Тест КАК Тест, | Табл_Зап1 КАК Табл_Зап1"; Запрос2.МенеджерВременныхТаблиц = МенеджерВТ1; РезультатЗапроса = Запрос2.Выполнить().Выгрузить(); Хотя бы алгоритм действий что требуется подскажите. А то заглох |
|||
17
yyyuuu
31.08.18
✎
17:10
|
На сколько Я понял. Получаем ТЗ
1) Загружаем во временную таблицу из Тч Наименования 2) Второй запрос загружаем из справочника группы тоже во временную таблицу 3)Соеденяем. По условию подобно отбираем нужное |
|||
18
yyyuuu
31.08.18
✎
17:33
|
Буду благодарен очень, даже за просто алгоритм действий. Пока в голове сам сообразить не могу
|
|||
19
yyyuuu
01.09.18
✎
01:59
|
Ладно, сам буду разруливать)
|
|||
20
yyyuuu
01.09.18
✎
05:04
|
Хэлпа нужна. Где косяк?
В консоле все по красоте. ВЫБРАТЬ Номенклатура.Наименование, Тест.Наименование КАК Наименование1 ИЗ Справочник.Номенклатура КАК Номенклатура ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Тест КАК Тест ПО (Номенклатура.Наименование ПОДОБНО "%" + Тест.Наименование + "%") В коде ноль на массу) Запрос = Новый Запрос; //МенеджерВТ = Новый МенеджерВременныхТаблиц; //Запрос.МенеджерВременныхТаблиц = МенеджерВТ; Запрос.Текст = "ВЫБРАТЬ | Номенклатура.Код, | Номенклатура.Наименование |ИЗ | Справочник.Номенклатура КАК Номенклатура"; РезультатЗапроса = Запрос.Выполнить(); ТЗ = РезультатЗапроса.Выгрузить(ОбходРезультатаЗапроса.Прямой); Запрос2 = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ТЗ.Наименование КАК Наименование |ПОМЕСТИТЬ ТЗ |ИЗ | &ТЗ КАК ТЗ |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | Тест.Наименование, | ТЗ.Наименование КАК Наименование1 |ИЗ | Справочник.Тест КАК Тест | ВНУТРЕННЕЕ СОЕДИНЕНИЕ ТЗ КАК ТЗ | ПО (Тест.Наименование ПОДОБНО ""%"" + ТЗ.Наименование + ""%"")"; Запрос.УстановитьПараметр("ТЗ", ТЗ); Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); Пока Выборка.Следующий() Цикл КонецЦикла; |
|||
21
rphosts
01.09.18
✎
05:17
|
хрень какая-то....
делай так: вот у тебя 1 таблица и там названия. Заведи вторую таблицу где 2 поля: код (уникальный) и подстрока для поиска, подстроки они типа как будут проверяться в порядке роста кода, т.е. если там есть 1-системник 2-ассер то системник ассер должен пройти по категории 1 запрос: соединяешь слева все записи 1 таблицы + Таблица2.Код по условию Подобно "%"+Таблица2.Наименование+"%" - кладешь во временную Из временной отбираешь всё, группируя по требуемым записям 1 таблица и агрегатная функция Минимум от Таблица2.Код. Профит! |
|||
22
yyyuuu
01.09.18
✎
07:11
|
(21) Спасибо друг, Я попробую. Будь если что на связи, подсраховать) вдруг не разрулю. Спасибо за алгоритм есть от чего отталкиваться.
Только все цепляется по наименованию, код вообще не как не фигурирует) Есть некая таблица значений. В ней есть поле "Наименование" Есть справочник, где по группам разбиты материальные ценности. В таблице значений все материальные ценности. Завожу запрос который мне находит все эти группы. По подобно смотрю из 1 таблице по наименованию сравниваю со второй. А почему слева?) |
|||
23
Мимохожий Однако
01.09.18
✎
07:42
|
(22) Описание твоего задание-это каша из описания попыток что-то сделать....ИМХО.
Опиши еще раз, что ты хочешь получить без описания попыток и почему выбрал для поиска именно ТЗ. В подобных случаях бывает полезно выписать некую пробную табличку на листок и подумать, что и откуда брать. Как получаешь эту ТЗ? А главное зачем и откуда берешь данные? Возможно, и ТЗ не нужна и есть другие инструменты. .. В чём главная цель? |
|||
24
yyyuuu
01.09.18
✎
10:08
|
(23)
При загрузке в 1 из эксель Я получаю ТЗ. Мне удобно так работать, по формам распихивать, получать от туда значения. По этому Я иду таким путём. Задача стоит так, и ТЗ мне нужно отобрать элементы и загрузить их в справочник, в справочнике иерархичный в нем имеются группы. По подобию в слове элемента из ТЗ определить к какой группе от относится. Я вижу это так, получаем ТЗ, загружаем во временную таблицу, запросом получаем все группы справочника в который загружамем. По подобию выбираем какой элемент куда должен быть пойти, дальше условия и какой то код если .....если и запись |
|||
25
yyyuuu
01.09.18
✎
10:14
|
(22) каша потому что запутался сам уже, в голове логически собрать не могу алгоритм решения данной задачи
|
|||
26
hhhh
01.09.18
✎
10:49
|
(24) может сразу в ТЗ загрузить элементы номенклатуры отдельной колонкой. чтобы дальше уже работать со ссылками и с наименованиями не связываться.
|
|||
27
yyyuuu
01.09.18
✎
13:44
|
(26) Можно но выгрузка идет и разных баз. Если только жестко присвоит каждому свои группу при выгрузке. Но мне кажется такое себе. Я могу сделать некрасиво, брать из ТЗ мои элементы циклом пробегать и каждый сравнивать с запросом где группы. Но это не оптимально с точки зрения, и нечитаемо совсем будет. Да и действий больше будет обходить. Я хочу сделать по нормальному это. В голове вообще каша, как что и к чему. Сейчас возьму лист, нарисую все по блокам раскидаю. Расскажу свои мысли)
|
|||
28
rphosts
01.09.18
✎
14:58
|
(22) слева, потому что могут быть такие позиции у которых не найдётся ни 1 подстрока
|
|||
29
yyyuuu
02.09.18
✎
03:26
|
Ребята пока все компоную в голове). Скоро думаю какие то мысли опишу
(28) Тут ты прав, если не нашлось вдруг можно в свою группу определить тогда это значение. Спасибо). Пока над всем думаю. Алгоритм вроде собирается. |
|||
30
Злопчинский
02.09.18
✎
12:06
|
Не взлетит, потому что ключевое слово для помещения в группу может быть частью слова и по итогу позиция вообще попадет не в ту папку, Например
Телевизор Компутер 43 Ищешь подобно "компутер" и телевизор у тебя идет в компутеры |
|||
31
yyyuuu
03.09.18
✎
05:45
|
(30) Тогда каким образом можно сделать?
|
|||
32
yyyuuu
03.09.18
✎
07:05
|
Процедура ЗагрузкаНаСервере(Таблица)
// Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Таблица.ПолнНаименование КАК Наименование |ПОМЕСТИТЬ Таблица |ИЗ | &Таблица КАК Таблица |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | itilprofТипыАктивов.Наименование, | Таблица.Наименование КАК Наименование1 |ИЗ | Справочник.itilprofТипыАктивов КАК itilprofТипыАктивов | ЛЕВОЕ СОЕДИНЕНИЕ Таблица КАК Таблица | ПО (itilprofТипыАктивов.Наименование Подобно ""%"" + Таблица.Наименование + ""%"")"; Запрос.УстановитьПараметр("Таблица", Таблица); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл КонецЦикла; Ошибка {ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(244)}: Ошибка при вызове метода контекста (Выполнить) РезультатЗапроса = Запрос.Выполнить(); по причине: {(15, 54)}: Неверные параметры "+" ПО (itilprofТипыАктивов.Наименование Подобно "%" + <<?>>Таблица.Наименование) |
|||
33
hhhh
03.09.18
✎
07:18
|
"ВЫБРАТЬ
| ПОДСТРОКА(Таблица.ПолнНаименование, 1, 200) КАК Наименование |
|||
34
yyyuuu
03.09.18
✎
09:49
|
Итератор = 0;
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ПОДСТРОКА(Таблица.ПолнНаименование, 1, 200) КАК Наименование |ПОМЕСТИТЬ Таблица |ИЗ | &Таблица КАК Таблица |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | itilprofТипыАктивов.Наименование, | Таблица.Наименование КАК Наименование1 |ИЗ | Справочник.itilprofТипыАктивов КАК itilprofТипыАктивов | ЛЕВОЕ СОЕДИНЕНИЕ Таблица КАК Таблица | ПО (itilprofТипыАктивов.Наименование ПОДОБНО ""%"" + Таблица.Наименование + ""%"")"; Запрос.УстановитьПараметр("Таблица", Таблица); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл Если ВыборкаДетальныеЗаписи.Наименование1 <> Null Тогда Итератор = Итератор + 1; КонецЕсли; КонецЦикла; Сообщить(Итератор); В такой констурции вообще не работает. 1. У меня в таблице значений в поле Наименование 92 элемента со словом компьютер 2. Я специально создал в справочнике с которым соедения группу Компьютер попало полчему то только 16 и то где как то странно. Может быть Я чего не понимаю. Или так запросом не сделать? Придется циклами и кучей итераций обходить? |
|||
35
hhhh
03.09.18
✎
09:52
|
(34) группа "Компутер" же ищем. Причем здесь "Компьютер" ?
|
|||
36
yyyuuu
03.09.18
✎
10:01
|
(35) извините пожалуйста, это Я так вырожаюсь) для меня это одно слово). Ну Я создал и группу "Комп" и "Компьютер"
|
|||
37
hhhh
03.09.18
✎
10:06
|
(36) сделайте регистр сведений где 2 поля - наименование актива и группа номенклатуры. По нему и устанавливайте соответствие
|
|||
38
yyyuuu
03.09.18
✎
10:45
|
Процедура ЗагрузкаНаСервере(Таблица)
МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц; Запрос = Новый Запрос; Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц; Запрос.Текст = "Выбрать | ВременаяТаблица.Наименование |ПОМЕСТИТЬ ВременаяТаблица |ИЗ | &Таблица КАК ВременаяТаблица"; Запрос.УстановитьПараметр("Таблица", Таблица); //РезультатЗапроса = Запрос.Выполнить(); Запрос2 = Новый Запрос; Запрос2.Текст = "ВЫБРАТЬ | ВременаяТаблица.Наименование |ИЗ | ВременаяТаблица КАК ВременаяТаблица"; Запрос2.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц; Выборка = Запрос2.Выполнить().Выбрать(); Что то Я начинаю подозревать поблема совсем в другом. При выполнении "Наименование Ошибка чтения значения " Хотя параметр заполнен и имеет значения, параметр функции |
|||
39
yyyuuu
03.09.18
✎
10:49
|
Можно конечно с этим не мучиться и сделать простым перебором. Но Я хочу разобраться с темой и понять где у меня ошибки!
|
|||
40
hhhh
03.09.18
✎
10:53
|
(39) эта другая уже ошибка, тупо когда программист плюет на
Выборка.Следующий() вот нет хочет он эту строчку писать. |
|||
41
yyyuuu
04.09.18
✎
04:22
|
||||
42
yyyuuu
04.09.18
✎
05:44
|
МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Запрос = Новый Запрос; Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц; Запрос.Текст = "ВЫБРАТЬ | ПОДСТРОКА(Таблица.Наименование,1,200) КАК Наименование |ПОМЕСТИТЬ ВременнаяТаблица |ИЗ | &Таблица КАК Таблица | |ИНДЕКСИРОВАТЬ ПО | Наименование"; Запрос.УстановитьПараметр("Таблица", Таблица); РезультатЗапроса = Запрос.Выполнить(); Запрос2 = Новый Запрос; Запрос2.Текст = "ВЫБРАТЬ | ПОДСТРОКА(ВременнаяТаблица.Наименование, 1, 200) КАК Поле1 |ИЗ | Справочник.itilprofТипыАктивов КАК itilprofТипыАктивов, | ВременнаяТаблица КАК ВременнаяТаблица"; Запрос2.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц; Выборка = Запрос2.Выполнить().Выбрать(); Итератор = 0; Пока Выборка.Следующий() Цикл // Итератор = Итератор + 1; Сообщить(Итератор); // КонецЦикла; В таблице значений 94 элемента. Если Я их перебераю то они херачат по кругу вместо 94, херачит до 3 478. |
|||
43
catena
04.09.18
✎
06:13
|
(42)
|ИЗ | Справочник.itilprofТипыАктивов КАК itilprofТипыАктивов, | ВременнаяТаблица КАК ВременнаяТаблица"; Это кросс-соединение, элементы первой таблицы умножаются на элементы второй. Это еще повезло, что всего до 3000 дошло, таблички маленькие. |
|||
44
yyyuuu
04.09.18
✎
07:48
|
(43) А для какой цели это делается?
|
|||
45
catena
04.09.18
✎
07:55
|
(44)А разве не вы автор этого кода? Понятия не имею, для чего вам это.
|
|||
46
yyyuuu
04.09.18
✎
07:59
|
(45) Автор, хотел удостовериться в правоте своих действий и мыслей)
|
|||
47
yyyuuu
04.09.18
✎
08:06
|
МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Запрос = Новый Запрос; Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц; Запрос.Текст = "ВЫБРАТЬ | ПОДСТРОКА(Таблица.Наименование,1,200) КАК Наименование |ПОМЕСТИТЬ ВременнаяТаблица |ИЗ | &Таблица КАК Таблица | |ИНДЕКСИРОВАТЬ ПО | Наименование"; Запрос.УстановитьПараметр("Таблица", Таблица); РезультатЗапроса = Запрос.Выполнить(); Запрос2 = Новый Запрос; Запрос2.Текст = "ВЫБРАТЬ | ПОДСТРОКА(ВременнаяТаблица.Наименование, 1, 200) КАК Поле1, | itilprofТипыАктивов.Наименование |ИЗ | ВременнаяТаблица КАК ВременнаяТаблица | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.itilprofТипыАктивов КАК itilprofТипыАктивов | ПО (ВременнаяТаблица.Наименование ПОДОБНО ""%"" + itilprofТипыАктивов.Наименование + ""%"")"; Запрос2.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц; Выборка = Запрос2.Выполнить().Выбрать(); Итератор = 0; Пока Выборка.Следующий() Цикл // Итератор = Итератор + 1; Сообщить(Итератор); // КонецЦикла; Кажется Я сделал) Ну вроде работает прям на удивление правильно) Я молодец) |
|||
48
yyyuuu
04.09.18
✎
09:40
|
Сразу извиняюсь немного за не в тему вопрос. Но, можно ли использовато ПОДОБНО в такой конструкции. В данный момент не работает)
ВЫБРАТЬ ВЫБОР itilprofТипыАктивов.Наименование КОГДА itilprofТипыАктивов.Наименование ПОДОБНО "%" + "Тел" + "%" ТОГДА "1НеТелефон" ИНАЧЕ itilprofТипыАктивов.Наименование КОНЕЦ КАК Поле1 ИЗ Справочник.itilprofТипыАктивов КАК itilprofТипыАктивов |
|||
49
yyyuuu
05.09.18
✎
03:06
|
Запрос.Текст = "ВЫБРАТЬ
|ВЫБОР | КОГДА ПОДСТРОКА(Таблица.Наименование, 1, 200) ПОДОБНО ""Компьютер%"" | ТОГДА ""Системный блок"" + ПОДСТРОКА(Таблица.Наименование, 10, 200) | ИНАЧЕ ПОДСТРОКА(Таблица.Наименование, 1, 200) |КОНЕЦ КАК наименование | |ПОМЕСТИТЬ ВременнаяТаблица |ИЗ | &Таблица КАК Таблица | |ИНДЕКСИРОВАТЬ ПО | Наименование"; |
|||
50
yyyuuu
05.09.18
✎
03:07
|
Разрулил если кому интересно, отсупление от темы конечно. Можно было создать новую, вдруг кому нибудь поможет, когда нибудь
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |