gifts2017

Обработка "Загрузка данных в электронные весы Digi SM-100"

Опубликовал Владимир Володин (donchess) в раздел Программирование - Внешние компоненты

Обработка "Загрузка данных в электронные весы Digi SM-100" формирует файл с PLU кодами номенклатуры и загружает его в весы.

Обработка для работы с торговым оборудованием - электронными весами с возможностью печати чеков Digi SM-100 (100+, 300) формирует файл с PLU кодами весовой и штучной номенклатуры и используя внешние Com объект и утилиту загружает его в весы. Необходимые файлы и инструкция в прикрепленном архиве.

Обработка работает с конфигурациями "Розница для Украины", "Управление торговлей для Украины" (УТ 10.0) под WinXP, Win 7.

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
Весы DigiSm-100
.zip 765,43Kb
07.07.14
175
.zip 765,43Kb 175 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Vitalik Gribov (grivigen) 18.01.12 14:50
Проще и удобнее выгрузку в весы 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;
2. Владимир Володин (donchess) 19.01.12 01:38
Спасибо. Согласен. Естественно пробовал через .dll. Вернулся к варианту с утилитой.
Под Win7 почему-то подвисает (но утилита работает !?) + как всегда : запуск магазина в конце недели, оборудование разное - разобраться не успел. Подозреваю .dll - поставщик оборудования дал 4 шт., время создания у всех одинаково, но размер файла +- 200 Кб.
3. Алексей Попов (mnimoprog) 28.08.12 23:16
А в какой момент происходит выгрузка данных из 1с???
Это работает на wind 7???
4. Владимир Володин (donchess) 29.08.12 11:47
(3) mnimoprog,
1.На Win7 - работает.
2.Запись во внешний файл
5. jarik Vashenko (jarik1409) 20.03.13 23:13
Можете сбросить ету обработку? плиз
6. Владимир Володин (donchess) 20.03.13 23:22
7. jarik Vashenko (jarik1409) 21.03.13 16:14
8. Pavel (elik1972) 21.06.13 20:19
donchess и мне, если можно, обработку на elik1972@gmail.com

Спасибо!
9. Виктор Паславский (Victorpj) 23.01.14 13:58
Каким образом выполнить выгрузку номенклатуры из 1С82 с помощью обработки?
Прикрепленные файлы:
10. Владимир Володин (donchess) 23.01.14 15:42
(9) Victorpj, Регистрируем весы в торговом оборудовании и выбираем "Выгрузка данных в весы с печатью этикеток"
13. Дмитрий Прядко (Shuffler) 14.01.15 06:50
Работает ли обработка на рознице 2.1
roman3d; seva1405; kuznetcov_pavel@list.ru; +3 Ответить
14. Валерий С. (seva1405) 20.04.15 14:58
Пишет "Не указан файл выгрузки" все сделал по инструкции, в чем может быть проблема?
15. Дмитрий Васильев (pioneex) 21.04.15 13:59
Приветствую. УТ 10.3 (10.3.32.1). Сначала обнаруживает ошибку (в приложенном скриншоте). При повторной выгрузке выходит следующее сообщение: "Невозможно осуществить выгрузку по следующим причинам: Не указан файл выгрузки".
Прикрепленные файлы:
16. Валерий С. (seva1405) 21.04.15 19:10
(15) pioneex, я в этом месте Номенклатура.Наименование поправил на Номенклатура, а вот вторую ошибку так и не победил.
17. Владимир Володин (donchess) 22.04.15 21:48
(16) seva1405, см. скриншот - заполнить поле "каталог".
(15) pioneex, я в этом месте Номенклатура.Наименование поправил на Номенклатура - да, в УТ 10.3 передается наименование (спасибо за ответ). Мне досталась пописаная УТ украины, в которую передавалась ссылка на номенклатуру.
18. Алексей Дурнов (magjioji) 01.06.15 12:24
Можете сбросить ету обработку на magjioji@gmail.com? плиз
19. Александр Чесноков (chesnokov-a-v) 13.05.16 17:16
Прошу помощи.
Почему-то при печати этикетки на весах Digi SM100 в штихкоде не печатается код товара (т.е. в штрихкоде идут сначала префиксы, потом нули, а должен быть PLU, ну а дальше печатается вес и контрольный символ). Уже и не знаю куда копать.
Пользуюсь этой консольной программой.
Еще видел библиотеку DigiSM.dll, но не могу найти описание к ней, может у кого есть.
20. Vitalik Gribov (grivigen) 17.05.16 16:01
Давно делал уже может всё и не вспомню, но так по памяти. В весах 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
Причем там есть две этикетки - этикетка чеков и этикетка весового товара - они разные !!!
А еще есть настройки спеков в весах. Вот мои:
|Инструкция по настройке 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) Выключить/включить весы, выгрузить название магазина,
|     выгрузить формат этикетки, выгрузить товар.
...Показать Скрыть


Ну как то так
21. Vitalik Gribov (grivigen) 17.05.16 16:05
Ну и в догонку для примера на 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;
КонецПроцедуры
...Показать Скрыть
22. Vitalik Gribov (grivigen) 17.05.16 16:16
И еще форматы этикеток и штрих кодов в весах идут по номерам
может вам подойдет какая то стандартная этикетка.
У меня:
// формат этикетки 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";
		КонецЕсли;
...Показать Скрыть
23. Роман (PRoman) 24.08.16 15:56
А как зарегистрировать dll?
При регистрации через regsvr32 пишет "Модуль ... загружено но не удалось выполнить вызов DLLRegisterServer...." Windows 7
24. Игорь (user619890_igorlint) 08.10.16 20:52
А интересно на рознице 2.2 будет работать?
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа