Зміст

Підключення до BAF/BAS/1C в ручному режимі

Ініціалізація драйвера

Робота з драйвером NativeAPI чи СОМ-об'єктом - одинакова.
Відрізняється тільки ініціалізація драйвера в BAF/BAS/1С, в залежності від того, чи це NativeAPI, чи СОМ-об'єкт.

Ініціалізація СОМ-об'єкта в BAF/BAS/1C

Якщо ви використовуєте NativeAPI-версію драйвера, то цей пункт пропускайте. Переходьте заразу сюди: Ініціалізація NativeAPI

Перш за все потрібно зареєструвати драйвер за допомогою regsvr32.
В папці з драйвером є файл: “RegCOM_USLP.cmd”. Потрбіно його відкрити в текстовому редакторі, наприклад в “Блокноті”, та прописати фактичний шлях до файлів-DLL і зберегти файл:

В файлі прописана реєстрація двох одночасно 32 та 64 біт. Часто буває, що 1С запускається і 32 і 64-бітні версії платформ одночасно.

Після цього потрібно виконати файл “RegCOM_USLP.cmd” від імені Адміністратора: Після виконання буде 2 повідомлення про успішну реєстрацію СОМ-об'єктів. Якщо у вас Windows 32 біт, то останне повідомлення буде з помилкою, цю помилку ігноруйте.

Ініціалізація драйвера в 1С:

Версія платформи 8.х:

//Версія платформи 8.x
Перем ВагиДрук Экспорт;  
 
Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
	Попытка
		ПодключитьВнешнююКомпоненту("AddIn.UniScalesLPrint");
		ВагиДрук = Новый ("AddIn.UniScalesLPrint");
	Исключение
		Сообщить("Компонента UniScalesLPrint для роботи з вагами НЕ завантажена!");
	КонецПопытки;
КонецПроцедуры

Версія платформи 7.7:

//Версія платформи 7.7
Перем ВагиДрук  Экспорт;
//////////////////////////////////////////////////////////////	           
//Инициализация при открытии обработки
Попытка
	ПодключитьВнешнююКомпоненту ("AddIn.UniScalesLPrint");
	ВагиДрук = СоздатьОбъект ("AddIn.UniScalesLPrint");
Исключение
	Сообщить("Компонента UniScalesLPrint для роботи з вагами НЕ завантажена!");
КонецПопытки;

Ініціалізація NativeAPI-версії драйвера в BAF/BAS/1C

Якщо ви використовуєте СОМ-об'єкт, то цей пункт пропускайте.

Версія тільки для платформи 8.х:

Перем ВагиДрук Экспорт;  
 
Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
	Перем ПутьКПапкеУстановки;
 
	/////////////////////////////////////////////////////////////
	///  Впишіть шлях до папки DLL-файлів   "ПутьКПапкеУстановки"
	///  в кінці без слеша: ПутьКПапкеУстановки = "C:\UniScalesLPrint\UniScalesLPrint";
 
	ПутьКПапкеУстановки = "C:\UniScalesLPrint\UniScalesLPrint";
 
	СистемнаяИнформация = Новый СистемнаяИнформация;
 
	Попытка 		
		Если СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Windows_x86_64 Тогда			
			ПодключитьВнешнююКомпоненту(
				ПутьКПапкеУстановки+"\UniScalesLPrintNativeAPI64.dll",
				"UniScalesLPrint",
				ТипВнешнейКомпоненты.Native);
		Иначе 
			ПодключитьВнешнююКомпоненту(
				ПутьКПапкеУстановки+"\UniScalesLPrintNativeAPI32.dll",
				"UniScalesLPrint",
				ТипВнешнейКомпоненты.Native);			
		КонецЕсли;
 
		ВагиДрук = Новый ("AddIn.UniScalesLPrint.UniScalesLPrint");
 
		Сообщить("Загружено UniScalesLPrint: "+ВагиДрук.GetVersion());
 
	Исключение
		Сообщить("Помилка завантаження драйвера вагів UniScalesLPrint."
			    +" Перевірте шлях до драйвера та розрядність платформи!");
	КонецПопытки;    	
 
КонецПроцедуры

Приклади роботи з Драйвером

Подальша робота з драйвером одинакова для всіх версій BAF/BAS/1C, та варінтів реалізацій драйвера.

Приклад очистки бази товарів у вагах:

ВагиДрук.ПодключитьВесыПоEthernet("Scales01", 
				"192.168.0.28", 
				2,   	// 1 - CAS CL3000/3500/5000
					// 2 - CAS CL3000J/3500J/5000J Junior
				"0000-0000-0000-0000" // Ліцензійний ключ
				);
ВагиДрук.ОчиститьТовары( "Scales01");	
ВагиДрук.ЗакрытьСоединение("Scales01");

Приклад програмування товарів:

Перем ТекстОшибки;
 
ВагиДрук.ПодключитьВесыПоEthernet("Scales01", 
				"192.168.0.28", 
				2,   	// 1 - CAS CL3000/3500/5000
					// 2 - CAS CL3000J/3500J/5000J Junior
				"0000-0000-0000-0000" // Ліцензійний ключ
				);
 
ВагиДрук.ПрограммироватьТоварV1( "Scales01" 
				,"Банан8"  // 2.  Назва товару, макс 80 символів.
				,008 	// 3.  Код товару (часто співпадає з PLU)
				,008	// 4.  PLU
				,12050	// 5.  Ціна в копійках, ціле число
				,10	// 6.  Срок придатності в днях, ціле число
				,0	// 7.  Тара в грамах, ціле число
				,0	// 8.  0 - ваговий товар, 1 - штучний
				,51	// 9.  Номер етикетки 	
				,1	// 10. Номер відділу
				,0	// 11. Номер штрих коду, 0 - по замовчуванню
				,0	// 12. Номер додаткового повыдомлення
				,0	// 13. Номер одиниць вимырювання 
				);
Если 0<>ВагиДрук.ПолучитьОшибку(ТекстОшибки) Тогда Сообщить(ТекстОшибки); Возврат; КонецЕсли;
 
ВагиДрук.ПрограммироватьТоварV1( "Scales01","Апельсин9",009,009,1405,10,20,0,51,1,0,0,0);
Если 0<>ВагиДрук.ПолучитьОшибку(ТекстОшибки) Тогда Сообщить(ТекстОшибки); Возврат; КонецЕсли;
 
ВагиДрук.ПрограммироватьТоварV1( "Scales01","Мандарин10",010,010,1500,0,0,0,51,1,0,0,0);
Если 0<>ВагиДрук.ПолучитьОшибку(ТекстОшибки) Тогда Сообщить(ТекстОшибки); Возврат; КонецЕсли;
 
ВагиДрук.ЗакрытьСоединение("Scales01");