АВТ: Модуль интеграции c ActivePOS SDK Москва Фирма ООО «Автоматизация.Внедрение.Технологии» 2015 ОГЛАВЛЕНИЕ Оглавление НАЗНАЧЕНИЕ КОНФИГУРАЦИИ ................................................................................................................... 3 ПОДКЛЮЧЕНИЕ ДОПОЛНЕНИЯ В ТИПОВУЮ КОНФИГУРАЦИЮ ............................................................... 4 ОПИСАНИЕ ОБЪЕКТОВ МОДУЛЯ ИНТЕГРАЦИИ SDK.................................................................................. 7 РЕАЛИЗОВАННЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ ОБЩИХ МОДУЛЕЙ ............................................................ 9 ОСНОВНЫЕ ТИПЫ СОБЫТИЙ ACTIVEPOS .................................................................................................14 НАЗНАЧЕНИЕ КОНФИГУРАЦИИ Модуль «АВТ: Модуль интеграции с ActivePOS SDK» является дополнением к конфигурациям 1С на платформе 1С:Предприятие 8, работающих как в режиме управляемого приложения, так и в обычном режиме. Данное дополнение встраивается в используемую конфигурацию и предоставляет набор общих модулей и дополнительных объектов для настройки и отсылки событий ActivePOS из 1С в Trassir. В состав поставки входит пример работы с данным модулем. ПОДКЛЮЧЕНИЕ ДОПОЛНЕНИЯ В ТИПОВУЮ КОНФИГУРАЦИЮ 1. Запустите установку файла setup.exe. Программа установит необходимые файлы в каталог шаблонов 1С или выбранный Вами. Если Вы не знаете каталог шаблонов, его можно посмотреть. Для этого запустите 1С и меню выбора информационной базы, нажмите пункт «Настройка». 2. Откройте текущею информационную базу в режиме «Конфигуратор» и сделайте архивную копию! 3. Если у Вас не открыто окно конфигурации. Выберите пункт меню «Конфигурация» «Открыть конфигурацию». 4. Если на корне дерева конфигурации установлен замок, то необходимо включить возможность изменения конфигурации. 5. Для включения возможности изменения конфигурации необходимо зайти в пункт меню «Конфигурация» - «Поддержка» - «Настройка поддержки». Кнопка «Включить возможность изменения». 6. Далее необходимо выбрать пункты указанные ниже: 7. Далее выберите файл 1Cv8.cf из папки с шаблонами из каталога AVT/APOS/ нужного релиза. 8. Далее на вопрос о постановку на поддержку ответьте «Да». 9. В списке новых объектов будут присутствовать 3 объекта, с которых снят флаг для объединения – это справочник «Товары» и документ «Накладная» и общий модуль «АВТДемонстрационнйМодульКлиент» - они нужны для демонстрации возможностей модуля, если они нужны в рабочей конфигурации, то их можно пометить для объединения. 10. Уберите саму верхний флаг у названия конфигурации и нажмите кнопку «Выполнить». В новом окне о смене режимов редактирование объектов нажмите «ОК» 11. В окне о не разрешенных ссылках нажмите «Продолжить». Окно будет только в том случае, если не были помечены для объединения справочник «Товары» и «Накладная» и общий модуль «АВТДемонстрационнйМодульКлиент». 12. Для пользователей, по которым будет отсылаться события необходимо назначить права на чтение объектов входящих в подсистему «AcitvePOSSDK». 13. На компьютерах, с которых будут посылаться события, из каталога с шаблоном конфигурации необходимо зарегистрировать компоненту Socket.dll под правами администратора командой «regsvr32». ОПИСАНИЕ ОБЪЕКТОВ МОДУЛЯ ИНТЕГРАЦИИ SDK Форма настроек интеграции с ActivePOS доступна в меню ActivePOS SDR предназначена для просмотра и редактирования настроек передачи данных на сервер Trassir. С помощью данной формы пользователю предоставляется возможность включения/отключения модуля отправки сообщений о событиях на сервер Trassir. При снятом флажке будет полностью отключен функционал интеграции с ActivePOS. Для каждого компьютера с которого будет происходить отсылка событий необходимо задать IP-адрес сервера Trassir и порт, соответствующие камере, которая будет связано с конкретным компьютером. Важно: Порт должен соответствовать порту, указанному в настройках серверной части Trassir для выбранного компьютера. Данные о настройках записываются в регистр сведений «АВТСоответствиеКомпьютеровИПортов» Для проверки работы модуля следует использовать пустую базу, которую можно развернуть из шаблона. Это тот же самый cf файл, который используется для объединения с рабочей конфигурацией. Для проверки работы модуля в базе есть справочник «Товары» и документ «Накладная», в котором демонстрируется посылка событий: Создание документа Присвоение номера документа Закрытие документа Добавление товара Изменение цены Изменение количества РЕАЛИЗОВАННЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ ОБЩИХ МОДУЛЕЙ ОбщийМодуль.АВТСозданиеXMLДляActivePOSСервер: Функция СоздатьXML(ТипСобытия, СтруктураСобытия, УИД) – служит для генерации строки в виде XML файла. В функцию необходимо передать: o ТипСобытия - перечень основных типов событий приведен в разделе «Основные типы событий ActivePOS», а полный перечень смотрите в документации к программе «Trassir» o СтруктураСобытия – набор данных для создания xml, в структуре есть как обязательные поля, которые добавляются в данной процедуре (тип события, УникальныйИдентификатор, дата и время, пользователь), а часть необходимо добавлять в зависимости от типа события. Данные поля указаны в разделе «Основные типы событий ActivePOS», более подробную информацию смотрите в документации к программе Trassir o УИД – Уникальный идентификатор документа в ActivePOS, мы предлагаем передавать сюда УникальныйИдентификтор объект из 1С Функция возвращает строку XML файла. Функция ПолучитьПараметрыПодключенияКСерверу(ИмяПК) – по переданному символьному представлению имени компьютера возвращает IP адрес и порт подключения к Трассиру в регистре сведений «АВТСоответствиеКомпьютеровИПортов». В функцию необходимо передать: o ИмяПК - имя компьютера Функция возвращает структуру со свойствами «ИПСервера», «Порт». Процедуры ЗаписатьВЖурналРегистрацииОшибка и ЗаписатьВЖурналРегистрацииИнформация – осуществляют запись данных в журнал регстрации, либо с типом ошибка, либо с типом информация. В процедуру необходимо передать: o ИмяСобытия – строковое представление события для дальнейшего поиска пользователем в журнале регистрации o Сообщение – текст события Функция ИспользуетсяИнтеграцияСActivePOSдляКомпьютера (ИмяПК) – по переданному символьному представлению имени компьютера возвращает признак необходимости отправки событий для данного ПК. В случае если интеграция отключена (константа «АВТИспользоватьИнтеграциюСActivePOS» имеет значение булево), то возвращается Ложь. В процедуру необходимо передать: o ИмяПК - имя компьютера Функция возвращает Истина, если необходимо отсылать события с данного компьютера. ОбщийМодуль.АВТСозданиеXMLДляActivePOSКлиент: Процедура ОтправитьXML(ОтправляемаяСтрока, Сокет) – служит для отправки XML файла (полученной строки) через компоненту сокета. По результатам отправки происходит запись в журнал регистрации. В процедуру необходимо передать: o ОтправляемаяСтрока – XML файл o Сокет – компонента сокета Процедура ОбработатьОперацию(ТипСобытия, Сокет, СтруктураСобытия, ИмяПК, УИД) – Является центральной процедурой, которая вызывает необходимые функции и процедуры для генерации и отправки события в Трассир, данную процедуру следует использовать в формах объектах для которых будет осуществляется контроль событий. В процедуру необходимо передать: o ТипСобытия - перечень основных типов событий приведен в разделе «Основные типы событий ActivePOS», а полный перечень смотрите в документации к программе «Trassir» o Сокет – компонента сокета o СтруктураСобытия – набор данных для создания xml, в структуре есть как обязательные поля, которые добавляются в данной процедуре (тип события, УникальныйИдентификатор, дата и время, пользователь), а часть необходимо добавлять в зависимости от типа события. Данные поля указаны в разделе «Основные типы событий ActivePOS», более подробную информацию смотрите в документации к программе Trassir o ИмяПК - имя компьютера o УИД – Уникальный идентификатор документа в ActivePOS, мы предлагаем передавать сюда УникальныйИдентификтор объект из 1С Процедура СоздатьПодключениеКСерверу(Сокет, ИмяПК) – подключает компоненту сокета по заданным параметрам в настройке в регистра сведений «АВТСоответствиеКомпьютеровИПортов», при ошибки делает запись в журнал регистрации. В процедуру необходимо передать: o Сокет – компонента сокета o ИмяПК - имя компьютера ОбщийМодуль.АВТДемонстрационнйМодульКлиент: Модуль служит для демонстрации работы интеграции с ActivePOS по нескольким основным событий, все процедуры вызываются : Процедура ОткрытьДокумент(УИД, Сокет)– служит для открытия документа в ActivePOS не является обязательной, но для нормального отображения событий лучше использовать. При вызове данной процедуры на видеопоток будет выведена надпись «Открытие документа» и указан пользователь сеанса, у которого было открытие документа. В процедуру необходимо передать: o УИД – Уникальный идентификатор документа в ActivePOS, мы предлагаем передавать сюда УникальныйИдентификтор объект из 1С o Сокет – компонента сокета Процедура ЗакрытьДокумент(УИД, Сокет)– служит для закрытия документа в ActivePOS не является обязательной, но для нормального отображения событий лучше использовать. При вызове данной процедуры на видеопоток будет выведена надпись «Закрытие документа». В процедуру необходимо передать: o УИД – Уникальный идентификатор документа в ActivePOS, мы предлагаем передавать сюда УникальныйИдентификтор объект из 1С o Сокет – компонента сокета Процедура ПрисвоитьНомерДокумент(УИД, Сокет, Номер)– служит для закрытия документа и указания номера документа в ActivePOS не является обязательной, но для нормального отображения событий и указания номера лучше использовать. При вызове данной процедуры на видеопоток будет выведена надпись «Закрытие документа» и указан номер документа. В процедуру необходимо передать: o УИД – Уникальный идентификатор документа в ActivePOS, мы предлагаем передавать сюда УникальныйИдентификтор объект из 1С o Сокет – компонента сокета o Номер – Строка, например номер документа в 1С Процедура ДобавленТовар(УИД, Сокет, СтрокаСостава)– отсылает событие по добавлению товара, но для нормального отображения событий и указания номера лучше использовать. В процедуру необходимо передать: o УИД – Уникальный идентификатор документа в ActivePOS, мы предлагаем передавать сюда УникальныйИдентификтор объект из 1С o Сокет – компонента сокета o СтрокаСостава – добавляемая строка документа «Накладная» Процедура ИзмененоКоличество(УИД, Сокет, СтрокаСостава, ПредыдущееКоличество)– отсылает событие по увеличению или уменьшению количества товара. В процедуру необходимо передать: o УИД – Уникальный идентификатор документа в ActivePOS, мы предлагаем передавать сюда УникальныйИдентификтор объект из 1С o Сокет – компонента сокета o СтрокаСостава – текущая строка документа «Накладная», в которой меняется количество o ПредыдущееКоличество –количество товара до изменения. Мы рекомендуем для хранения предыдущего количества использовать реквизиты формы и заполнять их при начале редактирования строки, а само событие по изменению количества, вызывать при изменении ячейки с количеством Процедура ИзмененаЦена(УИД, Сокет, СтрокаСостава, ПредыдущаяЦена)– отсылает событие по увеличению или уменьшению цены товара. В процедуру необходимо передать: o УИД – Уникальный идентификатор документа в ActivePOS, мы предлагаем передавать сюда УникальныйИдентификтор объект из 1С o Сокет – компонента сокета o СтрокаСостава – текущая строка документа «Накладная», в которой меняется количество o ПредыдущаяЦена –цена товара до изменения. Мы рекомендуем для хранения предыдущей цены использовать реквизиты формы и заполнять их при начале редактирования строки, а само событие по изменению цены, вызывать при изменении ячейки с ценой Все выше перечисленные процедуры вызываются при работе с формой документа «Накладная». УИД – это уникальный идентификатор в системе ActivePOS, по УИД идет связка событий передаваемых в систему. Тип УИД - это строка. С точки зрения 1С УИД может быть равен Уникальному Идентификатору документа в 1С по которому идет регистрация событий. Если использовать уникальный идентификатор объекта, то в этому случае возможно объединять события разрозненные во времени по документу. Например, открыли документ, что-то отредактировали, прошло несколько дней, еще раз зашли и что-то еще отредактировали, а в видео архиве можно будет эти события просмотреть в рамках одного документа! Поскольку до записи нового документа такого идентификатора нет, то рекомендуем задавать его искусственно для вновь созданных документов с последующей записью. Для этого можно воспользоваться процедурой глобального контекста и методом объекта перед записью. Сделать реквизит формы УИД с типом «Уникальный идентификатор» В процедуре документа ПриСозданииНаСервере использовать следующий код: А в процедуре ПередЗаписьюНаСервере использовать следующий код ОСНОВНЫЕ ТИПЫ СОБЫТИЙ ACTIVEPOS В данном разделе описаны основные события ActivePOS. Обязательный набор передаваемых данных: event_type - тип события; operation_id - уникальный идентификатор операции (порядковый номер документа); cashier - имя пользователя; date - дата совершения операции (MM/dd/yyyy); time - время совершения операции (hh:mm:ss). Набор параметров, описывающих операцию: position - номер позиции в чеке; quantity - параметр, содержащий количественную характеристику операции; price - параметр, содержащий информацию о цене или стоимости выполняемой операции; barcode - штрихкод позиции; article - артикул позиции; text - параметр служит передачи текстовой информации об операции (например, наименование позиции, код ошибки и др.). Тип события (event_type) Описание POSNG_RECEIPT_OPEN Начало чека "Продажа" POSNG_RECEIPT_SELL_CLOSE Конец чека "Продажа" POSNG_RECEIPT_RETURN Начало чека "Возврат" POSNG_RECEIPT_RETURN_CLOSE Конец чека "Возврат" Дополнительные поля для передачи в структуру события Тип события (event_type) Описание Дополнительные поля для передачи в структуру события POSNG_RECEIPT_ANNULMENT Новый чек "Аннулирование" POSNG_RECEIPT_CLOSE Конец чека POSNG_RECEIPT_CANCEL Аннулирование чека POSNG_RECEIPT_DELAY Запись отложенного чека POSNG_RECEIPT_RECOVERY Восстановление чека POSNG_RECEIPT_NUMBER Номер чека POSNG_POSITION_ADD Добавление товара Position, quantity, price, в чек barcode, article POSNG_POSITION_AMOUNT_DECREASE Уменьшение количества товара Position, quantity, price, barcode, article POSNG_POSITION_AMOUNT_INCREASE Увеличение количества товара Position, quantity, price, barcode, article POSNG_POSITION_COST_DECREASE Уменьшение цены товара из чека Position, quantity, price, barcode, article POSNG_POSITION_COST_INCREASE Увеличение цены товара из чека Position, quantity, price, barcode, article POSNG_POSITION_CANCEL Отмена товара в чеке Position, quantity, price, barcode, article text Полный перечень событий смотрите в документации к программе Trassir.