Имя: Пароль:
1C
1С v8
Проблема с генерацией штрих-кода для весов с печатью этикеток v2
0 pers200590
 
01.11.13
16:23
здравствуйте, форумчане
В редакции УТ 11.1.2.10
столкнулся с проблемой описанной в теме Проблема с генерацией штрих-кода для весов с печатью этикеток на форуме.
Подскажите как все таки можно исправить проблему?
1 pers200590
 
02.11.13
03:45
форумчане , помогите решить проблему
2 pers200590
 
02.11.13
05:45
ау форумчане отзовитесь
3 lex-kex
 
02.11.13
05:47
Что конкретно за проблема?
4 pers200590
 
02.11.13
05:52
(3) у меня в УТ 11 проставляется еще 1 лишний префикс
5 pers200590
 
02.11.13
05:53
А вот как пишет автор той статьи

Имеется УТ 11, из которой нужно выгружать в весы фирмы Штрих-М номенклатуру с ценой. В процессе выгрузки УТ генерирует штрих-код. Весы, в свою очередь, при взвешивании так же генерируют штрих-код на этикетку, только с весом. Проблема в разнице готовых штрих-кодов:
  УТ: 2ППТТТТВВВВВК (2220001000002)
Весы: ППТТТТТВВВВВК (2200001000974),
где П-префикс; Т-код товара; В-вес,К-контрольная сумма.
В УТ в Константе ПрефиксВесовогоШтрихКода записано число 2, однако при генерации штрих-кода записывается 22. Происходит это в модуле менеджера регистра сведений ШтихкодыНоменклатуры:
Возврат "2" + Строка(ПрефиксВесовогоШтрихкода) + Строка(ПрефиксВесовогоШтрихкода) + "____00000_";
Очень не хотелось бы править конфигурацию (пробовал исправить - появляются другие проблемы) и писать обработку, изменяющую готовые штрих-коды (пробовал - появляются другие проблемы).
Если кто то сталкивался с подобной проблемой, подскажите пожалуйста.
6 pers200590
 
02.11.13
05:55
Функция добавляет двойку в начале штрих-кода (Возврат "2" + ...) Вопрос в том, зачем она префикс дублирует (В УТ в Константе ПрефиксВесовогоШтрихКода записано число 2, однако при генерации штрих-кода записывается 22. В итоге получется код 222ТТТТВВВВВК )
7 lex-kex
 
02.11.13
05:59
(6) Поставь другой префикс весового штрих кода
8 pers200590
 
02.11.13
06:03
я ставил все возможные префиксы
весы формируют префикс 28, а 1С 288
9 lex-kex
 
02.11.13
06:47
Все равно не вижу никакой проблемы, что-то ты не договариваешь
10 pers200590
 
02.11.13
07:05
Префикс весового товара в 1С - 8
При формировании этикетки весового товара получается шк 2880011000002
Весы при печати этикетки с товаром формируют шк
2800001100607
11 lex-kex
 
02.11.13
07:08
(10) А в чем проблема? Или что нужно?
12 pers200590
 
02.11.13
07:19
(11) проблема в том что сформированный шк весами этикеток не считывается в УТ 11.
13 pers200590
 
02.11.13
07:52
ап
14 pers200590
 
02.11.13
09:56
ау
15 Torquader
 
02.11.13
11:28
Насколько я помню, для весов нужно выгрузить товар с правильным ПЛУ, а весовой штрих-код - это код ПЛУ и есть (то есть должен быть 5 или 6 символов).
Что там генерирует сама УТ я не помню, так как переписывал, чтобы работал и "родной" штучный (то есть 20+(КодТовараДо10Символов)+КонтрольныйСимвол).
У меня УТ11 "сношалась" и с весами от Штрих-М и с кассой от Штрих-М - просто в кассе был настроен поиск по Штрих-Коду на основе ПЛУ.
Наверное, есть и другой способ, только формат весового штрих-кода в кассовых терминалах не позволяет делать сложные преобразования - только разделять штрих-код как строку на части.
P.S. старое кассовое оборудование действительно считало весовым штрих-код с нулевым весом, но его уже можно только в музее увидеть.
16 pers200590
 
