Имя: Пароль:
1C
 
шк складской ячейки
0 lamme
 
09.02.21
13:01
УТ11.4.11.106

есть 2 ячейки
1-1-1
1-1-2

по одной формируется ШК = 72166961198103786367022086327282726319  (тсд не читает)
по второй ШК = 302821780460396289896953809403879916315  (тсд читает)

в столбик - чтобы было понятно
72166961198103786367022086327282726319
302821780460396289896953809403879916315

как видно - разница в 1 символ.

пошел смотреть код формирования ШК:

Функция ЧисловойКодПоСсылке(Ссылка) Экспорт
    ШестнадцатиричноеЧисло = СтрЗаменить(Строка(Ссылка.УникальныйИдентификатор()),"-","");
    Возврат ПреобразоватьИзШестнадцатиричнойСистемыСчисленияВДесятичноеЧисло(ШестнадцатиричноеЧисло);
КонецФункции


т.е. на вход подается ссылка на элемент справочника
на выходе - шк в виде набора цифр.

вопрос
при одном подходе - один ШК читает, второй нет
не подскажите почему ?
1 fisher
 
09.02.21
13:07
Что такое "не читает"? Вообще не распознает как штрихкод и не "пикает"?
2 lamme
 
09.02.21
13:09
вот на тсд сообщение
https://c2n.me/4aSvDQF
3 lamme
 
09.02.21
13:10
согласен.
не верно спросил

он его читает
но говорит что - не верный ШК
4 fisher
 
09.02.21
13:11
Ага. Штрихкод распознается. А когда говорит, что "неверный штрихкод"? Когда в базе не находит?
5 lamme
 
09.02.21
13:13
на тсд открывается док перемещение
сначала пикается - откуда.
вот тут и выходит
6 lamme
 
09.02.21
13:15
самого ШК в базе нет же у ячейки - это видно из логики формирования этикекти.

а дальше домыслы  - оно потом преобразуется из ШК в гуид и по гуид - ищет ссылку на ячейку склада
7 mikecool
 
09.02.21
13:17
(6) а чего домысливаешь? нет доступа в отладчик?
8 lamme
 
09.02.21
13:19
(7)
нет доступа к ТСД

но по логике - так оно и есть
потому что иначе чем преобразовать ШК в гуид - и найти объект в базе - нет
9 fisher
 
09.02.21
13:20
(8) А что за ПО на ТСД?
10 hhhh
 
09.02.21
13:20
(5) а где контрольная сумма в вашем ШК. Последний символ в ШК - это контрольная сумма, по предыдущим символам.
11 lamme
 
09.02.21
13:21
(10)
а хз.
я же этот ШК руками не генерирую.

типовая функция в (0) которая из ссылки получает ШК
12 lamme
 
09.02.21
13:23
Функция ПреобразоватьИзШестнадцатиричнойСистемыСчисленияВДесятичноеЧисло(Знач Значение)
    
    Значение = НРег(Значение);
    ДлинаСтроки = СтрДлина(Значение);
    
    Результат = 0;
    Для НомерСимвола = 1 По ДлинаСтроки Цикл
        Результат = Результат * 16 + СтрНайти("0123456789abcdef", Сред(Значение, НомерСимвола, 1)) - 1;
    КонецЦикла;
    
    Возврат Формат(Результат, "ЧГ=0");
    
КонецФункции
13 hhhh
 
09.02.21
13:26
(12) это просто преобразование, чего вы шутите? тут не никакого контрольного символа.
14 lamme
 
09.02.21
13:28
(13)
это типовая функция
которая получает на основании ссылки на элемент справочника - некий набор цифр (который в (0))
потом - на основании этого набора цифр идет печать бумажного варианта
типа такого
https://clip2net.com/s/4aSwX7v
15 lamme
 
09.02.21
13:29
по этой функции генерируются оба ШК
72166961198103786367022086327282726319
302821780460396289896953809403879916315

только один не читается
второй читается
16 Kassern
 
09.02.21
13:30
(2) а вам не кажется, что в ошибке на 16 символов шк а такое ощущение, что нет разделителя и там 2шк слитно?
17 Kassern
 
09.02.21
13:30
(16) *не 16символов ШК
18 Kassern
 
09.02.21
13:31
(0) суффикс какой используется на сканере?
19 lamme
 
09.02.21
13:33
(16)
по цифиркам если идти - то 72166961198103786367022086327282726319

(18) спрошу. пока не знаю
20 lamme
 
09.02.21
13:37
это же вроде Code128 ?
может - другой формат ШК поставить в макете
https://c2n.me/4aSxIE9

?
21 Kassern
 
09.02.21
13:41
(19) чет я тупанул с количеством символов, а сам шк проверяли, в базе есть, на который ругается в (2)?
22 lamme
 
09.02.21
13:41
на этикетке ШК не весь . цифирки обрезаны однако
23 lamme
 
09.02.21
13:42
(21)
в базе нет места-регистра-справочника - где бы этото ШК явно лежал
24 lamme
 
09.02.21
13:42
но есть элемент справочника -который получает такой ШК
25 Kassern
 
