Внимание! Подключаемая компонента поддерживает только 32-битные версии платформы 1С.
Регистрация библиотеки AddIn_1CToWebServer.dll - reg.bat:
@ECHO OFF REM The following directory is for .NET 4.0 set DOTNETFX4=%SystemRoot%\Microsoft.NET\Framework\v4.0.30319 set PATH=%PATH%;%DOTNETFX4% echo --------------------------------------------------- regasm.exe "AddIn_1CToWebServer.dll" /tlb /codebase echo ---------------------------------------------------
Регистрации библиотеки производится от имени Администратора. В примере “Тест ВК WEB сервера” регистрация производится автоматически при первом запуске программы.
Пример подключения компоненты AddIn_1CToWebServer.dll:
Если глВесы1 = Неопределено Тогда Если не ПодключитьВнешнююКомпоненту("AddIn.1CToWebServer") Тогда Сообщить("Компоненту AddIn.1CToWebServerне удалось подключить, требуется инициализация!!!"); Возврат Ложь; Иначе Попытка глВесы1 = Новый("AddIn.1CToWebServer"); //Сообщить("Компонента AddIn.1CToWebServer загружена"); Возврат Истина; Исключение глВесы1 = Неопределено; Сообщить("Не удалось загрузить компоненту"); Сообщить(""+ОписаниеОшибки()); Возврат Ложь; КонецПопытки; КонецЕсли; КонецЕсли;
ОткрытьСерверВесы(<АдресСервера>, <debugMode>)
Подключиться к WEB Серверу АВТО.
<АдресСервера> – сетевой путь (IP адрес) к компьютеру, где установлен WEB сервер
(например 192.168.10.122:8090)
<debugMode> - логическое значение режим отладки.
После запуска включается цикл опроса сервера (Включен = 1) . Если WEB-Сервер по указанному адресу откликнулся, то проверить состояние можно с помощью свойства СерверОткрыт = 1
ЗакрытьСерверВесы()
Закрыть соединение с сервером.
После запуска выключается цикл опроса сервера (Включен = 0) . Проверить состояние можно с помощью свойства СерверОткрыт = 0
Включен
Свойство - флаг состояния активности цикла опроса WEB-сервера Включен=1 – цикл включен
СерверОткрыт
Свойство - флаг состояния подключения к WEB-серверу СерверОткрыт=1 – сервер открыт
Источник = «1CToWebServer»
Наименования событий
Событие = «error» - ошибка
Событие = «ServerOpen» - сервер открыт
Данные – Адрес Сервера
Событие = «ServerClose» – сервер закрыт
Данные – Адрес Сервера
Событие = «Start» – старт цикла опроса
Событие = «Stop» – остановка цикла опроса WEB сервера
Событие = «ServerUpdateParam» – принят обновлен очередной пакет с параметрами
Событие = «ServerUpdatePhoto»– приняты обновлены фотоснимки с камер
События оборудования ВЕСЫ
Событие = UpdateMassa – изменено значение массы
Событие = UpdateFreq – изменено значение частоты передачи с весового индикатора
Событие = UpdatefSTABIL – изменено состояние стабильности
Событие = UpdateStateVesyName – изменено состояние весов
Событие = UpdateAutoVsv AutoVsv_UpdateDateTime – изменено значение даты последнего автовзвешивания
Событие = UpdateAutoVsvSelect – автовзвешивание загружено
События системы распознавания
Событие = UpdateCamRecognTS – изменилось состояние номер найден (для всех камер)
Событие = UpdateCamNumbTS – изменилось значение найденного номера транспорта (для всех камер)
Событие = UpdateCamNumbPricep – изменилось значение найденного номера прицепа (для всех камер)
Событие = UpdateCam1RecognTS – изменилось значение найденного номера транспорта в камере 1
Событие = UpdateCam2RecognTS – изменилось значение найденного номера транспорта в камере 2
Событие = UpdateCam3RecognTS – изменилось значение найденного номера транспорта в камере 3
Событие = UpdateCam4RecognTS – изменилось значение найденного номера транспорта в камере 4
Масса
Функция возвращает значение массы.
Частота
Функция возвращает частоту пакетов, посылаемых весовым индикатором в компьютер
УстановитьНоль()
Послать команду установки нуля на весовой индикатор.
Ноль
Функция возвращает флаг “Ноль” (значение 1 или 0)
Стабил вызывается перед взвешиванием, для проверки
Функция возвращает флаг “Стабильность” (значение 1 или 0)
ИмяВесов
Функция возвращает имя весов
ЭмуляцияПоказаний
Свойство, возвращает 1 если включен режим эмуляции
ВходПользователя (<ИмяПользователя>)
Регистрирует вход пользователя в базу событий Сервера Весы
<ИмяПользователя> – Строка. Имя пользователя, подключившегося к весам
ВыходПользователя (<ИмяПользователя>)
Регистрирует выход пользователя в базу событий Сервера Весы
<ИмяПользователя> – Строка. Имя пользователя, подключившегося к весам
ИмяСостоянияВесов
Возвращает строку сокращенного наименования состояния весов
РасшифровкаСостоянияВесов
Возвращает строку расшифровки состояния весов
ЗафиксироватьВзвешивание(<GUIDДокумента>, <МАССА>, <ИмяПользователя>);
(ОБЯЗАТЕЛЬНО ДЛЯ ИСПОЛЬЗОВАНИЯ)
Устанавливает флаг контроля, и сообщает Серверу о том, что взвешивание произведено.
Следующая за ней команда ЗаписатьДокументВзвешивания.
GUIDДокумента – уникальный идентификатор взвешивания. Если пуст, то заполняется новым значением.
МАССА – масса взвешенного груза
ИмяПользователя – Строка. Имя пользователя.
ПослеВзвешиванияНеСъезжал() вызывается перед взвешиванием, для проверки съехал ли транспорт с весов.
Функция возвращает флаг «ПослеВзвешиванияНесъезжал» (значение 1 или 0)
ВзвешиваниеНеСНоля() вызывается перед взвешиванием, для проверки было ли обнуление весов перед заездом транспорта.
Функция возвращает флаг «ВзвешиваниеНеСНоля» (значение 1 или 0)
ЗаписатьДокументВзвешивания(<GUIDДокумента>, <КодТипаВзвешивания>, <ТипВзвешивания>,<НомерДокумента>,<ДатаДокумента>,<ВремяДокумента>,<КодОтправитель>,<Отправитель>,<КодПолучатель>,<Получатель>,<КодПунктОтправления>,<ПунктОтправления>,<КодПунктНазначения>,<ПунктНазначения>,<КодГруз>,<Груз>,<КодВодитель>,<Водитель>,<НомерНакладной>,<ДатаНакладной>,<ТараПоДокументу>,<БруттоПоДокументу>,<НеттоПоДокументу>,<КодМаркаТС>,<МаркаТС>,<НомерТС,РегионТС>,
<НомерПрицепа>,<РегионПрицепа>,<ИмяПользователя>, ТАРА>, ДатаТарирования>, <ВремяТарирования>,<БРУТТО>,<ДатаБрутирования>, <ВремяБрутирования>, <НЕТТО>, <флагУдален>)
Создает или обновляет в базе взвешиваний запись о взвешивании с заполненными полями.
Если GUID (уникальный идентификатор взвешивания) не найден создает новую запись, иначе обновляет существующую
GUIDДокумента – уникальный идентификатор взвешивания, тип строка GUID. Если <GUIDДокумента> пустой, создается при первой записи сервером Firebird.
ТипВзвешивания – Строки - наименование типа взвешивания.
НомерДокумента – Номер документа.
ДатаДокумента – дата документа.
ВремяДокумента – время документа.
КодОтправителя, Отправитель – Код и наименование Контрагенты.
КодПолучатель, Получатель – Код и наименование Контрагенты.
КодПунктОтправления, ПунктОтправления – Код и наименование Пункты или МестаХранения.
Код ПунктНазначения, ПунктНазначения – Код и наименование Пункты или МестаХранения.
Код Груз, Груз – Код и наименование Номенклатура.
КодВодитель, Водитель – Код и ФИО водителя.
НомерНакладной – строка НомерНакладной.
ДатаНакладной – Дата накладной.
ТараПоДокументу – тара по документу.
БруттоПоДокументу – брутто по документу.
НеттоПоДокументу – нетто по документу.
Код МаркаТС, МаркаТС – Код и наименование Марки ТС.
НомерТС,РегионТС – Гос.номер и регион ТС.
НомерПрицепа – Гос. Номер прицепа.
РегионПрицепа – регион прицепа.
ИмяПользователя – Строка. Имя пользователя.
ТипТары – Строка. Характер значения тары – “взвешивание” или “вручную”.
ТАРА, ДатаТарирования,ВремяТарирования – Строка масса тары, дата и время тарирования.
ТипБрутто – Строка. Характер значения брутто – “взвешивание” или “вручную”.
БРУТТО, ДатаБрутирования,ВремяБрутирования – Строка масса брутто, дата и время брутирования.
НЕТТО – Масса НЕТТО.
флагУдален – признак флага удален (‘1’ – удален, ‘0’ – не удален).
поля <Код..> используются в базе взвешиваний для ведения справочников.
ЗаписатьПараметрДокументаВзвешивания(<GUIDДокумента>, <ИмяПоля>,<Значение>)
Создает или обновляет в базе взвешиваний запись о взвешивании
Обновляет значение указанного поля.
Если GUID (уникальный идентификатор взвешивания) не найден создает новую запись, иначе обновляет существующую
GUIDДокумента – уникальный идентификатор взвешивания, тип строка GUID. Если <GUIDДокумента> пустой, создается при первой записи сервером Firebird.
ЗаписатьСобытие(<ИсточникСобытия>,<Описание>)
Создает в фискальном журнале событий записать о дополнительном событии. Регистрация с текущим временем.
Возвращает 1-если успешно, 0-неудачно
<ИсточникСобытия> – метка (целое число) указывающая на источник события
2 - Оператор
3 - Взвешивание
4 - Программа
5 - Администрирование
<Описание> – Строка. Описание события
JPG полном размере
ПолучитьФотоКамеры1();
JPG в размере окна
ПолучитьФотоПоРазмеруКамеры1(<Ширина>,<Высота>);
БМП в полном размере
ПолучитьФотоБМПКамеры1();
БМП в размере окна
ПолучитьФотоБМППоРазмеруКамеры1(<Ширина>,<Высота>);
Пример Сохранения фото в файл:
БинДанные = Base64Значение(ТекущиеВесы.ПолучитьФотоКамеры1()) Фото1 = Новый Картинка(БинДанные); Фото1.Записать(КаталогИБ+ "\PHOTO\"+GUIDДокументаВзвешивания + "_PHOTO_"+НомерВзв+"1.jpg");
флаг номер найден
КамераНайденНомер свойство возвращает – 1, если номер найден
Получить НомерТС
КамераНомерТС возвращает строку с номером
Получить РегионТС
КамераРегионТС возвращает строку с регионом
Получить НомерПрицепа
КамераНомерПрицеп возвращает строку с номером
Получить РегионПрицепа
КамераРегионПрицеп возвращает строку с регионом
РасшифровкаСостоянияПроезда
Строка расшифровка текущего состояния проезда
СобытиеНомерВКамере1
Возвращает 0 или 1. Событие – стабильное распознавание номера в камере 1
СобытиеНомерВКамере2
Возвращает 0 или 1. Событие – стабильное распознавание номера в камере 2
СобытиеНомерВКамере3
Возвращает 0 или 1. Событие – стабильное распознавание номера в камере 3
СобытиеНомерВКамере4
Возвращает 0 или 1. Событие – стабильное распознавание номера в камере 4
СобытиеДатчик1
Возвращает 0 или 1. Событие – сработал датчик 1
СобытиеДатчик2
Возвращает 0 или 1. Событие – сработал датчик 2
РазрешитьПроезд
Возвращает 0 или 1. Флаг – проезд разрешен
РазрешитьПроезд1
Возвращает 0 или 1. Флаг – проезд разрешен в направлении 1
РазрешитьПроезд2
Возвращает 0 или 1. Флаг – проезд разрешен в направлении 2
УДВВ_Частота
Возвращает частоту обмена с устройством ввода-вывода
УДВВ_СостояниеВыходы
Состояние выходов устройства ввода-вывода
УДВВ_СостояниеВходы
Состояние входов устройства ввода-вывода
УДВВ_УстановитьВыход(int NBit, int _Value)
Команда установки значения выхода, нужного бита
УстановитьРазрешитьПроезд()
Команда установить флаг проезд разрешен
УстановитьРазрешитьПроезд1()
Команда установить флаг проезд разрешен в направлении 1
УстановитьРазрешитьПроезд2()
Команда установить флаг проезд разрешен в направлении 2
Сервер Весы Авто при переходе в автоматический режим создает записи взвешиваний независимо от 1С. Данный набор функций позволяют последовательно скопировать данные автовзвешивания начиная с первой с помощью последовательности команд:
1. Анализ количество новых автовзвешиваний:
Если ГлВесы.КоличествоНовыхАвтоВзвешиваний > 0 Тогда2. Выбрать первое
ГлВесы.ВыбратьАвтоВзвешивание()3. Дождаться когда будет выбрано
Если ГлВесы.АвтовзвешиваниеВыбрано = 1 Тогда4. Читать параметры выбранного автовзвешивания в новый документ:
GUIDДокументаВзвешивания = ГлВесы.ПолучитьПараметрАвтоВзвешивания("CODE"); ДатаДок = ГлВесы.ПолучитьПараметрАвтоВзвешивания("DATE"); ВремяДок = ГлВесы.ПолучитьПараметрАвтоВзвешивания("TIME"); ***** и т.д.5. Записать новое взвешивание:
ГлВесы.ЗаписатьДокументВзвешивания(…После этого сбрасывается ГлВесы.АвтовзвешиваниеВыбрано = 0, далее по новой.
флаг состояние режима автовзвешивания
РежимАвтоВзвешивания – возвращает 0 или 1
команда установить режим автовзвешивания
УстановитьРежимАвтоВзвешивания(Режим)
<Режим> – 0 или 1
количество незагруженных автовзвешиваний
КоличествоНовыхАвтоВзвешиваний – возвращает целое число от 0 и больше.
Команда выброра первого автовзвешивания
ВыбратьАвтоВзвешивание() – результат не возвращает
флаг готовности для загрузки выбранного автовзвешивания
АвтовзвешиваниеВыбрано – возвращает 0 или 1
получить параметр загруженного автовзвешивания
ПолучитьПараметрАвтоВзвешивания(ИмяПараметра)
<ИмяПараметра> – 0 или 1
Получить фото первого отвеса загруженного автовзвешивания
ПолучитьФОТОАвтоВзвешОтвес1(НомерФото)
<НомерФото> – номер камеры 1, 2, 3 или 4
Получить фото второго отвеса загруженного автовзвешивания
ПолучитьФОТОАвтоВзвешОтвес2(НомерФото)
<НомерФото> – номер камеры 1, 2, 3 или 4
//----------------------------------------------------------------------------- // Алгоритм загрузки новых взвешиваний из Сервера Весы //----------------------------------------------------------------------------- Процедура ОбработкаОжиданияВК() //----------------------------------------------------------------- //----- Загрузка автовзвешиваний, фоновый процесс ----------------- //----------------------------------------------------------------- Если (ДатаВремяАвтоВзвешивания <> Компонента.ДатаВремяАвтоВзвешивания) Тогда ДатаВремяАвтоВзвешивания = Компонента.ДатаВремяАвтоВзвешивания; АвтоВзвешиваниеВыбрано_ = Компонента.АвтоВзвешиваниеВыбрано; Если (Компонента.КоличествоНовыхАвтоВзвешиваний > 0) Тогда Если (АвтоВзвешиваниеВыбрано_ = 0) Тогда Компонента.ВыбратьАвтоВзвешивание() Иначе СоздатьАвтоВзвешивание(); КонецЕсли; КонецЕсли; КонецЕсли; Если АвтоВзвешиваниеВыбрано_ <> Компонента.АвтоВзвешиваниеВыбрано Тогда АвтоВзвешиваниеВыбрано_ = Компонента.АвтоВзвешиваниеВыбрано; Если (АвтоВзвешиваниеВыбрано_ = 1) и (Компонента.КоличествоНовыхАвтоВзвешиваний>0) ТОгда СоздатьАвтоВзвешивание(); КонецЕсли; КонецЕсли; ПодключитьОбработчикОжидания("ОбработкаОжиданияВК", 0.2, Истина); КонецПроцедуры