Скрипт який читає атрибути ділянки з ППК по кадастровому номеру, та записує в параметри поміченого об'єкта отримані дані
Для того щоб цільове ділянки було повним а не скороченим (01.01), потрібно в папку Lists скопіювати файл DovidnykKZ-all.txt
;----------------------------------------------------
;@OpenLog
;----------------------------
;Шлях до папки з програмою
$Papka=@ProgramFolder
;----------------------------
$MS=@Map.SelCount
@if $MS=0 then @Break Виділи об'єкт в який потрібно записати атрибути з ППК!
$SO=@Map.SelectedObject
$LayerID=@Map.Object[$SO].LayerID
$FindByID=@Map.Layers.FindByID $LayerID
@Map.DeselectAll
$KadNomAsk=
$KadNomAsk=@Dialog.Ask Встав кадастровий номер Default=$KadNomAsk Size=200
@if $KadNomAsk= then @Break Введи кадастровий номер!!!
$KadNomAsk=@Calc Trim("$KadNomAsk")
$KadNomAsk=@DequoteText $KadNomAsk
@CreateParcelMarker $KadNomAsk
;------------------------------
;номер параметра в який записані атрибути з ППК!
$IDKDNKS=@Map.Parameters.FindByName Кадастровий номер
$IDVLNKS=@Map.Parameters.FindByName Тип власності
$IDCVNKS=@Map.Parameters.FindByName Цільове призначення
$IDPLNKS=@Map.Parameters.FindByName Площа
;------------------------------
;записуємо отримані дані з ППК в перемінні
@Map.DeselectAll
@Map.SelectByParameters 1|$IDKDNKS=$KadNomAsk
$S=@Map.SelectedObject
$KDNKS=@Map.Object[$S].Parameter[$IDKDNKS]
$VLNKS=@Map.Object[$S].Parameter[$IDVLNKS]
$CVNKS=@Map.Object[$S].Parameter[$IDCVNKS]
$PLNKS=@Map.Object[$S].Parameter[$IDPLNKS]
@Map.DeleteObject $S
$L=@Calc Copy("$CVNKS","1","5")
$L=@DequoteText $L
;шлях до довідника з кодами КВЦПЗ c:\Program Files (x86)\Digitals\Lists
@Text[1].Load $Papka\Lists\DovidnykKZ-all.txt
$TC=@Text[1].Count
$I=0
%Loop
$I=$I+1
$TL=@Text[1].Line[$I]
$L2=@Calc Pos("$L","$TL")
@if $L2>0 then $CVNKS="$TL"
$CVNKS=@DequoteText $CVNKS
@if $L2>0 then @Goto %Yes
@if $I<$TC then @Goto %Loop
%Yes
;@Dialog.Message $KDNKS|$VLNKS|$CVNKS|$PLNKS
;------------------------------
;помічаємо об'єкт в який потрібно записати атрибути
@Map.SelectObject $SO
;------------------------------
;отримуємо список доступних шару параметрів та додаємо нові
;за потреби цей блок можна відключити поставивши
; перед початком кожного рядка
$ParSO=@Map.Layers.GetValidParameters $FindByID
@Map.Layers.SetValidParameters $ParSO $IDKDNKS $IDVLNKS $IDCVNKS $IDPLNKS
@Map.Selected.Refresh
@ExecuteMenu ViewShowAll
@Map.CalculateRange
;------------------------------
;параметри об'єкта в які записуємо отримані значення
;можна замінити на свій, замість [$IDKDNKS] наприклад вписати [85]
;[85] - порядковий номер вашого параметра в який потрібно записати дані
@Map.Object[$SO].Parameter[$IDKDNKS] $KDNKS
@Map.Object[$SO].Parameter[$IDVLNKS] $VLNKS
@Map.Object[$SO].Parameter[$IDCVNKS] $CVNKS
@Map.Object[$SO].Parameter[$IDPLNKS] $PLNKS
@Map.Selected.Refresh
;@CloseLog D:\123.txt
;----------------------------------------
P.S. Доповнення та виправлення скрипта вітаються