02.11.13
13:31
Где ошибка и как ее исправить
17 Torquader
 
02.11.13
14:06
Проще посмотреть в коде УТ, что она хочет получить в этикетке весового товара, чтобы максимально её адаптировать под весы (смотрим обработку получения штрих-кода), а потом заглянуть в документацию к весам - они тоже умеют разные этикетки печатать, но обычно там так:
2[ПрефиксГруппы][КодТовара][ВесИлиСумма][КонтрольнаяЦифра]
Код товара - 4 или 5 символов, вес или сумма 5 или 6 символов.
Функцию, которая возвращает код весового товара, видимо, придётся переписать или покопать настройки, чтобы она работала правильно (есть подозрение, что где-то поставили 22 вместо 2 - система предполагает, что первая двойка в штрих-коде неизменна).
18 pers200590
 
02.11.13
14:13
(17) В коде 1с стоит везде 2 + Префикс весового+ префикс весового+ код товара+вес + контрольная сумма
19 Torquader
 
02.11.13
14:24
(18) Ну тогда просто исправь, чтобы было один раз - так не должно быть.
Потом, как печатаются этикетки - не важно (их должны правильно печатать весы).
Важно как обрабатывает УТ прочитанный штрих-код - если там тоже два префикса ищут, то придётся править.
20 pers200590
 
02.11.13
14:33
а так кто нибудь сталкивался?
21 Torquader
 
02.11.13
14:37
Я последний внедрял УТ базовую, а там только десятая.
Одиннадцатая у меня была как Back с кассовым терминалом и весами - как читается на ней весовой штрих-код - не знаю. Знаю, что заводской (некоторые производители сосиски взвешивают на заводе) она не читала ни при каких обстоятельствах (разные префиксы у разных поставщиков).
А кассовый терминал весовые Штрих-коды читал на ура (там просто при выгрузке в кассу штрих-код для весового товара определённым образом формировался).

Просто, если префикс явно написан два раза - это повод написать в 1С - в следующем релизе должны исправить.
22 pers200590
 
02.11.13
14:48
(21) я взял скачал последние обновления и создал новую базу так как код тот же остался
23 hhhh
 
02.11.13
14:52
(22) надо наоборот. Сначала написать письмо в 1с. Потом дождаться когда они выпустят обновление, а потом уже его скачать.
24 pers200590
 
02.11.13
14:53
1с ничего не изменила. Может кто нибудь может на партнерском форуме посмотреть, может там есть какая нибудь инфа.
25 Torquader
 
02.11.13
14:58
Этикетки в УТ стандартно через одно место печатаются - и приходится их переделывать.
Первое, чтобы я попробовал - поставил чистую базу с последними обновлениями, создал бы там весовой товар и выгрузил бы его в весы - потом попробовал бы считать этикетку с этим товаром - что на это скажет УТ.
А то, что новая версия может не читать криво сделанные в старой штрих-коды - обновление не в состоянии их исправить.
26 pers200590
 
02.11.13
15:06
(25) вариант хороший завтра буду пробовать
27 Torquader
 
02.11.13
15:08
(26) Рабочее место у тебя фронт, встроенный в УТ или отдельная программа ?
Просто насколько важна возможность считывания кода весового товара именно в УТ ?
28 pers200590
 
02.11.13
15:17
(28) у меня просто УТ 11.1.2.10. На кассе рабочее место кассира встроенное в 1с ну т.е док ЧекККМ
29 Torquader
 
02.11.13
15:22
(28) Я такое только в рознице запускал.
Просто - обычно нужно два рабочих места - для кассира и для товароведа. Так как нужно доп-лицензию, то цена отдельной кассовой программы (фронтол, например) оказывается не много выше цены доп.места, а требования к железу у спец.программ ниже.
В общем, отдельное место, насколько я помню, без дописывания не всегда начинает работать. Кроме того, ПЛУ в УТ задаётся вперемешку для всего товара, в результате сделать диапазон ПЛУ для весового, как в рознице, нельзя - приходится плясать от штрих-кода (кода весового товара).
30 pers200590
 
02.11.13
15:33
в общем то понятно все, но и ничего не понятно
31 Torquader
 
02.11.13
15:37
(30) Всё понятно - у товара есть весовой код - уникальный в пределах базы, который однозначно описывает весовой товар.
Этот код с данными товара должен попасть в весы, чтобы при печати этикетки он был напечатан в штрих-коде вместе с весом (или суммой).
Также на кассе (в форме рабочего места) штрих-код с весов должен читаться и разбиваться на код весового товара для поиска товара и вес (или сумму) для получения количества, после чего заполняется строка с данными товара, куда проставляется цена и сумма (количество).
Вот и всё - дальше уже копание в обработках.
32 pers200590
 
03.11.13
03:04
?
33 pers200590
 
03.11.13
06:47
форумчане неужели никто не сталкивался
34 pers200590
 
03.11.13
09:03
кто сталкивался?
35 pers200590
 
03.11.13
09:15
Rie может поможешь
36 Rie
 
03.11.13
09:15
(34) С чем?
Тебе ж Torquader всё по полочкам разложил.
Есть 5-значный PLU. К нему весы добавляют вес - 5 знаков. 2 знака - префикс. И 1 знак - КС, которая по всему этому формируется. В итоге - EAN-13.
Ты его прочитал. Проанализировал префикс. В зависимости от префикса - либо весовой товар (и тогда выделяешь код и вес); либо - штучный (ищешь в базе по полному коду).
37 Rie
 
03.11.13
09:16
(35) TeamViewer есть?
38 pers200590
 
03.11.13
09:17
(36) У меня вопрос почему появляется еще 1 префикс лишняя цирфа
39 pers200590
 
03.11.13
09:17
(37) Да есть , но весы не подключены сейчас.
40 pers200590
 
03.11.13
09:19
(37) там вообще странно ведет себя 1с когда вводишь или считываешт шк с весов. говорит что шк не найден и пишет совсем не тот шк который на этикетке
41 pers200590
 
03.11.13
09:20
как мне номер тима передать
42 Rie
 
03.11.13
09:23
43 pers200590
 
03.11.13
09:23
как я понял что там 2 + ППТТТТВВВВВК
44 Rie
 
03.11.13
09:24
(43) Код товара - 5 цифр, а не 4.
45 Rie
 
03.11.13
09:25
+(44) То есть, ППТТТТТВВВВВК
46 Rie
 
03.11.13
09:26
+(45) При этом - локальность ШК может тупо проверяться по первой "двойке" А значимая вторая "двойка" может игнорироваться. Что не есть гуд.
47 pers200590
 
03.11.13
09:28
(42) лови
48 Rie
 
03.11.13
09:30
(47) Не сбрасывай подключение.
49 Rie
 
03.11.13
09:31
+(48) Какой теперь пароль?
50 pers200590
 
03.11.13
09:31
(48) ок
51 pers200590
 
03.11.13
09:32
(49) то тже
52 Rie
 
03.11.13
09:39
Видать, со связью проблемы. Экран вижу - но ничего сделать не могу.
Штрих-код - правильно сформировался, последнме 5 - и должны быть нулямм для весового товара.
Поскольку TeamViewer не жужжит - тогда давай по пунктам. Префикс - правильный?
53 pers200590
 
03.11.13
09:40
Префикс у меня стоит 8
54 Rie
 
03.11.13
09:40
+(52) Установлен ли флажок весового товара?
Проверь весы - что у них в памяти.
55 Rie
 
03.11.13
09:41
(53) "8" - это в смысле "28"?
56 pers200590
 
03.11.13
09:41
(52) флажок весового товара установлен
57 Rie
 
03.11.13
09:41
(55) Посмотри сам штрих-код. Что там за цифирь?
58 Rie
 
03.11.13
09:42
(57) Отладчиком - во внешнее событие. Посмотри, что принимается.
59 pers200590
 
03.11.13
09:42
(54) в УТ 11 проставляется само вне зависимости от того штучный или весовой, Как я понял. Префикс штучного товара у меня 1, а префикс весового товара у меня 8.
60 pers200590
 
03.11.13
09:44
В весах распечатывается штрихкод 2800012000607 допустим, а при вводе с сканера или вручную он мне пишет что шк 28000121000001(цифру не помню последнюю) не найден
61 pers200590
 
03.11.13
09:44
(58) отладчиком пользоваться не умею
62 pers200590
 
03.11.13
09:45
// Функция возвращает штрихкод весового товара,
// создаваемый из кода с префиксом весового товара и контрольным символом
//
// Параметры:
//  Код                   - Код
//  ПрефиксВесовогоТовара - Строка
//
// Возвращаемое значение:
//  Строка
//
Функция ПолучитьШтрихкодВесовогоТовараПоКоду(Код, ПрефиксВесовогоТовара) Экспорт

    Штрихкод = "2" + Строка(ПрефиксВесовогоТовара) + Строка(ПрефиксВесовогоТовара) + Формат(Код, "ЧЦ=4; ЧВН=; ЧГ=") + "00000";
    Штрихкод = Штрихкод + КонтрольныйСимволEAN(ШтрихКод, 13);

    Возврат Штрихкод;

КонецФункции
63 pers200590
 
03.11.13
09:45
Функция СформироватьШтрихкодВесовогоТовараEAN13(ПрефиксВесовогоТовара, МаксимальныйКод = 99999) Экспорт

    Код = Мин(ПолучитьМаксимальноеЗначениеКодаВесовогоШтрихкодаЧислом(ПрефиксВесовогоТовара) + 1, МаксимальныйКод);

    Возврат ПолучитьШтрихкодВесовогоТовараПоКоду(Код, ПрефиксВесовогоТовара);

КонецФункции
64 pers200590
 
03.11.13
09:45
Процедура ПреобразоватьВесовойШтрихкод(ТекШтрихкод, ПрефиксыВесовыхШтрихкодов) Экспорт
    
    Если СтрДлина(ТекШтрихкод.Штрихкод) = 13 // EAN13
        И Лев(ТекШтрихкод.Штрихкод, 1) = "2" // Внутренний штрихкод
        И ПрефиксыВесовыхШтрихкодов.Найти(Сред(ТекШтрихкод.Штрихкод, 2, 1)) <> Неопределено Тогда // Найден префикс весового товара
        
        // Штрихкод является весовым, выполняем преобразование.
        // Формат весового штрихкода: 2 + П + ЧЧЧЧЧ + BBBBB + K
        // Где,
        //  П     - Префикс весового товара
        //  ЧЧЧЧЧ - код весового товара
        //  BBBBB - Вес
        //  К     - Контрольное число
        // 2013 [
        Если ДополнительныеФункцииИПроцедуры.ЭтоИсключаемыйИзВесовогоШтрихКод(ТекШтрихкод) тогда
            Возврат;
        КонецЕсли;
        // 2013 ]
        ВнутреннийШтрихкод12 = Лев(ТекШтрихкод.Штрихкод, 7) + "00000";
        ВнутреннийШтрихкод13 = ВнутреннийШтрихкод12 + РегистрыСведений.ШтрихкодыНоменклатуры.КонтрольныйСимволEAN(ВнутреннийШтрихкод12, 13);
        Вес = Число(Сред(ТекШтрихкод.Штрихкод, 8, 2)) + Число(Сред(ТекШтрихкод.Штрихкод, 10, 3)) / 1000;
        
        ТекШтрихкод.Штрихкод   = ВнутреннийШтрихкод13;
        ТекШтрихкод.Количество = ТекШтрихкод.Количество * Вес;
        
    КонецЕсли;
    
КонецПроцедуры

// Функция возвращает префикс весового товара применяемого для генерации штрихкода.
// Используется при выгрузке в весы с печатью этикеток
//
// Параметры:
//  ПодключаемоеОборудованиеСсылка – Ссылка
//
// Возвращаемое значение:
//  Строка
//
Функция ПрефиксВесовогоТовара() Экспорт
    
    Запрос = Новый Запрос(
    "ВЫБРАТЬ
    |    ВЫБОР КОГДА ИспользоватьФасовкуВесовогоТовара.Значение ТОГДА
    |        ПрефиксВесовогоШтрихкода.Значение
    |    ИНАЧЕ 1 КОНЕЦ КАК ПрефиксВесовогоТовара
    |ИЗ
    |    Константа.ПрефиксВесовогоШтрихкода КАК ПрефиксВесовогоШтрихкода,
    |    Константа.ИспользоватьФасовкуВесовогоТовара КАК ИспользоватьФасовкуВесовогоТовара");
    
    Результат = Запрос.Выполнить();
    Выборка = Результат.Выбрать();
    
    Если Выборка.Следующий() Тогда
        ПрефиксВесовогоТовара = Выборка.ПрефиксВесовогоТовара;
        Если ЗначениеЗаполнено(ПрефиксВесовогоТовара) Тогда
            Возврат Строка(Выборка.ПрефиксВесовогоТовара);
        Иначе
            Возврат "1";
        КонецЕсли;
    Иначе
        Возврат "1";
    КонецЕсли;
    
КонецФункции
65 pers200590
 
03.11.13
09:45
Функция ФорматВесовогоШтрихкода(ПрефиксВесовогоШтрихкода) Экспорт
    
    Возврат "2" + Строка(ПрефиксВесовогоШтрихкода) + Строка(ПрефиксВесовогоШтрихкода) + "____00000_";
    
КонецФункции
66 Rie
 
03.11.13
09:46
(60) Последняя цифра - КС. Она не существенна. Но забавно, что весы печатают 60 г, а при вводе со сканера - получается 10 кг.
67 pers200590
 
03.11.13
09:47
(66) вот в этом у меня и вопрос , почему он выдает такой шк. В отладчике пробовал лазить да там формируется неправильный шк
68 Rie
 
03.11.13
09:48
(67) Давай по порядку. Товару присвоен весовой ШК 00012. Так?
69 pers200590
 
03.11.13
09:49
да
70 Rie
 
03.11.13
09:49
+(68) И весы именно этот код понимают. (Судя по (60)).
Но неверно выставляют вес.
71 Rie
 
03.11.13
09:50
+(70) Теперь вопрос - правильно ли считывается номенклатура по весовому штрих-коду 00012?
72 pers200590
 
03.11.13
09:50
(70) да весы понимают код 12
73 Rie
 
03.11.13
09:52
(72) Правильно ли понимает код 00012 1С?
74 pers200590
 
03.11.13
09:52
щас буду рядом с весами и все точно расскажу . 5 минут
75 Rie
 
03.11.13
09:53
+(73) Если весы выводят 10 кг, то это - проблема весов. Возможно, некорректно выставлены в 0.
76 pers200590
 
03.11.13
10:05
В общем так
Для загрузки в весы 1с сформировала шк весового товара 2880006000000
77 pers200590
 
03.11.13
10:06
Весы распечатали шк 2800006000701
78 pers200590
 
03.11.13
10:08
При вводе шк сформированного весами в форму подбора документа ЧекККМ выходит сообщение что шк 3900006000008 не найден
79 pers200590
 
03.11.13
10:08
При вводе шк сформированного весами в форму подбора документа ЧекККМ выходит сообщение что шк 2800006000008 не найден
80 pers200590
 
03.11.13
10:09
а если ввести вручную шк 2880006000701 то все супер
81 pers200590
 
03.11.13
10:13
Формат весового штрихкода: 2 + П + ЧЧЧЧЧ + BBBBB + K
и получается что 2 +88+00060+00070+1
так что ли
и судя из
Функция ФорматВесовогоШтрихкода(ПрефиксВесовогоШтрихкода) Экспорт
    
    Возврат "2" + Строка(ПрефиксВесовогоШтрихкода) + Строка(ПрефиксВесовогоШтрихкода) + "____00000_";
    
КонецФункции

проставляется 2 одинаковых префикса
82 pers200590
 
03.11.13
11:16
Ап
84 Rie
 
03.11.13
13:12
(81)  Убери второе Строка(ПрефиксВесовогоШтрихКода). Посмотри, что из этого выйдет.
85 Мимохожий Однако
 
03.11.13
13:19
Ап ))
86 pers200590
 
03.11.13
13:20
(84)В Функции ФорматВесовогоШтрихкода(ПрефиксВесовогоШтрихкода) Экспорт
это уже убирал ничего не изменилось
87 pers200590
 
03.11.13
14:16
???
88 pers200590
 
04.11.13
02:45
Ап
89 pers200590
 
04.11.13
07:48
Ау форумчане
90 Rie
 
04.11.13
08:08
(89) Единственное, что могу посоветовать - поймай ввод штрих-кода отладчиком. И посмотри, что там и где он ищет. У меня подозрение, что твой штрих-код назначен как штрих-код штучного, а не весового товара. Более того, поиск по штрих-коду в УТ несколько странен. Поэтому отладчик в руки - и вперёд. С первого же раза поймёшь, где поиск сбивается.
91 pers200590
 
04.11.13
09:05
(90) отладчиком толком пользоваться не умею. У меня подозрение что формируется ШК неправильно
92 pers200590
 
04.11.13
09:05
И плохо что нет под рукой Рознице 2. Говорят что алгоритм формирования шк там можно посмотреть.
93 Rie
 
04.11.13
09:13
(91) Посмотри на ШК, которые сформированы. У штучного товара - код в конце, в правых цифрах.
Тут как раз проблема в том, что точную информацию даст только Отладчик. Ну или выводи сообщения после каждого чиха (что, кстати, весьма уместно).
94 pers200590
 
04.11.13
09:16
(93) Выводить сообщения -  вот это вариант подходящий.
95 Torquader
 
04.11.13
13:10
Весы распечатали 2800006000701
Это товар с кодом в весах 6 и весом 70 грамм - так ?
Если это именно так, то весы уже ни в чём не виноваты.
Потом, весы не грузят в себя штрих-код - весы грузят ПЛУ и код товара.
ПЛУ - это номер ячейки в весах, где живёт информация о товаре, то есть наименование, цена и код.
Код товара - это то, что весы напечатают на этикетке.
Обычно, чтобы не путать людей, эти оба кода (ПЛУ и код) делают равными друг другу.

При вводе сканером УТ прекрасно разобрала код как весовой (правильно удалила из него вес и получила код без веса), но найти его не смогла, так как в генерации (81) у кого-то задвоен префикс - нужно удалить одно из выражений Строка(ПрефиксВесовогоШтрихкода) и перегенерить все коды весового товара (чтобы система искала по правильным кодам) и всё получится.
Также я бы посмотрел, как код обрабатывается вручную - там, видимо, он просто "разрезается" по шаблону.
96 pers200590
 
04.11.13
13:16
(95) Это товар с кодом в весах 6 и весом 70 грамм - так ?  - Да верно.
То то задвоена строка с префиксом это я понял, но при удалении ее ничего не изменяется
97 Torquader
 
04.11.13
13:32
(96) Эта чудная задвоенная строка участвует в генерации штрих-кода - посмотри в регистр сведений, где штрих-коды хранятся - там, скорей всего, все штрих-коды неверные - нужно не только убрать строку, но и правильно заполнить регистр.
98 RentXak
 
09.11.13
15:17
Проблема не в генерации кода, а какой штрих код отправляется на весы. Обнови 1С до последенй версии. и перегрузи по новой в весы весь товар весовой. и заметишь что код товаров станет не 6, 20006. И соотвтетсвенно штрих код нормально сформируется на весах и контрольное число нормальное будет.
99 RentXak
 
09.11.13
15:20
(98) в УТ 11 поставь префикс 2, а в весах установи 22. Пиши в аську(316609287), если не получится я тоже бодался с этим.
100 RentXak
 
09.11.13
15:22
(98) на первых порах просто брал и создавал для товаров 2 штрих код с тем котрый возвращает весы))) не хотелось править конфигурацию