Общее описание

Программный комплекс «Электросеть» предусматривает возможность автоматического формирования текстов договоров, приложений к ним и других документов, требующихся при работе с потребителями (акты разграничения балансовой принадлежности, эксплуатационные соглашения и т.п.). Формирование документов производится с использованием информации, хранящейся в базах данных.

Автоматизация процесса формирования текстов документов позволяет:

  • значительно увеличить производительность и качество труда сотрудников отдела договоров;

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

Для автоматического формирования текста документа необходимо:

  • создать шаблон документа в любом тестовом редакторе, поддерживающем формат RTF;

  • присоединить шаблон к нужному виду документов;

  • занести в базу данных сведения, участвующие в автоматическом формировании текста документа;

  • с помощью кнопки [image] на закладке "Печать" карточки документа сформировать текст договора;

  • проверить сформированный текст документа на отсутствие недостающей информации и ошибок, при необходимости внести исправления в базу данных и заново сформировать текст документа.


Создание шаблонов

Для автоматического формирования текста документа необходимо предварительно создать шаблон этого документа, используя любые предоставляемые текстовыми редакторами инструменты для его оформления: шрифты, таблицы, цвета, картинки и т.д. Созданные шаблоны должны быть сохранены в формате RTF (редактор Microsoft Word и другие позволяют сохранять тексты в данном формате).

Вывод информации в шаблон осуществляется с помощью таблиц :
Название таблицы | Описание
doc | Содержит информацию о документе (даты, условия оплаты, прочие условия)
provider | Информация о поставщике/исполнителе
buyer | Информация о потребителе/заказчике
providerRasSchet | Информация о расчетном счете поставщика/исполнителя
buyerRasSchet | Информация о расчетном счете потребителя/заказчика
object | Информация о присоединенных к документу объектах
num | Информация об объектах и их приборах учета
numMeter | Информация об объектах и их приборах учета, а также их показания на дату начала действия документа
WMonth | Помесячная разбивка годового объема потребления

Для получения других таблиц необходимо обратиться к разработчикам.

Внимание! Не забывайте сохранять документ в формате RTF (при сохранении документа в Microsoft Word указывать в поле тип файла «Текст в формате RTF (*.rtf)», а не Doc (*.doc). Иначе программа не сможет вывести данный шаблон).


Присоединение шаблонов

После того, как шаблон документа создан, требуется привязать его к нужному виду документа. Для этого через главное меню /Справочники/Виды документов/ осуществляется вызов справочника «Видов документов». В открывшейся карточке «Настройка документа» в закладке «Печатные шаблоны» с помощью кнопки [image] вызывается справочник «Шаблон документа».

В поле «Название» заносится наименование шаблона документа.

Поле «Файл шаблона» предназначено для ввода пути и наименования файла, содержащего шаблон документа. Выбор файла осуществляется с помощью кнопки [image].

В поле «Описание» вносится дополнительная информация.

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


Формирование текста

При попытке вывести заполненный шаблон документа, программа получает из СУБД таблицы с данными, состоящими из множества полей и строк, и заполняет ими расставленные в шаблоне специальные теги. Таким образом, для настройки шаблона, пользователю достаточно расставить в документе в нужных местах нужные теги.

Работа с тегами.

Для того, чтобы программа могла подставить в шаблон нужные данные, необходимо расставить теги. Теги - это текст, в специальном формате, понятный для программы. Все теги начинаются и заканчиваются обратным слешем, например: \object:obj_name\

Теги всегда указываются с ссылкой на таблицу, к которой они принадлежат и с наименованием поля, которое необходимо подставлять в текст документа. Списки всевозможных названий полей приведены отдельно для каждой таблицы: таблица документов, таблица контрагентов, таблица расчетных счетов, таблица объектов, таблица приборов учета, таблица показаний, таблица договорных объемов.

Внимание! Т.к. ИРМ «Электросеть» постоянно развивается и модифицируется, то список полей может изменяться (расширяться или переименовываться), что может иногда приводить к корректировкам шаблонов при обновлениях программы.

Пример: Шаблон с преамбулой большинства из договоров будет иметь следующий вид:

\provider:con_fullName\, именуемое(ый,ая) в дальнейшем «Сетевая организация», в лице \provider:con_leaderDolzh\ \provider:con_leaderFullName\, действующего(ей) на основании \provider:con_uchDoc\, с одной стороны, и \buyer:con_fullName\, именуемое(ый,ая) в дальнейшем «Потребитель», в лице \buyer:con_leaderDolzh\ \buyer:con_leaderFullName\, действующего(ей) на основании \buyer:con_uchDoc\, с другой стороны, вместе в дальнейшем именуемые «Стороны», заключили настоящий договор о нижеследующем …

В данном примере все поля из таблицы «provider» будут подставлены в теги, где указана данная таблица (\provider:___\) . То же самое и для таблицы «buyer». Если в базе данных отсутствуют сведения для автоматической подставки, то место тега останется не заполненным.

Описание функции «nf».

В связи с тем, что иногда некоторые поля в программе пользователь может не указать (по забывчивости или нет данных), то для того чтобы вместо пустой строки подставлялся текст <не указано>, используется функция nf(). Например: \nf(object:obj_name)\

Внимание! Рекомендуем всегда для вывода полей таблиц использовать функцию nf(). Иначе сложно заметить в тексте документа, что какое либо поле оказалось не заполненным.

Например, у нас имеется в шаблоне следующий текст:

… Сетевая организация имеет право взыскать с Потребителя пени в размере \doc:eDog_peni\ % от суммы задолженности …

Если пользователь не заполнил в карточке документа поле «Пени», то при выводе шаблона, будет сформирован следующий текст:

… Сетевая организация имеет право взыскать с Потребителя пени в размере % от суммы задолженности

В тексте объемного документа будет сложно заметить, что данное поле осталось не заполненным. Поэтому рекомендуется использовать функцию nf(): \nf(doc:eDog_peni)\. Тогда текст при выводе документа получится следующим:

… Сетевая организация имеет право взыскать с Потребителя пени в размере <не указано>% от суммы задолженности

Подставленный автоматически текст будет заметен еще лучше, если во время написания шаблона документа шрифт тегов выбирать цветом отличным от основного текста.

Описание функций «if» и «IIF».

Логические функции if и IIF проверяют, выполняется ли условие или нет, и в зависимости от этого возвращают одно или другое значение. С помощью данных функций можно реализовать подстановку в текст документа того или иного текста в зависимости от значения какого-либо параметра в базе данных:

Например: \if(логическое выражение1)\..текст1..\elsif(логическое выражение2)\..текст2..\else\..текст3..\endif\
\IIF(логическое выражение,текст1,текст2)\

Например, в зависимости от того, поставлена отметка о безакцептном списании в базе данных или нет, нужно выводить разный текст договора. С помощью функции IIF это требование может быть реализовано следующим образом:

… \IIF(doc:eDog_akscept,”Поставщик имеет право на безакцептное списание денежных средств со счета Потребителя”,”Безакцептный порядок производства расчетов за потребленную электроэнергию условиями настоящего договора не предусмотрен”)\ …

Функцию if целесообразно использовать в случаях с двумя и более логическими выражениями, а также, когда в подставляемый в зависимости от логического выражения текст требуется вставлять какие-либо теги. К примеру, в зависимости от того, внесены в базу данных пени (doc:eDog_peni) или нет, может выводиться тот или иной текст:

1. Сетевая организация имеет право взыскать с Потребителя пени в размере 0,1% от суммы задолженности

2. Сетевая организация имеет право взыскать с Потребителя пени в размере ставки рефинансирования ЦБ РФ от суммы задолженности

В тексте шаблона документа требуется прописать следующее:

Сетевая организация имеет право взыскать с Потребителя пени \if(doc:eDog_peni>0)\в размере \doc:eDog_peni\ %\else\в размере ставки рефинансирования ЦБ РФ\endif\ от суммы задолженности

Создание таблиц.

Некоторые шаблоны документов могут содержать табличные формы. Для автоматического заполнения табличных форм в шаблоне таких документов используется функция scan(имя таблицы):

\scan(имя_таблицы)\
Поле1, Поле2, ..., ПолеN
\endscan\

Пример:

Название объекта Адрес объекта Владелец
\scan(object)\
\nf(object:obj_name)\ \nf(object:obj_addressShort)\ \nf(object:con_name)\
\endscan\

При формировании документа получится следующий текст:

Название объекта | Адрес объекта | Владелец
Магазин №3 | г.Москва, ул.Литейная, 29 | Иванов И.И.
Киоск "Цветы" | г.Москва, ул.Литейная, 30 | Григорян А.О.
Производственная база | г.Москва, ул.Новая, 256/1 | Петров П.П.


Таблица «doc»

