|
Доработка запроса выборки товаров | ☑ | ||
---|---|---|---|---|
0
Черныйвован
26.12.20
✎
14:45
|
Здравствуйте и с наступающем новым годом! Прошу помощи в непростой для меня задаче: есть модуль по работе с оффлайн оборудованием в типовой конфигурации, суть модуля - загрузить данные из txt файл и сформировать несколько таблиц значений, после запросом найти необходимую номенклатуру по штрихкоду на основании кодов товаров из временной таблицы (полученной из ТЗ (полученной из файла)) и всё это записать в отчет о продажах. Сейчас появилась проблема - Штрихкоды номенклатур (Номенклатур больше миллиона и постоянно обновляется) не совпадают с штрихкодами из файла. Но есть решение, в качестве артикула в номенклатурах записаны те самые коды из файлов в формате восьмизначного числа (00002255, 00000255). Коды из файла же состоят из конечных чисел штрихкода и имеют разную длину (2255, 255)
И вот вопрос как в запросе настроить связь 2 таблиц Товары и Номенклатура если они имеют такую структуру. Наглядная схемка таблиц: https://ibb.co/4F92YLK. Что я пробовал: 1) Выразить как число Артикул, но как оказалось данная функция не работает со строками. 2) Применить сравнение при помощи шаблона ПОДОБНО, но тут опять постигла неудача и каждый раз выборка либо выдавала 0 результатов либо всю существующую номенклатуру. 3) Была идея написать Выражение по удалению лидирующих нулей у артикула, но как его написать для связи я так и не понял. Надеюсь на вашу поддержку и понимание, я лишь начинающий программист и скорее всего не знаю многих аспектов, но задачу мне необходимо решить и хотелось бы её решить без костылей таких как Поменять все штрихкоды, артикулы или переделать логику загрузки из файла. Заранее спасибо! |
|||
1
Ёпрст
26.12.20
✎
16:35
|
(0) где наименование подобно "%255"
|
|||
2
Черныйвован
26.12.20
✎
17:53
|
(1) Попробовал по вашему методу, его уже пробовал применять, но почему то ни чего не выходить, в запросе возвращается null. Может не так что то делаю с произвольным выражением?
|
|||
3
Черныйвован
26.12.20
✎
17:54
|
||||
4
Ёпрст
26.12.20
✎
18:04
|
(3) сделай
Выбрать ""%""+ вт.артикул как хрень И ты все поймешь |
|||
5
Ёпрст
26.12.20
✎
18:06
|
Ну или жди 20 релиз, туда грят alltrim завезли
|
|||
6
Сказочный
26.12.20
✎
18:23
|
Может тебе в "доп реквизит" добавить "код без нулей" и при записи туда записывать код, и в данном запросе этим кодом оперировать? А всей существующей номенклатуры заполнить код один раз.
|
|||
7
Черныйвован
26.12.20
✎
20:46
|
(4) Если сделать "Выбрать""%""+ вт.артикул как хрень", результат понятен и без запроса (%2255,%255,%55,%5) Это просто сложение строк...
Мне хотелось узнать, как в шаблоне функции ПОДОБНО соеденить опереанд "%" с полем вт.артикул... (6) Решение реализуется в типовой конфигурации и не только моя обработка контактирует с справочником номенклатура, снимать Номенклатуру с замка запрещено. Номенклатура постоянно обновляется (Несколько раз в неделю), не угадаешь когда нужно будет заполнять код, кодом без нулей. Проблема пока что не решена. |
|||
8
Ёпрст
26.12.20
✎
23:28
|
(7) так ты в начале сделай как в (4), а потом приходи.
|
|||
9
Ёпрст
27.12.20
✎
00:02
|
Если не доходит, то так:
Выбрать ""!""+тз.артикул+""!"" Как хрень Сымотри во втором запросе и думай над выразить.. |
|||
10
Черныйвован
27.12.20
✎
11:00
|
(9) Понял вашу идею! "Где наименование подобно %255" - не подошло, запрос возвращал несколько строк, а вот "Где наименование подобно %0255" - вот это то что мне нужно было, теперь номенклатура отбирается так как нужно.
Для тех кто не понял уважаемого Ёпрст - он предложил не пытаться соединять операнд "%" с полем ВТ.Артикул, а заранее подготовить поле в предыдущем запросе под шаблон функции ПОДОБНО и использовать в запросе на выборку. Скриншот готового запроса: https://ibb.co/VJc2JWW |
|||
11
Ёпрст
27.12.20
✎
14:17
|
(10) нет.. ты не понял..
Выразить как строка(20) слепит тебе строку в 20 символов, добивая справа пробелы, отсюда у тебя будет Подобно "%255 " ясен пень, такую хрень не найдёт. Всего лишь нужно типизировать исходную табличку как строка, и выкинуть выразить в первом запросе. Всё. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |