====== Підключення до BAF/BAS/1C в ручному режимі ====== ===== Ініціалізація драйвера ===== Робота з драйвером NativeAPI чи СОМ-об'єктом - одинакова. \\ Відрізняється тільки ініціалізація драйвера в BAF/BAS/1С, в залежності від того, чи це NativeAPI, чи СОМ-об'єкт. \\ ==== Ініціалізація СОМ-об'єкта в BAF/BAS/1C ==== **Якщо ви використовуєте NativeAPI-версію драйвера, то цей пункт пропускайте. Переходьте заразу сюди: [[comobj_and_nativeapi#ініціалізація_nativeapi-версії_драйвера_в_baf_bas_1c|Ініціалізація NativeAPI]] ** Перш за все потрібно зареєструвати драйвер за допомогою regsvr32. \\ В папці з драйвером є файл: "**RegCOM_USLP.cmd**". Потрбіно його відкрити в текстовому редакторі, наприклад в "Блокноті", та прописати фактичний шлях до файлів-DLL і зберегти файл: {{ :init001.png?nolink |}} В файлі прописана реєстрація двох одночасно 32 та 64 біт. Часто буває, що 1С запускається і 32 і 64-бітні версії платформ одночасно. Після цього потрібно виконати файл "**RegCOM_USLP.cmd**" від імені Адміністратора: {{ :init002.png?nolink |}} Після виконання буде 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");