09.02.21
13:44
(24) вы можете в отладке глянуть функцию поиска номенклатуры по полученному шк? Судя по скрину он шк получил, но не смог по нему найти нужный элемент в базе
26 Kassern
 
09.02.21
13:45
(24) раз есть кодирования гуида в шк, значит должен быть обратный механизм. Проверьте как он отрабатывает на данном шк из (2)
27 lamme
 
09.02.21
13:47
Функция ПолучитьСсылкуПоШтрихкодуТабличногоДокумента(Штрихкод, Менеджеры = Неопределено) Экспорт
    
    Если Не СтроковыеФункцииКлиентСервер.ТолькоЦифрыВСтроке(Штрихкод, Ложь, Ложь)
        ИЛИ СокрЛП(Штрихкод) = "" Тогда
        Возврат Новый Массив;
    КонецЕсли;
    
    ШтрихкодВШестнадцатиричномВиде = ПреобразоватьДесятичноеЧислоВШестнадцатиричнуюСистемуСчисления(Число(Штрихкод));
    Пока СтрДлина(ШтрихкодВШестнадцатиричномВиде) < 32 Цикл
        ШтрихкодВШестнадцатиричномВиде = "0" + ШтрихкодВШестнадцатиричномВиде;
    КонецЦикла;
    
    Идентификатор =
            Сред(ШтрихкодВШестнадцатиричномВиде, 1,  8)
    + "-" + Сред(ШтрихкодВШестнадцатиричномВиде, 9,  4)
    + "-" + Сред(ШтрихкодВШестнадцатиричномВиде, 13, 4)
    + "-" + Сред(ШтрихкодВШестнадцатиричномВиде, 17, 4)
    + "-" + Сред(ШтрихкодВШестнадцатиричномВиде, 21, 12);
    
    Если СтрДлина(Идентификатор) <> 36 Тогда
        Возврат Новый Массив;
    КонецЕсли;
    
    Если Менеджеры = Неопределено Тогда
        МенеджерыОбъектов = Новый Массив();
        Для Каждого ЭлементМетаданных Из Метаданные.Документы Цикл
            МенеджерыОбъектов.Добавить(Документы[ЭлементМетаданных.Имя]);
        КонецЦикла;
    Иначе
        МенеджерыОбъектов = Новый Массив();
        Для Каждого ПустаяСсылка Из Менеджеры Цикл
            ТипСсылки = ТипЗнч(ПустаяСсылка);
            
            Если Документы.ТипВсеСсылки().СодержитТип(ТипСсылки) Тогда
                МенеджерыОбъектов.Добавить(Документы[ПустаяСсылка.Метаданные().Имя]);
                
            ИначеЕсли Справочники.ТипВсеСсылки().СодержитТип(ТипСсылки) Тогда
                МенеджерыОбъектов.Добавить(Справочники[ПустаяСсылка.Метаданные().Имя]);
                
            ИначеЕсли Задачи.ТипВсеСсылки(ТипСсылки).СодержитТип(ТипСсылки) Тогда
                МенеджерыОбъектов.Добавить(Задачи[ПустаяСсылка.Метаданные().Имя]);
                
            ИначеЕсли БизнесПроцессы.ТипВсеСсылки(ТипСсылки).СодержитТип(ТипСсылки) Тогда
                МенеджерыОбъектов.Добавить(БизнесПроцессы[ПустаяСсылка.Метаданные().Имя]);
                
            ИначеЕсли ПланыВидовХарактеристик.ТипВсеСсылки(ТипСсылки).СодержитТип(ТипСсылки) Тогда
                МенеджерыОбъектов.Добавить(ПланыВидовХарактеристик[ПустаяСсылка.Метаданные().Имя]);
                
            Иначе
                ТекстИсключения = НСтр("ru = 'Ошибка распознавания штрихкода: тип ""%Тип%"" не поддерживается.'");
                ТекстИсключения = СтрЗаменить(ТекстИсключения,"%Тип%",ТипСсылки);
                
                ВызватьИсключение ТекстИсключения;
            КонецЕсли;
            
        КонецЦикла;
    КонецЕсли;
    
    Запрос = Новый Запрос;
    
    МассивСсылок = Новый Массив;
    ПервыйЗапрос = Истина;
    Для Каждого Менеджер Из МенеджерыОбъектов Цикл
        
        Попытка
            Ссылка = Менеджер.ПолучитьСсылку(Новый УникальныйИдентификатор(Идентификатор));
        Исключение
            Продолжить;
        КонецПопытки;
        
        МетаданныеСсылки = Ссылка.Метаданные();
        Если Не ПравоДоступа("Чтение", МетаданныеСсылки) Тогда
            Продолжить;
        КонецЕсли;
        
        МассивСсылок.Добавить(Ссылка);
        
        Если НЕ ПервыйЗапрос Тогда
            Запрос.Текст = Запрос.Текст +
            "ОБЪЕДИНИТЬ ВСЕ
            |";
        КонецЕсли;
        
        Запрос.Текст = Запрос.Текст +
        "ВЫБРАТЬ" + ?(ПервыйЗапрос," " + "РАЗРЕШЕННЫЕ" + " "," ") + "Таблица.Ссылка КАК Ссылка
        |ИЗ " + МетаданныеСсылки.ПолноеИмя() + " КАК Таблица
        |ГДЕ Ссылка В (&МассивСсылок)
        |";
        
        ПервыйЗапрос = Ложь;
        
    КонецЦикла;
    
    Если Не ПервыйЗапрос Тогда
        Запрос.Параметры.Вставить("МассивСсылок", МассивСсылок);
        Возврат Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка");
    Иначе
        Возврат Новый Массив;
    КонецЕсли;
    
