Розница 2.2 и весы CAS (LP-15, CL3000)

Оборудование - Весы

Внешняя обработка для выгрузки весового товара из 1С: Розницы 2.2 в весы CAS (LP-15 и CL3000) по Ethernet (TCP/IP).

Обработка позволяет выгрузить в весы наименование товара, ПЛУ, код, цену и срок годности.

Особенности CAS LP 1.5:

- Проверял работоспособность только на Рознице, редакции 2.2 (2.2.2.14)  Платформа 8.3.7.1860.

- Драйвер прилагается.

- Тестировал только на протоколе 1.5. Для 1.6, пологаю нужно прописать в коде scale.Type = 1;

- Порт по умолчанию для CAS LP 1.5 =  8111, тип = 0;

Особенности CAS CL3000:

- Проверял работоспособность только на Рознице, редакции 2.2 (2.2.4.17)  Платформа 8.3.8.1861.

- Порт по умолчанию для CAS CL300020304, тип = 8;

- Есть возможность указать несколько весов. Для этого в настройках добавляются все ip адреса устройств.

- Драйвер прилагается.

Если кому-нибудь будет полезна, буду только рад.

Код открыт, удачи!

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

Наименование Файл Версия Размер
ЗагрузкаВВесы CAS LP-15R.epf
.epf 21,84Kb
04.08.16
54
.epf 21,84Kb 54 Скачать
ЗагрузкаВВесы CAS CL3000.epf
.epf 23,17Kb
04.08.16
19
.epf 23,17Kb 19 Скачать
PrintScalesDriver.rar
.rar 7,72Mb
04.08.16
47
.rar 7,72Mb 47 Скачать

См. также

Комментарии
1. Радослав Гросу (gra4enok) 4 01.04.16 00:54 Сейчас в теме
Для консольной выгрузки, когда нет ключа на драйвер:
//выгружаем в весы
&НаКлиенте
Процедура КоманднаяПанель1Выгрузить(Кнопка)
	///
	ПЛУФайл = Новый ТекстовыйДокумент;
	///						
	ПЛУФайл.ДобавитьСтроку("номер отдела;номер товара;тип товара;первая строка названия товара;вторая строка названия товара;строка, которая печатается под логотипом;групповой код;код товара;фиксированная цена товара в копейках;цена товара в копейках;вес тары в граммах;дата упаковки в днях;время упаковки в часах;срок годности в днях;срок годности в часах;номер состава продукта прикрепленного к товару;текст состава продукта;номер этикетки для печати;номер штрихкода для печати;дата создания продукта в днях;номер текста рекламного сообщения;номер логотипа для печати на этикетке;номер единицы измерения количественного товара;кол-во для штучных и счетных товаров;номер страны-производителя;номер второго штрихового кода для печати на этикетке;фиксированный вес продукта;");
	Для Каждого Строка Из Объект.Товары Цикл
		Если ЗначениеЗаполнено(Строка.ПЛУ) И ЗначениеЗаполнено(Строка.Цена) И ЗначениеЗаполнено(Строка.Наименование) Тогда
			ЗаписатьВФайл(ПЛУФайл, Строка.ПЛУ, Строка.КодТовара, Строка.Наименование,
				 Строка.Цена, Строка.СрокГодности, Строка.Состав, Строка.ВесТары);	
		КонецЕсли;
	КонецЦикла;		
	ПЛУФайл.Записать("D:\CAS\sendplu.csv","windows-1251",Символы.ВК);
	ЗапуститьПриложение("D:\CAS\sendplu.cmd");
	////
КонецПроцедуры
...Показать Скрыть


