18.3.4. Параметр типа "Адрес"

Для редактирования параметра типа Адрес вызывается редактор двойным кликом мыши по строке.

При выборе дома система автоматически высвечивает индекс, район и квартал. Для выбора дома нужно нажать на кнопку с адресом. При этом редактор перейдет в режим поиска дома.

Для осуществления поиска необходимо начать вводить название улицы в соответствующем элементе управления. При этом, по мере набора, покажется выпадающий список названий улиц (с указанием городов), которые содержат в виде подстроки введенную в поле строку. В этом списке выводится только 25 первых записей. Выделение нужной улицы осуществляется с помощью клавиш "вверх" и "вниз" на клавиатуре. Для выбора выделенной улицы нужно нажать клавишу Enter. При этом автоматически начнется поиск всех домов, находящихся на выбранной улице, с последующим выводом найденного списка в таблице.

Кроме выбора улицы из выпадающего списка предусмотрен второй вариант. Можно набрать в поле "Улица" название улицы или ее часть и нажать Enter (не выбирая при этом из выпадающего списка). При этом в таблицу будут выведены все найденные улицы, содержащие введенную строку в качестве подстроки. Далее, двойным щелчком по строке таблицы выбирается нужная улица, после чего в таблицу загружаются дома, расположенные на этой улице. Описанный режим поиска улиц полезен, если требуемая улица отсутствует в выпадающем списке (ввиду ограничения в 25 записей).

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

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

Установкой опции конфигурации сервера address.create=yes можно разрешить добавление недостающего дома непосредственно при редактировании параметра. При этом пользователю будет доступна кнопка "Добавить новый дом..." в режиме поиска дома. При нажатии на нее редактор перейдет в режим создания нового дома.

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

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

В некоторых случаях удобнее и правильнее использовать один формат, тогда как для другого случая данный вариант не подходит. Форматы отображения адреса настраиваются в конфигурации через меню Сервис->Настройка->Кофигурация.

Формат адреса настраивается с помощью параметра addrs.format.pattern.<ID>, где в качестве <ID> может выступать любой уникальный идентификатор: будь то строка или число. Есть также некоторые особенности: если в начале идентификатора указывается cp (ContractParameter - параметр договора типа Адрес) или ор (ObjectParameter - параметр объекта типа Адрес), то после такого идентификатора необходимо указывать pid (из меню Справочники->Другие->Договоры-параметры) того адресного параметра, которому необходимо задать формат.

Примеры:

addrs.format.pattern.1=(${index})(, ${city})(, ${area})(, ${quarter})(, ${street})(, д. ${house})(${frac})(, ${flat})( комната ${room})(, ${pod} подъезд)(, ${floor} этаж)(, [${comment}])
addrs.format.pattern.2=(${index})(, ${city})(, ${street})(, д. ${house})(${frac})(, ${flat})(, [${comment}])
addrs.format.pattern.3=(, ${city})(, ${street})(, д. ${house})(${frac})(, ${flat})(, [${comment}])
addrs.format.pattern.cp19=(, ${city})(${index})(, ${street})(, д. ${house})(${frac})(, ${flat})
addrs.format.pattern.op6=(улица ${street})(, дом ${house})(${frac})(, кв. ${flat})(, комн. ${room})
addrs.format.pattern.cp58=(улица ${street})(, дом ${house})(${frac})(, квартира ${flat})

Формат адреса - это REGEXP, в котором прописаны определенные переменные. В качестве переменных можно использовать: ${index} - индекс; ${city} - город; ${area} - район; ${quarter} - квартал; ${street} - улица; ${house} - дом; ${frac} - дробь; ${flat} - квартира; ${room} - комната; ${pod} - подъезд; ${floor} - этаж; ${comment} - комментарий параметра.

Для корректной работы форматов адресов необходимо указывать в конфигурации параметр addrs.format.list, в котором прописать порядок следования форматов друг за другом. В соответствии с этим списком будет заполнена таблица Формат адреса. Соответственно, некоторые форматы можно и не включать в список - тогда они не будут отображаться в таблице. Пример:

addrs.format.list=1;cp19;3;cp58;op6

Как видно из примера, формат с идентификатором 2 не включен в список. Помимо настраиваемых форматов в таблице Формат адреса на первой строке всегда будет формат по умолчанию:

Если параметр addrs.format.list не указывается в конфигурации, то в конфигурации ищется параметр addrs.format, если и он не будет найден, то в таблице будет только 1 формат по умолчанию. Примеры с использованием параметра addrs.format:

addrs.format=(${city})(, ${street})(, д. ${house})( , дробь ${frac})(, квартира ${flat})
addrs.format.cp58=( ${city})(, ${street})(, д. ${house})(${frac})(, ${flat})(, [${comment}])

При редактировании справочников Города, Улицы, Дома, Районы, Кварталы все адресные строки, ссылающиеся на изменённые значения переформатируются.

Это свойство можно использовать при изменении формата адреса в конфигурации. Простое пересохранение названия города в справочнике городов переформатирует все адреса, относящиеся к этому городу.

При установке параметра конфигурации сервера address.unique.check=1 система будет выводить предупреждения если в других договорах есть аналогичный адрес.