Зміст
Підключення до 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");