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