Бпо 1с что это
"1С:Библиотека подключаемого оборудования 8.2" предоставляет набор механизмов для унифицированной работы с подключаемым оборудованием.
Применение данной библиотеки позволяет ускорить реализацию поддержки широкого спектра моделей подключаемого оборудования в разрабатываемых конфигурациях, а также добавить готовые функциональные блоки в уже работающие прикладные решения.
"1С:Библиотека подключаемого оборудования 8.2" обеспечивает следующие функции:
- администрирование перечня подключенного оборудования,
- настройка параметров подключения,
- поставка сертифицированных драйверов в составе библиотеки,
- установка необходимых драйверов оборудования,
- тестирование работы библиотеки с подключенным оборудованием.
Предоставляемый библиотекой функционал является универсальным и не зависит от конкретных моделей оборудования различных производителей.
"1С:Библиотека подключаемого оборудования 8.2" в настоящее время поддерживает следующие виды подключаемого оборудования:
- сканер штрихкода,
- считыватель магнитных карт,
- фискальный регистратор,
- дисплей покупателя,
- эквайринговый терминал,
- электронные весы,
- весы с печатью этикеток,
- ККМ офлайн.
Перечень видов поддерживаемого оборудования со временем планируется расширять.
СОСТАВ, ПОРЯДОК РАСПРОСТРАНЕНИЯ И ИСПОЛЬЗОВАНИЯ "1С:БИБЛИОТЕКИ ПОДКЛЮЧАЕМОГО ОБОРУДОВАНИЯ 8.2"
"1С:Библиотека подключаемого оборудования 8.2" распространяется в виде конфигурации для платформы "1С:Предприятие 8.2" в составе информационно- технологического сопровождения (1С:ИТС). Документация по библиотеке также публикуется в составе 1С:ИТС и содержит пошаговую инструкцию по внедрению в произвольную конфигурацию-потребитель и по использованию функционала библиотеки в прикладных решениях.
При тиражировании прикладных решений, которые используют "1С:Библиотеку подключаемого оборудования 8.2", должны соблюдаться авторские права фирмы "1С" на систему"1С:Предприятие 8". В частности, использование таких конфигураций допускается только при наличии у пользователя правомерно приобретенной основной поставки "1С:Предприятия 8". Информация о том, что тиражное решение разработано с использованием "1С:Библиотеки подключаемого оборудования 8.2", должна быть отражена:
В тоже время использование прикладного решения, разработанного с применением"1С:Библиотеки подключаемого оборудования 8.2", возможно без договора 1С:ИТС при одновременном выполнении следующих условий:
- правообладатель прикладного решения не требует обязательного договора 1С:ИТС;
- пользователь самостоятельно не осуществляет доработку прикладного решения с применением "1С:Библиотеки подключаемого оборудования 8.2".
Финальная версия "1С:Библиотеки подключаемого оборудования 8.2" совместима с платформой "1С:Предприятие 8.2" версии 8.2.15 и выше.
ПОДДЕРЖКА ПОЛЬЗОВАТЕЛЕЙ
Поддержка пользователей "1С:Библиотеки подключаемого оборудования 8.2" осуществляется только при наличии действующего договора информационно- технологического сопровождения (1С:ИТС), оформленного на основную поставку "1С:Предприятия 8" версии ПРОФ, и включает:
При обращении на линию консультаций фирмы "1С" необходимо указывать регистрационный номер основной поставки "1С:Предприятия 8" версии ПРОФ, на которую оформлен договор 1С:ИТС.
Наверное каждому кто пишет свою конфигурацию с нуля, рано или поздно понадобится подключить к ней какое то оборудование, будь то принтер чеков, кассовый аппарат, сканер штрихкодов и т.д. Если делать это с нуля без каких либо заготовок, задача может показаться не такой то и простой, так как потребуется изучить само оборудование, найти драйвера к нему и написать интерфейс обмена его со своей конфигурацией.
На вопрос о постановке на поддержку я бы посоветовал ответить Да.
Далее необходимо отметить необходимые вам подсистемы.
1) Для начала снимите галочки с корня конфигурации и диалоге сравнения и объединения, затем выполните действие «Отметить по подсистемам из файла» и отметьте подсистему – ПодключаемоеОборудование. Снимите флажок «Включать объекты подчинённых подсистем». Нажмите «Установить».
2) Ещё раз выполните действие «Отметить по подсистемам из файла». На этот раз отметьте подсистемы необходимого оборудования вложенные в ПодключаемоеОборудование. Нажмите «Установить».
3) Нажмите Выполнить и Продолжить.
Далее согласно инструкциям с ИТС:
В целевую конфигурацию в модуль управляемого приложения в процедуры ПередНачаломРаботыСистемы(), ПриНачалеРаботыСистемы(), ПередЗавершениемРаботыСистемы(), ОбработкаВнешнегоСобытия()перенести код отвечающий за инициализацию и работу библиотеки.
Далее включаем справочники ДрайверыОборудования и ПодключаемоеОборудование в свою подсистему и включаем мх в командный интерфейс управляемого приложения. При попытке запуска настройки рабочего места мы получим ошибку.
Чтож ожидаемо, так как мы не перенесли код в модуль управляемого приложения. Так давайте же сделаем это.
Также нужно установить в параметрах сеанса код, ответственный за установку параметров. Пример кода можно посмотреть в Демо базае БПО, текущего релиза, в моем случае это было:
Итак запускаем базу и видим что ошибок нет. Добавляем драйвера, в конфу, я их выгрузил из справочники Драйверы оборудования и добавил ручками в свою конфу. И создаем экземпляр оборудования.
Ну а дальше дело за малым, читаем документацию соответственно подключаемому оборудованию и реализуем код. В моем случае для печати чека на принтере чеков я реализовал простейшую функцию.
Качаете с сайта 1С последнюю версию библиотеки подключаемого оборудования и устанавливаете. Обновляете платформу до самой последней 8.3.
В настройках конфигурации ставим максимальный режим совместимости и в совместимости интерфейса разрешаем такси. После сравнением-объединением добавляем функционал 1Cv8.cf из папки установленной БПО следуя инструкции из ExtFiles\Порядок внедрения БПО.htm.
Добавляем код из БПО в модуль управляемого приложения и этот же код дублируем в модуль обычного приложения. В модуль сеанса процедуру УстановкаПараметровСеанса добавляем строчку
Также в справочник Подключаемое оборудование следует добавить реквизит касса.
А в общем модуле СтандартныеПодсистемыПовтИсп в процедуре ВставитьИменаПодчиненныхПодсистем заккоментировать проверку на включение в командный интерфейс. После этого включаем в подсистеме Подключаемое Оборудование галку включать в командный интерфейс и настраиваем его.
Прописываем в список баз эту же базу и основной режим запуска ставим тонкий клиент. Создаем обработку для работы на управляемых формах. То есть вся работа с базой 1с будет идти в обычном режиме, а печать чеков будет с управляемых форм. В обработку запихиваем служебный код открытия закрытия смены из ExtFiles\Применение функционала БПО в конфигурациях.htm а также оттуда берем пример кода печати чека и адаптируем его для нужных документов. Либо этот код можно взять из свежей УТ 10.3. Дописываем код нахождения и печати еще не распечатанных чеков и приступаем к исправлению ошибок совместимости.
Основные ошибки, с которыми я столкнулся, это что в запросе поля по которым идет сортировка нужно добавить к полям выборки и то, что .Метаданные() у незаполненного значения больше спросить нельзя. Добавляем требуемые поля в выборки в запросы и обращения к метаданным берем в попытку исключение. Ошибок таких достаточно немного, вполне возможно их исправлять оперативно.
Для работы оборудования понадобится драйвер, его можно быстро заполучить, установив демо базу Библиотека Подключаемого Оборудования, В стартере через добавить создаем ее, открываем базу, открываем справочник "Драйвера оборудования", сохраняем нужный.
Соответственно потом открываем базу с тонкого клиента, загружаем а потом устанавливаем драйвер, добавляем оборудование, прописываем настройки ККТ. Важно прописать налоговые ставки так же как они забиты в ККТ иначе чек не будет печататься.
При подключении эквайринга от Сбербанка столкнулся с проблемой, решение которой было не очевидно.
Терминал у меня прописан так:
При входе в параметры подключения у меня выдавались вот такие параметры:
В демо-базе БПО 3.1 окно подключения такое же.
Тест подключения не проходил, это и не удивительно, в каталоге поставки от сбербанка файла pilot_nt нет:
В интернете пишут что sb_pilot используется для Linux.
Тогда я решил посмотреть, как выглядит это меню в типовой демо-базе Розницы:
Как видно, тут просто указан путь к дистрибутиву, а не путь к sb_pilot.
Тогда я подумал, что в Рознице используется другой драйвер оборудования, но нет, там такой же драйвер с идентификатором Драйвер1СЭквайринговыеТерминалыСбербанк.
Я сохранил общий макет Драйвер1СЭквайринговыеТерминалыСбербанк из обоих конфигураций, они оказались идентичными:
Я посмотрел, как прописан драйвер в обоих базах. В моей:
Сейчас вижу, что не заполнено поле имя макета, но скорее всего дело не в этом.
Получил ошибку, т.к. не все общие модули перенес из БПО:
Перенес этот модуль (и связанные) в итоге не смог установить драйвер:
Отладил код подключения в Рознице, он шел по отмеченными рамками шагам:
Причем в рознице параметры правильные определялись:
В общем, ничего не дало мне использование компоненты вместо макета.
Тогда поменял обратно на «Драйвер подключается из макета» и о чудо, настройки стали нормальными:
Возможно, нужно было очистить поле «Загруженный драйвер», при смене метода он очистился? Не знаю…
При этом как-то сам по себе драйвер получил нужные параметры. Как так вышло, пока не знаю, буду смотреть на другом компьютере, если найду закономерность, допишу.
При реализации проектов на 1С зачастую приходится сталкиваться с разного рода устройствами и их сопряжением. Покуда будут существовать устройства на древним RS232 будет необходимость во внешних компонентах такого рода. Как правило с устройством идет документация, которая нередко содержит систему команд и некий драйвер который распространяется «так как есть». Очень часто драйвера «так как они есть» оставляют ожидать лучшего. Я предлагаю немного окунутся в системное программирование и решить для себя сей вопрос раз и навсегда.
Прекрасная статья содержит пример и достаточное описание что к чему, что где менять. Пример компилируется. Для быстрого старта замечательная статья. Подобный пример свободно распространяется фирмой 1С и валяется в куче хлама на диске ИТС. Много раз мелькало в глазах но было заложено на дальнюю полку с ярлыком «обязательно изучить».
Для простоты внешнюю компоненту далее по тексту буду называть драйвером.
При этом предварительно никаких действий типа regsvr32. Да и на сколько мне известно, OLE32 ужа давно не флагманская технология Microsoft.
2. Хранение самого драйвера в составе обработки или конфигурации.
Файл драйвера вставляем в макет 1С как двоичные данные и по надобности распаковываем его в временный каталог пользователя.
3. Реализация интерфейса драйвера. Вынос логики команд на сторону 1С.
Первоначально при написании драйвера, была использована идеология существующих драйверов. ДемоКомп.СделайЧтото(МногоРаз).
По-сути был повторен драйвер, разумеется без ограничений наложенных производителем. Но сия наследственность оказалась мучительной и пагубной. Раз в пол года возникает необходимость добавления каких-то команд, изменении существующих.
Был написан универсальный драйвер RS232 порта для 1С. Он был протестирован usb-модемом Huawei-1550 и с Марией. Для этого драйвера необходимо переписать сервис обработку для 1С.
После очередного «усовершенствования» родилась идея выноса логики команд на сторону 1С. Драйвер занимается только реализацией транспортного протокола. Системные программисты ликуют. Теперь команда драйвера выглядит:
И да на радость каждому программисту 1С Native API дает возможность вызывать функции по-русски (русские псевдонимы функций).
4. Запись протокола обмена.
Для записи в файл maria.log в каталог временных файлов пользователя команд и реакций на них необходимо:
В файле пишется время и вид события: с — команда; а — ответ; u — соединение; t — количество циклов для получения ответа; e — ошибка.
Вот минимальный набор необходимого чтоб «заработало». Теперь немного о будущем:
5. Другие устройства такого класса.
По задумке не сложно заменить транспортный протокол Марии на протокол например ИКС-а. Можно было б говорить о семействе драйверов. Сам скелет основных необходимых функций готов.
6. Внешние события.
В процедурах реализации транспортного протокола стоит перейти на threads, а сигнализацию о завершении работы команды делать внешним событием. Хочу сделать именно так, но немножко чего-то не хватает: времени или знаний или того и другого. И рок «уже работает так», " работает не трогай" немного охлаждает пыл порыва.
7. Совместная работа.
В планах написание простого web-сервиса, который бы принимал команды, организовывал очередь команд и перенаправлял их на устройство. Сервисная обработка в таком случае будет выглядеть аналогично, команды не поменяются. Изменится только инициализация объекта.
Ссылка на проект на github
Проект состоит из проекта Visual Studio, демонстрации команд на 1С (в модуле управляемого приложения) и сервис обработки для 1С.
Читайте также: