Адреса

Модуль "Адреса"

Функции

    ЗакончитьИзменениеАдресов
    КопироватьАдрес
    НачатьИзменениеАдресов
    ПереименоватьОбъект
    ПроверитьАдресПоКладру
    РедактироватьАдрес
    СинхронизироватьАдресПоКладру
    СоздатьАдрес
    СоздатьОбщийАдресПоКодам
    УдалитьАдрес

Объекты и типы

    Адрес

Функции модуля "Адреса"

ЗакончитьИзменениеАдресов

Формат вызова:
ЗакончитьИзменениеАдресов; /*только чтение*/


КопироватьАдрес

Формат вызова:
КопироватьАдрес(Старый, Новый: Адрес); /*только чтение*/

описание:
Создает новый объект Адрес путем копирования значений свойств из имеющегося (старого) адреса.


НачатьИзменениеАдресов

Формат вызова:
НачатьИзменениеАдресов; /*только чтение*/


ПереименоватьОбъект

Формат вызова:
ПереименоватьОбъект(УровеньОбъекта, Исходный, Конечный: целое); /*только чтение*/


ПроверитьАдресПоКладру

Формат вызова:
ПроверитьАдресПоКладру(Адрес: Адрес): строка; /*только чтение*/


РедактироватьАдрес

Формат вызова:
РедактироватьАдрес(Адрес: Адрес; Дом, Корпус, Квартира, ПочтовыйИндекс: строка; [ПолныйАдрес = нет]: целое): целое; /*только чтение*/

описание:
Для уже имеющегося объекта адрес (возможно пустого) производится интерактивное редактирование параметров адреса.


СинхронизироватьАдресПоКладру

Формат вызова:
СинхронизироватьАдресПоКладру(Адрес: Адрес); /*только чтение*/


СоздатьАдрес

Формат вызова:
СоздатьАдрес: Адрес; /*только чтение*/

описание:
Создает объект Адрес.

пример использования:

включить "Справочники", "Адреса";
переменные
  А: Адрес;
  
  функция Split(Str, Pat, str1, str2: строка): целое;
  переменные
    is     : целое;
  начало
    is    := Позиция(Pat, Str);
    если is = 0 тогда
      результат := Нет
    иначе
    начало
      результат := Да;
      str1 := Подстрока(Str, 1, is - 1);
      str2 := Подстрока(Str, is + Длина(Pat), Длина(Str) - Длина(str1));
    конец;
  конец;  

  функция СтрокаВАдрес(Стр: строка): Адрес;
  переменные
    адр              : Адрес;
    part, rest       : строка;
    type, name       : строка;
    i, j, k          : целое;
    ГорРайон         : строка;
  начало
    адр         := СоздатьАдрес;
    i := Split(Стр, ', ', part, rest);
    если i <> 0 тогда
    начало
      i := Split(part, '. ', type, name);
      если Строчные(type) входит ['г', 'гор', 'город'] тогда
      начало
        адр.Город := КлючПоСправочнику("Города", name);
        адр.Город.Тип := КлючПоСправочнику("Сокращения адреса", type);
      конец
      иначе
      начало
        адр.НаселенныйПункт := КлючПоСправочнику("Населенные пункты", name);
        адр.НаселенныйПункт.Тип := КлючПоСправочнику("Сокращения адреса", type);
      конец;
      i := Split(rest, ', ', part, rest);    // теперь в part либо Городской район, либо Улица
      j := Позиция('р-н', part); k := Позиция('район', part); 
      если (j > 0) или (k > 0) тогда
      начало
        если j > 0 тогда
        начало
          ГорРайон := УбратьПробелы(ЗаменитьТекст(part, 'р-н', ''));
          адр.ГородскойРайон := КлючПоСправочнику("Городские районы", ГорРайон);
        конец;
        если k > 0 тогда
        начало
          ГорРайон := УбратьПробелы(ЗаменитьТекст(part, 'район', ''));
          адр.ГородскойРайон := КлючПоСправочнику("Городские районы", ГорРайон);
        конец;
        i := Split(rest, ', ', part, rest);    
      конец;  
// улица
      i := Split(part, '. ', type, name);
      адр.Улица := КлючПоСправочнику("Улицы", name);
      адр.Улица.Тип := КлючПоСправочнику("Сокращения адреса", type);
      i := Split(rest, ', ', part, rest);
      если i = 0 тогда // только дом
      начало
        i := Split(rest, '. ', type, name);
        адр.Дом := name;
      конец
      иначе // дом и квартира
      начало
        i := Split(part, '. ', type, name);
        адр.Дом := name;
        i := Split(rest, '. ', type, name);
        адр.Квартира := ЗаменитьТекст(name,' ','');
      конец   
    конец;
    результат   := адр;
  конец;
  
начало
  ОчиститьОкноВывода;
  А := СтрокаВАдрес("г. Рыбинск, ул. Зои Космодемьянской, д. 4, кв. 20");
  ВывестиТекст(А.Текст);
конец

Результат:

г. Рыбинск, ул. Зои Космодемьянской, д.4, кв.20


СоздатьОбщийАдресПоКодам

Формат вызова:
СоздатьОбщийАдресПоКодам(Страна, Регион, Район, Город, НаселенныйПункт, Улица, ГородскойРайон: целое): Адрес; /*только чтение*/

описание:
Создает объект Адрес с общими для нескольких конкретных адресов параметрами: Страна, Регион, Район, Город, НаселенныйПункт, Улица, ГородскойРайон. В дальнейшем, для конкретного адреса может быть проведена корректировка.


УдалитьАдрес

Формат вызова:
УдалитьАдрес(Адрес: Адрес); /*только чтение*/

описание:
Удаляет объект Адрес.

параметры:
Адрес - Параметр указывает адрес.


Типы модуля "Адреса"

Адрес

описание:
Модуль предназначен для вывода адресных данных по сотруднику (так же может быть использован фактический адрес).

функции объекта:

  IsShared
  Город
  ГородскойРайон
  ДатаРегистрации
  Дом
  Индекс
  Квартира
  Классификация
  КодНО
  Корпус
  НаселенныйПункт
  ОКАТО
  Офис
  Район
  Регион
  Страна
  Текст
  Телефон
  Улица
  ЭлАдрес

IsShared

Формат вызова:
Адрес.IsShared: целое;


Город

Формат вызова:
Адрес.Город: Города;

описание:
Возвращает город, в котором прописан текущий сотрудник


ГородскойРайон

Формат вызова:
Адрес.ГородскойРайон: Городские_районы;

описание:
При делении города на районы, возвращает район города.


ДатаРегистрации

Формат вызова:
Адрес.ДатаРегистрации: Дата;


Дом

Формат вызова:
Адрес.Дом: строка;

описание:
Возвращает номер дома, где прописан текущий сотрудник


Индекс

Формат вызова:
Адрес.Индекс: строка;

описание:
Возвращает почтовый индекс текущего сотрудника


Квартира

Формат вызова:
Адрес.Квартира: строка;

описание:
Возвращает номер квартиры, где прописан текущий сотрудник


Классификация

Формат вызова:
Адрес.Классификация: строка;


КодНО

Формат вызова:
Адрес.КодНО: строка;

описание:
Возвращает код НО текущего сотрудника


Корпус

Формат вызова:
Адрес.Корпус: строка;

описание:
Возвращает номер коруса, где прописан текущий сотрудник


НаселенныйПункт

Формат вызова:
Адрес.НаселенныйПункт: Населенные_пункты;

описание:
Возвращает название населенного пункта, в котором прописан текущий сотрудник


ОКАТО

Формат вызова:
Адрес.ОКАТО: строка;

описание:
Значение по Общероссийскому классификатору объектов административно-территориального деления. Первые два разряда - регион РФ, следующие три разряда - район или округ, следующие 3 - город или п.г.т, следующие три - село, деревня...


Офис

Формат вызова:
Адрес.Офис: строка;

описание:
Номер офиса помещения.


Район

Формат вызова:
Адрес.Район: Районы;

описание:
Возвращает название района, в котором прописан текущий сотрудник


Регион

Формат вызова:
Адрес.Регион: Регионы;

описание:
Возвращает название региона, где прописан текущий сотрудник


Страна

Формат вызова:
Адрес.Страна: Страны;

описание:
Возвращает название страны, в которой прописан текущий сотрудник


Текст

Формат вызова:
Адрес.Текст: строка; /*только чтение*/

описание:
Возвращает полный адрес по прописке текущего сотрудника


Телефон

Формат вызова:
Адрес.Телефон: строка;

описание:
Возвращает номер домашнего телефона текущего сотрудника


Улица

Формат вызова:
Адрес.Улица: Улицы;

описание:
Возвращает название улицы, где прописан текущий сорудник


ЭлАдрес

Формат вызова:
Адрес.ЭлАдрес: строка;

описание:
Возвращает электронный адрес текущего сотрудника