Конфигурирование на стороне 1С — различия между версиями
Hubbitus (обсуждение | вклад) (ESB-1597 (SUPPORT-7426): Добавление экспорта месяца - ExportQMonth. С Сервиса 19.5.pre1) |
Hubbitus (обсуждение | вклад) (или '''МесячноеПотребление'''<ref name="ExportQMonth"/>) |
||
Строка 110: | Строка 110: | ||
; {{anchor|ASCUG_write_q_onDocWrite}}'''ASCUG_write_q_onDocWrite''' : Предоставляется возможность задать собственный обработчик заполнения документа Суточное потребление если нужна дополнительная логика. Вызывается перед записью документа.<ref>По запросу из Новосибирска, от Осипова Сергея</ref> | ; {{anchor|ASCUG_write_q_onDocWrite}}'''ASCUG_write_q_onDocWrite''' : Предоставляется возможность задать собственный обработчик заполнения документа Суточное потребление если нужна дополнительная логика. Вызывается перед записью документа.<ref>По запросу из Новосибирска, от Осипова Сергея</ref> | ||
Для использования доступны переменные: | Для использования доступны переменные: | ||
− | * docDayConsumption - сам документ '''СуточноеПотребление''' | + | * docDayConsumption - сам документ '''СуточноеПотребление''' или '''МесячноеПотребление'''<ref name="ExportQMonth"/> |
* s : Структурированные данные, из которых документ был заполнен, ValueTable со следующими столбцами: | * s : Структурированные данные, из которых документ был заполнен, ValueTable со следующими столбцами: | ||
** prMark - PriorityMark - вид ценообразования | ** prMark - PriorityMark - вид ценообразования |
Версия 23:02, 21 января 2015
Содержание
Проблема
В отдельных РГК имеются свои особенности учета в АИС РГ.
Например:
- ведение льгот, как потребителей, никогда не потребляющих газ и отличающихся от других потребителей тем, что они располагаются в отдельной папке (по устной договоренности пользователей АИС РГ);
- множество некорректных договоров и площадок, датируемых 2003 годом, исправление которых не имеет смысла и крайне затруднительно;
- использование «псевдо-типов» договоров и так далее.
Поскольку веб-сервис един для всех РГК, изменения в него могут быть внесены только при обнаружении ошибок или общим, непротиворечивым способом. Для учета особенностей РГК и в первую очередь для того, чтобы отфильтровать нежелательные к загрузке объекты, предлагается механизм констант, влияющих на результаты запросов.
Суть механизма заключается в том, что в код запросов веб-сервиса вводится ряд констант, значение которых может подставляться в запросы получения различных типов данных и влияет на тип и/или объём получаемой информации.
Внимание! Данный механизм введен категорически не для уменьшения объема загружаемых данных или отсеивания старых договоров, а прежде всего для отфильтровывания трудно устранимых проблем и исторических особенностей. Некорректные данные, которые можно исправить, должны быть исправлены и импортированы. Также необходимо помнить, что исключая из результатов запроса какие-то данные, исполнитель гарантирует, что в других объектах не будет ссылок на эти данные. |
По умолчанию ни одна из констант не создается, корректное функционирование сервиса предполагается без них. Все константы должны иметь строковый тип, если специально не указано иное.
Механизм констант введен для специалистов ООО «АНТ-Информ» и администраторов АИС РГ, хорошо представляющих предметную область. Никакие специальные средства для изменения значений констант не предусматриваются[1] |
Если импорт и обновление Веб-сервиса может быть произведено в динамическом режиме, то добавление констант требует монопольного доступа |
Импорт в ИУС ГАЗ
Договоры
- ASCUG_additional_Contract_vendor
- используется в операции веб-сервиса get_contracts. Выборка осуществляется из РегистрСведений.ПлощадкиПоДоговору.СрезПоследних(&CurrentDate) как contracts, если он ведётся (имеются площадки и не установлена константа НеСвязыватьПлощадкуСДоговором), иначе РегистрНакопления.ПланыПоставок как contracts, и всегда также доступен объединённый РегистрСведений.ПараметрыДоговора.СрезПоследних как contractParams. Позволяет переопределить выбор поставщика по договору на усмотрение компании. Значение по умолчанию: "ISNULL(contracts.Договор.ОсновнойДоговор.Поставщик.Ссылка, &OurCompany)".
- ASCUG_additionalCondition_Contract
- используется в операции веб-сервиса get_contracts. Выборка осуществляется из РегистрСведений.ПлощадкиПоДоговору.СрезПоследних(&CurrentDate) как contracts, если он ведётся (имеются площадки и не установлена константа НеСвязыватьПлощадкуСДоговором), иначе РегистрНакопления.ПланыПоставок как contracts, и всегда также доступен объединённый РегистрСведений.ПараметрыДоговора.СрезПоследних как contractParams.
Потребители
- ASCUG_additionalCondition_Consumer[2]
- Операция веб-сервиса get_consumers.
Доступен РегистрСведений.ПлощадкиПоДоговору.СрезПоследних(&CurrentDate), если он ведётся (если есть площадки и не установлена константа НеСвязыватьПлощадкуСДоговором) или РегистрНакопления.ПланыПоставок как plan.
Площадки
- ASCUG_additionalCondition_GasConsObjects
- операция get_gas_cons_objects. Доступны РегистрСведений.ПлощадкиПоДоговору.СрезПоследних как gco и объединенная с ней РегистрСведений.ПараметрыПлощадкиОборудования.СрезПоследних(, Идентификатор = "КонтактноеЛицо") как contact.
- ASCUG_additional_GasConsObjects
- дополнительная константа, которая будет доступна дополнительно для шаблона наименования площадок. Внимание, это дополнительное поле передаваемой информации, а не условие отбора!
Точки подключения
- ASCUG_additionalCondition_PointConnects
- операция get_point_connects.
В зависимости от варианта учёта ТП и настроек доступны: Справочник.Подключения как pc, РегистрСведений.ПлощадкиПоДоговору.СрезПоследних как pc, РегистрСведений.ПараметрыПлощадкиОборудования.СрезПоследних(, Идентификатор="ВыходГРС") как gcoParams.
Узлы учёта газа
- ASCUG_additionalCondition_uugs
- операция get_uugs. Доступен РегистрСведений.АктивныеУзлыУчета.СрезПоследних.
Корректоры
- ASCUG_additionalCondition_equips
- операция get_equips. Доступны РегистрСведений.УстановленноеИзмерительноеОборудование.СрезПоследних как equips, РегистрСведений.ПараметрыИзмерительногоОборудования.СрезПоследних(, Идентификатор = "ДатаПоверки") как dateCheck, РегистрСведений.ПараметрыИзмерительногоОборудования.СрезПоследних(, Идентификатор = "ДатаСледующейПоверки") как dateNextCheck и РегистрСведений.ПараметрыИзмерительногоОборудования.СрезПоследних(, Идентификатор = "Опломбирован") как sealStatus.
Каналы
- ASCUG_additionalCondition_channels
- операция get_channels. Доступны: Справочник.КаналыВычислителей как channels и РегистрСведений.УстановленноеИзмерительноеОборудование.СрезПоследних как equips.
Измерительное оборудование
- ASCUG_additionalCondition_GasMeters
- операция get_gas_meters. Доступен РегистрСведений.УстановленноеИзмерительноеОборудование.СрезПоследних как gasMeters.
ГПО
- ASCUG_additionalCondition_GasConsEquips[3]
- операция get_gas_cons_equips. Доступны: РегистрСведений.УстановленноеГазопотребляющееОборудование.СрезПоследних как gce, РегистрСведений.ЗначенияПараметровГазопотребляющегоОборудования.СрезПоследних(, Идентификатор = "Состояние") как status.
Планы
- (deprecated in 15pre8. ESB-492)ASCUG_additionalCondition_plans_filter[4][5]
- операция get_contr_pc_daily_plans. Вставляется в условие WHERE выборки категорий Catalog.КатегорииПотребления, заменяя основное 'LIKE «%население%»'. Выбираться должны категории, планы по которым не должны попадать в ИУС-ГАЗ.
- ASCUG_additional_plans_priority[6]
- константа, позволяющая изменить источник вида ценообразования для получаемого из планов субъекта распределения в ИУС-ГАЗ. По умолчанию берётся из Договор.ВидПрейскуранта.Порядок. Доступен РегистрНакопления.ПланыПоставок под именем plan. Операция get_cc_daily_plans.
- ASCUG_additional_plansUseGasType[7]
- Константа, позволяющая включить загрузку разреза Вида газа для СР. 1 (true) - использовать Вид газа, 0 (false) - не использовать.
Внимание! Для всех СР где данный разрез заполнен в АИС РГ придётся провести заново привязку на субъект поставки! |
Связывание площадок с ТП
- ASCUG_additionalCondition_relPCtoGCOunique[8]
- Если будет установлена в любое истинное значение, связывание площадок с ТП будет осуществляться в режиме уникальности, подразумевая всегда связь один к одному. Это может быть решением проблемы, если вы не хотите снимать атрибут ЕстьСвязь регистра ПлощадкиПоДоговору с прошлых периодов. Уникальная, активная связка, которая должна будет попасть в ИУС-ГАЗ, будет отбираться по тем же правилам что используются для потребителей.
Следует однако заметить, что площадка может легитимно иметь несколько подключений в один момент времени, например, если она питается более чем с одного Выхода ГРС (площадки больших потребителей, ТЭЦ и теплосетей) они должны быть скорректированы в ИУС-ГАЗ вручную. Ошибок такого типа в отчете не будет. С другой стороны таких потребителей должно быть единицы |
Дополнительно отметим что в этих случаях вручную не достаточно будет добавить или сгенерировать отдельный канал в ИУС-ГАЗ, так как зоны ГП строятся по узлам, в ИУС-ГАЗ необходимо добавить дополнительный тракт УУГ -> корректор -> канал и привязать каждый канал к своему подключению. Поскольку такой информации на уровне каналов в АИС нет, это можно сделать только вручную. |
Экспорт в АИС
Включение записи
- ASCUG_ENABLE_WRITE
- любого типа константа, не пустого значения (вычисляемая в true). Отсутствие данной константы (по умолчанию) или значение false (ложь) означает что при любых настройках со стороны ИМУС запись в АИС РГ полностью отключена.
При желании вы можете импортировать данную константу вместе с веб-сервисом из предлагаемого cf файла |
Запись актированного суточного распределения (ExportQ)
Категории потребления
По указанию Перванюка В.С. из МРГ в ИМУС оставлено всего 2 категории потребления: "Население" и "Кроме населения". При импорте из АИС РГ планов, данные сущности стандартным образом мапятся на эти 2. Проблема возникает при обратном экспорте фактических данных в АИС РГ — необходимо обратное преобразование.
- ASCUG_consTypePopulation
- константа типа СправочникСсылка.КатегорииПотребления. Если она задана, она будет взята для категории ИМУС "Население". Если ее нет, или она не задана будет взята категория потребления с кодом 2 (по умолчанию это "Население конечным потребителям").
- ASCUG_consTypeExceptPopulation
- константа типа СправочникСсылка.КатегорииПотребления. Если она задана, она будет взята для категории ИМУС "Кроме населения". Если ее нет, или она не задана будет взята категория потребления с кодом 1 (по умолчанию это "Кроме населения конечным потребителям").
При желании обе могут быть импортированы вместе с веб-сервисом из предлагаемого cf файла |
Переопределение логики записи
- ASCUG_write_q_custom_code
- если задано не пустое значение, данный код будет выполняться в операции write_q для записи объёмов, вместо стандартно предложенной реализации[9].
С версии 18.3.3.
Изменение документа записи месячного потребления
- ASCUG_write_q_monthDocCreate
- Предоставляется возможность задать документ или способ его получения куда предполагается писать месячное потребление.
По умолчанию:
Documents.МесячноеПотребление.CreateDocument();
Используется в команде ExportQMonth. C версии сервиса 19.5.pre1 - ESB-1597.
Обработчик записи документов СуточноеПотребление и МесячноеПотребление[10]
- ASCUG_write_q_onDocWrite
- Предоставляется возможность задать собственный обработчик заполнения документа Суточное потребление если нужна дополнительная логика. Вызывается перед записью документа.[11]
Для использования доступны переменные:
- docDayConsumption - сам документ СуточноеПотребление или МесячноеПотребление[10]
- s : Структурированные данные, из которых документ был заполнен, ValueTable со следующими столбцами:
- prMark - PriorityMark - вид ценообразования
- pc - PointConnect - Точка подключения
- contract - Договор
- consType - Категория потребления
- pContract - RurchaseContract - Поставка.
- GDSout - Выход ГРС
- q - Объём, м3
- plan - план
- date - дата
- d : исходные, сырые данные.
Добавлено с версии 19.4.2 (ESB-1917). По умолчанию отсутствует.
Обработчик записи строки документа СуточноеПотребление и МесячноеПотребление[10]
- ASCUG_write_q_onDocLineWrite
- Предоставляется возможность задать собственный обработчик заполнения строки документа Суточное потребление если нужна дополнительная логика.[12]
Для использования доступны переменные:
- tablePart - сама табличная часть документа
- dataLine - строка исходных данных, передаваемых сервис из которых происходит заполнение. ValueTable (ТаблицаЗначений) с полями:
- prMark : Вид ценообразования (PriorityMark)
- pc : Точка подключения (PointConnect)
- contract : Договор
- consType : Категория потребления
- pContract : Поставка
- GDSout : Выход ГРС
- q : Объём, тыс м3
- plan : Плановый объём - диспетчерский лимит. м3. Может отличаться от плана АИС РГ если в ИМУС вводились ограничения по графикам 1/2 или неравномерности.
- date : Дата
- line - найденная и заполненная строка табличной части.
- doc - сам документ.[13].
Примером использования может быть задание строки вида:
СобственныеПроцедурыСервер.ЗагрузкаСуточногоПотребленияИзИУСГАЗ(tablePart, dataLine, line, doc)
С версии 19.0.6. Используется если задана не пустая строка. Для работы не требуется.
Запись зоны актирования КИО (ExportQRaw)
- ASCUG_write_q_raw_custom_code
- Должен быть задан валидный 1С код, для выполнения записи сырых (не распределённых) актированных объёмов в операции операция write_q_raw. По умолчанию:
СобственныеПроцедурыСервер.ЗагрузкаСуточногоПотребленияРаспределенногоИзИУСГАЗ(data, err_type, err_list)".
Реализации по умолчанию с нашей стороны не предоставляется![14] |
С версии 18.3.3.
Пример
Примером кода для обоих констант может служить[15]:
for each d in data.list do _addError(errList, d, "Test!", -1,); endDo; status.code = 0; status.text = "Test mode used. Please see you exported data in errors (files or report)";
Всё что делают эти несколько строчек, перекладывают входящие данные в объекты ошибок, которые затем можно будет посмотреть, например в отчёте. Это может быть весьма полезным при настройке и отладке взаимодействия.
Примечания
- ↑ Однако можем порекомендовать достаточно удобную обработку для этого, из-за того что стандартные средства не слишком удобны и требуют редактирования форм для изменения содержимого констант
- ↑ С версии веб-сервиса 16.0.pre2. До этой версии была загрузка из справочников напрямую, и определялись константы: ASCUG_additionalCondition_ConsumerContract и ASCUG_additionalCondition_ConsumerContractReestr. Теперь они объявляются устаревшими и больше не используются
- ↑ Реализовано только для версии конфигурации => 1.1.7.
- ↑ Доступно с версии 14.10pre6.
- ↑ (deprecated in 15pre8. ESB-492) C переходом на новые планы по субъектам распределения, данная константа объявляется устаревшей и больше не используется. Теперь забираются все планы, с соответствующими категориями потребления, которые можно просматривать в ИУС-ГАЗ и соответствующим образом замапить.
- ↑ Доступно с версии 15.10.
- ↑ Доступно с версии 19.2. ESB-1746
- ↑ Доступно с версии 15.12.
- ↑ Предназначено для реализации принципиально другой логики записи, а не для исправления ошибок, о которых убедительная просьба сообщать нам
- ↑ 10,0 10,1 10,2 C версии сервиса 19.5.pre1 - ESB-1597 действие распространено также на документ МесячноеПотребление
- ↑ По запросу из Новосибирска, от Осипова Сергея
- ↑ По запросу из Новосибирска, от Осипова Сергея
- ↑ Добавлен с версии 19.4.2. ESB-1917
- ↑ На самом деле, кроме специфичных случаев, как например в Уфе было необходимо распределение до площадок, это вряд ли кому и нужно будет в учётной системе. И места в АИС РГ для этих данных по умолчанию похоже также нету.
- ↑ ESB-1816