Обработка "Загрузка данных в электронные весы Digi SM-100"
Комментарии
В избранное
Подписаться на ответы
Сортировка:
Древо развёрнутое
Свернуть все
Проще и удобнее выгрузку в весы DIGI SM делать через внешнюю компоненту DigiSM.dll. Для 7.7 типа так :
scales=CreateObject("DigiSM.TDigiSM");
scales.IPAddress = IP;
scales.Connect = 1;
scales.InitPLU();
scales.PLUName = NAME;
scales.UnitPrice = PRICE;
scales.EANData = "23"+Article+"000000";
scales.LabelFormat1 = 17;
scales.BarcodeFormat = 5;
scales.WritePLU(CODE);
scales.Connect = 0;
scales=CreateObject("DigiSM.TDigiSM");
scales.IPAddress = IP;
scales.Connect = 1;
scales.InitPLU();
scales.PLUName = NAME;
scales.UnitPrice = PRICE;
scales.EANData = "23"+Article+"000000";
scales.LabelFormat1 = 17;
scales.BarcodeFormat = 5;
scales.WritePLU(CODE);
scales.Connect = 0;
Спасибо. Согласен. Естественно пробовал через .dll. Вернулся к варианту с утилитой.
Под Win7 почему-то подвисает (но утилита работает !?) + как всегда : запуск магазина в конце недели, оборудование разное - разобраться не успел. Подозреваю .dll - поставщик оборудования дал 4 шт., время создания у всех одинаково, но размер файла +- 200 Кб.
Под Win7 почему-то подвисает (но утилита работает !?) + как всегда : запуск магазина в конце недели, оборудование разное - разобраться не успел. Подозреваю .dll - поставщик оборудования дал 4 шт., время создания у всех одинаково, но размер файла +- 200 Кб.
Ну и в догонку для примера на 1с 7.7
Процедура ВыгрузитьНастройкиDigiSM()
//Текст=СоздатьОбъект("Текст");
//Текст.Открыть(КаталогИБ()+"F34.DAT");
ФС.УстТекКаталог(КаталогВременныхФайлов());
scales=CreateObject("DigiSM.TDigiSM");
ТзВесов.ВыбратьСтроки();
Пока ТзВесов.ПолучитьСтроку() = 1 Цикл
Если (ТзВесов.Блок <> 1)и((ТзВесов.ТипВесов = Перечисление.Весы.DigiSM100)или( ТзВесов.ТипВесов = Перечисление.Весы.DigiSM300)) тогда
ErrCode = 0;
scales.IPAddress =ТзВесов.IP;
Попытка
scales.Connect = 1; //Сообщить("Выгружаем в весы "+ScalesName+" c IP="+IP);
Исключение
Сообщить("Ошибка подключения к весам "+ТзВесов.Наименование+" c IP="+ТзВесов.IP+Симв(10)+
"Возможно весы выключены или повреждено сетевое оборудование.");
Продолжить;
//Возврат;
КонецПопытки;
scales.Font=4;
//ТзВесов.ТипВесов = Перечисление.Весы.DigiSM300
НаимМаг = СокрЛП(СтрЗаменить(НаимМагазина,"і","i"));
scales.ShopName = ?(ТзВесов.Кодировка = Перечисление.Кодировки.CP866,AnsiToOem(СокрЛП(НаимМаг)),СокрЛП(НаимМаг));
scales.ShopLabel = 1;
scales.NumLine = 1;
scales.Font=2;
scales.Text = ?(ТзВесов.Кодировка = Перечисление.Кодировки.CP866,AnsiToOem("цiнa"),"цiнa");
scales.TextLabel = 1;
ErrCode = scales.WriteText(1);
scales.Text = ?(ТзВесов.Кодировка = Перечисление.Кодировки.CP866,AnsiToOem("вартiсть"),"вартiсть");
scales.TextLabel = 2;
ErrCode = scales.WriteText(2);
scales.Text = ?(ТзВесов.Кодировка = Перечисление.Кодировки.CP866,AnsiToOem("вага"),"вага"); //"вага"
scales.TextLabel = 3;
ErrCode = scales.WriteText(3);
scales.Text = ?(ТзВесов.Кодировка = Перечисление.Кодировки.CP866,AnsiToOem("арт"),"арт");
scales.TextLabel = 4;
ErrCode = scales.WriteText(4);
scales.Text = ?(ТзВесов.Кодировка = Перечисление.Кодировки.CP866,AnsiToOem("дiйсн"),"дiйсн");
scales.TextLabel = 5;
ErrCode = scales.WriteText(5);
scales.Text = ?(ТзВесов.Кодировка = Перечисление.Кодировки.CP866,AnsiToOem("запак"),"запак");
scales.TextLabel = 6;
ErrCode = scales.WriteText(6);
scales.Text = ?(ТзВесов.Кодировка = Перечисление.Кодировки.CP866,AnsiToOem("кiльк"),"кiльк");
scales.TextLabel = 7;
ErrCode = scales.WriteText(7);
NumRec = 1;
ErrCode = scales.WriteShopName(NumRec);
Если ErrCode <> 0 тогда
Если ErrCode = 5 Тогда
сообщить("Ошибка 5: Ошибка записи.");
ИначеЕсли ErrCode = 6 тогда
сообщить("Ошибка 6: Нет свободной памяти");
Иначе
сообщить("Ошибка "+ErrCode);
КонецЕсли;
КонецЕсли;
scales.Connect = 0;
// Выгрузка формата этикетки 1 - весовая 2 - штучная -- внутри F34.DAT !!!
Текст=СоздатьОбъект("Текст");
Преф = "";
Если ТзВесов.ТипВесов = Перечисление.Весы.DigiSM300 Тогда
Преф = "_sm300";
Текст.КодоваяСтраница(0);
Иначе
Преф = "_sm100";
Текст.КодоваяСтраница(1);
КонецЕсли;
Если ФС.СуществуетФайл(КаталогИБ()+"F34"+Преф+".DAT") = 1 Тогда
Текст.Открыть(КаталогИБ()+"F34"+Преф+".DAT");
Иначе
Сообщить("Нет файла "+КаталогИБ()+"F34"+Преф+".DAT - настройки формата этикетки не выгружены !!!");
Продолжить;
КонецЕсли;
Текст.Записать(КаталогВременныхФайлов()+"SM"+Прав(ТзВесов.IP,3)+"F34.DAT");
ФС.КопироватьФайл(КаталогИБ()+"twswtcp.exe",КаталогВременныхФайлов()+"twswtcp.exe",0);
КомандаСистемы(КаталогВременныхФайлов()+"twswtcp.exe F34.DAT "+Прав(ТзВесов.IP,3));
КонецЕсли;
КонецЦикла;
scales=0;
КонецПроцедуры
Показать
Приветствую. УТ 10.3 (10.3.32.1). Сначала обнаруживает ошибку (в приложенном скриншоте). При повторной выгрузке выходит следующее сообщение: "Невозможно осуществить выгрузку по следующим причинам: Не указан файл выгрузки".
Прикрепленные файлы:
Прошу помощи.
Почему-то при печати этикетки на весах Digi SM100 в штихкоде не печатается код товара (т.е. в штрихкоде идут сначала префиксы, потом нули, а должен быть PLU, ну а дальше печатается вес и контрольный символ). Уже и не знаю куда копать.
Пользуюсь этой консольной программой.
Еще видел библиотеку DigiSM.dll, но не могу найти описание к ней, может у кого есть.
Почему-то при печати этикетки на весах Digi SM100 в штихкоде не печатается код товара (т.е. в штрихкоде идут сначала префиксы, потом нули, а должен быть PLU, ну а дальше печатается вес и контрольный символ). Уже и не знаю куда копать.
Пользуюсь этой консольной программой.
Еще видел библиотеку DigiSM.dll, но не могу найти описание к ней, может у кого есть.
Давно делал уже может всё и не вспомню, но так по памяти. В весах digi сделано всё весьма заморочно. Вам нужно в программе LabelMaster создать свою этикетку сохранить файлы f34.dat и какой то ещё *.dat. Потом выгрузить это в весы через QloadSM ??? или SIS2002 ??? или как у меня через
twswtcp.exe . Обязательно в виндовом файле c:\Windows\System32\drivers\etc\hosts прописать (свои!!! IP) :
192.168.2.191 S0191
192.168.2.192 S0192
192.168.2.193 S0193
Пример для выгрузки весов S0191 в командной строке набрать twswtcp.exe F34.DAT 191
Причем там есть две этикетки - этикетка чеков и этикетка весового товара - они разные !!!
А еще есть настройки спеков в весах. Вот мои:
Ну как то так
twswtcp.exe . Обязательно в виндовом файле c:\Windows\System32\drivers\etc\hosts прописать (свои!!! IP) :
192.168.2.191 S0191
192.168.2.192 S0192
192.168.2.193 S0193
Пример для выгрузки весов S0191 в командной строке набрать twswtcp.exe F34.DAT 191
Причем там есть две этикетки - этикетка чеков и этикетка весового товара - они разные !!!
А еще есть настройки спеков в весах. Вот мои:
|Инструкция по настройке Digi SM100 :
|
| ***************************************************************************
| Вход в Z - режим -> нажать 4 раза кн. с двумя стрелками
| Для SPEC : * - вперед,[Номер SPEC][X] - переход,
| в конце [PLU] для записи или [->T<-] - отмена
| ***************************************************************************
|
|
| 1) Установить первые три байта IP в Z-режиме :
| [>0<] + [0][4][1][6] ->
| ввод 3 байт IP xxx.xxx.xxx -> [PLU]
|
| 2) Установить SPEC в Z-режиме:
| [>0<] + [1][4][1]
|
| SPEC1 = 0 (количество !!!) - печать к-ва для штучной
| SPEC17 = 1 (ДД-ММ-ГГ)
| SPEC18 - количество строк названия товара при печати чека
| (0 - 2 строки, 1 - 1 строка)
| SPEC37 - 2 (плотность печати)
| SPEC38 - 2 (яркость печати)
| SPEC131 = 1 (разрешить печать кол-ва)
| SPEC135 = IP (уст. последний байт IP)
| SPEC137 = выравнивание ингридиентов по центру = 1, не выравнивать = 0
| SPEC230 = 1 (автопечать этикетки после вызова PLU)
| NB: SPEC230 = 0 - если надо печатать и штучные !!!
| -> * -> [PLU]
|
| 3) Частичный сброс памяти весов в Z-режиме :
| [>0<] + [2][3][0] -> 3 раза [X] -> [*] -> [C]
|
| м.б. после сброса - Уст режим печати этикеток:
| [>0<] + кн. с двумя стрелками
|
| 4) Выключить/включить весы, выгрузить название магазина,
| выгрузить формат этикетки, выгрузить товар.
ПоказатьНу как то так
И еще форматы этикеток и штрих кодов в весах идут по номерам
может вам подойдет какая то стандартная этикетка.
У меня:
может вам подойдет какая то стандартная этикетка.
У меня:
// формат этикетки 1 = 17 - весовая 18 = 2 - штучная -- внутри F34.DAT !!!
Если ТЗ.ШтучныйВВесы = 1 тогда
scales.Weighed = 0;
scales.BarcodeFormat = 5;
scales.LabelFormat1 = 18; // 18 штучная
scales.EANData = "23"+Прав(ТЗ.Артикул,5)+"000000";
Иначе
scales.Weighed = 1;
scales.BarcodeFormat = 5;
scales.LabelFormat1 = 17;// весовая
scales.EANData = "23"+Прав(ТЗ.Артикул,5)+"000000";
КонецЕсли;
ПоказатьВопросы с вознаграждением
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|