Экспорт данных — различия между версиями

Материал из ANT-Inform documentation
Перейти к: навигация, поиск
(Экспорт данных оперативного баланса о суточном распределении по договорам: Зона распределения - Оперативный баланс - по суткам)
(Добавлено описание констант и дефолтной реализации, убрана заметка про экспериментальность)
Строка 1: Строка 1:
'''ЭКСПЕРИМЕНТАЛЬНО'''<ref>С версии 17.0. Мы очень просим всех желающих принять участие в тестировании данного функционала. Высказать свои замечания, предложения, пожелания.</ref> реализован экспорт распределённых суточных данных из ИМУС в АИС Регионгаз.
+
С [[история изменений|версии 17.0]] реализован экспорт распределённых суточных данных из ИМУС в АИС Регионгаз и предоставлена возможность записи зоны КИО.
 
{{ ambox | text = Обратите внимание, [[Права доступа|по умолчанию]] ВЕБ-сервис ASCUG остался только для чтения! Возможность записи должна быть включена представителем компании явным заданием константы [[Конфигурирование на стороне 1С#ASCUG_ENABLE_WRITE|ASCUG_ENABLE_WRITE]]! }}
 
{{ ambox | text = Обратите внимание, [[Права доступа|по умолчанию]] ВЕБ-сервис ASCUG остался только для чтения! Возможность записи должна быть включена представителем компании явным заданием константы [[Конфигурирование на стороне 1С#ASCUG_ENABLE_WRITE|ASCUG_ENABLE_WRITE]]! }}
  
Строка 31: Строка 31:
 
* Загрузка +/- недели: '''''ExportQ_-7..+7''''' или просто '''''ExportQ_-7..7'''''
 
* Загрузка +/- недели: '''''ExportQ_-7..+7''''' или просто '''''ExportQ_-7..7'''''
 
* Загрузка первой недели (7 дней) текущего месяца: '''''ExportQ_m0..m7'''''
 
* Загрузка первой недели (7 дней) текущего месяца: '''''ExportQ_m0..m7'''''
* Загрузка целого месяца (31 день), но не далее текущего дня: '''''ExportQ_m0..M31..0'''''
+
* Загрузка целого месяца (31 день), но не далее текущего дня: '''''ExportQ_m0..m31..0'''''
 +
* Загрузка целого месяца точно по границам: '''''ExportQ_m0..M0'''''
 
* Загрузка с 21 февраля 2012 года до текущего дня (включительно): '''''ExportQ_#2012.02.21'''''
 
* Загрузка с 21 февраля 2012 года до текущего дня (включительно): '''''ExportQ_#2012.02.21'''''
 
* Загрузка c 21 февраля 2012 года по 25 февраля: '''''ExportQ_#2012.02.21..#2012.02.25'''''
 
* Загрузка c 21 февраля 2012 года по 25 февраля: '''''ExportQ_#2012.02.21..#2012.02.25'''''
Строка 41: Строка 42:
 
Данные передаются в операцию сервиса [[Команды адаптера#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.
 
Данные передаются в операцию сервиса [[Команды адаптера#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]] }}
  
 
==== Состав {[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 ====
 
 
; date : ({[http://www.w3.org/2001/XMLSchema http://www.w3.org/2001/XMLSchema]}dateTime) - дата на которую производилось распределение.
 
; 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>.
 
; q : ({[http://www.w3.org/2001/XMLSchema http://www.w3.org/2001/XMLSchema]}decimal) - распределённый объём, нм<sup>3</sup>.
Строка 60: Строка 61:
  
 
Работа идёт по запросу Рустама Фарукшина из Уфы и совместно с ним<ref>За что выражаю благодарность</ref>.
 
Работа идёт по запросу Рустама Фарукшина из Уфы и совместно с ним<ref>За что выражаю благодарность</ref>.
На данный момент реализован [[Команды адаптера#ExportQRaw|экспорт]] из [[Перечень сокращений и обозначений#ИУС-ГАЗ|ИУС-ГАЗ]]. Ожидается реализация записи на стороне [[Перечень сокращений и обозначений#АИС РГ|АИС РГ]].
+
На данный момент реализован [[Команды адаптера#ExportQRaw|экспорт]] из [[Перечень сокращений и обозначений#ИУС-ГАЗ|ИУС-ГАЗ]]. В сервис добавлена операция [[Команды адаптера#ExportQRaw|write_q_raw]], которая на данный момент ничего не делает, только получает массив входящих данных. Однако в ней сформирована базовая структура получения, возврата кода завершения операции и списка ошибок.
 
+
Фактическая функция записи должна быть сконфигурирована константой [[Конфигурирование на стороне 1С#ASCUG_write_q_raw_custom_code|ASCUG_write_q_raw_custom_code]]
В сервис добавлена операция [[Команды адаптера#ExportQRaw|write_q_raw]], которая на данный момент ничего не делает, только получает массив входящих данных. Однако в ней сформирована базовая структура получения, возврата кода завершения операции и списка ошибок.
+
 
+
'''Остаётся только добавить саму запись данных. Позже обязательно это сделаем либо общей реализацией, либо вынесем в вызов функции из внешнего модуля!'''
+
  
 
Данные передаются в операцию сервиса [[Команды адаптера#ExportQRaw|write_q_raw]]. Передаётся список значений {[http://spb.ant-inform.ru/ASCUG http://spb.ant-inform.ru/ASCUG]}day_q_raw в атрибуте list типа {[http://spb.ant-inform.ru/ASCUG http://spb.ant-inform.ru/ASCUG]}day_q_raw_list.
 
Данные передаются в операцию сервиса [[Команды адаптера#ExportQRaw|write_q_raw]]. Передаётся список значений {[http://spb.ant-inform.ru/ASCUG http://spb.ant-inform.ru/ASCUG]}day_q_raw в атрибуте list типа {[http://spb.ant-inform.ru/ASCUG http://spb.ant-inform.ru/ASCUG]}day_q_raw_list.

Версия 12:25, 12 марта 2014

С версии 17.0 реализован экспорт распределённых суточных данных из ИМУС в АИС Регионгаз и предоставлена возможность записи зоны КИО.

Требуемые изменения в конфигурации

К сожалению, видимо конфигурация АИС РГ писалась без учета возможности работы в чисто серверном режиме (какими являются Веб-сервис, внешние соединения и т.д.) и в том числе имеет плохой стиль взаимодействия с пользователем в различных частях системы, даже не проверяя что это в данный момент возможно. Такие проверки делаются легко с помощью конструкций вида:

#Если наКлиенте Тогда 
	Вопрос("Вы точно хотите продолжить?", РежимДиалогаВопрос.ДаНет);
#КонецЕсли

Таким образом, при использовании на сервере таких конструкций это приводит к ошибке, поскольку такие функции просто не определены. Подробнее про это рекомендуется прочитать в интернете, например [1]. В конфигурации АИС РГ проблема усугубляется тем, что такое взаимодействие присутствует в модулях объекта, что вообще дурной практикой. Это приводит даже просто к невозможности создания документов к сожалению.

Таким образом все такие операции в модуле документа СуточноеПотребление должны быть обрамлены условными конструкциями препроцессору (сейчас таких мест 6 штук для конфигурации версии 1.1.28).

Для простоты при совпадении номера конфигурации и условии что не вносилось ручных изменений в данный модуль, можно его скопировать также из предложенного нами cf-файла. Или внести соответствующие изменения самостоятельно.

Обратите внимание, данные изменения никак не затрагивают обычное использование АИС Регионгаз, потому что данные конструкции именно указывают на то что в обычном режиме это и выполняются, и не выполняются только в режиме сервера.

Тестирование

В процессе тестирования, пока не доступен функционал отправки запроса на экспорт из АРМ, можно посылать команды из консоли с помощью утилитки amq-command, на сервере ИМУС.

Основная команда для этого ExportQ с параметрами. Например: «amq-command ExportQ_<DateFrom>..<DateTo>..<DateBound>», точно также как для планов.

Примеры команд

  • С начала текущего месяца, до сегодня, за три приема чтобы не создавать каждый раз чрезмерной нагрузки, что соответствует: ExportQ_m0..m10..0,ExportQ_m11..m20..0,ExportQ_m21..m31..0
  • Загрузка недели (7 дней) предшествующей сегодняшнему дню: ExportQ_-7
  • Загрузка недели (7 дней) вперед, от сегодняшнего дня: ExportQ_0..+7 или просто ExportQ_0..7
  • Загрузка +/- недели: ExportQ_-7..+7 или просто ExportQ_-7..7
  • Загрузка первой недели (7 дней) текущего месяца: ExportQ_m0..m7
  • Загрузка целого месяца (31 день), но не далее текущего дня: ExportQ_m0..m31..0
  • Загрузка целого месяца точно по границам: ExportQ_m0..M0
  • Загрузка с 21 февраля 2012 года до текущего дня (включительно): ExportQ_#2012.02.21
  • Загрузка c 21 февраля 2012 года по 25 февраля: ExportQ_#2012.02.21..#2012.02.25

Состав и формат передаваемых данных

Экспорт данных оперативного баланса о суточном распределении по договорам

Передаётся информация по распределению по договорам за выбранный период (сутки) - "Зона распределения - Оперативный баланс - по суткам"

Данные передаются в операцию сервиса write_q. Передаётся список значений {http://spb.ant-inform.ru/ASCUG}day_q в атрибуте list типа {http://spb.ant-inform.ru/ASCUG}day_q_list.

Состав {http://spb.ant-inform.ru/ASCUG}day_q

date 
({http://www.w3.org/2001/XMLSchema}dateTime) - дата на которую производилось распределение.
({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 при похолоданиях или авариях в ИУС-ГАЗ, будет отличаться от загруженного ранее из АИС.

Экспорт утверждённых объёмов

Добавлено в версии 18.3. Реализовано не полностью!

Работа идёт по запросу Рустама Фарукшина из Уфы и совместно с ним[1]. На данный момент реализован экспорт из ИУС-ГАЗ. В сервис добавлена операция write_q_raw, которая на данный момент ничего не делает, только получает массив входящих данных. Однако в ней сформирована базовая структура получения, возврата кода завершения операции и списка ошибок. Фактическая функция записи должна быть сконфигурирована константой ASCUG_write_q_raw_custom_code

Данные передаются в операцию сервиса write_q_raw. Передаётся список значений {http://spb.ant-inform.ru/ASCUG}day_q_raw в атрибуте list типа {http://spb.ant-inform.ru/ASCUG}day_q_raw_list.

Состав {http://spb.ant-inform.ru/ASCUG}day_q_raw

corr_time 
({http://www.w3.org/2001/XMLSchema}dateTime) - время и дата[2] на которые проводился замер (время корректора).
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) - потребитель
({http://www.w3.org/2001/XMLSchema}decimal) - Объём. m3.
({http://www.w3.org/2001/XMLSchema}decimal) - Давление. Кгс/см2. Может отсутствовать.
({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), код внешней системы, в которой объект был создан. В данном случае это должна быть АИС. Будет заполнено только если не совпадает с основной системой в которую экспортируется, указанную в {http://spb.ant-inform.ru/ASCUG}day_q_raw_lis.default_owner_code_system.
oid 
({http://www.w3.org/2001/XMLSchema}string) - Ид. в системе создателя - идентификатор объекта в системе, в которой он был создан (Original Id).
uid 
({http://v8.1c.ru/8.1/data/core}UUID) - UID, если удалось вычленить, т.е. система-создатель соответствует той в которую импортируется (см. выше) и объект не сгенерирован (по префиксу gen:, исключение делается для ТП т.к. там данный префикс скорее означает тип загрузки, нежели генерацию на стороне ИУС-ГАЗ) адаптером в ИМУС.

При включении режима отладки, поле oid будет заполняться всегда, иначе (для экономии размера передаваемых данных) только если не заполнен uid.


Примечания

  1. За что выражаю благодарность
  2. Время добавлено для возможности в будущем таким же способом передавать часовые архивы при необходимости