Система 1С
Внешняя система 1С используется для интеграции обмена систем «1С:Предприятие 8» с Платформой и другими программными продуктами Datareon с использованием штатных и документированных возможностей работы с 1С. Внешняя система реализуется в соответствии с технологией создания внешних компонентов программного продукта «1С:Предприятие 8», поставляемых фирмой «1С». Внешняя система доступна для использования в семействах операционных систем Windows и Linux и поддерживает работу в изолированном режиме при использовании версии подсистемы 8.3.21 и выше. Подробная информация доступна в статье Работа внешних компонентов в отдельном процессе.
Создание внешней системы 1С
Чтобы приступить к настройке коннектора, на вкладке Коннектор выберите тип 1С. После выбора типа коннектора станут доступны поля для ввода характеристик коннектора:
Основные настройки
Необходимо внести следующие характеристики:
Имя информационной базы
Кластер серверов 1С:Предприятия: при помощи кнопки + можно добавлять строки, в которых требуется внести имена и порты серверов кластера.
Порт tcp-сервера коннектора
Количество потоков передачи В Platform
Количество потоков передачи Из Platform
Примечание
Значения Количество потоков передачи В Platform / Из Platform влияют на количество фоновых заданий Datareon - Транспортный поток ToPlatform/FromPlatform запущенных в 1С:
Редактирование конфигурации
Для перехода в режим редактора конфигурации нажмите на соответствующую кнопку:
Внимание
Перед переходом в режим редактора конфигурации сохраните внесенные данные!
В результате отобразится интерфейс для установки дополнительных настроек:
Для выхода из редактора конфигурации нажмите на кнопку повторно Редактор конфигурации (будет отображена подсказка Перейти в режим диалога).
liveTimeDefault - сколько времени в днях в очереди 1С будут лежать проблемные сообщения.
logLevel - уровень логирования со стороны 1С. Влияет на то, насколько подробная информация будет записываться в журнале регистрации 1С + на диске на сервере 1С.
logDir - каталог логирования со стороны 1С, который хранится на диске на сервере 1С. По умолчанию на Windows: C:\Users\USR1CV8\AppData\Local\Temp\datareon\, на Linux: /tmp/datareon/. С нестандартным значением LogDir работает следующим образом: указанный путь + datareon/имябазы_портбазы/. Если LogDir пустой, используется последнее непустое значение. Чтобы сбросить до значения по умолчанию, пропишите путь еще раз: C:\Users\USR1CV8\AppData\Local\Temp\.
logMbSize - максимально допустимый размер логирования со стороны 1С, которая хранится на диске на сервере 1С. Настройка используется для всего общего каталога с базами 1С. Проверяется во вторую очередь после logDaysSize. При подключении нескольких систем к одному каталогу с логами, учитывается наименьшее значение из всех.
logDaysSize - количество дней, за которые хранятся логи со стороны 1С. Учитывается последняя дата изменения файла лога. Имеет приоритет над logMbSize. При подключении нескольких систем к одному каталогу с логами, учитывается наименьшее значение из всех.
bufferSizeMb - максимально допустимый буфер необработанных сообщений со стороны 1С на одно фоновое задание (в Мб).
bufferSizeMessages - максимально допустимый буфер необработанных сообщений со стороны 1С на одно фоновое задание (в сообщениях). При переполнении буфера выполняется ожидание обработки текущих сообщений, новые сообщения не обрабатываются.
undefinedToPlatform - включение в обработку формирования JSON в 1С тип данных NULL (Неопределенно).
queryBatchMessages - количество сообщений, забираемых каждым заданием из очереди зарегистрированных сообщений в 1С в одном запросе.
checkCacheVersion - включение проверки актуальности версии кеша у объекта.
waitActualVersionSec - сколько времени пройдёт в секундах в ожидании актуального кеша.
После внесения данных нажмите на кнопку Сохранить, после этого нажмите на кнопку Применить конфигурацию:
Встраивание подсистемы Платформы в 1С
В этом разделе описаны правила выбора версии подсистемы в зависимости от конфигурации 1С, а также процедура встраивания подсистемы в 1С.
Выбор версии подсистемы
Выбор версии подсистемы зависит от выбранной в 1С версии для режима совместимости:
Если в режиме совместимости указана определенная версия, то необходимо выбирать подсистему, соответствующую указанной версии.
Если режим совместимости не используется, версия совместимости соответствует версии платформы 1С.
Внимание
Версии подсистемы 1С ниже 3.0.1.129 не поддерживают работу с версией совместимости 8.3.21 и выше.
Если на сервере 1С зарегистрировано более одной ИБ 1С с подсистемой Datareon, при использовании подсистемы 1С версии 3.0.1.198 и выше рекомендуется установить значение 1 в настройки кластера 1С:
Настройка и подготовка серверных баз 1С
Как встроить подсистему:
1. Чтобы объединить типовую конфигурацию 1С и конфигурацию для настройки Платформы, необходимо разблокировать изменения типовой конфигурации 1С.
Откройте информационную базу 1С в режиме Конфигуратор. Меню Конфигурация → Поддержка → Настройки поддержки → Включить возможность изменения → Объект поставщика редактируется с сохранением поддержки:
Загрузите конфигурацию 1С для настройки Платформы в информационную базу. Для этого откройте информационную базу 1С в режиме Конфигуратор → Меню Конфигурация → Сравнить, объединить с конфигурацией из файла (отобразится стандартный диалог Открыть файл конфигурации, найдите и откройте файл загружаемой конфигурации (datareon):
Результат сравнения конфигураций отобразится в диалоге сравнения и объединения конфигураций.
Для выполнения объединения конфигураций отметьте все объекты прикладного решения, кроме корня основной конфигурации. Для этого уберите флажок с поля Свойства основной конфигурации.
Для выполнения слияния нажать на кнопку Выполнить в правом нижнем углу окна и дождаться оповещения о слиянии конфигураций:
Важно
Обновите конфигурацию базы данных (нажмите на клавишу F7 или на пункт меню Конфигурация → Обновить конфигурацию базы данных).
Отображение подсистемы в 1С:Предприятие
Чтобы отобразить подсистему:
В 1С:Предприятие перейдите в меню Настройки и сервисы → Все функции → Константы → Использовать подсистему Datareon:
Если нет команды Все функции, перейдите в раздел → Настройки → Параметры → и установите флажок в пункте Отображать команду “Все функции”:
Подсистема Datareon отобразится в панели подсистем:
Настройки подсистемы Datareon в клиенте 1С
При настройке подсистемы доступна следующая информация и функциональность:
- Ещё (выпадающий список в правом верхнем углу):
Запустить потоки - запускает потоки, если они были остановлены по какой-то причине.
Блокировать потоки - блокирует и останавливает потоки.
Обновить настройки - вручную обновляет информацию на форме.
Выключить подсистему - выключает подсистему Datareon.
Изменить форму.
Справка
Состояние подключения коннектора - отображается адрес Платформы, к которой подключена база 1С, порт, указанный в настройках системы, а также название системы. При ошибках подключения будет отображена информация о списке опрашиваемых адресов.
Примечание
В случае ошибки при подключения коннектора нажмите на знак вопроса, чтобы получить подробную информацию о возникшей проблеме и о способах её решения:
- Параметры подключения к Datareon
Адрес - указывается адрес сервера Платформы, на котором запущена система.
Порт сервера - указывается порт сервера Платформы, на котором запущена система.
Задать адрес для подключения вручную - позволяет ввести адрес и порт сервера вручную, если возникли проблемы с автоматическим получением этих данных из Платформы.
Резервные адреса кластера Datareon - список резервных адресов и портов, принадлежащих серверам кластера Платформы, которые могут подключаться к базе данных 1С. Список заполняется автоматически, внесение данных вручную невозможно.
Версия протокола обмена сервера Datareon
Разрешить автоматическую смену адреса Datareon - включает возможность автоматически менять адрес. Необходимо, если используется несколько серверов в кластере, между которыми система будет переезжать.
Фоновые задания - список фоновых заданий 1С. Указывается наименование и время начала работы задания.
- О подсистеме:
Версия подсистемы
Версия компоненты
Версия протокола обмена
- Параметры логирования:
Уровень логирования
Каталог логов на сервере 1С
Максимальный размер каталога с логами в мб
Первое подключение подсистемы 1С
Необходимо включить подсистему Datareon:
Здесь отображается установленная версия подсистемы, компоненты и протоколы обмена. После включения подсистемы производится попытка подключения к Платформе:
В течение минуты будет производиться прослушивание рассылки параметров подключений от Платформы по UDP. Если подключение не удалось (пакеты UDP запрещены политикой безопасности), следует указать порт и адрес Платформы вручную. Информацию можно получить в Центре мониторинга от внешней системы 1С на вкладке Основные:
Если в состоянии указано, что Платформа недоступна, проверьте доступность указанного адреса и порта от сервера 1С к серверу с Платформой (возможно его блокирует firewall, антивирус или другое приложение).
Установка и настройка расширений
В этом разделе описаны правила выбора версии расширений в зависимости от конфигурации 1С, а также процедуры установки и настройки расширений в 1С.
Расширения предназначены для дополнения конфигурации без внесения изменений в объекты типовой конфигурации, что позволяет не снимать типовую конфигурацию с полной поддержки в процессе дополнения. Для полноценной работы требуется последовательно установить два расширения Платформы: Datareon и DatareonПланировщик.
Расширение Datareon содержит все интеграционные механизмы и не зависит от наличия БСП в конфигурации.
Примечание
В случае отсутствия БСП в конфигурации, при встраивании расширения Datareon разработчику потребуется реализовать регламентное задание в конфигурации для вызова метода сшпОбщегоНазначения.ЗапуститьОбработкуПотоков(), так как объект Регламентные задания не поддерживается расширениями.
Расширение DatareonПланировщик содержит компонент для БСП, предназначенный для запуска интеграционных механизмов с помощью регламентных заданий.
Выбор версии расширений
Выбор версии расширений зависит от выбранной в 1С версии для режима совместимости:
Если в режиме совместимости указана определенная версия, то необходимо выбирать расширения, соответствующую указанной версии.
Если режим совместимости не используется, версия совместимости соответствует версии платформы 1С.
Установка расширений
Чтобы установить расширения Платформы:
Запустите Конфигуратор 1С.
В выпадающем меню вкладки Конфигурация выберите вариант Расширение конфигурации.
В открывшемся окне Расширение конфигурации нажмите на кнопку меню +.
Во всплывающем окне Новое расширение конфигурации выполните следующие действия:
Поле Имя: введите Datareon.
Поле Синоним: введите синоним расширения.
Поле Префикс: введите префикс расширения. Рекомендуется использовать префикс сшп во избежание проблем при работе с последующими обновлениями подсистемы.
Выпадающее меню Назначение: выберите вариант Дополнение.
Нажмите на кнопку OK. Новое расширение конфигурации будет отображено в списке расширений.
В выпадающем меню вкладки Конфигурация выберите вариант Загрузить конфигурацию из файла.
Выберите файл расширения Datareon.
Во всплывающем окне с предупреждением о том, что текущая конфигурация не пустая, нажмите на кнопку Да.
После загрузки конфигурации во всплывающем окне с предложением обновить конфигурацию базы данных нажмите на кнопку Да.
В списке расширений установите флажки в колонках Активно и Использовать основные роли для всех пользователей.
Снимите флажок Безопасный режим, имя профиля безопасности.
Нажмите на кнопку меню +.
Во всплывающем окне Новое расширение конфигурации выполните следующие действия:
Поле Имя: введите DatareonПланировщик.
Поле Синоним: введите синоним расширения.
Поле Префикс: введите префикс расширения. Рекомендуется использовать префикс сшп во избежание проблем при работе с последующими обновлениями подсистемы.
Выпадающее меню Назначение: выберите вариант Дополнение.
Внимание
Префиксы расширений Платформы должны совпадать. Это предотвратит конфликты при последующих обновлениях подсистемы.
Нажмите на кнопку OK. Новое расширение конфигурации будет отображено в списке расширений.
Важно
Для использования расширения Datareon все пользователи должны обладать правом Обмен с Datareon.
В выпадающем меню вкладки Конфигурация выберите вариант Загрузить конфигурацию из файла.
Выберите файл расширения DatareonПланировщик.
Во всплывающем окне с предупреждением о том, что текущая конфигурация не пустая, нажмите на кнопку Да.
После загрузки конфигурации во всплывающем окне с предложением обновить конфигурацию базы данных нажмите на кнопку Да.
В списке расширений установите флажки в колонках Активно и Использовать основные роли для всех пользователей.
Снимите флажок Безопасный режим, имя профиля безопасности.
Примечание
Расширение DatareonПланировщик предоставляет альтернативный запуск заданий Платформы с использованием библиотеки стандартных подсистем (БСП) и включает в себя соответствующую зависимость. Поэтому при попытке добавить конфигурацию расширения на «чистой» установке подсистемы Datareon могут появляться сообщения о ненайденных объектах.
Для запуска регламентного задания Запуск обработки заданий подсистемы Datareon рекомендуется добавить и указать для запуска пользователя с правами сшпОбменСESB (например, пользователь esb).
Важно
Пользователи, имеющие доступ к подсистеме в списке доступных подсистем предприятия, а также к администрированию процесса интеграции Платформы Datareon для 1С, должны обладать правом Администратор Datareon.
Управление регламентным заданием Datareon
Управление регламентным заданием Datareon становится доступным после установки расширения DatareonПланировщик.
Важно
Пользователь должен обладать правом Настройка регламентного задания (сшпНастройкаРегламентногоЗадания).
Для запуска регламентного задания:
Перейдите в раздел Функции для технического специалиста.
Выберите в списке обработку Управление Регламентным Заданием Datareon.
Нажмите на кнопку Открыть. Отобразится окно управления обработкой.
Установите флажок Включить.
Перейдите по гиперссылке для установки периода работы.
Выберите вариант каждый день: каждые 60 секунд.
Нажмите на кнопку Записать и закрыть.
Примечание
Запуск этого задания рекомендуется назначить пользователю esb.
Предотвращение ошибок при работе с БСП
Если во время попытки обновления конфигурации базы данных обнаружена проблема Значение контролируемого свойства ОбъектРасширяемойКонфигурации у объекта ОбщийМодуль.ДополнительныеОтчетыИОбработки не совпадает со значением в расширяемой конфигурации, выполните следующие действия:
В колонке Действия перейдите по ссылке Исправить.
В отобразившемся выпадающем списке действий выберите вариант Выбрать соответствие:
Если поведение / ошибка отличается от проблемы, описанной выше, выполните следующие действия:
Запустите Конфигуратор 1С.
В выпадающем меню вкладки Конфигурация выберите вариант Расширение конфигурации.
Откройте конфигурацию расширения, в которую было загружено файл DatareonПланировщик.cfe:
Откройте свойства элемента Общие модули → ДополнительныеОтчётыИОбработки:
Нажмите на поле Объект расширенной конфигурации с текстом Объект не найден:
Нажмите на клавишу F4 для выбора объекта из основной конфигурации.
Выберите объект ДополнительныеОтчётыИОбработки:
Нажмите на кнопку ОК.
Обновите конфигурацию.
Использование профилей безопасности
При использовании профилей безопасности в кластере сервера 1С необходимо разрешить доступ к внешним компонентам и к файловой системе кластера. Доступ к файловой системе необходим для сбора диагностических дампов и вычисления контрольной суммы внешней компоненты. При использовании расширений контрольные суммы внешней компоненты и расширения должны быть идентичными.
Допускается использование профиля безопасности с полным доступом к файловой системе сервера и внешним компонентам. Также допускается отсутствие профиля безопасности или предоставление ограниченного доступа к файловой системе сервера и внешним компонентам.
Для предоставления доступа к временному каталогу создайте виртуальный каталог в используемом профиле безопасности со следующими параметрами:
Для предоставления доступа к использованию внешней компоненты Datareon, добавьте ее в используемый профиль безопасности со следующими параметрами:
Для получения сведений о контрольной сумме конкретной версии внешней компоненты, перейдите в раздел Сервис → Диагностика:
Конфигурация внешней компоненты 1С
В конфигурации внешней компоненты 1С задействуется использование метода Выполнить() для выполнения произвольных фрагментов кода, указанных в обработчиках администратором. Безопасность использования метода реализована с помощью разграничения прав пользователей подсистемы на создание / изменение обработчиков, выполняемых с помощью этого метода.
Примечание
Описание актуально для версий компонент 121 и выше.
Таблица режимов работы компоненты
mode |
Режим |
Описание |
---|---|---|
0 |
Менеджер |
Прослушивает и выполняет рассылку по UDP. Осуществляет подключение и контроль соединения с Платформой. |
1 |
Сервисный |
Осуществляет обмен сервисными сообщениями. |
2 |
FromPlatform |
Осуществляет обмен транспортными сообщениями в направлении из Platform. |
3 |
ToPlatform |
Осуществляет обмен транспортными сообщениями в направлении в Platform. |
Описание свойств
ErrorTimeout Integer Readable, Writable
Таймаут засыпания потоков при возникновении ошибок (например, ошибка подключения).Указывается в миллисекундах.Действует ограничение по типу int – макс. значение: 2147483647.ActualAddress String Readable
Текущий адрес сервера для подключения к адаптеру Платформы.Актуально только для режима компоненты mode0.ActualPort String Readable
Текущий порт сервера для подключения к адаптеру Платформы.Актуально только для режима компоненты mode0.ActualNodePort String Readable
Текущий порт узла Платформы.Актуально только для режима компоненты mode0.ActualState Integer Readable
Текущее состояние подключение к адаптеру Платформы.Актуально только для режима компоненты mode0.NotWorking = 0, Working = 1Mode Integer Readable
Текущее режим работы компоненты. См. таблицу соответствия режимов работы выше.
Key String Readable
Полученный от Платформы ключ авторизации.
ConnectionError String Readable
Описание ошибки подключения к адаптеру Платформы.Актуально только для режима компоненты mode0.ConnectorDescription String Readable
Описание адаптера Платформы к которому было произведено подключение.Формат: Наименование, Адрес:Порт.Актуально только для режима компоненты mode0.QuerySize Integer Readable
Доступный размер очереди сообщений для отправки в Платформу.Актуально только для режима компоненты mode3.DatagramsVersion String Readable
Версия совместимости датаграмм Платформы.ComponentVersion String Readable
Версия компоненты.ReserveAddresses String Readable
Резервные адреса узлов Платформы.Формат Адрес:Порт.RootLogsFolder Readable, Writable
Текущий служебный каталог компоненты.Используется для записи логирования.LogsSizeMB Readable
Максимальный общий объем, занимаемый файлами в служебном каталоге.При превышении будет произведена очистка каталога.LogsSizeDays Readable
Максимальный срок хранения файлов в служебном каталоге.При превышении будет произведена очистка файлов дата создания превышающая указанное количество времени.LogLvl Readable
Уровень логирования компоненты.
Соответствие значений и уровня логирования
Число
Platform (ESB)
1С
0
Verbose
Примечание
1
Debug
Примечание
2
Info
Информация
3
Warning
Предупреждение
4
Error
Ошибка
5
Fatal
Ошибка
PlatformMajorVersion Readable
Версия релиза Платформы.
PlatformMinorVersion Readable
Подверсия релиза Платформы.
Описание процедур, не возвращающих значение
Сервисные, не требующие подключения:
Sleep(milliseconds)
Вызывает задержку на указанное кол-во миллисекунд.
StopComponent()
Разрывает установленное соединение по Pipe или TCP с Platform(ESB).Останавливает запущенные потоки.Откладывает последнее полученное сообщение на указанное количество миллисекунд.ChangeDumpPath(new_path)
Изменяет каталог для сброса минидампа в случае возникновения необработанного исключения или при запросе создание дампа из подсистемы (расширения) 1С.new_path – Строка – Новый каталог для сброса дампа.
Описание функций
Примечание
Все методы, возвращающие тип Boolean, в случае неудачи сохраняют описание ошибки в переменной, получить которую можно вызвав метод GetLastErrorMessage.
String GetLastErrorMessage()
Функция возвращает строкой описание последней возникшей ошибки при вызове других методов компоненты.
Boolean GetId(out messageid)
Функция возвращает в передаваемую переменную идентификатор полученного сообщения.messageid – Строка – Буфер для результата.Boolean GetMessageType(out messageType)
Функция возвращает в передаваемую переменную тип полученного сообщения.messageType – Строка – Результат выполнения.Boolean GetCreationTime(out creationtime)
Функция возвращает в передаваемую переменную дату создания полученного сообщения.creationtime – Дата – Буфер для результата.Boolean SendNewAck(result, errorMessage)
Функция добавляет в очередь для отправки новое сообщение с подтверждением в получении сообщения.resut – Число – Результат обработки сообщения.errorMessage – Строка – Описание ошибки.Boolean GetAckMessage(out messageId, out errorMessage, out ackResult)
Функция возвращает в передаваемые переменные свойства сообщения типа ACK(результат обработки сообщения).messageId – Строка – Идентификатор сообщения.errorMessage – Строка – Информация об ошибках при обработке сообщения.ackResult – Число – Результат обработки.WriteLog(level, message)
Отправляет сообщение для лога в адаптере.level – Число - уровень логирования сообщения.message – строка – текст сообщения.Boolean HasServiceMessage(out result)
В передаваемую переменную будет помещено булево - есть ли сервисные сообщения в очереди.result – Булево – Результат выполнения.Примечание
Неактуальная функция.
Boolean IsServiceMessage(out result)
В передаваемую переменную будет помещено булево – является ли последнее полученное сообщение сервисным.result – Булево – Результат выполнения.Примечание
Неактуальная функция.
InitializeComponent(connectionString, sessionId, mode, backgroundId, authKey, rootLogsPath, logLvl, logSizeMbBound, logDaysBound, platformMajorVersion, p latformMinorVersion)
Функция производит инициализацию TCP каналов к адаптеру.connectionString – Строка – Результат выполнения функции 1С СтрокаСоединенияИнформационнойБазы().sessionId – Число – Результат выполнения функции 1С НомерСеансаИнформационнойБазы().mode – Число – Режим работы канала.backgroundId – Число – Идентификатор фонового задания 1С.authKey – Строка – Ключ авторизации.rootLogsPath – Строка – Путь до служебного каталога.logLvl – Число – Уровень логирования.logSizeMbBound – Число – Максимальный общий объем, занимаемый файлами в служебном каталоге.logDaysBound – Число - Максимальный срок хранения файлов в служебном каталоге.platformMajorVersion – Строка - Версия релиза Платформы.platformMinorVersion – Строка - Подверсия релиза Платформы.Boolean GetBody(out body)
В передаваемую переменную будет помещено тело последнего полученного сообщения.body – Строка – Результат выполнения.Integer GetPropertiesCount()
Функция возвращает количество переданных свойств в последнем полученном сообщении.
Boolean GetPropertyType(name, out type)
Функция возвращает в передаваемую переменную тип свойства имеющее указанное наименование.name – Строка – Наименование свойства.type – Число – Результат выполнения.Boolean GetPropertyValue(name, out value)
Функция возвращает в передаваемую переменную значение свойства имеющее указанное наименование.name – Строка – Наименование свойства.value – Var – Результат выполнения.Boolean GetPropertyName(index, out name)
Функция возвращает в передаваемую переменную наименование свойства по указанному индексу.index – Число – Индекс свойства.name – Строка – Результат выполнения.Boolean GetMessageSize (out messageSize)
Функция возвращает в передаваемую переменную размер сообщения.Действует ограничение по типу int – макс. значение: 2147483647.messageSize – Число – Результат выполнения.Boolean OnStateChange(timeout, out version)
Функция возвращает булево соответствующие наличию или отсутствии изменений состояния в соединение с Platform(ESB).timeout – Число – Миллисекунды, таймаут для ожидания изменения состояния.version – Число – Текущая версия состояния.Boolean NewMessage(id)
Функция создает новое сообщение с переданным идентификатором для отправки в Platform(ESB).id – Строка – Идентификатор нового сообщения.SetBody(body)
Функция назначает новосозданному сообщению указанное тело.body – Строка – Тело сообщения.Boolean Send()
Функция производит отправку последнего созданного сообщения в Platform(ESB).
Boolean SetDataType(datatype)
Функция назначает указанный тип данных в свойство сообщения OriginalSystemDataType.Datatype – Строка – Тип данных.Boolean SetStringProperty(name, value)
Функция назначает произвольное свойство для сообщения с указанным именем и значением типа String.name – Строка – Наименование свойства.value – Строка – Значение свойства.Boolean SetIntProperty(name, value)
Функция назначает произвольное свойство для сообщения с указанным именем и значением типа Integer.Действует ограничение по типу int – макс. значение: 2147483647.name – Строка – Наименование свойства.value – Число – Значение свойства.Boolean SetBoolProperty(name, value)
Функция назначает произвольное свойство для сообщения с указанным именем и значением типа Boolean.name – Строка – Наименование свойства.value – Булево – Значение свойства.Boolean SetGuidProperty(name, value)
Функция назначает произвольное свойство для сообщения с указанным именем и значением типа Guid.name – Строка – Наименование свойства.value – Строка – Значение свойства.Boolean SetDateTimeProperty(name, value)
Функция назначает произвольное свойство для сообщения с указанным именем и значением типа DateTime.name – Строка – Наименование свойства.value – Строка или Дата – Значение свойства.Boolean Lock(guid)
Функция вызывает блокировку компоненты.Используется совместно с некоторыми методами для ограничения доступа к вызову других методов компоненты.guid – Строка – Идентификатор для блокировки / разблокировки.Boolean Unlock(guid)
Функция вызывает разблокировку компоненты.Используется совместно с некоторыми методами для ограничения доступа к вызову других методов компоненты.guid – Строка – Идентификатор для блокировки / разблокировки.Boolean NewAckMessage(messageid, statusCode, error, lockTime)
Функция создает сообщение подтверждения получения сообщения с идентификатором messageid.Отправка не производится.messageid – Строка – Идентификатор сообщения.statusCode – Число – Статус обработки сообщения.error – Строка – Ошибка при обработке сообщения.lockTime – Число – Заполнение свойства сообщения LockTime.Boolean GetHandler(out code, out status)
Функция для получения кода обработчика из последнего полученного сообщения.code – Строка – Код обработчика.status – Число – Код результат поиска обработчика.Boolean GetNext(out objectName, out keepObjectLink, out result, out processingOrder)
Функция для перебора обработчиков в направлении toPlatform.Результатом выполнения является свойства сообщения типа HDA.objectName – Строка – свойство SubscriptionObject – Имя объекта конфигурации.keepObjectLink – Булево – свойство KeepObjectLink – Метод хранения по ссылке.result – Булево – Значение получено.processingOrder – свойство ProcessingOrder – Порядок обработки.Примечание
Метод доступен только для сервисного режима.
Boolean NewServiceMessage(dataType)
Функция для создания нового сервисного сообщения с указанным типом для отправки в Platform(ESB).datatype – Строка – Тип сервисного сообщения.Boolean SendAck(statusCode, error, lockTime)
Функция для созданного сообщения добавляет указанные свойства и тип ACK и ставит в очередь на отправку.statusCode – Число – Статус обработки сообщения.error – Строка – Ошибка при обработке сообщения.lockTime – Число – Заполнение свойства сообщения LockTime.Boolean SetCorrelationId(correlationId)
Функция необходима для назначение созданному сообщению свойства CorrelationId.CorrelationId – Строка – Заполнение свойства сообщения CorrelationId.Boolean SetPlatformCorrelationId(platformCorrelationId)
Функция необходима для назначение созданному сообщению свойства PlatformCorrelationId.platformCorrelationId – Строка – Заполнение свойства сообщения PlatformCorrelationId.Boolean GetSource(out initialSourceName)
Функция необходима для получения свойства InitialSourceName последнего полученного сообщения.initialSourceName – Строка – Результат выполнения.Boolean GetCorrelationId(out correlationId)
Функция необходима для получения свойства CorrelationId последнего полученного сообщения.correlationId – Строка – Результат выполнения.Boolean GetPlatformCorrelationId(out platformcorrelationId)
Функция необходима для получения свойства platformCorrelationId последнего полученного сообщения.platformCorrelationId – Строка – Результат выполнения.Boolean GetDataType(out originalSystemDataType)
Функция необходима для получения имени внешнего типа данных (свойство OriginalSystemDataType) сообщения.Если свойство OriginalSystemDataType*не заполнено, то возвращает имя *Внешнего типа или Типа данных.originalSystemDataType – Строка – Результат выполнения.Boolean AllowSend(timeout, out allowToSend)
Функция возвращает возможность отправки сообщения (переполнение буфера, состояние реконнекта).timeout – Число – Миллисекунды, таймаут для ожидания изменения состояния.allowToSend – Булево – Результат выполнения.Boolean GetDelayCount(out delayCount)
Функция возвращает свойство сообщения DelayCount – количество откладываний сообщения.delayCount – Число – Результат выполнения.Boolean AddAddress(address,port)
Функция необходима для добавления адресов узлов вручную для поиска подходящего адаптера на них.На данный момент необходимо выполнить до инициализации (функция InitializeComponent).address – Строка – адрес сервера.port – Строка – порт сервера.Boolean StartWatch()
Функция запускает счетчик времени.Если уже был запущен, то останавливает и начинает заново.Boolean ElapsedWatch(out elapsedTime)
Функция возвращает количество миллисекунд, прошедших с последнего вызова метода StartWatch.Действует ограничение по типу int – макс. значение: 2147483647.elapsedTime – Число – Результат выполнения.Boolean ElapsedWatchMicroseconds(out elapsedTime)
Функция возвращает количество микросекунд, прошедших с последнего вызова метода StartWatch.Действует ограничение по типу int – макс. значение: 2147483647.elapsedTime – Число – Результат выполнения.Boolean GetMessageString(out message)
Функция возвращает последнее полученное сообщение текстом со всеми свойствами в формате JSON.message – Строка – Результат выполнения.Boolean GetCodeDebug(out code)
Функция возвращает код обработчика из последнего полученного отладочного сообщения.Используется при отладке обработчиков с помощью инструментов Datareon.code – Строка – Результат выполнения.Boolean GetTypeDebug(out type)
Функция возвращает тип обработчика из последнего полученного отладочного сообщения (InputHandler/OutputHandler).Свойства Type сообщения типа DEB.Используется при отладке обработчиков с помощью инструментов Datareon.type – Строка – Результат выполнения.Boolean ResponseMessage(type)
Функция создает новое служебное ответное сообщение, копирует свойства correlationId, paltformCorrelationId у последнего полученного сообщения.type – Строка – тип заполнения свойства сообщения DtServiceMessageType.Integer GetServicePropertiesCount()
Функция возвращает количество сервисных свойств у сообщения.
Boolean GetServicePropertyType(name, out type)
Функция возвращает в передаваемую переменную тип свойства имеющее указанное наименование.name – Строка – Наименование свойства.type – Число – Результат выполнения.Boolean GetServicePropertyValue(name, out value)
Функция возвращает в передаваемую переменную значение сервисного свойства имеющее указанное наименование.name – Строка – Наименование свойства.value – Var – Результат выполнения.Boolean GetServicePropertyName(index, out name)
Функция возвращает в передаваемую переменную наименование свойства по указанному индексу.index – Число – Индекс свойства.name – Строка – Результат выполнения.Boolean GetEntityId(out uuid)
Функция возвращает в передаваемую переменную уникальный идентификатор сообщения.uuid – Строка – Результат выполнения.Boolean IsStopped(timeout, out isStopped)
Функция завершения работы потоков компоненты в течение указанного в миллисекундах периода.Если за указанный период потоки не были остановлены, возвращает ложь.timeout – Число – Миллисекунды, таймаут для ожидания изменения состояния.isStopped – Булево – Результат выполнения.Boolean ChangeDumpPath(new_path)
Функция изменяет каталог для сброса дампов.newpath – Строка – Новый каталог для записи дампов.Boolean WriteDump()
Записывает текущее состояние компоненты (minidump) в указанный прежде каталог.Если каталог не был указан ранее, записывает в каталог переменной окружения TEMP/ TMPDIR.Boolean SetWriteSentMessagesToDisk(value)
В зависимости от переданного значения, включает / выключает запись принятых / отправленных датаграмм в текстовый файл в каталог логирования.value – Булево – Включение/выключение записи.Boolean SetSendBrokenDatagram()
Функция изменяет флаг для отправки битой датаграммы.Следующая отправленная в Платформу датаграмма будет отправлена с неверным размером сообщения (на одну единицу меньше).Boolean GetJSONMessage(json_body)
Функция производит обработку переданного Json сообщения для дальнейшего получения свойств сообщения.json_body – Строка – Тело сообщения в формате JSON.Var GetJSONElementValue(element, throw_exception)
Функция возвращает значение указанного элемента.element – Строка – Элемент, значение которого будет получено.throw_exception – Булево – При значении Истины будет выбрасывать исключения в случае неудачи.Boolean GetJSONPathIsArray(element, throw_exception, out result)
Функция возвращает является ли указанный элемент массивом.element – Строка – Элемент, значение которого будет получено.throw_exception – Булево – При значении Истины будет выбрасывать исключения в случае неудачи.result – Булево – Результат выполнения.Boolean GetJSONArraySize (element, throw_exception, out result)
Функция возвращает размер массива указанного элемента.element – Строка – Элемент, значение которого будет получено.throw_exception – Булево – При значении Истины будет выбрасывать исключения в случае неудачи.result – Булево – Результат выполнения.Boolean GetJSONPathExists (element, throw_exception, out result)
Функция возвращает результат проверки на наличие указанного элемента.element – Строка – Элемент, значение которого будет получено.throw_exception – Булево – При значении Истины будет выбрасывать исключения в случае неудачи.result – Булево – Результат выполнения.Boolean GetHasMessage(timeout, out message_type)
Функция ожидает указанный в миллисекундах период появление нового сообщения в очередях.В случае наличия сообщения возвращаемое значения отлично от нуля.timeout – Число – Миллисекунды, таймаут для ожидания изменения состояния.Message_type – Число - Результат выполнения.Boolean GetHasConnection()
Функция в возвращаемом значении указывает на наличия установленного соединения с Платформой.
Boolean SetCurrentConfig(address, port, nodePort, version1C, platform1C, autoChangeAddress)
Функция необходима для установки параметров для подключения к адаптеру Платформы.address – Строка – Адрес для подключения к Платформе.port – Строка – Порт адаптера Платформы.nodePort – Строка – Порт узла Платформы.version1C – Строка – Версия платформы 1С.platform1C – Строка – Версия подсистемы.auoChangeAddress – Булево – Разрешить автоматическую смену адреса для подключения.
Руководство по диагностике подключения 1С
Пример корректного подключения 1С:
Для просмотра информации о подключении перейдите в раздел Обслуживание → Управление конфигурацией и нажмите на кнопку Открыть диагностику. Откроется Центр мониторинга. В ЦМ перейдите в раздел диагностики внешней системы 1С (Интеграция → Внешние системы).
В разделе показателя Информация из 1С отображаются данные, которые находятся в подсистеме Datareon в разделе О подсистеме, а также информация о версии 1C:Предприятие системы:
В разделе Каналы передачи данных tcp отображается информация о фоновых заданиях в 1С:
Транспортный поток FromPlatform(0) и другие, если есть, отображаются в подразделе Из Платформы.
Транспортный поток ToPlatform(0) и другие, если есть, отображаются в подразделе В Платформу.
В разделе ключевые параметры отображается вся информация, которая есть в разделе подсистемы Состояние подключения.
При корректном подключении в журнале системы также будет запись об успешном подключении:
Ошибки при подключении
Ошибка 1: нет подключения к 1С: не найден канал для отправки данных.
Причина 1: система подключена к одной платформе, но пришел запрос на подключение к этой же системе из другой платформы.
Если система уже корректно подключена к платформе:
Но в другой платформе был настроен адаптер к этой же базе. Тогда в самой системе 1С появится предупреждение о том, что найдено несколько подходящих адаптеров:
На вкладке Основные в каждой платформе с настроенным адаптером появится информация об ошибочном подключении.
Система, к которой было установлено подключение изначально:
Система, которая запрашивала подключение:
Причина 2: в систему 1С не внедрена подсистема Datareon Platform.
Причина 3: версия протокола обмена отличается.
На вкладке Основные в разделе коннектор появится предупреждение с описанием несоответствия:
Если конфигурация не поддерживается:
В самой 1С в настройках подсистемы Datareon появится похожее предупреждение:
Если конфигурация поддерживается частично:
Причина 4: недоступен порт для подключения.
Для подключения должны быть разрешены подключения по определенным портам:
По умолчанию порт для подключения к платформе - 9998. Его можно переопределить в настройках кластера -SystemRequestsPort.
Порт, который указан в настройках коннектора системы. Также он отображается в Центре мониторинга на вкладке Основные в разделе Ключевые параметры.
В случае недоступности порта платформы в центре мониторинга появится информация.
В журнале также появятся записи об ошибке подключения.
Если недоступен порт адаптера:
Ошибка 2: в центре мониторинга нет информации о системе, и подключение не устанавливается.
В центре мониторинга не будет отображаться никакой информации, если система не была включена в Платформе в Центре настройки.
Включить систему можно в Центре настройки в разделе Системы на вкладке Основные .
Параметр logLevel в конфигурации системы
Перейти в режим конфигурации можно, выбрав переключатель.
В коде есть параметр LogLevel.
Он может принимать следующие значения:
Info - общая информация;
Debug - отладочная информация;
Verbose - максимальная подробная информация;
Warning - логирование ошибок и предупреждений;
Error - ошибки;
Fatal - логирование только критичных ошибок, приводящих к прекращению работы компонента, для которого ведется логирование.
Этот параметр отвечает за то, насколько подробная информация будет записываться в журнал 1С. Чем больше информации логируется, тем больше нагрузка на сервер. Уровня Info должно быть достаточно для отслеживания общей работоспособности системы в ходе обычной эксплуатации.
В журнале регистрации при уровне Info и при успешной передаче сообщения будут записаны следующие события:
События разных уровней логирования в ЦМ:
Info;
Debug;
В добавление к Info отображаются дополнительные события
Verbose;
К событиям Debug добавляется более подробная информация:
Warning;
Error.
Убираются некоторые записи из уровня:
Warning - остается только информация об ошибках.
Fatal.
Отправка сообщений
Сообщения в 1С
При отправке сообщений в 1С можно отследить передачу сообщений на вкладке События.
Если сообщение передано в систему 1С, то понять это можно по событию Send - относится к уровню логирования Info.
Send – сообщение отправлено следующему узлу сети;
Далее на уровне логирования Debug добавляется событие Processing - обработка сообщения была запущена. Это событие предшествует событию Send.
Во вкладке События у Сервиса процесс также появятся события при передаче сообщения.
Get - сообщение получено у менеджера очередей для запуска обработки;
PeekLock – начало обработки полученного сообщения;
Step - любой шаг из процесса;
TrSend - транспортный уровень передачи сообщения внутри платформы (между системами \ сервисами и узлом);
IntSend - логический уровень передачи сообщения внутри платформы (между системами \ сервисами и узлом);
CompletePeekLock – операция обработки сообщения успешно завершена.
Сообщения из 1С
При отправке сообщения из 1С в событиях системы записываются следующие события:
Receive - сообщение получено коннектором. Событие относится к уровню логирования Info.
На уровне логирования Verbose начинают отображаться дополнительные события, необходимые для отладки:
TrSend - транспортный уровень передачи сообщения внутри платформы (между системами \ сервисами и узлом);
SendAck - отправлена квитанция внешней системе, что сообщение было получено.
Во вкладке События у Сервиса процесс также появятся события при передаче сообщения.
Более подробный маршрут сообщения внутри платформы можно посмотреть в цепочке событий, выбрав любое событие и нажав во всплывающем окне в правом верхнем углу на кнопку Цепочка событий.
Адаптер системы получает сообщение.
Сообщение проходит через трансформацию на сервере.
Сервер определяет функцию (бизнес-процесс), согласно которой сообщение будет обрабатываться.
Сервис процессов запускает выбранный бизнес-процесс.
Сервер регистрирует сообщения для отправки внешней системе согласно результату выполнения шага отправки.
Завершается выполнение бизнес-процесса.
Сообщение отсылается на адаптер системы-получателя.
Ошибки передачи сообщений
В случае, если сообщение не дошло до системы-получателя, проблему можно определить во вкладках системы Журнал и События.
Проблемные записи будут помечены желтым либо красным цветом.
В зависимости от различных условий в коде обработчика могут устанавливаться разные значения переменной СостояниеСообщения. Они генерируют события и записи в журнале.
На вкладке События системы в Центре Мониторинга отображаются соответствующие события:
Ошибка обработки
Не валидно
Отсутствует обработчик
Обработка отменена
При отмене возникает событие Cancel:
Ожидание обработки
При отмене возникает событие Delay, которое будет появляться с периодичностью, заданной в коде обработчика в секундах (подробнее см. 7.4. API Обработчиков 1С).
В случае ошибки, сообщения попадают в архив:
Из архива сообщение можно отправить в повторную обработку после устранения ошибки. Для этого выберите это сообщение и нажмите на кнопку Запустить обработку:
Нажав на иконку глаза, можно прочитать оригинальное сообщение:
Обращение в техническую поддержку
В случае возникновения ошибок в работе подсистемы или расширений, для полноценной диагностики необходимо собрать дампы и логи, содержащие данные о работе подсистемы и расширений и отправить их в службу технической поддержки.
Для сбора данных:
Перейдите в раздел Диагностика:
В подразделе Сбор данных для передачи в ТП установите флажки Дампы и Файлы логов.
Нажмите на кнопку Записать архив. Архив с данными будет сохранен на устройстве.
Примечание
В случае неудачного сохранения архива с данными отобразится сообщение, содержащее временный адрес для самостоятельной загрузки архива.
Для сбора данных о текущем состоянии компоненты:
Перейдите в раздел Диагностика.
В подразделе Диагностика нажмите на кнопку Записать дамп с текущим состоянием компоненты. Архив с данными будет сохранен на устройстве.