&НаКлиенте
Функция ЗаписатьВФайл(ПЛУФайл, PLU, КодТовара, Номенклатура, Цена, СрокГодности, Состав, ВесТары) 
	Результат = Истина;
	Строка0 = Неопределено;
	Строка1 = Неопределено;
	Строка2 = Неопределено;
	
	ПредНаименование(Номенклатура, Строка1, Строка2);
	Строка0 = "1;";									//номер отдела;
	Строка0 = Строка0+Строка(PLU)+";";				//номер товара;
	Строка0 = Строка0+"1;";							//тип товара;
	Строка0 = Строка0+Строка1+";";					//первая строка названия товара;
	Строка0 = Строка0+Строка2+";";					//вторая строка названия товара;
	Строка0 = Строка0+"ABCDEF;";					//строка_ которая печатается под логотипом;
	Строка0 = Строка0+"1;";							//групповой код;
	Строка0 = Строка0+"0;";							//код товара;
	Строка0 = Строка0+"0;";							//фиксированная цена товара_ в копейках;
	Строка0 = Строка0+Формат(Цена*100,"ЧГ=0")+";";	//цена товара_ в копейках;
	Строка0 = Строка0+Формат(ВесТары*1000,"ЧГ=0")+"0;";	//вес тары_ в граммах;
	Строка0 = Строка0+"0;";							//дата упаковки_ в днях;
	Строка0 = Строка0+"0;";							//время упаковки_ в часах;
	Если СрокГодности = Неопределено ИЛИ СрокГодности = 0 Тогда
		Строка0 = Строка0+"0;";
	Иначе
		Строка0 = Строка0+Формат(СрокГодности,"ЧГ=0")+";";
	КонецЕсли;										//срок годности_ в днях;
	Строка0 = Строка0+"0;";							//срок годности_ в часах;
	Строка0 = Строка0+"0;";							//номер состава продукта прикрепленного к товару;
	Строка0 = Строка0+Состав+";";					//текст состава продукта;
	Строка0 = Строка0+"0;";							//номер этикетки для печати;
	Строка0 = Строка0+"0;";							//номер штрих-кода для печати;
	Строка0 = Строка0+"0;";							//дата создания продукта_ в днях;
	Строка0 = Строка0+"0;";							//номер текста рекламного сообщения;
	Строка0 = Строка0+"0;";							//номер логотипа для печати на этикетки;
	Строка0 = Строка0+"0;";							//номер единицы измерения количественного товара;
	Строка0 = Строка0+"0;";							//кол-во для штучных и счетных товаров;
	Строка0 = Строка0+"0;";							//номер страны-производителя;
	Строка0 = Строка0+"0;";							//номер второго штриховой код для печати на этикетки;
	Строка0 = Строка0+"0";							//фиксированный вес продукта
	
	ПЛУФайл.ДобавитьСтроку(Строка0);			
	Возврат Результат;
	
КонецФункции
...Показать Скрыть



sendplu.cmd

@echo off
D:
cd \CAS
Set ScaleIP=192.168.2.22
Set ScalePort=20304
Set ScaleType=0
Set ScaleDataType=0
Set FileName="sendplu.csv"

echo Send data to scale %ScaleIP% %ScalePort% %ScaleType% %ScaleDataType% %FileName%
CAScentre_PrintingScaleWorks.exe %ScaleIP% %ScalePort% %ScaleType% %ScaleDataType% %FileName%

if %ERRORLEVEL%==0 echo Vesy zagruzheny (oshibok net) 
if %ERRORLEVEL%==1 echo Neizvestnaya oshibka 
if %ERRORLEVEL%==2 echo Ne vybran tip otpravliyamih dannih 
if %ERRORLEVEL%==3 echo Dlya vibrannoy modely eti dannie ne dostupni 
if %ERRORLEVEL%==4 echo Bad file 
if %ERRORLEVEL%==5 echo Error send data to scale 
...Показать Скрыть


