![]() |
![]() |
![]() |
|
При переходе на sql перестал работать поиск в справочнике по наименованию. | ☑ | ||
---|---|---|---|---|
0
AlexHorsse
20.01.19
✎
13:21
|
Приветствую, коллеги!
Перевёл Бухгалтерию 3.0 на клиент-серверный вариант, SQL 64x 2016. Месяц работы, полёт нормальный. И тут надо было воспользоваться своей древней обработочкой на управляемых формах для загрузки из Excell данных в документы поступления. Мелкие файлы по 100-150 наименований пролетают на ура, файлы по 1000 и более строк - процента 2-3 не находит товар в справочнике Номенклатура по наименованию (согласен, не самый лучший способ искать по наименованию, но других данных товара типа кода или артикула контрагент предоставить не может). Глядел отладчиком по конкретному наименованию - не находит. Тут же забиваю строку в поиск справочника - всё находит. Случайно для теста решил воспользоваться файловой БД - всё работает. И целиком файл проглатывает, и по отдельной строке, которую sql версия не находила программно тоже. Поиск простейший: НайденнаяСсылка = Спр.НайтиПоНаименованию(Наименование); И так пробовал: НайденнаяСсылка = Спр.НайтиПоНаименованию(Наименование,Истина); И в запросе пробовал, не отдаёт в sql некоторые товары. Что это за хрень, господа? Есть идеи? Я всю голову сломал... Причем, если перезабить в клиент-серверной версии наименование из файла - сразу находит. По началу думал, что чем то прошлись по справочнику и или пробел добавили и табуляции, дык в файловой то работает поиск... Help, моя в недоумении... |
|||
1
palsergeich
20.01.19
✎
13:23
|
Посмотри нет ли оконечных пробелов в наименовании там, где не находит
|
|||
2
AlexHorsse
20.01.19
✎
13:33
|
(1) В некоторых есть, в некоторых нет. И СокрЛП пробовал. И неточное соотвествие побовал. Да и какая разница - в файловой то работает и так, с пробелами?
|
|||
3
hhhh
20.01.19
✎
13:35
|
(2) В файловой и sql - это две большие разницы. На файловую вообще не смотри.
Верхний и нижний регистр проверял? Регистр совпадает? |
|||
4
AlexHorsse
20.01.19
✎
13:41
|
(3) Совпадает. Это вообще строки взятые из нашей же БД, в точности. Почему не смотреть? Данные одни и те же, код одинаковый. Единственное деректива #НаСервере выполняется в sql реально на сервере. Так в чем прикол?...
|
|||
5
hhhh
20.01.19
✎
13:43
|
В файловой и в sql все разное. И сортировка разная и поиск. Всё другое.
|
|||
6
Джинн
20.01.19
✎
13:46
|
(4) А Вы в Ворде еще посмотрите и сравните его с клиент-серверной версией 1с. Никакой же разницы нет.
|
|||
7
Василий Алибабаевич
20.01.19
✎
13:49
|
(4) Слетели индексы.
Нужно восстановить индекс полнотекствого поиска если используется. Ну и в режиме ТИИ выполнить переиндексацию. |
|||
8
palsergeich
20.01.19
✎
13:51
|
(7) Игдекс полнотекстового поиска не используется пр НайтиПоНаименованию
|
|||
9
AlexHorsse
20.01.19
✎
14:05
|
(7) Спасибо. Попробую. Кэш почищу пожалуй ещё серверный.
|
|||
10
ДенисЧ
20.01.19
✎
14:20
|
(4) Попробуй профайлером поймать запрос к скулю на том элементе, что не находится. Посмотри на запрос, попробуй его руками выполнить.
|
|||
11
AlexHorsse
20.01.19
✎
15:02
|
(5) Согласен. Но язык программирования то один. Как ещё можно организовать поиск на клиент-серверном варианте, кроме как запросом или по объекту типа справочник? Подход то к этому элементарному действию тоже один. Нет, можно, конечно, писать запрос напрямую к sql базе, но зачем тогда вообще 1с?..
|
|||
12
Йохохо
20.01.19
✎
15:05
|
спецсимволы мб какие
|
|||
13
ДенисЧ
20.01.19
✎
15:06
|
(11) ты сначала (10) сделай, потом на зеркало пенять будешь
|
|||
14
AlexHorsse
20.01.19
✎
15:22
|
(13) Я, если честно, не понимаю, как это сделать.
|
|||
15
AlexHorsse
20.01.19
✎
15:33
|
(7) Ничего не помогло.
Хрен знает, что делать... |
|||
16
AlexHorsse
20.01.19
✎
15:34
|
Нет, я ещё понимаю, еслиб ничего не искалось, но тут же 98% элементов находится. А в файловой все 100, значит в реквизите Наименование значение содержится верное...
|
|||
17
hhhh
20.01.19
✎
16:13
|
(16) ну давайте уже примеры этих наименований. Чего вы тянете?
|
|||
18
AlexHorsse
20.01.19
✎
16:17
|
(17) Вы считаете в строке наименования может быть дело?
Вот несколько: ПРОКЛАДКА ГБЦ FIAT DOBLO (01-05), PALIO (96-09) ПРОКЛАДКА ГБЦ FORD FOCUS II (05-08), TRANSIT (06-…) РОКЛАДКА ГБЦ HYUNDAI SANTA FE (SM) (00-12), SONATA IV (EF) (98-01) ПРОКЛАДКА ГБЦ OPEL ASTRA G (98-05), CORSA B (93-00) РЕМКОМПЛЕКТ СУППОРТА ТОРМОЗНОГО ЗАДНЕГО HONDA MR-V EXL 5AT(08 -) ODYSSEY EXL 5AT(04-) РЕМКОМПЛЕКТ СУППОРТА ТОРМОЗНОГО ЗАДНЕГО NISSAN G35 SEDAN V36 (06-13) INFINITI M35 Y50 (06-10) |
|||
19
AlexHorsse
20.01.19
✎
16:18
|
(10) Пожалуйста, можно подробней что нужно сделать и для чего? Заранее спасибо за ответ.
|
|||
20
oslokot
20.01.19
✎
16:23
|
(0) чем читаете файл? через эксель или через табличный док?
может на сервере кривой эксель? |
|||
21
hhhh
20.01.19
✎
16:24
|
(19) скорее всего эксели разные у вас на этих двух компах. Попробуйте в процедуре на клиенте грузить
|
|||
22
AlexHorsse
20.01.19
✎
16:26
|
(20) ADODB. Да я уже где только не читал.
(21) Комп один. rdp. Всё делается на сервере. |
|||
23
oslokot
20.01.19
✎
16:29
|
(22) [Всё делается на сервере.]
1с сервер и сервер рдп физически на одной машине? |
|||
24
AlexHorsse
20.01.19
✎
16:30
|
(23) Да.
|
|||
25
hhhh
20.01.19
✎
16:33
|
Ну сравните в отладчика эти две строки, наименование и то, что загружено из Эксель, прямо посимвольно. Это же легко, задача для первого класса, чего так тушуетесь? Задача-то элементарная.
|
|||
26
hhhh
20.01.19
✎
16:37
|
Выберите только где наименование по короче. А то там по 70 символов у вас, замучаетесь сравнивать. Лучше КодСимвола() смотреть, чтобы сразу увидеть разницу.
|
|||
27
AlexHorsse
20.01.19
✎
16:37
|
(25) Ну хорошо, сравню. Вне зависимости от результата - почему на файловой базе находит? Даже если они разные будут - на файловой базе как находит?
|
|||
28
hhhh
20.01.19
✎
16:44
|
Объяснили ведь, в файловой все по-другому.Что вы себе вбилив голову, что должно совпадать. Наоборот, удивительно, что увас целых 98% совпало.
|
|||
29
Cyberhawk
20.01.19
✎
16:47
|
Казалось бы, в чем проблема, имея устойчивый способ воспроизведения, сравнить
|
|||
30
AlexHorsse
20.01.19
✎
16:52
|
(28) Честно, не пойму. Когда переводим базу из файлового в клиент серверный - меняются символьные значения строковых реквизитов?
|
|||
31
oslokot
20.01.19
✎
16:56
|
возможно в наименованиях встречаются запрещенные символы которые надо экранировать
|
|||
32
AlexHorsse
20.01.19
✎
17:00
|
Попробую чуть позже сравнить посимвольно.
|
|||
33
Йохохо
20.01.19
✎
17:01
|
(32) просто скопируй из 18 поста
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |