Имя: Пароль:
1C
 
Интеграция с весами ШТРИХ-ПРИНТ 4.5
,
0 rowvg
 
naïve
07.09.22
11:16
Кто делал, поделитесь опытом, пожалуйста
Я понял что у весов есть автоматический загрузчик, который периодически ищет текстовый файл в расшаренном каталоге и загружает в весы список товаров.

Интересует формат этого файла, где его можно посмотреть?
1 rowvg
 
naïve
07.09.22
11:20
Конфигурация у меня самописная
2 NorthWind
 
08.09.22
06:13
(0) Там простые текстовые файлики по типу CSV с полями через разделитель. Их два - файл товаров (PLU) и фпйл сообщений (тексты для этикеток). Получить их очень просто - запускаешь прогу Загрузчик из комплекта драйвера, набиваешь чего-нибудь для примера в одну строку плу и одну сообщений и сохраняешь. Да там, кажется, и готовый аример файлов есть.
3 NorthWind
 
08.09.22
06:32
Причем запустить этот Загрузчик можно даже, не имея под руками весов, просто установив пакет штриховского софта на своем компьютере. Все редактирование будет доступно, только выгрузка-загрузка работать не будет.
4 NorthWind
 
08.09.22
06:38
Нюанс в том что у Штриха количество сообщений в этикетке и их длина может меняться в зависимости от настроек памяти для БД в самих весах и, кажется, от модели. То есть возможна ситуация, что для двух весов будет разное число полей в файле сообщений.
5 big
 
08.09.22
21:12
Есть примеры работы по сети. Нафих эти файлы?? Жуть какая-то!! Делов на час неспешного кодинга. Ну, может на 2 ))
6 MWWRuza
 
гуру
08.09.22
22:36
+(5) Вот пример, правда под 7.7, но какая разница, главное сам принцип:

Процедура Подключение()
    
    РаботаСвесами    = 0;
    ВывестиСообщение("Подключение весов ШтрихПринт ... ");
    Если ПустоеЗначение(Объект) = 1 Тогда
        Если ЗагрузитьВнешнююКомпоненту("DrvLP.dll")<>0  Тогда       //Загрузка внешней компоненты
            глВесыШП = СоздатьОбъект("AddIn.DrvLP");  // Создание объекта из внешней компоненты
            Сообщить("Внешняя компонента драйвера весов 'Штрих-Принт' - DrvLP.dll загружена.",5);    
            РаботаСВесами = 1;
        Иначе
            Сообщить("Внешняя компонента драйвера весов 'Штрих-Принт' - DrvLP.dll не найдена!",5);
            Сообщить("Проверьте, что файлы DrvLP.dll и DrvLP.lic находятся в папке  конфигурации, при необходимости скопируйте их из папки установки драйвера.",5);        
        КонецЕсли;        
    Иначе
        РаботаСВесами    = 1;
    КонецЕсли;
    
    глВесыШП.УстановитьСоединение();
    Если глВесыШП.Результат = 0 Тогда
        ВерсияКЭЧисло = Число(глВесыШП.ВерсияКЭ);
    КонецЕсли;
    
    Если РаботаСВесами = 1 Тогда
        ВывестиСообщение("Весы подключены");
        Если ТипЗначенияСтр(Форма.Параметр) = "СписокЗначений" Тогда
            Форма.Параметр.Установить("Результат",1);    
            Форма.Параметр.Установить("Объект",Объект);
        КонецЕсли;
    Иначе
        ВывестиСообщение("Не удалось подключить весы");
        Если ТипЗначенияСтр(Форма.Параметр) = "СписокЗначений" Тогда
            Форма.Параметр.Установить("Результат",0);
        КонецЕсли;
    КонецЕсли;
КонецПроцедуры //Подключение  

Процедура ОтветДрайвера()
    Result=глВесыШП.Результат;
    ОшибкаПараметра=глВесыШП.ОписаниеРезультата;  
КонецПроцедуры

Процедура ЗагрузитьТовары(СписокТоваров)
    ФлагБыстраяЗагрузка = 1;
    БлочнаяЗагрузка = 1;
    
    глВесыШП.УстановитьСоединение();    
    Если глВесыШП.Результат <> 0 Тогда
        ОтветДрайвера();    
        Возврат;
    КонецЕсли;
    
    ВерсияКЭЧисло = Число(глВесыШП.ВерсияКЭ);
    
    Счетчик = 0;
    
    Если ВерсияКЭЧисло >= 3.0 Тогда
        глВесыШП.ОчиститьБлокДанных();
        глВесыШП.БыстраяЗагрузка = ФлагБыстраяЗагрузка;
        Если глВесыШП.УстановитьРежимЗагрузки() <> 0 Тогда
            ОтветДрайвера();    
            Возврат;    
        КонецЕсли;    
    КонецЕсли;
    
    Если СписокТоваров.КоличествоСтрок()=0 Тогда
        Предупреждение("В списке нет ни одного весового товара!");
        Возврат;
    КонецЕсли;
    
    СчЗагр = 0;
    СписокТоваров.ВыбратьСтроки();
    Пока СписокТоваров.ПолучитьСтроку()=1 Цикл
        PLUКод = СписокТоваров.PLU;    
        Если ( PLUКод < 1 ) ИЛИ ( PLUКод > 5500 ) Тогда
            Сообщить( PLUКод + " PLU-код товара " + СОКРП(СписокТоваров.Товар.Наименование)
            + " больше 5500! Товар пропущен." );
            Продолжить;
        КонецЕсли;
        Если СтрДлина(СокрЛП(СписокТоваров.ШтрихКод)) > 5 Тогда
            Сообщить( "Код товара " + СОКРП(СписокТоваров.Товар.Наименование )
            + " больше пяти символов! Товар пропущен.");
            Продолжить;
        КонецЕсли;
        
        Если СтрДлина(СокрЛП(СписокТоваров.ШтрихКод)) = 0 Тогда
            Сообщить( "У товара " + СОКРП(СписокТоваров.Товар.Наименование )
            + " отсутствует штрихкод! Товар пропущен.");
            Продолжить;
        КонецЕсли;        
        
        Если СписокТоваров.Цена=0 Тогда
            Сообщить ("Нулевая цена товара "+ СОКРП(СписокТоваров.Товар.Наименование));
        КонецЕсли;
        
        Состояние( "Загрузка товара с PLU-кодом " + Строка( PLUКод ) + ", "
        + СписокТоваров.Товар.Наименование );
        
        глВесыШП.НомерПЛУ = PLUКод;
        
        глВесыШП.ПервоеНаименованиеТовара = Лев(СокрЛП(СписокТоваров.Товар.Наименование),28);
        Если СтрДлина(СокрЛП(СписокТоваров.Товар.Наименование)) > 28 Тогда
            глВесыШП.ВтороеНаименованиеТовара = Сред(СокрЛП(СписокТоваров.Товар.Наименование),28,28);
        Иначе
            глВесыШП.ВтороеНаименованиеТовара = "";    
        КонецЕсли;
        
        глВесыШП.Цена = СписокТоваров.Цена;
        
        глВесыШП.КодТовара = СписокТоваров.ШтрихКод;
        
        глВесыШП.ТипТовара = 0;
        глВесыШП.Тара = 0;
        
        Если ВерсияКЭЧисло >= 3.0 Тогда
            Если БлочнаяЗагрузка = 1 Тогда
                Если глВесыШП.ДобавитьДанныеПЛУКБлокуДанных()<>0 Тогда
                    Прервать;
                КонецЕсли;
                СчЗагр = СчЗагр + 1;
                Если СчЗагр = 6 Тогда
                    Если глВесыШП.ЗаписатьБлокДанныхПЛУ()<>0 Тогда Прервать КонецЕсли;
                    глВесыШП.ОчиститьБлокДанных();
                    СчЗагр = 0;
                КонецЕсли;
            Иначе
                Если глВесыШП.ЗаписатьДанныеПЛУРасш()<>0 Тогда
                    Прервать;
                КонецЕсли;
            КонецЕсли;
        Иначе
            Если глВесыШП.ЗаписатьДанныеПЛУ()<>0 Тогда
                Прервать;
            КонецЕсли;                
        КонецЕсли;        
    КонецЦикла;
    
    Если глВесыШП.Результат = 0 Тогда
        Если (СчЗагр > 0) и (СчЗагр < 6) Тогда
            глВесыШП.ЗаписатьБлокДанныхПЛУ();
        КонецЕсли;
    КонецЕсли;
        
    ОтветДрайвера();
        
    Если ВерсияКЭЧисло >= 3.0 Тогда
        глВесыШП.БыстраяЗагрузка = 0;
        глВесыШП.УстановитьРежимЗагрузки();
        глВесыШП.ОчиститьБлокДанных();
    КонецЕсли;
    
    Сообщить("Все товары успешно загружены в весы!");
КонецПроцедуры

С рабочей конфы выдран кусок... Но, это, в отличии от загрухчика, без реальных весов не отладить...
7 NorthWind
 
09.09.22
07:04
(5) на скорую руку вполне годный вариант через загрузчик. Тем более что штрих не знаю как сейчас, а лет 5 назад был редкостной шляпой в программном плане. Одно дело изучать апи железки, с которой можно хоть что-то получить в перспективе, и другое - такой, на которой почти ничего нельзя сделать кроме крайне ограниченного функционала...
8 big
 
09.09.22
07:34
(7) За шляпу не согласен категорически!! )))  Нормально работают (т-т-т). ИМХО штриховские весы - это Т-34 среди весов.

з.ы. был у них небольшой косяк по "дате годности" в разных версиях прошивки. Проще оказалось программно корректировать данные при загрузке, чем везти их в СЦ на перепрошивку.
9 NorthWind
 
09.09.22
08:10
(8) насколько я помню, там ничерта было нельзя. Провески получать нельзя, функционал печати стикеров крайне ограничен - два, что ли, размера шрифта, длина сообщений ограничена, нет автоматического переноса текстов, ШК только EAN-13, и последнее что меня убило в 2016-2017 году - ячейка памяти для суммарного веса ограничена 65.535 кг... Полный бред. Может, хоть сейчас поправили, не знаю. Короче, как по мне - шляпа. Нормальные весы - это МАССА-К терминал R. Ну или BIZERBA GLP, например.
10 NorthWind
 
09.09.22
08:11
я просто когда начал работать с электронными весами - я сразу начал с хорошего, а именно с бицербы. И теперь все сравниваю с ними, что мне в руки попадается.
11 NorthWind
 
09.09.22
08:16
сама железка, кстати, штриховская действительно неплоха за свои деньги - довольно качественная. Но вот программный функционал показался крайне слабым.
12 big
 
09.09.22
08:43
(9) А-а-а, вот оно что. Не, у нас такое не использовалось. Получается я не до конца в теме )
13 NorthWind
 
09.09.22
09:18
с другой стороны, функционал Штриха удобен для конторы, где интеграция либо вообще не нужна, либо делается простейшими средствами, и при этом слаще морковки ничего не надо, главное чтоб лишнюю копейку не потратить. У меня есть такие. Подправляют текстовые файлики в редакторе - и вся интеграция :) Очень рады.
14 ДедМорроз
 
10.09.22
01:45
Штрих-принт через Com-объект вполне себе программируются.
И настроить там много чего можно,только половина из настроек мало кому нужна.
Опять же,штучные штрих-коды умеют и можно пирожки фасовать.
15 ДедМорроз
 
10.09.22
01:49
У них еще первый вариант самообслуживания был с 80 кнопками,на которым нарисованы овощи.
Это сейчас есть весы с экранами,а тогда даже такое позволяло покупателям самим что-то взвесить.
16 NorthWind
 
10.09.22
07:49
(15) ну попробуй на них дату изготовления в код впилить. Хоть через EAN128, хоть через EAN13 addon 5...
17 NorthWind
 
10.09.22
07:51
А на терминале R Масса-К я это без проблем делал...
18 ДедМорроз
 
10.09.22
14:09
(16) Там это без изменения прошивки не выйдет,т.к.шаблон штрих-кода не редактируется.
Там даже цифровое поле срока годности - это отдельный квест.
19 NorthWind
 
10.09.22
15:57
(18) ну а тогда о чем мы говорим... А просуммировать пкчатаемые веса и и вывести суммарную этикетку, если сумма превышает 66 кг - можно без замены прошивки? :) У меня на этих весах тоже не вышло. Суммирование есть, да, но ограничение на вес вот такое. Изволь терпеть.
20 ДедМорроз
 
10.09.22
19:28
На тот момент,когда они вышли,были весы CAS,последние и подключить без танцев с бубном было нельзя.
То,что вышли потом новые весы,где можно настроить все,что угодно-так это сейчас.
Просто,Штрих положил на развитие всего,что было слздано.
Например,у них были miniPOS - на тот момент это был пропыв,но спустили все на тормозах,и теперь это история.
21 NorthWind
 
10.09.22
21:34
(20) поэтому я и говорю, что довольно печальный софтик там. В то время как более приличные образцы для подражания были, BIZERBA та же.
22 NorthWind
 
10.09.22
21:40
у бицербы по состоянию на 2004 год уже был и редактор этикеток, и около 40 типоразмеров шрифтов с тегированием всякий там жирный-подчеркнутый, и текстовые поля длиной более 255 символов, и десяток типов штрихкодов, в том числе можно было докупить лицензию на 2D коды. Про такую мелочь как многоуровневое суммирование (сумма в коробе - сумма в паллете - сумма в автомобиле) и использование терминала для взаимодействия с оператором (вывод запросов и сообщений на дисплей терминала с удаленного компа) я уже молчу...
23 NorthWind
 
10.09.22
21:50
кас тоже подключал... там прикол в том что какое-то время назад (2000-е годы) розничные весы у них работали через ком, а чтобы работать через Ethernet, они просто укомплектовали их платой Tibbo, которая являлась по сути конвертером Ethernet в RS-232. Если этот нюанс понять, то дальше там все просто - ставишь соответствующие дрова от Tibbo и все работает.
24 ДедМорроз
 
10.09.22
23:29
Там три вида плат были,и все это очень медленно работало из-за того,что был rs232 over ethernet.
Проблема была - настроить эту плату и плставить драйвер.
25 ДедМорроз
 
10.09.22
23:31
Кстати у Штрих-Принт тоже есть редактор этикеток - проблема в том,что там не все документировано,и можно добавлять поля,про которые в документации не слова.
26 NorthWind
 
11.09.22
09:22
(25) да, видно, что там заточено под какое-то будущее использование. Но по факту-то там почти ничего из внятных фич нет. Даже многострочных полей с автопереносом текста нет! Чтобы поместить, например, состав продукта в этикетку, нужно его самостоятельно разбить на строки сообщений не более определенной длины - ведь полная бредятина... И шрифтов для текста там всего два - один на заголовок, другой на все остальное. Посмотрите как сделано хотя бы в Массе-К терминал R, и вы поймете, какое это адское убожество.
27 NorthWind
 
11.09.22
09:24
https://massa.ru/products/vesy-mk-rp10-1/, там есть образцы этикеток. И это реально работает, я проверил. Там тоже есть на что поругаться, но действительно можно сделать такую этикетку.
2 + 2 = 3.9999999999999999999999999999999...