2. Сергей . (1108) 201 01.04.16 23:42 Сейчас в теме
(1) gra4enok, драйвер приложен бесплатный, с сайта разработчика. Спасибо за ваш вариант решения. Вот только он точно под весы 1.5? На сколько я знаю, по протоколу 1.5 выгружаются не все описанные вами поля. Да и порт вроде должен быть 8111?
3. Сергей Иванов (o3ophuk) 22.04.16 14:35 Сейчас в теме
Добрый день. Скачал файл, на основе него написал не большую обработку, которая делает выгрузку из установки цен на кассу offline и должна делать выгрузку на весы. Обработка внешняя типа "ЗаполнениеОбъекта" к документу "УстановкаЦенНоменклатуры". Не работает подключение драйвера в таком контексте. Если поможете решить проблему советом - буду благодарен.
Розница 2.2.2.15. Тонкий клиент.
4. Сергей . (1108) 201 22.04.16 15:14 Сейчас в теме
(3) o3ophuk, моя обработка к весам подключается? Если да, нужно видеть ваш код, чтобы что-то подсказывать. Если нет, возможно, дело в весах. Нужно проверить порт и тип весов.
5. Сергей Иванов (o3ophuk) 22.04.16 15:34 Сейчас в теме
Ваша подключается и работает прекрасно, единственная ремарка(но это недостаток драйвера): На весах должно быть установлено логическое устройство 1. Обязательно. Иначе весы подключатся, но данные туда уходить не будут.
Проблема у меня возникает именно когда я подключаю внешнюю обработку к документу. Могу выслать обработку на почту.
Уже думаю - может попробовать через lp16.dll забахать :)
6. Сергей . (1108) 201 22.04.16 15:50 Сейчас в теме
(5) o3ophuk, безопасный режим в обработке отключен? У меня к сожалению уже нет доступа к весам, чтобы что-то проверить. Если пришлете на earring87@mail.ru посмотрю, может что-то подскажу...
7. Сергей Иванов (o3ophuk) 22.04.16 16:04 Сейчас в теме
О, похоже я решил проблему.
Дело в том, что исполнялись серверные методы и платформа криво отрабатывала подключение com объекта на сервере. Так что надо работать исключительно клиентскими методами по работе с объектом драйвера.
В течение получаса проверю по факту - отпишусь.
Если у меня все получится - не против, если опубликую свою обработку с ссылкой на Вашу? :)
8. Сергей . (1108) 201 22.04.16 16:24 Сейчас в теме
(7) o3ophuk, этим сообщение я официально отказываюсь от претензий на вознаграждение по авторским правам на размещенную в этой публикации обработку и еже следующих, для коих она являлась бы основой))))))
9. Сергей Иванов (o3ophuk) 22.04.16 16:25 Сейчас в теме
:) Ну если бы не Вы - хз сколько я времени бы потерял, если бы писал все с нуля. Так что отблагодарить я все равно должен как-то.
10. Сергей . (1108) 201 22.04.16 16:28 Сейчас в теме
(9) o3ophuk, плюса к публикации будет достаточно.
11. niko (n_spb) 01.06.16 23:35 Сейчас в теме
Спасибо за Вашу обработку. Помогите разобраться в ситуации, весы CAS LP-15. Результат выгрузки товаров в весы ошибка -3. Посмотрел отладчиком Процедура ВыгрузитьНаВесыНаСервере() доходит до scale.SendPlu(); затем немного подвисает и вываливается с ошибкой -3. Тест подключения в обработке пишет, что порядок. Насколько понимаю в весы не записываются данные, подскажите, как поправить? В комментариях видел: "На весах должно быть установлено логическое устройство 1", как это правильно задать?
12. Сергей Иванов (o3ophuk) 02.06.16 07:02 Сейчас в теме
Задается это вот так:
Переключить весы в режим «программирования»
Выбрать пункт меню «СЕТ»
«ПЕЧ»
Нажать «8»
«ПЕЧ» (в поле «Сумма» будет показан текущий лог. номер весов)
Ввести новый лог. номер (например «1»)
«ПЕЧ»
Выйти из режима «программирования»
Выключить и включить весы

Взято с сайта Атола.

Еще у Вас могут быть весы cas lp-15, но работают они по протоколу lp-16.
Тогда в обработке надо заменить:
scale.Type = 0 на scale.Type = 1

Надеюсь поможет :)
13. niko (n_spb) 02.06.16 17:45 Сейчас в теме
(12) Спасибо за информацию. В весах стоит 1 в set если нажать 8, при выгрузке товара получаю ошибку - 3. Поставил scale.Type = 1 результат ошибка - 2. Релиз розницы у меня 2.2.2.12 на нем отборы по товару в обработке не работают совсем. Товар для тестовой выгрузки добавлял руками в наименование выбирал строку вбивал "тест", ПЛУ ставил 1, код товара 777, цену 10. Есть в весах какая-то проверка ПЛУ или кода товара, который в них передается или это абсолютно произвольные значения? Платформа 8.3.8.1652.
14. Сергей . (1108) 201 02.06.16 18:41 Сейчас в теме
(13) На сколько я помню, в Рознице 2.х нижний порог PLU по умолчанию - 100. Попробуйте трехзначное PLU. Вообще, кнопка "Заполнить товары" отбирает весовой товар с назначенными PLU кодами. Может у вас коды не назначены в базе или товар не отмечен как весовой?
По ошибкам:
-2 Не удалось соединиться с весами.
-3 Не удалось отправить товар на весы.
Прикрепил на всякий случай руководство программиста по драйверу. В нем описаны отличия возможностей протоколов 1.5 и 1.6.
Прикрепленные файлы:
Руководство программиста.rtf
15. niko (n_spb) 03.06.16 10:37 Сейчас в теме
(14) Огромное спасибо за "Руководство программиста". Кодов в базе действительно не было, заполнил, обработка стала отбирать товар. Поставил scale.Type = 1, товар в весы выгрузился. Похоже, некорректно руками задавал данные для выгрузки. Спасибо за Вашу поддержку. В интернете встретил совет, действия с весами в обработке делать не на &НаСервере, а на &НаКлиенте, что про это скажите?
16. Сергей . (1108) 201 03.06.16 11:05 Сейчас в теме
(15) По поводу работы с COM &НаСервере или &НаКлиенте, наверное правильнее использовать &НаКлиенте. Но так, как весов у меня уже нет и обработка работает, пожалуй, позволю себе воспользоваться отмазкой "Работает - не трогай..." и оставлю как есть)))
17. lex lex (lexme) 07.07.16 17:52 Сейчас в теме
на 1.6 не работает розница 2.2.4
18. Сергей . (1108) 201 07.07.16 18:28 Сейчас в теме
(17) В коде изменили scale.Type на 1? На весах логическое устройство - 1? В комментариях выше, вроде, работало у людей по 1.6...
19. lex lex (lexme) 07.07.16 22:03 Сейчас в теме
менял,провожу разбор полётов, судя по всему проблема с драйверами,а конкретно с ключом драйвера, просто 1Ска завязана через rdp и ключ установлен не на сервере, а на локальном компе, если только запустить базу на нем , но есть одна маленькая проблема ... железо древнее еле дышит
20. Сергей . (1108) 201 08.07.16 11:52 Сейчас в теме
(19) Я в публикации выложил драйвер бесплатный к этой обработке. Попробуйте его.
21. lex lex (lexme) 10.07.16 04:08 Сейчас в теме
я так понимаю если не ввести на весах лог.номер 1 то к ним и не получится подключиться?
22. lex lex (lexme) 15.07.16 12:31 Сейчас в теме
Всё работает , товар в весы уходит, теперь проблема в том что код с весов в программе не считывается. кто знает в чем причина? префикс менял, не помогает, форматы штрихкода в весах тоже менял , аналогично не читается .
23. Сергей . (1108) 201 15.07.16 14:17 Сейчас в теме
(22) lexme, приведите пример штрихкода выданного весами? По-умолчанию в рознице 2.2 штрихкод имеет ви: 21ssssswwwwwz. Где sssss - плу (sku), wwwww - вес, z-контрольное число.
24. lex lex (lexme) 15.07.16 18:06 Сейчас в теме
25. Сергей . (1108) 201 15.07.16 19:03 Сейчас в теме
(24) Проверьте в рознице у вас префикс весового товара - 20? Я так понимаю плу (sku) - 616 назначила именно 1С, через работу с кодами sku? Что именно пишет программа при чтении шк? Если товар с таким шк не найден, скорее всего дело в префиксе. Попробуйте на весах сделать префикс 21. При чтении штрихкода он в 1с полностью отображается? Может быть дело в сканере? Попробуйте вручную набрать штрихкод.
26. lex lex (lexme) 16.07.16 08:11 Сейчас в теме
(25) 1108, в весах префикс 21, при чтении шк именно это и пишет, 616 это код товара, не sku(plu) у этого товара sku/plu 105
27. Сергей . (1108) 201 17.07.16 19:11 Сейчас в теме
(26) lexme, если в весах префикс 21 почему в приведённом вами примере шк стоит 20? После двузначного префикса в шк должен идти пятизначный плу, а не код товара, так как после считывания сканером товар ищется именно по регистру с sku. Проверьте настройки формирования штрихкода в весах. Выше я приводил пример что должен содержать штрихкод.
28. lex lex (lexme) 18.07.16 05:34 Сейчас в теме
в весах настройки формирования вот так выглядят : 21 префикс, 00616 код товара, 00150 вес, 5 контрольное значение, и получается что SKU должно быть равно КодТовара, т.к печатается именно код а не sku/plu весы cas lp 1.6
29. Сергей . (1108) 201 18.07.16 14:43 Сейчас в теме
(28) lexme, в модуле формы обработки выгрузки замените:
scale.pluItemCode = НомерДляВесов;
на
scale.pluItemCode = ПЛУ;
Перед выгрузкой в весы лучше очистить память.


Оставьте свое сообщение