Таблица включает в себя только содержимое справочника Документов (информация о контрагентах, объектах и т.д. содержится в других таблицах). В текст документа будут подставляться сведения из справочника по тому документу, по которому производится автоматическое формирование текста.

Примеры тега (подробнее см. раздел «Работа с тегами»): \doc:doc_num\

Название поля | Описание
doc_id | Код документа
doc_num | Номер документа
doc_tDocId | Тип документа
doc_dateSign | Дата заключения договора
doc_dateBegin | Дата начала действия документа
doc_dateEnd | Дата окончания действия документа
doc_isSign | Информация о подписании документа
doc_providerId | Наименование поставщика (исполнителя)
doc_buyerId | Наименование потребителя (заказчика)
doc_prolong | Информация о наличии пролонгации документа
doc_dissent | Информация о наличии разногласий по тексту документа
doc_isClose | Информация о расторжении документа
doc_dateClose | Дата расторжения документа
doc_dateSend | Дата отправки документа на подпись второй стороне
eDog_schDeliveryDay | День доставки счета
eDog_schDeliveryDay | День доставки счета на предоплату
schDeliv_name | Способ доставки платежных документов
eDog_peni | Величина пени (%)
eDog_dayPrepay | Дата оплаты предварительного счета
eDog_perPrepay | Размер предоплаты (%)
eDog_dayPay | Дата оплаты счета фактуры (окончательный платеж)
eDog_akscept | Информация о наличии условий по безакцептному списанию
eDog_penaltyK | Штрафной коэффициент
eDog_ircLic | Код обмена
doc_creator | Создатель документа (сетевое имя пользователя)
doc_dateCreate | Дата создания записи


Таблицы «provider» и «buyer»

Таблицы «provider» и «buyer» имеют одинаковую структуру и включают в себя содержимое справочника Контрагентов. В текст документа будут подставляться сведения только о тех контрагентах, которые являются по данному документу либо поставщиком (исполнителем), либо потребителем (заказчиком).

Примеры тега (подробнее см. раздел «Работа с тегами»):
\provider:con_name\
\buyer:con_leaderFullName\

Название поля | Описание
con_id | Уникальный код контрагента
con_name | Краткое наименование контрагента
con_fullName | Полное наименование контрагента
con_tConId | Тип контрагента
con_addrUrIdx | Индекс в юридическом адресе
urAddressFullName | Полный юридический адрес
con_addrPostIdx | Почтовый индекс
postAddressFullName | Полный почтовый адрес
con_phone | Телефон контрагента
con_fax | Факс контрагента
con_eMail | E-mail контрагента
con_leaderName | Фамилия И.О. руководителя контрагента
con_leaderFullName | Фамилия Имя Отчество руководителя контрагента
con_leaderDolzh | Должность руководителя контрагента
con_uchDoc | Учредительный документ (основание для подписания документов руководителем)
con_inn | ИНН
con_kpp | КПП
con_okonh | ОКОНХ
con_okpo | ОКПО
con_licSchet | Лицевой счет
con_fizFamily | Фамилия физического лица
con_fizName | Имя физического лица
con_fizOtch | Отчество физического лица
con_fizPassSeries | Серия паспорта физического лица
con_fizPassNumber | Номер паспорта физического лица
con_fizPassDate | Дата выдачи паспорта физическому лицу
con_fizPassGive | Кем выдан паспорт физическому лицу
con_contacts | Контакты
con_numFolder | Номер дела
con_creator | Создатель контрагента (сетевое имя пользователя)
con_dateCreate | Дата создания записи


Таблица «object»

Таблица «object» включает в себя содержимое справочников Объектов. В текст документа будут подставляться сведения о тех объектах, которые относятся к данному документу на момент начала его действия.

Пример тега (подробнее см. раздел «Работа с тегами»): \object:obj_name\

Название поля | Описание
obj_id | Уникальный код объекта
tObj_name | Тип объекта
obj_name | Наименование объекта
con_name | Название владельца
con_fullName | Полное наименование владельца
obj_streetId | Улица
obj_house | Дом
obj_korp | Корпус
obj_kvar | Квартира
obj_office | Офис
obj_addAddr | Дополнительная информация в адресе
obj_addressShort | Адрес в коротком формате (без области)
obj_mapId | Код объекта на карте
ownerObj_obj_name | Запитан от (наименование объекта)
ownerObj_obj_addressShort | Запитан от (адрес объекта)
obj_remark | Примечание
eObj_vedESId | Наименование участка
eObj_P | Установленная мощность
eObj_hourInDayWork | Число часов работы в день
eObj_checkDay | День снятия показаний
eObj_tpName | Наименование точки питания
eObj_PPermit | Разрешенная мощность
eObj_exploitProvider | В эксплуатации поставщика
eObj_exploit | В эксплуатации потребителя
eObj_border | Граница раздела балансовой принадлежности
eObj_elCategorId | Категория электроснабжения
eObj_lic | Лицевой счет
obj_creator | Создатель записи об объекте (сетевое имя пользователя)
obj_dateCreate | Дата создания записи


Таблицы расчетных счетов

Таблицы «providerRasSchet» и «buyerRasSchet»

Таблицы «providerRasSchet» и «buyerRasSchet» имеют одинаковую структуру и включают в себя только содержимое вспомогательного справочника Расчетных счетов. В текст документа будут подставляться данные из справочника расчетных счетов по тем контрагентам, которые являются либо поставщиком, либо потребителем по условиям данного документа.

Примеры тега (подробнее см. раздел «Работа с тегами»):
\providerRasSchet:bank_fullName\
\buyerRasSchet:bank_addr\

Название поля | Описание
rs_name | Наименование расчетного счета
rs_number | Номер расчетного счета
bank_id | Уникальный код банка
bank_name | Краткое наименование банка
bank_fullName | Полное наименование банка
bank_city | Город местонахождения банка (его отделения)
bank_addr | Адрес нахождения банка
bank_korSchet | Корреспондентский счет
bank_bik | БИК
bank_creator | Создатель записи о банке (сетевое имя пользователя)
bank_dateCreate | Дата создания записи


Таблица «num»

Таблица «num» в отличие от таблицы «object» включает в себя содержимое не только справочника Объектов, но и справочника Приборов учета, установленных на этих объектах по состоянию на дату начала действия документа.

Примеры тега (подробнее см. раздел «Работа с тегами»):
\num:num_name\
\num:obj_name\

Для таблицы «num» могут быть заданы те же поля (сведения об объектах), что и для таблицы «object» (смотрите второй пример тега), а также собственные поля (сведения о приборах учета):

Название поля | Описание
num_id | Уникальный код прибора учета
num_name | Марка и номер счетчика
num_number | Номер счетчика
eNum_stNumId | Марка счетчика
eNum_kToch | Класс точности счетчика
eNum_digit | Разрядность счетчика (кол-во знаков до 9)
eNum_dateCheck | Дата текущей госповерки счетчика
eNum_dateCheckNext | Дата очередной поверки счетчика
eNumSetPar_ktt | Коэффициент трансформаторов тока, с которыми счетчик установлен на объекте
eNum_ttKToch | Класс точности трансформатора тока
eNum_ttDateCheck | Дата текущей госповерки трансформатора тока
eNum_ttDateCheckNext | Дата очередной поверки трансформатора тока
eNumSetPar_ktn Ктн | Коэффициент трансформатора напряжения, с которыми счетчик установлен на объекте
eNum_tnKToch | Класс точности трансформатора напряжения
eNum_tnDateCheck | Дата текущей госповерки трансформатора напряжения
eNum_tnDateCheckNext | Дата очередной поверки трансформатора напряжения
eNachSet_lossPersKZ_view | Размер потерь короткого замыкания
eNachSet_lossHH_view | Размер потерь холостого хода
num_dateAktPriem | Дата акта приемки
num_location | Расположение приборов учета
num_creator | Создатель записи о приборе учета (сетевое имя пользователя)
num_dateCreate | Дата создания записи


Таблица «numMeter»

Таблица «numMeter» содержит те же поля, что и таблица «num», а также дополнительные поля с показаниями приборов учета на дату начала действия документа.

Примеры тега (подробнее см. раздел «Работа с тегами»): \numMeter:eMetZone_value\

Название поля | Описание
eMet_date | Дата показания
eMet_digit | Разрядность показания
eMetZone_value | Значение
eMetZone_circle | Количество переходов через ноль с момента предыдущего показания
numZone_name | Название зоны прибора учета


Таблица «WMonth»

Таблица «WMonth» содержит помесячную разбивку годового объема потребления, заданную для документа, по которому осуществляется автоматическое формирование текста. В таблице имеются 12 строк для всех месяцев года.

Примеры тега (подробнее см. раздел «Работа с тегами»): \WMonth:edMonV_value\

Название поля | Описание
edMonV_monId | Номер месяца
edMonV_value | Объем