Экспорт данных — различия между версиями
Hubbitus (обсуждение | вклад) м (Fix link) |
(→Экспорт зоны КИО (сырые данные телеметрии, согласно приоритетам - "телезона")) |
||
(не показано 30 промежуточных версий 1 участника) | |||
Строка 1: | Строка 1: | ||
− | + | С [[история изменений|версии 17.0]] реализован экспорт распределённых суточных данных из ИМУС в АИС Регионгаз и предоставлена возможность записи зоны КИО. | |
− | {{ ambox | text = Обратите внимание, [[ | + | {{ ambox | text = Обратите внимание, [[Права доступа|по умолчанию]] ВЕБ-сервис ASCUG остался только для чтения! Возможность записи должна быть включена представителем компании явным заданием константы [[Конфигурирование на стороне 1С#ASCUG_ENABLE_WRITE|ASCUG_ENABLE_WRITE]]! }} |
== Требуемые изменения в конфигурации == | == Требуемые изменения в конфигурации == | ||
− | К сожалению, видимо конфигурация АИС писалась без учета возможности работы в чисто серверном режиме (какими являются | + | К сожалению, видимо конфигурация [[Перечень сокращений и обозначений#АИС РГ|АИС РГ]] писалась без учета возможности работы в чисто серверном режиме (какими являются Веб-сервис, внешние соединения и т.д.) и в том числе имеет плохой стиль взаимодействия с пользователем в различных частях системы, даже не проверяя что это в данный момент возможно. Такие проверки делаются легко с помощью конструкций вида: |
<source lang="1C"> | <source lang="1C"> | ||
#Если наКлиенте Тогда | #Если наКлиенте Тогда | ||
Строка 12: | Строка 12: | ||
{{ ambox | type = move | text = Мы настоятельно рекомендуем кому-либо из представителей региональной компании, имеющей договор на поддержку, обратиться в поддержку ООО «Аудит НТ» для внесения данных изменений в основной состав конфигурации с очередным обновлением }} | {{ ambox | type = move | text = Мы настоятельно рекомендуем кому-либо из представителей региональной компании, имеющей договор на поддержку, обратиться в поддержку ООО «Аудит НТ» для внесения данных изменений в основной состав конфигурации с очередным обновлением }} | ||
− | Таким образом, при использовании на сервере таких конструкций это приводит к ошибке, поскольку такие функции просто не определены. Подробнее про это рекомендуется прочитать в интернете, например [http://nastroy-ka.ru/faq/8-faq/116--1-.html|здесь]. | + | Таким образом, при использовании на сервере таких конструкций это приводит к ошибке, поскольку такие функции просто не определены. Подробнее про это рекомендуется прочитать в интернете, например [http://nastroy-ka.ru/faq/8-faq/116--1-.html|здесь]. В конфигурации [[Перечень сокращений и обозначений#АИС РГ|АИС РГ]] проблема усугубляется тем, что такое взаимодействие присутствует в модулях объекта, что вообще [http://www.forum.mista.ru/topic.php?id=407033| считается дурной практикой]. Это приводит даже просто к невозможности создания документов к сожалению. |
Таким образом все такие операции в модуле документа СуточноеПотребление должны быть обрамлены условными конструкциями препроцессору (сейчас таких мест 6 штук для конфигурации версии 1.1.28). | Таким образом все такие операции в модуле документа СуточноеПотребление должны быть обрамлены условными конструкциями препроцессору (сейчас таких мест 6 штук для конфигурации версии 1.1.28). | ||
Строка 18: | Строка 18: | ||
Для простоты при совпадении номера конфигурации и условии что не вносилось ручных изменений в данный модуль, можно его скопировать также из предложенного нами cf-файла. Или внести соответствующие изменения самостоятельно. | Для простоты при совпадении номера конфигурации и условии что не вносилось ручных изменений в данный модуль, можно его скопировать также из предложенного нами cf-файла. Или внести соответствующие изменения самостоятельно. | ||
− | '''Обратите внимание, данные изменения никак не затрагивают обычное использование АИС Регионгаз, потому что данные конструкции именно указывают на то что в обычном режиме это и выполняются, и не выполняются только в режиме сервера.''' | + | '''Обратите внимание, данные изменения никак не затрагивают обычное использование [[Перечень сокращений и обозначений#АИС РГ|АИС Регионгаз]], потому что данные конструкции именно указывают на то что в обычном режиме это и выполняются, и не выполняются только в режиме сервера.''' |
− | == | + | == Выполнение экспорта == |
− | + | С версии АРМ ~1.5.449 добавлены графические [[Команды адаптера#ExportQRaw|пункты меню]] с выбором дат. | |
− | + | Также иногда удобно посылать команды из консоли с помощью утилитки [[amq-command]], на сервере ИМУС. Параметры точно также как для [[Команды адаптера#CcDailyPlan|планов]]. | |
− | + | На регулярное выполнение команды могут быть [[Конфигурирование адаптера на стороне ИМУС#Параметры экспорта|сконфигурированы стандартным способом]]. | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | === | + | == Состав и формат передаваемых данных == |
− | + | === Экспорт распределения === | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
+ | {{anchor|ExportQ}} | ||
+ | ==== Экспорт данных оперативного баланса о '''суточном''' распределении по договорам (распределение) ==== | ||
+ | Командой [[Команды адаптера#ExportQ|ExportQ]] передаётся информация по распределению по договорам за выбранный период (сутки) - "Зона распределения - Оперативный баланс - по суткам" | ||
+ | Данные передаются в операцию сервиса [[Команды адаптера#ExportQ|write_q]]. Передаётся список значений {[http://spb.ant-inform.ru/ASCUG http://spb.ant-inform.ru/ASCUG]}day_q в атрибуте list типа {[http://spb.ant-inform.ru/ASCUG http://spb.ant-inform.ru/ASCUG]}day_q_list. | ||
+ | |||
+ | {{ ambox | text = По умолчанию данные записываются в '''Документ.СуточноеПотребление''', но при необходимости может быть задан собственный обработчик записи константой [[Конфигурирование на стороне 1С#ASCUG_write_q_custom_code|ASCUG_write_q_custom_code]] }} | ||
+ | |||
+ | {{anchor|ExportQMonth}} | ||
+ | ==== Экспорт данных оперативного баланса о '''месячном''' распределении по договорам (распределение) ==== | ||
+ | Командой [[Команды адаптера#ExportQMonth|ExportQMonth]] передаётся информация по распределению по договорам за выбранный период (месяц) - "Зона актирования - Месячный баланс - по суткам"<ref name="ExportQRawMonth">Добавлено по запросу Тюрина Алексея из Иваново. С [[version 19|версии]] сервиса 19.5.pre1 ([https://jira.spb.ant-inform.ru/browse/ESB-1597 ESB-1597], [https://jira.spb.ant-inform.ru/browse/SUPPORT-7426 SUPPORT-7426]).</ref>. | ||
+ | |||
+ | {{ ambox | type = warning | text = Внимание. Запись месячного распределения находится в стадии разработки и не доступна в стабильных версиях }} | ||
+ | |||
+ | Данные передаются в операцию сервиса [[Команды адаптера#ExportQ|write_q]]. Передаётся список значений {[http://spb.ant-inform.ru/ASCUG http://spb.ant-inform.ru/ASCUG]}day_q в атрибуте list типа {[http://spb.ant-inform.ru/ASCUG http://spb.ant-inform.ru/ASCUG]}day_q_list. | ||
+ | |||
+ | {{ ambox | text = По умолчанию данные записываются в '''Документ.МесячноеПотребление''', но при необходимости может быть задан другой документ константой [[Конфигурирование на стороне 1С#ASCUG_write_q_monthDocCreate|ASCUG_write_q_monthDocCreate]] или даже полностью переопределён обработчик записи константой [[Конфигурирование на стороне 1С#ASCUG_write_q_custom_code|ASCUG_write_q_custom_code]] }} | ||
+ | |||
+ | ===== Записываемые атрибуты ===== | ||
+ | * ГРС | ||
+ | * ДатаНачалаПоставки Т.к. в [[ИМУС]] Месячное распределение всё равно по суткам, пишется начало и конец месяца, но на каждый день создаётся отдельный документ. | ||
+ | * ДатаКонцаПоставки | ||
+ | * Дата - дата документа заполняется на момент записи | ||
+ | * ВидРеализации = "Реализация газа" | ||
+ | Следующие денормализованные атрибуты: | ||
+ | * ГРО из ГРС.ГРО | ||
+ | * Территория из ГРС.Территория | ||
+ | * Трансгаз из ГРС.Трансгаз | ||
+ | |||
+ | ====== Записываемые данные в табличной части документа ====== | ||
+ | * Договор | ||
+ | * Потребитель | ||
+ | * Подключение или ПлощадкаОборудования в зависимости от того откуда была загружена [[ТП]] | ||
+ | * Поставка | ||
+ | * КатегорияПотребления [[Конфигурирование на стороне 1С#Категории потребления|согласно настройкам]] | ||
+ | * ВыходГРС | ||
+ | * План - диспетчерский лимит (может не совпадать с загруженным ранее из [[АИС]] в случае введения графиков или неравномерностей) | ||
+ | * Факт | ||
+ | * ВремяЗаписи - текущее время | ||
+ | |||
+ | ==== Состав передаваемых данных data типа {[http://spb.ant-inform.ru/ASCUG http://spb.ant-inform.ru/ASCUG]}day_q_list ==== | ||
+ | Данные передаются в операцию сервиса [[Команды адаптера#ExportQ|write_q]]. На вход передаётся переменная data типа {[http://spb.ant-inform.ru/ASCUG http://spb.ant-inform.ru/ASCUG]}day_q_list со следующими полями: | ||
+ | {| border=1 width="100%" cellspacing="0" cellpadding="4" class="wikitable sortable" | ||
+ | ! Поле !! Тип !! Описание | ||
+ | |- | ||
+ | | list || {[http://spb.ant-inform.ru/ASCUG http://spb.ant-inform.ru/ASCUG]}day_q || список значений типа {[http://spb.ant-inform.ru/ASCUG http://spb.ant-inform.ru/ASCUG]}day_q, описанного ниже | ||
+ | |- | ||
+ | | {{anchor|export_q_type}}type<ref name="ExportQRawMonth"/> || {[http://www.w3.org/2001/XMLSchema http://www.w3.org/2001/XMLSchema]}string || Тип передаваемых суточных данных: | ||
+ | ; 60 : Месячное распределение Зона КИО, команда [[Команды адаптера#ExportQRawMonth|ExportQRawMonth]] | ||
+ | ; 70 : Cуточное распределение (по умолчанию), команда [[Команды адаптера#ExportQ|ExportQ]] | ||
+ | |} | ||
+ | |||
+ | ==== Состав передаваемых данных {[http://spb.ant-inform.ru/ASCUG http://spb.ant-inform.ru/ASCUG]}day_q ==== | ||
+ | Имеет смысл если вы решили переопределить или кастомизировать запись для собственных нужд. | ||
+ | {{ ambox | type = warning | text = Убедительная просьба, если вы заметили ошибку, сообщите нам - она будет исправлена в следующем релизе. То же самое касается развития общего функционала. Используйте предоставленные константы-хуки для изменений специфичных для вашей организации! }} | ||
+ | |||
+ | {| border=1 width="100%" cellspacing="0" cellpadding="4" class="wikitable sortable" | ||
+ | ! Поле !! Тип !! Описание | ||
+ | |- | ||
+ | | date || {[http://www.w3.org/2001/XMLSchema http://www.w3.org/2001/XMLSchema]}dateTime || дата на которую производилось распределение | ||
+ | |- | ||
+ | | q || {[http://www.w3.org/2001/XMLSchema http://www.w3.org/2001/XMLSchema]}decimal || распределённый объём, нм<sup>3</sup> | ||
+ | |- | ||
+ | | idContr || {[http://v8.1c.ru/8.1/data/core http://v8.1c.ru/8.1/data/core]}UUID || [[Перечень сокращений и обозначений#UID|UID]] договора | ||
+ | |- | ||
+ | | idPc || {[http://v8.1c.ru/8.1/data/core http://v8.1c.ru/8.1/data/core]}UUID || [[Перечень сокращений и обозначений#UID|UID]] [[Перечень сокращений и обозначений#ТП|ТП]] | ||
+ | |- | ||
+ | | idPrMark || {[http://www.w3.org/2001/XMLSchema http://www.w3.org/2001/XMLSchema]}string || идентификатор вида ценообразования (перечисление Прейскуранты) | ||
+ | |- | ||
+ | | idConsType || {[http://www.w3.org/2001/XMLSchema http://www.w3.org/2001/XMLSchema]}string || идентификатор категории потребления. Соответствие задаётся через [[Конфигурирование_на_стороне_1С#Категории потребления|соответствующие константы ASCUG_consTypePopulation и ASCUG_consTypeExceptPopulation]] | ||
+ | |- | ||
+ | | idPContr || {[http://v8.1c.ru/8.1/data/core http://v8.1c.ru/8.1/data/core]}UUID || [[Перечень сокращений и обозначений#UID|UID]] [[Перечень сокращений и обозначений#Договор закупки|договора закупки]] | ||
+ | |- | ||
+ | | plan || {[http://www.w3.org/2001/XMLSchema http://www.w3.org/2001/XMLSchema]}decimal || План на указанные сущности и сутки, нм<sup>3</sup>. В случае введения графиков 1, 2 при похолоданиях или авариях в [[ИУС-ГАЗ]], будет отличаться от загруженного ранее из [[АИС]]. | ||
+ | |} | ||
+ | |||
+ | === Экспорт данных телеметрии === | ||
+ | {{ ambox | text = Не путать с распределёнными, описанными выше. Здесь речь идёт прежде всего о телеметрийных данных на каналах, а не о коммерческих! | ||
+ | '''В общем случае они не нужны в [[АИС]]''' }} | ||
+ | {{ ambox | type = warning | text = Реализации записи с нашей стороны не предоставляется, и она должна быть задана на стороне [[АИС]] константой [[Конфигурирование на стороне 1С#ASCUG_write_q_raw_custom_code|ASCUG_write_q_raw_custom_code]]. [[#Обработка ошибок|Обработка ошибок]] и их трактовка также возлагается на сторону, занимающуюся реализацией записи на стороне [[АИС]]. Смотрите описание обработки ошибок ниже. }} | ||
+ | |||
+ | {{anchor|ExportQRaw}} | ||
+ | ==== Экспорт зоны '''актирования''' (утверждённых данных КИО) ==== | ||
+ | Добавлено в [[история изменений|версии]] 18.3.<ref>Работа инициирована по запросу Рустама Фарукшина из Уфы и совместно с ним, за что выражаем благодарность</ref>. | ||
+ | |||
+ | Операция [[Команды адаптера#ExportQRaw|ExportQRaw]]. | ||
+ | |||
+ | В сервис добавлены операция [[Команды адаптера#ExportQRaw|write_q_raw]], которой передаются соответствующие данные на обработку. Фактическая функция записи должна быть сконфигурирована константой [[Конфигурирование на стороне 1С#ASCUG_write_q_raw_custom_code|ASCUG_write_q_raw_custom_code]] и реализована на стороне АИС. Там же предлагается код-заглушка для тестирования. | ||
+ | |||
+ | {{anchor|ExportQRawTelezone}} | ||
+ | ==== Экспорт зоны '''КИО''' (сырые данные телеметрии, согласно приоритетам - "телезона") ==== | ||
+ | Операция [[Команды адаптера#ExportQRawTelezone|ExportQRawTelezone]]<ref name="ExportQRawTelezone">Поле type в передаваемых данных и команда добавлены по просьбе Дмитрия Бещенко из Москвы. С [[version 19|версии]] сервиса 19.1 ([https://jira.spb.ant-inform.ru/browse/ESB-1653 ESB-1653]).</ref>. | ||
+ | |||
+ | ==== Состав передаваемых данных data типа {[http://spb.ant-inform.ru/ASCUG http://spb.ant-inform.ru/ASCUG]}day_q_raw_list ==== | ||
+ | Данные передаются в операцию сервиса [[Команды адаптера#ExportQRaw|write_q_raw]]. На вход передаётся переменная data типа {[http://spb.ant-inform.ru/ASCUG http://spb.ant-inform.ru/ASCUG]}day_q_raw_list со следующими полями: | ||
+ | {| border=1 width="100%" cellspacing="0" cellpadding="4" class="wikitable sortable" | ||
+ | ! Поле !! Тип !! Описание | ||
+ | |- | ||
+ | | list || {[http://spb.ant-inform.ru/ASCUG http://spb.ant-inform.ru/ASCUG]}day_q_raw || список значений типа {[http://spb.ant-inform.ru/ASCUG http://spb.ant-inform.ru/ASCUG]}day_q_raw, описанного ниже | ||
+ | |- | ||
+ | | {{anchor|default_owner_code_system}}default_owner_code_system || {[http://www.w3.org/2001/XMLSchema http://www.w3.org/2001/XMLSchema]}string || Код внешней системы - владельца (owner_code_system) по умолчанию. В данном случае это должна быть [[Перечень сокращений и обозначений#АИС РГ|АИС]]. Используется, если не заполнен другой для конкретных элементов. | ||
+ | |- | ||
+ | | {{anchor|export_q_raw_type}}type<ref name="ExportQRawTelezone"/> || {[http://www.w3.org/2001/XMLSchema http://www.w3.org/2001/XMLSchema]}string || Тип передаваемых суточных данных: | ||
+ | ; 10 : Зона КИО, команда [[Команды адаптера#ExportQRawTelezone|ExportQRawTelezone]] | ||
+ | ; 70 : Зона актирования, команда [[Команды адаптера#ExportQRaw|ExportQRaw]] | ||
+ | |} | ||
+ | |||
+ | {{anchor|type_day_q_raw}} | ||
+ | ==== Состав {[http://spb.ant-inform.ru/ASCUG http://spb.ant-inform.ru/ASCUG]}day_q_raw ==== | ||
+ | {| border=1 width="100%" cellspacing="0" cellpadding="4" class="wikitable sortable" | ||
+ | ! Поле !! Тип !! Описание | ||
+ | |- | ||
+ | | corr_time || {[http://www.w3.org/2001/XMLSchema http://www.w3.org/2001/XMLSchema]}dateTime || время и дата<ref>Время добавлено для возможности в будущем таким же способом передавать часовые архивы при необходимости</ref> на которые проводился замер (время [[Перечень сокращений и обозначений#Корректор (Вычислитель)|корректора]]) | ||
+ | |- | ||
+ | | cur_time || {[http://www.w3.org/2001/XMLSchema http://www.w3.org/2001/XMLSchema]}dateTime || время и дата когда данные были записаны в БД (должно быть позже corr_time) | ||
+ | |- | ||
+ | | channel || {[http://spb.ant-inform.ru/ASCUG http://spb.ant-inform.ru/ASCUG]}g_id || [[Перечень сокращений и обозначений#Канал|канал]] | ||
+ | |- | ||
+ | | gco || {[http://spb.ant-inform.ru/ASCUG http://spb.ant-inform.ru/ASCUG]}g_id || площадка. Может отсутствовать. | ||
+ | |- | ||
+ | | pc || {[http://spb.ant-inform.ru/ASCUG http://spb.ant-inform.ru/ASCUG]}g_id || [[Перечень сокращений и обозначений#ТП|ТП]]. Может отсутствовать. | ||
+ | |- | ||
+ | | cons || {[http://spb.ant-inform.ru/ASCUG http://spb.ant-inform.ru/ASCUG]}g_id || потребитель. Может отсутствовать. | ||
+ | |- | ||
+ | | q || {[http://www.w3.org/2001/XMLSchema http://www.w3.org/2001/XMLSchema]}decimal || Объём. м<sup>3</sup> | ||
+ | |- | ||
+ | | p || {[http://www.w3.org/2001/XMLSchema http://www.w3.org/2001/XMLSchema]}decimal || Давление. Кгс/см<sup>2</sup>. Может отсутствовать. | ||
+ | |- | ||
+ | | t || {[http://www.w3.org/2001/XMLSchema http://www.w3.org/2001/XMLSchema]}decimal || Температура. ℃. Может отсутствовать. | ||
+ | |} | ||
+ | |||
+ | Тип {[http://spb.ant-inform.ru/ASCUG http://spb.ant-inform.ru/ASCUG]}g_id (global ID), упоминаемый ранее представляет собой объединённый идентификатор объекта и состоит из полей, имеющих следующее значение: | ||
+ | {| border=1 width="100%" cellspacing="0" cellpadding="4" class="wikitable sortable" | ||
+ | ! Поле !! Тип !! Описание | ||
+ | |- | ||
+ | | id || {[http://www.w3.org/2001/XMLSchema http://www.w3.org/2001/XMLSchema]}long || идентификатор (id) объекта в [[ИМУС]]. Может быть пустым | ||
+ | |- | ||
+ | | ocs || {[http://www.w3.org/2001/XMLSchema http://www.w3.org/2001/XMLSchema]}string || код системы - владельца (owner_code_system), код внешней системы, в которой объект был создан. | ||
+ | |- | ||
+ | | oid || {[http://www.w3.org/2001/XMLSchema http://www.w3.org/2001/XMLSchema]}string || [[Перечень сокращений и обозначений#Ид. в системе создателя|Ид. в системе создателя]] - идентификатор объекта в системе, в которой он был создан (Original Id, OrigId) | ||
+ | |- | ||
+ | | uid || {[http://v8.1c.ru/8.1/data/core http://v8.1c.ru/8.1/data/core]}UUID || [[Перечень сокращений и обозначений#UID|UID]], если удалось вычленить, т.е. система-создатель соответствует той в которую импортируется (см. выше) и объект не [[Общий порядок загрузки данных#Генерация структуры вниз|сгенерирован]] (по префиксу gen:, исключение делается для [[Перечень сокращений и обозначений#ТП|ТП]] т.к. там данный префикс скорее означает тип загрузки, нежели генерацию на стороне [[ИУС-ГАЗ]]) адаптером в [[ИМУС]] | ||
+ | |} | ||
+ | |||
+ | При включении [[Конфигурирование адаптера на стороне ИМУС#ais_ws_debug|режима отладки]], поля ocs и oid будет заполняться всегда, иначе (для экономии размера передаваемых данных) могут не заполняться если есть uid. | ||
+ | |||
+ | == Обработка ошибок == | ||
+ | Для всех операций записи, перед вызовом настроенного обработчика, инициируется результат: | ||
+ | <source lang="1C"> | ||
+ | errList = XDTOFactory.Create(XDTOFactory.Type("http://spb.ant-inform.ru/ASCUG", "error_list")); | ||
+ | errList.status = XDTOFactory.Create(XDTOFactory.Type("http://spb.ant-inform.ru/ASCUG", "status")); | ||
+ | </source> | ||
+ | |||
+ | Назначенный обработчик должен самостоятельно заполнить список ошибок (тип {[http://spb.ant-inform.ru/ASCUG http://spb.ant-inform.ru/ASCUG]}error) и статус операции в передаваемом аргументе errList {[http://spb.ant-inform.ru/ASCUG http://spb.ant-inform.ru/ASCUG]}error_list. | ||
+ | |||
+ | === Список ошибок === | ||
+ | Для удобства вы можете использовать функцию-хелпер '''_addError''' для удобного создания и добавления ошибок в списко, например: | ||
+ | <source lang="1C"> | ||
+ | _addError(errList, Undefined, "ASCUG WEB-сервис по умолчанию работает ТОЛЬКО на чтение…", 1, "0"); | ||
+ | </source> | ||
+ | |||
+ | Указанная функция принимает следующие аргументы (подробнее содержимое описано ниже, в объекте ошибки): | ||
+ | {| border=1 width="100%" cellspacing="0" cellpadding="4" class="wikitable sortable" | ||
+ | ! Имя !! Тип !! Описание | ||
+ | |- | ||
+ | | errorsList || {[http://spb.ant-inform.ru/ASCUG http://spb.ant-inform.ru/ASCUG]}error_list || Список ошибок, в который производится добавление (errList чаще всего). | ||
+ | |- | ||
+ | | objOnWhatErrorHappened || {[http://www.w3.org/2001/XMLSchema http://www.w3.org/2001/XMLSchema]}anyType || Объект, на котором произошла ошибка. Чаще всего строка исходных данных, на которых произошла ошибка. Не обязателен. | ||
+ | |- | ||
+ | | text || {[http://www.w3.org/2001/XMLSchema http://www.w3.org/2001/XMLSchema]}text || Полное описание ошибки | ||
+ | |- | ||
+ | | severity || {[http://www.w3.org/2001/XMLSchema http://www.w3.org/2001/XMLSchema]}short || Важность ошибки. По умолчанию мы разделяем: "-1" - message (log), 0 - status, 1 - fatal error, 2 - warning, 3 - notice | ||
+ | |- | ||
+ | | code || {[http://www.w3.org/2001/XMLSchema http://www.w3.org/2001/XMLSchema]}string || Код ошибки, если ведётся категоризация. | ||
+ | |} | ||
+ | |||
+ | Функция ничего не возвращает. | ||
+ | |||
+ | Если есть желание, данные объекты можно формировать и добавлять вручную, структура его представлена ниже: | ||
+ | Тип {[http://spb.ant-inform.ru/ASCUG http://spb.ant-inform.ru/ASCUG]}error состоит: | ||
+ | {| border=1 width="100%" cellspacing="0" cellpadding="4" class="wikitable sortable" | ||
+ | ! Поле !! Тип !! Описание | ||
+ | |- | ||
+ | | code || {[http://www.w3.org/2001/XMLSchema http://www.w3.org/2001/XMLSchema]}string || Код ошибки, если ведётся категоризация. | ||
+ | |- | ||
+ | | text || {[http://www.w3.org/2001/XMLSchema http://www.w3.org/2001/XMLSchema]}text || Полное описание ошибки | ||
+ | |- | ||
+ | | severity || {[http://www.w3.org/2001/XMLSchema http://www.w3.org/2001/XMLSchema]}short || Важность ошибки. По умолчанию мы разделяем: "-1" - message (log), 0 - status, 1 - fatal error, 2 - warning, 3 - notice | ||
+ | |- | ||
+ | | obj || {[http://www.w3.org/2001/XMLSchema http://www.w3.org/2001/XMLSchema]}anyType || Объект, на котором произошла ошибка. До [[Version 19|версии 19.3]] использовался тип {[http://spb.ant-inform.ru/ASCUG http://spb.ant-inform.ru/ASCUG]}day_q и предназначался только для операции [[Команды адаптера#ExportQ|ExportQ (экспорт распределения)]]. Объект будет представлять собой фактически строку входных данных, на которых произошла описанная ошибка: | ||
+ | ; Для команды [[Команды адаптера#ExportQ|ExportQ]] : это будет {[http://spb.ant-inform.ru/ASCUG http://spb.ant-inform.ru/ASCUG]}day_q | ||
+ | ; Для команд [[Команды адаптера#ExportQRaw|ExportQRaw]], [[Команды адаптера#ExportQRawTelezone|ExportQRawTelezone]] : {[http://spb.ant-inform.ru/ASCUG http://spb.ant-inform.ru/ASCUG]}day_q_raw | ||
+ | |} | ||
+ | |||
+ | Обратите внимание, для вашей обработки вы вольны изменить значения полей code, severity для своих нужд, чтобы вам было удобно их обрабатывать. Для вашего удобства, мы покажем в [[Общий порядок загрузки данных#Отчёт о состоянии синхронизации|отчёте]] просто списком, "как есть". | ||
+ | |||
+ | === Статус операции === | ||
+ | Помимо возвращённого списка ошибок, описанного выше, необходимо задать также общий статус операции записи. Как-то так: | ||
+ | <source lang="1C"> | ||
+ | errList.status.code = 0; | ||
+ | errList.status.text = "Экспорт завершён успешно"; | ||
+ | </source> | ||
+ | |||
+ | Тип {[http://spb.ant-inform.ru/ASCUG http://spb.ant-inform.ru/ASCUG]}status подобен типу {[http://spb.ant-inform.ru/ASCUG http://spb.ant-inform.ru/ASCUG]}error, за исключением того что имеет только поля '''code''' и '''text'''. | ||
+ | |||
+ | Поле '''code''' необходимо задавать равным 0 в случае успешного завершения операции (возможно с некоторыми не фатальными ошибками) и любое другое число в остальных случаях. | ||
+ | Статус завершения операции пишется в лог по завершении выполнения. | ||
---- | ---- | ||
== Примечания == | == Примечания == | ||
<references/> | <references/> |
Текущая версия на 17:29, 28 октября 2019
С версии 17.0 реализован экспорт распределённых суточных данных из ИМУС в АИС Регионгаз и предоставлена возможность записи зоны КИО.
Обратите внимание, по умолчанию ВЕБ-сервис ASCUG остался только для чтения! Возможность записи должна быть включена представителем компании явным заданием константы ASCUG_ENABLE_WRITE! |
Содержание
- 1 Требуемые изменения в конфигурации
- 2 Выполнение экспорта
- 3 Состав и формат передаваемых данных
- 3.1 Экспорт распределения
- 3.1.1 Экспорт данных оперативного баланса о суточном распределении по договорам (распределение)
- 3.1.2 Экспорт данных оперативного баланса о месячном распределении по договорам (распределение)
- 3.1.3 Состав передаваемых данных data типа {http://spb.ant-inform.ru/ASCUG}day_q_list
- 3.1.4 Состав передаваемых данных {http://spb.ant-inform.ru/ASCUG}day_q
- 3.2 Экспорт данных телеметрии
- 3.1 Экспорт распределения
- 4 Обработка ошибок
- 5 Примечания
Требуемые изменения в конфигурации
К сожалению, видимо конфигурация АИС РГ писалась без учета возможности работы в чисто серверном режиме (какими являются Веб-сервис, внешние соединения и т.д.) и в том числе имеет плохой стиль взаимодействия с пользователем в различных частях системы, даже не проверяя что это в данный момент возможно. Такие проверки делаются легко с помощью конструкций вида:
#Если наКлиенте Тогда Вопрос("Вы точно хотите продолжить?", РежимДиалогаВопрос.ДаНет); #КонецЕсли
Мы настоятельно рекомендуем кому-либо из представителей региональной компании, имеющей договор на поддержку, обратиться в поддержку ООО «Аудит НТ» для внесения данных изменений в основной состав конфигурации с очередным обновлением |
Таким образом, при использовании на сервере таких конструкций это приводит к ошибке, поскольку такие функции просто не определены. Подробнее про это рекомендуется прочитать в интернете, например [1]. В конфигурации АИС РГ проблема усугубляется тем, что такое взаимодействие присутствует в модулях объекта, что вообще считается дурной практикой. Это приводит даже просто к невозможности создания документов к сожалению.
Таким образом все такие операции в модуле документа СуточноеПотребление должны быть обрамлены условными конструкциями препроцессору (сейчас таких мест 6 штук для конфигурации версии 1.1.28).
Для простоты при совпадении номера конфигурации и условии что не вносилось ручных изменений в данный модуль, можно его скопировать также из предложенного нами cf-файла. Или внести соответствующие изменения самостоятельно.
Обратите внимание, данные изменения никак не затрагивают обычное использование АИС Регионгаз, потому что данные конструкции именно указывают на то что в обычном режиме это и выполняются, и не выполняются только в режиме сервера.
Выполнение экспорта
С версии АРМ ~1.5.449 добавлены графические пункты меню с выбором дат.
Также иногда удобно посылать команды из консоли с помощью утилитки amq-command, на сервере ИМУС. Параметры точно также как для планов.
На регулярное выполнение команды могут быть сконфигурированы стандартным способом.
Состав и формат передаваемых данных
Экспорт распределения
Экспорт данных оперативного баланса о суточном распределении по договорам (распределение)
Командой ExportQ передаётся информация по распределению по договорам за выбранный период (сутки) - "Зона распределения - Оперативный баланс - по суткам"
Данные передаются в операцию сервиса write_q. Передаётся список значений {http://spb.ant-inform.ru/ASCUG}day_q в атрибуте list типа {http://spb.ant-inform.ru/ASCUG}day_q_list.
По умолчанию данные записываются в Документ.СуточноеПотребление, но при необходимости может быть задан собственный обработчик записи константой ASCUG_write_q_custom_code |
Экспорт данных оперативного баланса о месячном распределении по договорам (распределение)
Командой ExportQMonth передаётся информация по распределению по договорам за выбранный период (месяц) - "Зона актирования - Месячный баланс - по суткам"[1].
Внимание. Запись месячного распределения находится в стадии разработки и не доступна в стабильных версиях |
Данные передаются в операцию сервиса write_q. Передаётся список значений {http://spb.ant-inform.ru/ASCUG}day_q в атрибуте list типа {http://spb.ant-inform.ru/ASCUG}day_q_list.
По умолчанию данные записываются в Документ.МесячноеПотребление, но при необходимости может быть задан другой документ константой ASCUG_write_q_monthDocCreate или даже полностью переопределён обработчик записи константой ASCUG_write_q_custom_code |
Записываемые атрибуты
- ГРС
- ДатаНачалаПоставки Т.к. в ИМУС Месячное распределение всё равно по суткам, пишется начало и конец месяца, но на каждый день создаётся отдельный документ.
- ДатаКонцаПоставки
- Дата - дата документа заполняется на момент записи
- ВидРеализации = "Реализация газа"
Следующие денормализованные атрибуты:
- ГРО из ГРС.ГРО
- Территория из ГРС.Территория
- Трансгаз из ГРС.Трансгаз
Записываемые данные в табличной части документа
- Договор
- Потребитель
- Подключение или ПлощадкаОборудования в зависимости от того откуда была загружена ТП
- Поставка
- КатегорияПотребления согласно настройкам
- ВыходГРС
- План - диспетчерский лимит (может не совпадать с загруженным ранее из АИС в случае введения графиков или неравномерностей)
- Факт
- ВремяЗаписи - текущее время
Состав передаваемых данных data типа {http://spb.ant-inform.ru/ASCUG}day_q_list
Данные передаются в операцию сервиса write_q. На вход передаётся переменная data типа {http://spb.ant-inform.ru/ASCUG}day_q_list со следующими полями:
Поле | Тип | Описание |
---|---|---|
list | {http://spb.ant-inform.ru/ASCUG}day_q | список значений типа {http://spb.ant-inform.ru/ASCUG}day_q, описанного ниже |
type[1] | {http://www.w3.org/2001/XMLSchema}string | Тип передаваемых суточных данных:
|
Состав передаваемых данных {http://spb.ant-inform.ru/ASCUG}day_q
Имеет смысл если вы решили переопределить или кастомизировать запись для собственных нужд.
Убедительная просьба, если вы заметили ошибку, сообщите нам - она будет исправлена в следующем релизе. То же самое касается развития общего функционала. Используйте предоставленные константы-хуки для изменений специфичных для вашей организации! |
Поле | Тип | Описание |
---|---|---|
date | {http://www.w3.org/2001/XMLSchema}dateTime | дата на которую производилось распределение |
q | {http://www.w3.org/2001/XMLSchema}decimal | распределённый объём, нм3 |
idContr | {http://v8.1c.ru/8.1/data/core}UUID | UID договора |
idPc | {http://v8.1c.ru/8.1/data/core}UUID | UID ТП |
idPrMark | {http://www.w3.org/2001/XMLSchema}string | идентификатор вида ценообразования (перечисление Прейскуранты) |
idConsType | {http://www.w3.org/2001/XMLSchema}string | идентификатор категории потребления. Соответствие задаётся через соответствующие константы ASCUG_consTypePopulation и ASCUG_consTypeExceptPopulation |
idPContr | {http://v8.1c.ru/8.1/data/core}UUID | UID договора закупки |
plan | {http://www.w3.org/2001/XMLSchema}decimal | План на указанные сущности и сутки, нм3. В случае введения графиков 1, 2 при похолоданиях или авариях в ИУС-ГАЗ, будет отличаться от загруженного ранее из АИС. |
Экспорт данных телеметрии
Не путать с распределёнными, описанными выше. Здесь речь идёт прежде всего о телеметрийных данных на каналах, а не о коммерческих! В общем случае они не нужны в АИС |
Реализации записи с нашей стороны не предоставляется, и она должна быть задана на стороне АИС константой ASCUG_write_q_raw_custom_code. Обработка ошибок и их трактовка также возлагается на сторону, занимающуюся реализацией записи на стороне АИС. Смотрите описание обработки ошибок ниже. |
Экспорт зоны актирования (утверждённых данных КИО)
Операция ExportQRaw.
В сервис добавлены операция write_q_raw, которой передаются соответствующие данные на обработку. Фактическая функция записи должна быть сконфигурирована константой ASCUG_write_q_raw_custom_code и реализована на стороне АИС. Там же предлагается код-заглушка для тестирования.
Экспорт зоны КИО (сырые данные телеметрии, согласно приоритетам - "телезона")
Операция ExportQRawTelezone[3].
Состав передаваемых данных data типа {http://spb.ant-inform.ru/ASCUG}day_q_raw_list
Данные передаются в операцию сервиса write_q_raw. На вход передаётся переменная data типа {http://spb.ant-inform.ru/ASCUG}day_q_raw_list со следующими полями:
Поле | Тип | Описание |
---|---|---|
list | {http://spb.ant-inform.ru/ASCUG}day_q_raw | список значений типа {http://spb.ant-inform.ru/ASCUG}day_q_raw, описанного ниже |
default_owner_code_system | {http://www.w3.org/2001/XMLSchema}string | Код внешней системы - владельца (owner_code_system) по умолчанию. В данном случае это должна быть АИС. Используется, если не заполнен другой для конкретных элементов. |
type[3] | {http://www.w3.org/2001/XMLSchema}string | Тип передаваемых суточных данных:
|
Состав {http://spb.ant-inform.ru/ASCUG}day_q_raw
Поле | Тип | Описание |
---|---|---|
corr_time | {http://www.w3.org/2001/XMLSchema}dateTime | время и дата[4] на которые проводился замер (время корректора) |
cur_time | {http://www.w3.org/2001/XMLSchema}dateTime | время и дата когда данные были записаны в БД (должно быть позже corr_time) |
channel | {http://spb.ant-inform.ru/ASCUG}g_id | канал |
gco | {http://spb.ant-inform.ru/ASCUG}g_id | площадка. Может отсутствовать. |
pc | {http://spb.ant-inform.ru/ASCUG}g_id | ТП. Может отсутствовать. |
cons | {http://spb.ant-inform.ru/ASCUG}g_id | потребитель. Может отсутствовать. |
q | {http://www.w3.org/2001/XMLSchema}decimal | Объём. м3 |
p | {http://www.w3.org/2001/XMLSchema}decimal | Давление. Кгс/см2. Может отсутствовать. |
t | {http://www.w3.org/2001/XMLSchema}decimal | Температура. ℃. Может отсутствовать. |
Тип {http://spb.ant-inform.ru/ASCUG}g_id (global ID), упоминаемый ранее представляет собой объединённый идентификатор объекта и состоит из полей, имеющих следующее значение:
Поле | Тип | Описание |
---|---|---|
id | {http://www.w3.org/2001/XMLSchema}long | идентификатор (id) объекта в ИМУС. Может быть пустым |
ocs | {http://www.w3.org/2001/XMLSchema}string | код системы - владельца (owner_code_system), код внешней системы, в которой объект был создан. |
oid | {http://www.w3.org/2001/XMLSchema}string | Ид. в системе создателя - идентификатор объекта в системе, в которой он был создан (Original Id, OrigId) |
uid | {http://v8.1c.ru/8.1/data/core}UUID | UID, если удалось вычленить, т.е. система-создатель соответствует той в которую импортируется (см. выше) и объект не сгенерирован (по префиксу gen:, исключение делается для ТП т.к. там данный префикс скорее означает тип загрузки, нежели генерацию на стороне ИУС-ГАЗ) адаптером в ИМУС |
При включении режима отладки, поля ocs и oid будет заполняться всегда, иначе (для экономии размера передаваемых данных) могут не заполняться если есть uid.
Обработка ошибок
Для всех операций записи, перед вызовом настроенного обработчика, инициируется результат:
errList = XDTOFactory.Create(XDTOFactory.Type("http://spb.ant-inform.ru/ASCUG", "error_list")); errList.status = XDTOFactory.Create(XDTOFactory.Type("http://spb.ant-inform.ru/ASCUG", "status"));
Назначенный обработчик должен самостоятельно заполнить список ошибок (тип {http://spb.ant-inform.ru/ASCUG}error) и статус операции в передаваемом аргументе errList {http://spb.ant-inform.ru/ASCUG}error_list.
Список ошибок
Для удобства вы можете использовать функцию-хелпер _addError для удобного создания и добавления ошибок в списко, например:
_addError(errList, Undefined, "ASCUG WEB-сервис по умолчанию работает ТОЛЬКО на чтение…", 1, "0");
Указанная функция принимает следующие аргументы (подробнее содержимое описано ниже, в объекте ошибки):
Имя | Тип | Описание |
---|---|---|
errorsList | {http://spb.ant-inform.ru/ASCUG}error_list | Список ошибок, в который производится добавление (errList чаще всего). |
objOnWhatErrorHappened | {http://www.w3.org/2001/XMLSchema}anyType | Объект, на котором произошла ошибка. Чаще всего строка исходных данных, на которых произошла ошибка. Не обязателен. |
text | {http://www.w3.org/2001/XMLSchema}text | Полное описание ошибки |
severity | {http://www.w3.org/2001/XMLSchema}short | Важность ошибки. По умолчанию мы разделяем: "-1" - message (log), 0 - status, 1 - fatal error, 2 - warning, 3 - notice |
code | {http://www.w3.org/2001/XMLSchema}string | Код ошибки, если ведётся категоризация. |
Функция ничего не возвращает.
Если есть желание, данные объекты можно формировать и добавлять вручную, структура его представлена ниже: Тип {http://spb.ant-inform.ru/ASCUG}error состоит:
Поле | Тип | Описание |
---|---|---|
code | {http://www.w3.org/2001/XMLSchema}string | Код ошибки, если ведётся категоризация. |
text | {http://www.w3.org/2001/XMLSchema}text | Полное описание ошибки |
severity | {http://www.w3.org/2001/XMLSchema}short | Важность ошибки. По умолчанию мы разделяем: "-1" - message (log), 0 - status, 1 - fatal error, 2 - warning, 3 - notice |
obj | {http://www.w3.org/2001/XMLSchema}anyType | Объект, на котором произошла ошибка. До версии 19.3 использовался тип {http://spb.ant-inform.ru/ASCUG}day_q и предназначался только для операции ExportQ (экспорт распределения). Объект будет представлять собой фактически строку входных данных, на которых произошла описанная ошибка:
|
Обратите внимание, для вашей обработки вы вольны изменить значения полей code, severity для своих нужд, чтобы вам было удобно их обрабатывать. Для вашего удобства, мы покажем в отчёте просто списком, "как есть".
Статус операции
Помимо возвращённого списка ошибок, описанного выше, необходимо задать также общий статус операции записи. Как-то так:
errList.status.code = 0; errList.status.text = "Экспорт завершён успешно";
Тип {http://spb.ant-inform.ru/ASCUG}status подобен типу {http://spb.ant-inform.ru/ASCUG}error, за исключением того что имеет только поля code и text.
Поле code необходимо задавать равным 0 в случае успешного завершения операции (возможно с некоторыми не фатальными ошибками) и любое другое число в остальных случаях. Статус завершения операции пишется в лог по завершении выполнения.
Примечания
- ↑ 1,0 1,1 Добавлено по запросу Тюрина Алексея из Иваново. С версии сервиса 19.5.pre1 (ESB-1597, SUPPORT-7426).
- ↑ Работа инициирована по запросу Рустама Фарукшина из Уфы и совместно с ним, за что выражаем благодарность
- ↑ 3,0 3,1 Поле type в передаваемых данных и команда добавлены по просьбе Дмитрия Бещенко из Москвы. С версии сервиса 19.1 (ESB-1653).
- ↑ Время добавлено для возможности в будущем таким же способом передавать часовые архивы при необходимости