Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

При переходе на sql перестал работать поиск в справочнике по наименованию.

При переходе на sql перестал работать поиск в справочнике по наименованию.
Я
   AlexHorsse
 
20.01.19 - 13:21
Приветствую, коллеги!
Перевёл Бухгалтерию 3.0 на клиент-серверный вариант, SQL 64x 2016. Месяц работы, полёт нормальный. И тут надо было воспользоваться своей древней обработочкой на управляемых формах для загрузки из Excell данных в документы поступления. Мелкие файлы по 100-150 наименований пролетают на ура, файлы по 1000 и более строк - процента 2-3 не находит товар в справочнике Номенклатура по наименованию (согласен, не самый лучший способ искать по наименованию, но других данных товара типа кода или артикула контрагент предоставить не может). Глядел отладчиком по конкретному наименованию - не находит. Тут же забиваю строку в поиск справочника - всё находит. Случайно для теста решил воспользоваться файловой БД - всё работает. И целиком файл проглатывает, и по отдельной строке, которую sql версия не находила программно тоже.

Поиск простейший:
        НайденнаяСсылка  = Спр.НайтиПоНаименованию(Наименование);

И так пробовал:
        НайденнаяСсылка  = Спр.НайтиПоНаименованию(Наименование,Истина);


И в запросе пробовал, не отдаёт в sql некоторые товары.
Что это за хрень, господа? Есть идеи? Я всю голову сломал...

Причем, если перезабить в клиент-серверной версии наименование из файла - сразу находит. По началу думал, что чем то прошлись по справочнику и или пробел добавили и табуляции, дык в файловой то работает поиск...

Help, моя в недоумении...
 
 
   palsergeich
 
1 - 20.01.19 - 13:23
Посмотри нет ли оконечных пробелов в наименовании там, где не находит
   AlexHorsse
 
2 - 20.01.19 - 13:33
(1) В некоторых есть, в некоторых нет. И  СокрЛП пробовал. И неточное соотвествие побовал. Да и какая разница - в файловой то работает и так, с пробелами?
   hhhh
 
3 - 20.01.19 - 13:35
(2) В файловой и sql - это две большие разницы. На файловую вообще не смотри.

Верхний и нижний регистр проверял? Регистр совпадает?
   AlexHorsse
 
4 - 20.01.19 - 13:41
(3) Совпадает. Это вообще строки взятые из нашей же БД, в точности. Почему не смотреть? Данные одни и те же, код одинаковый. Единственное деректива #НаСервере выполняется в sql реально на сервере. Так в чем прикол?...
   hhhh
 
5 - 20.01.19 - 13:43
В файловой и в sql все разное. И сортировка разная и поиск. Всё другое.
   Джинн
 
6 - 20.01.19 - 13:46
(4) А Вы в Ворде еще посмотрите и сравните его с клиент-серверной версией 1с. Никакой же разницы нет.
   Василий Алибабаевич
 
7 - 20.01.19 - 13:49
(4) Слетели индексы.
Нужно восстановить индекс полнотекствого поиска если используется. Ну и в режиме ТИИ выполнить переиндексацию.
   palsergeich
 
8 - 20.01.19 - 13:51
(7) Игдекс полнотекстового поиска не используется пр НайтиПоНаименованию
   AlexHorsse
 
9 - 20.01.19 - 14:05
(7) Спасибо. Попробую. Кэш почищу пожалуй ещё серверный.
   ДенисЧ
 
10 - 20.01.19 - 14:20
(4) Попробуй профайлером поймать запрос к скулю на том элементе, что не находится. Посмотри на запрос, попробуй его руками выполнить.
 
 Рекламное место пустует
   AlexHorsse
 
11 - 20.01.19 - 15:02
(5) Согласен. Но язык программирования то один. Как ещё можно организовать поиск на клиент-серверном варианте, кроме как запросом или по объекту типа справочник? Подход то к этому элементарному действию тоже один. Нет, можно, конечно, писать запрос напрямую к sql базе, но зачем тогда вообще 1с?..
   Йохохо
 
12 - 20.01.19 - 15:05
спецсимволы мб какие
   ДенисЧ
 
13 - 20.01.19 - 15:06
(11) ты сначала (10) сделай, потом на зеркало пенять будешь
   AlexHorsse
 
14 - 20.01.19 - 15:22
(13) Я, если честно, не понимаю, как это сделать.
   AlexHorsse
 
15 - 20.01.19 - 15:33
(7) Ничего не помогло.
Хрен знает, что делать...
   AlexHorsse
 
16 - 20.01.19 - 15:34
Нет, я ещё понимаю, еслиб ничего не искалось, но тут же 98% элементов находится. А в файловой все 100, значит в реквизите Наименование значение содержится верное...
   hhhh
 
17 - 20.01.19 - 16:13
(16) ну давайте уже примеры этих наименований. Чего вы тянете?
   AlexHorsse
 
18 - 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)
   AlexHorsse
 
19 - 20.01.19 - 16:18
(10) Пожалуйста, можно подробней что нужно сделать и для чего? Заранее спасибо за ответ.
   oslokot
 
20 - 20.01.19 - 16:23
(0) чем читаете файл? через эксель или через табличный док?

может на сервере кривой эксель?
   hhhh
 
21 - 20.01.19 - 16:24
(19)  скорее всего эксели разные у вас на этих двух компах. Попробуйте в процедуре на клиенте грузить
   AlexHorsse
 
22 - 20.01.19 - 16:26
(20) ADODB. Да я уже где только не читал.
(21) Комп один. rdp. Всё делается на сервере.
   oslokot
 
23 - 20.01.19 - 16:29
(22) [Всё делается на сервере.]
1с сервер и сервер рдп физически на одной машине?
   AlexHorsse
 
24 - 20.01.19 - 16:30
(23) Да.
   hhhh
 
25 - 20.01.19 - 16:33
Ну сравните в отладчика эти две строки, наименование и то, что загружено из Эксель, прямо посимвольно. Это же легко, задача для первого класса, чего так тушуетесь? Задача-то элементарная.
   hhhh
 
26 - 20.01.19 - 16:37
Выберите только где наименование по короче. А то там по 70 символов у вас, замучаетесь сравнивать. Лучше КодСимвола() смотреть, чтобы сразу увидеть разницу.
   AlexHorsse
 
27 - 20.01.19 - 16:37
(25) Ну хорошо, сравню. Вне зависимости от результата - почему на файловой базе находит? Даже если они разные будут - на файловой базе как находит?
   hhhh
 
28 - 20.01.19 - 16:44
Объяснили ведь, в файловой все по-другому.Что вы себе вбилив голову, что должно совпадать. Наоборот, удивительно, что увас целых 98% совпало.
   Cyberhawk
 
29 - 20.01.19 - 16:47
Казалось бы, в чем проблема, имея устойчивый способ воспроизведения, сравнить
   AlexHorsse
 
30 - 20.01.19 - 16:52
(28) Честно, не пойму. Когда переводим базу из файлового в клиент серверный - меняются символьные значения строковых реквизитов?
   oslokot
 
31 - 20.01.19 - 16:56
возможно в наименованиях встречаются запрещенные символы которые надо экранировать
   AlexHorsse
 
32 - 20.01.19 - 17:00
Попробую чуть позже сравнить посимвольно.
   Йохохо
 
33 - 20.01.19 - 17:01
(32) просто скопируй из 18 поста
 
 


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует