Подключение модуля: CModule::IncludeModule("grain.kladr");


SKladr

SKladr::CheckCode( string code, array permittedLengths );

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

Пример:
if (SKladr::CheckCode($code,array(2,5,8,11,15,19))) ...

SKladr::GetZip( string code );

Возвращает индекс и дополнительную информацию по коду КЛАДР. Если индекс не найден на последнем уровне, то он будет искаться на уровнях выше.

Функция возвращает массив со следующими ключами:

  • ZIP - непосредственно индекс
  • NAME - наименование объекта, которому принадлежит индекс
  • SOCR - сокращенное наименование типа объекта, которому принадлежит индекс
  • KORP - корпус дома (возвращается только для уровня 6)
  • LEVEL - уровень объекта (1-6), которому принадлежит индекс
  • SHORT_CODE - короткий код объекта, которому принадлежит индекс
  • CODE - полный код объекта с кодом актуальности (кроме 6 уровня)
  • UPPER - равен false, если индекс соответствует коду code, и true, если он был найден на уровнях выше.

Код code может быть 2,5,8,11,13,15,17,19 символов.

Если код включает код актуальности (т.е. когда code состоит из 13 или 17 символов), и индекс не найден с первой попытки, то при следующих попытках код актуальности в любом случае принимается равным "00".

Если индекс не найден, функция вернет false.

Если параметр full_types равен true, то будут использованы полные наименования типов объектов вместо сокращенных.

SKladr::GetAddr( string code, boolean return_houses = false );

Возвращает массив из пяти элементов [1]-[5] (или шести, если параметр return_houses равен true), каждый из которых соответствует определенному уровню КЛАДР и в свою очередь содержит в себе массив из следующих элементов:

  • NAME - Наименование объекта
  • KORP - Корпус дома (только для уровня 6)
  • SOCR - Сокращенное наименование типа объекта
  • STATUS - Статус объекта (только для уровней 1-4, данный параметр необходим для правильного формирования почтового адреса)

либо false, если код не содержит элементов данного уровня.

В случае ошибки функция вернет пустой массив.

Код code может быть 2,5,8,11,13,15,17,19 символов.

Если код включает код актуальности (т.е. когда code состоит из 13 или 17 символов), то он учитывается только для верхнего элемента данного кода, для остальных элементов код актуальности в любом случае принимается равным "00".

SKladr::GetPostAddr( string code );

Возвращает массив из пяти элементов [1]-[5], каждый из которых соответствует определенному уровню КЛАДР и в свою очередь содержит в себе массив из следующих элементов:

  • NAME - Наименование объекта
  • KORP - Корпус дома (только для уровня 6)
  • SOCR - Сокращенное наименование типа объекта

либо false, если код не содержит элементов данного уровня, либо элемент не должен указываться в почтовом адресе в соответствии со значением поля STATUS КЛАДР.

В случае ошибки функция вернет пустой массив.

Код code может быть 2,5,8,11,13,15,17,19 символов.

Если код включает код актуальности (т.е. когда code состоит из 13 или 17 символов), то он учитывается только для верхнего элемента данного кода, для остальных элементов код актуальности в любом случае принимается равным "00".

SKladr::GetPostAddrString( string code, boolean full_types = false);

Возвращает часть почтового адреса (только уровни 1-5 КЛАДР, за исключением элементов, которые не должны указываться в почтовом адресе в соответствии со значением поля STATUS КЛАДР) одной строкой через запятую.

В случае ошибки функция вернет пустую строку.

Код code может быть 2,5,8,11,13,15,17,19 символов.

Если параметр full_types равен true, то будут использованы полные наименования типов объектов вместо сокращенных.

SKladr::GetLocID( string code );

Возвращает ID стандартного местоположения по коду КЛАДР (если нет привязки, вернет 0).

SKladr::GetLevel( string code );

Возвращает уровень объекта КЛАДР (цифру от 1 до 6) по его коду. Если код неправильный, функция вернет false.

Параметр code может состоять из 2, 5, 8, 11, 13, 15, 17, 19 символов.

SKladr::ShortenCode( string code );

Делает из длинного кода короткий, т.е. убирает незначащие нули и коды актуальности, например, при при значении параметра code 12110000, вернет 12110

Параметр code может состоять из 5, 8, 11, 13, 15, 17, 19 символов.

Результат может состоять из 2, 5, 8, 11, 15, 19 символов.

SKladr::GetFullCode( string code , string act_code = "00" );

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

Параметр code может состоять из 2, 5, 8, 11, 15, 19 символов.

Результат может состоять из 13, 17, 19 символов.

SKladr::GetOneLevelUpCode( string code );

Укорачивает код на 1 уровень. Данная функция работает только с короткими кодами КЛАДР без кода актуальности.

Параметр code может состоять из 2, 5, 8, 11, 15, 19 символов.

Результат может состоять из 2, 5, 8, 11, 15, 19 символов.

SKladr::DecodeBuildingNames( string name, string korp );

Расшифровывает диапазоны номеров домов содержащиеся в поле NAME шестого уровня КЛАДР, например, если в поле name содержится "149А,149Б,149В,149Г,149Д,Н(151-153)", а в поле KORP соответственно "", то функция вернет строку: "Нечетные дома с 151 по 153, дома 149А, 149Б, 149В, 149Г, 149Д"

Параметр name должен содержать значение поля NAME (Номер дома, владения), а параметр korp - значение поля KORP (Корпус дома) 6 уровня КЛАДР.


SKladrEntry

SKladrEntry::SearchZip( [ string code, array arOrder = Array("SORT"=>"ASC","NAME"=>"ASC"),array arFilter=Array(),string levels_sort="ASC", boolean full_types=false, string one_list_levels=true ] );

Функция предназначена для поиска индекса в базе данных КЛАДР среди актуальных записей (у которых код актуальности равен "00").

Функция возврaщает список элементов определенного уровня КЛАДР (плюс список элементов привязанных к нему нулевых уровней вплоть до уровня 5, если параметр one_list_levels равен true), в виде массива для использования в функции SelectBoxFromArray, вида

array(
"REFERENCE" => 
array(
"Заголовок элемента 1", 
"Заголовок элемента 2",
...
),
"REFERENCE_ID" => 
array(
"Значение элемента 1",
"Значение элемента 2",
...
)
)
с дополнительным ключом "FINISHED", равным true, если достигнут последний уровень кладр, и не требуется следующий вызов функции.

Заголовок первого равен "", а его значение - код уровня, кроме случая, когда достигнут последний уровень.

В случае, если параметр one_list_levels равен false и возможен переход как по списку, так и далее, минуя список, то перед списком элементов текущего уровня будет название текущего уровня (либо одного из вышележащих, если предыдущий или предыдущие были пустые) с добавлением " >>".

В значениях элементов будут коды для следующего вызова функции, в случае, если не достигнут последний уровень, и окончательные коды местоположений, если достигнут. Окончательные коды могут быть 19, 15, 11, 8, 5, 2 символов (теоретически).

Функция автоматически пропускает пустые уровни, т.е. после первого уровня может появится 4-й и т.д. Если на последнем уровне не обнаружено элементов, то в массиве REFERENCE будет только один индекс с названием записи, которой он принадлежит, найденной в уровнях выше, вплоть до первого, а в массиве REFERENCE_ID - код окончательного местоположения (менее 19 символов).

Параметр code может состоять из 2, 5, 8, 11, 15, 19 символов. Функция с этим параметром, равным "", либо без параметров, вернет список 1 уровня (регионы).

Параметр levels_sort может иметь значение "ASC" или "DESC" и устанавливает способ сортировки уровней в случаях наличия в списке нескольких уровней (сначала более высокие или наоборот).

Параметр arOrder устанавливает способ сортировки записей уровня.

Параметр arFilter устанавливает фильтрацию записей, может использоваться, например, для отсеивания неактивных записей, при значении array("ACTIVE"="Y").

Если параметр full_types равен true, будут использованы полные наименования типов объектов, иначе - сокращенные.

SKladrEntry::GetZeroList( string code, array arOrder = Array("SORT"=>"ASC","NAME"=>"ASC"), string act_code="00" array arFilter=Array(), array arSelect=Array(), string levels_sort="ASC" );

Выдает все элементы нулевых уровней, вплоть до уровня 5 (улицы) в виде массива, каждый элемент которого содержит в себе массив с ключами, указанными в теге arSelect и двумя дополнительными:

  • SHORT_CODE - Укороченный код КЛАДР
  • LEVEL - Уровень КЛАДР

либо false в случае отсутствия таковых.

Параметр code может состоять из 2, 5, 8 символов.

Параметр levels_sort может иметь значение "ASC" или "DESC" и устанавливает способ сортировки уровней (сначала более высокие или наоборот).

SKladrEntry::IsNotEmptyZeroTree( string code );

Определяет наличие записей более низкого уровня, при углублении мимо списка текущего уровня. Возвращает true в случае наличия записей, и false - в случае их отсутствия.

Параметр code может состоять из 2, 5, 8, 11 символов.

SKladrEntry::GetByCode( string full_code );

Функция возвращает массив со всеми полями записи КЛАДР, по полному коду, включая код актуальности, либо false, если такой записи нет.

Параметр full_code может состоять из 13,17,19 символов.

SKladrEntry::GetList( string code, array arOrder = Array("SORT"=>"ASC","NAME"=>"ASC"), string act_code = "00", array arFilter=Array(), array arSelect=Array());

Функция возвращает объект класса CDBResult со списком элементов определенного уровня КЛАДР.

Параметр code может состоять из 2, 5, 8, 11, 15 символов. Функция с этим параметром, равным "", либо без параметров, вернет список 1 уровня (регионы).

SKladrEntry::GetName( string code , string act_code , boolean full_types = false);

Возвращает название уровня по его короткому коду, либо false, если его не существует.

Параметр code может состоять из 2, 5, 8, 11, 15, 19 символов.

Параметр act_code - 2-символьный код актуальности, для данной функции может принимать только цифровые значения.

Если параметр full_types равен true, то будут использованы полные наименования типов объектов вместо сокращенных, а диапазоны номеров домов (для уровня 6) будут расшифрованы.

SKladrEntry::Update( string full_code , array arFields );

Функция позволяет обновить поля ACTIVE, SORT, STANDARDLOC_ID записи КЛАДР, по полному коду, включая код актуальности.

Параметр full_code может состоять из 13,17,19 символов.


SKladrSocrbase

SKladrSocrbase::GetList( array arOrder = Array("LEVEL"=>"ASC","SOCRNAME"=>"ASC"), array arFilter=Array() );

Функция возвращает объект класса CDBResult со списком сокращенных наименований типов объектов с учетом фильтра и сортировки.

SKladrSocrbase::GetFullArray();

>Функция возвращает полный список сокращенных наименований типов объектов в виде массива:

Array
(
	[LEVEL] => Array
		(
			[SCNAME] => SOCRNAME
			...
		)
	...
)

SKladrSocrbase::GetLevelArray( int level );

>Функция возвращает список сокращенных наименований типов объектов для уровня level в виде массива:

Array
(
	[SCNAME] => SOCRNAME
	...
)

Описание полей класса

  • LEVEL - Уровень объекта данного типа (от 1 до 6)
  • SCNAME - Сокращенное наименование типа объекта
  • SOCRNAME - Полное наименование типа объекта
  • KOD_T_ST - Код типа объекта

SKladrExcludes

SKladrExcludes::GetDeliveriesList( string short_code );

Функция возвращает объект класса CDBResult со списком исключений служб доставки для кода short_code. Исключения вышестоящих кодов не учитываются.

Возвращаемые поля:

  • DELIVERY_ID: ID службы доставки
  • EXC_TYPE: "Y" (включить) или "N" (исключить)

Параметр short_code - короткий код КЛАДР, может состоять из 2, 5, 8, 11, 15, 19 символов.

SKladrExcludes::GetDeliveryHandlersList( string short_code );

Функция возвращает объект класса CDBResult со списком исключений автоматизированных служб доставки для кода short_code. Исключения вышестоящих кодов не учитываются.

Возвращаемые поля:

  • DELIVERY_SID: строка вида SID:PROFILE автоматизированной службы доставки
  • EXC_TYPE: "Y" (включить) или "N" (исключить)

Параметр short_code - короткий код КЛАДР, может состоять из 2, 5, 8, 11, 15, 19 символов.

SKladrExcludes::GetPaymentSystemsList( string short_code );

Функция возвращает объект класса CDBResult со списком исключений платежных систем для кода short_code. Исключения вышестоящих кодов не учитываются.

Возвращаемые поля:

  • PAYMENT_ID: ID платежной системы
  • EXC_TYPE: "Y" (включить) или "N" (исключить)

Параметр short_code - короткий код КЛАДР, может состоять из 2, 5, 8, 11, 15, 19 символов.

SKladrExcludes::GetDisabledDeliveriesArray( string short_code );

Функция возвращает массив ID запрещенных служб доставки для кода short_code с учетом исключений вышестоящих кодов.

Параметр short_code - короткий код КЛАДР, может состоять из 2, 5, 8, 11, 15, 19 символов.

SKladrExcludes::GetDisabledDeliveryHandlersArray( string short_code );

Функция возвращает массив ID запрещенных автоматизированных служб доставки для кода short_code с учетом исключений вышестоящих кодов.

Параметр short_code - короткий код КЛАДР, может состоять из 2, 5, 8, 11, 15, 19 символов.

SKladrExcludes::GetDisabledPaymentSystemsArray( string short_code );

Функция возвращает массив ID запрещенных платежных систем для кода short_code с учетом исключений вышестоящих кодов.

Параметр short_code - короткий код КЛАДР, может состоять из 2, 5, 8, 11, 15, 19 символов.

SKladrExcludes::UpdateDeliveriesList( string short_code, array arFields );

Функция обновляет список исключений служб доставки для кода short_code из массива arFields, значения которого должны иметь вид: "ID службы доставки" => "Y (включить) или N (исключить)".

Параметр short_code - короткий код КЛАДР, может состоять из 2, 5, 8, 11, 15, 19 символов.

SKladrExcludes::UpdateDeliveryHandlersList( string short_code );

Функция обновляет список исключений автоматизированных служб доставки для кода short_code из массива arFields, значения которого должны иметь вид: "строка вида SID:PROFILE автоматизированной службы доставки" => "Y (включить) или N (исключить)".

Параметр short_code - короткий код КЛАДР, может состоять из 2, 5, 8, 11, 15, 19 символов.

SKladrExcludes::UpdatePaymentSystemsList( string short_code );

Функция обновляет список исключений платежных систем для кода short_code из массива arFields, значения которого должны иметь вид: "ID платежной системы" => "Y (включить) или N (исключить)".

Параметр short_code - короткий код КЛАДР, может состоять из 2, 5, 8, 11, 15, 19 символов.

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

Сортировка

Допустима сортировка по следующим полям:

NAME
SOCR
CODE
ZIP
GNINMB
UNO
OCATD
SORT
ACTIVE

Фильтр

Допустима фильтрация по следующим полям:

NAME
SOCR
CODE
ZIP
GNINMB
UNO
OCATD
SORT
ACTIVE
STATUS (Только для 1-4 уровней)
KORP (Только для 6 уровня)

При этом возможны модификаторы:

  • Для всех полей, кроме SORT: "%" - подстрока, "!%" - не подстрока
  • Для поля SORT: "!" - не число

Пример: $arFilter=Array("!%NAME"=>"Петербург");

Коды актуальности

Код актуальности должен состоять из 2 цифр, либо знака (знаков) подчеркивания, который означает любую цифру. Также может быть равным "!0", что означает любой код, кроме "00". Если код актуальности задан неправильно, либо не задан в параметрах функций, ему будет автоматически присвоено значение "00".

Выбор полей

Допустим выбор следующих полей:

NAME
SOCR
CODE
ZIP
GNINMB
UNO
OCATD
SORT
ACTIVE
STATUS (Значения будут возвращены только для 1-4 уровней)
KORP (Значения будут возвращены только для 6 уровня)

Главная   ·   Модули для 1С-Битрикс   ·   Типовые услуги   ·   Форум   ·   Блог   ·   Контакты
Рейтинг@Mail.ru