КонецФункции
28 lamme
 
09.02.21
13:47
ТДС не доступен
поэтому - только функция
29 Kassern
 
09.02.21
13:49
(28) вы пробовали пихнуть в эту функцию шк с картинки?
30 Kassern
 
09.02.21
13:50
(28) а зачем вам ТСД в данном случае? С компа запустите и передайте ошибочный шк в нужную процедуру, где была ошибка и уже отлаживайте
31 lamme
 
09.02.21
13:51
логично
пойду смотреть
32 lamme
 
09.02.21
13:57
да.
и тот и тот ШК возвращает нужный объект

Менеджеры = Новый Массив;
Менеджеры.Добавить(Справочники.СкладскиеЯчейки.ПустаяСсылка());
Htp = ШтрихкодированиеПечатныхФорм.ПолучитьСсылкуПоШтрихкодуТабличногоДокумента("72166961198103786367022086327282726319", Менеджеры);

Менеджеры = Новый Массив;
Менеджеры.Добавить(Справочники.СкладскиеЯчейки.ПустаяСсылка());
Htp = ШтрихкодированиеПечатныхФорм.ПолучитьСсылкуПоШтрихкодуТабличногоДокумента("302821780460396289896953809403879916315", Менеджеры);
33 Kassern
 
09.02.21
13:58
(32) здесь нет шк с картинки (2) Проверьте его
34 Kassern
 
09.02.21
14:00
(32) и еще, каким образом тсд с базой соединяется? по РДП работает напрямую, или у него своя база данных с обменом по веб сервису к примеру?
35 lamme
 
09.02.21
14:00
почему нет
первый
72166961198103786367022086327282726319
36 lamme
 
09.02.21
14:01
(34)
напрямую по ком
37 Kassern
 
09.02.21
14:03
(36) а что в модуле события считывания шк? Как он определяет что это к примеру ячейка, а не номенклатура и что нужно гуид именно ячейки проверять? Может там как раз по количеству символов проверка какая нить?
38 lamme
 
09.02.21
14:04
думал об этом
но не нашел места где такое работает

по идее - это система cleverenc
39 lamme
 
09.02.21
14:05
проверли эксперимент

на телефон поставили считывалку ШК

и телефон так же - один считывает код
второй нет
40 arsik
 
гуру
09.02.21
14:05
(35) а если вот так 072166961198103786367022086327282726319
41 lamme
 
09.02.21
14:06
что - типовая функция по генерированию ШК - кривая ?
42 lamme
 
09.02.21
14:06
(41)
так тоже находит
43 lamme
 
09.02.21
14:06
Менеджеры = Новый Массив;
    Менеджеры.Добавить(Справочники.СкладскиеЯчейки.ПустаяСсылка());
    Htp = ШтрихкодированиеПечатныхФорм.ПолучитьСсылкуПоШтрихкодуТабличногоДокумента("072166961198103786367022086327282726319", Менеджеры);
44 lamme
 
09.02.21
14:08
сейчс попробуем распечатать с 072166961198103786367022086327282726319
посмотрим - распознается или нет
45 Kassern
 
09.02.21
14:09
(39) типовой сканер шк на телефоне не может прочитать второй шк я правильно понимаю? Попробуйте с экрана просканировать https://barcode.tec-it.com/ru/?data=72166961198103786367022086327282726319
46 Kassern
 
09.02.21
14:10
(45) только что сам протестил, все сканируется, может у вас как-то косячно печатается такой шк?
47 lamme
 
09.02.21
14:13
(45)
да .пробовал.
у меня видать сканер кривой что ль...
не считывает ни один вариант
ни праивльнй - ни не правильный...
---

(46)
https://c2n.me/4aSAsCy
это распечатанный
не читаемый ШК

у него - справа - обрезаны символы.
но !
даже при обрезанной распечатке - в (2) показывает весь ШК
48 Kassern
 
09.02.21
14:33
(47) ну тогда пишите письма в клевенс, с вопросом какого ху..дожника типовой функционал не отрабатывает в вашем решении)
49 lamme
 
09.02.21
14:54
https://clip2net.com/s/4aSDDUJ

не помогло
50 lamme
 
09.02.21
14:54
добавил 0 наперед
не работает
51 Злопчинский
 
09.02.21
18:22
вы блин разберитесь что у вас не работает - то ли чтение ШК, то ли не отрабатывает алгоритм по прочитанному ШК.
Основная теорема систематики: Новые системы плодят новые проблемы.