Как из одной XML-строки переместить информацию в другую XMLc

Необходимо решить следующую задачу

В Слое XML: Суміжник
есть
id7001003 Власник або розпорядник
id7001004 Додаткова інформация

id7001003 Власник або розпорядник (содержит ФИО (Брусенко Лідія Семенівна)
необходимо эту информацию переместить в
id7001004 Додаткова інформация (в виде "земельна ділянка гр. Брусенко Л.С.)
естественно автоматом

каковы могут быть пути решения этой задачи?

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

Я правильно понял, это в случае когда у смежного участка несколько собственников (пользователей)?

id7001003 Власник або розпорядник (содержит ФИО (Брусенко Лідія Семенівна|Брусенко Петро Іванович)
необходимо эту информацию переместить в
id7001004 Додаткова інформация (в виде “земельна ділянка гр. Брусенко Л.С.|Брусенко П.І.”)

Вертикальной черты не должно быть в исходном параметре.
Вероятно что-то такое должно получиться:
земельна ділянка гр. Брусенко Л.С.
земельна ділянка ТОВ “АгролизДинг”
земельна ділянка гр. Брусенко Л.С., гр.Брусенко П.І.
земельна ділянка гр. Брусенко Л.С., ТОВ “АгролизДинг”
земельна ділянка гр. Брусенко Л.С., гр.Брусенко П.І., ТОВ “АгролизДинг”
земельна ділянка ТОВ “АгролизДинг”
:question:

Вариант предложеный вами считаю логичным
Насчет вертикальной черты - это требование ДЗК
Хотя в другой области и без черты подходит
“У каждого ДЗК свои тараканы :slight_smile:

Наличие сособственников - это “экзотика” которая встречается достаточно редко
думаю что форма разделительного знака не принципиальна

Принципиальна. Это пережиток ИН4, где не было другого способа задать значение атрибута спискового типа. В XML такого не должно быть даже близко. Для списковых атрибутов используется перечисление тегов:

SomeValue1
SomeValue2

Содержимое архива распакуйте в папку Digitals. Затем создайте кнопку на какой-либо панели и добавьте ей команду %Library.XMLAdjacent\GenerateAddInfo. Пометьте один или несколько смежников и нажмите на созданную кнопку. В результате работы скрипта у всех помеченных объектов слоя “XML:Суміжник” будет заполнен параметр ID7001004 “Додадткова інформація”, если он был пуст.

P.S. Скрипт использует новые функции, не забудьте обновить ged.exe

Большое спасибо за скрипт
в процессе тестирования выявился один ньюанс
земли местных органов обозначаются

а) землі Xxxxxxxxxx районної державної адміністрації
б) землі загального користування Хххххххх районної державної адміністрації (для проездов проходо и тд)

В обеих случаях выводится “двойные” земли

Пример a
параметр ID7001003
землі Богодухівської районної державної адміністрації
параметр ID7001004
земельна ділянка землі Богодухівської районної державної адміністрації

Пример б
параметр ID7001003
землі загального користування Богодухівської районної державної адміністрації
параметр ID7001004
земельна ділянка землі загального користування Богодухівської районної державної адміністрації

Подскажите как прописать скрипт чтобы в случае присутствия в названии слова “землі” “земельна ділянка” не добавлялась к названию

считаю, что корректней все же заполнять …Солодухівська сільська рада… в ID7001003, там ведь требуется название юрлица, а не “землі…”

Скачивайте измененный скрипт.

Тоже считаю что логично писать ФИО и название юр. лиц
Но! “светлые” умы написали приказ N325 22.06.2009г
2.9. У рядку “Опис меж” зазначаються найменування суміжних землевласників і землекористувачів. …
У разі якщо суміжні землі є землями державної або комунальної власності, вказуються відомості, що ідентифікують ці землі (землі запасу, землі загального користування тощо).
И ДЗК уже ничего не докажешь.

За скриптик, большое спасибо!

Это приказ касается заполнении бланков государственных актов, заполнение обменного файла регулируется приказом N 573 от 02.11.2009г. Вот и доказывайте.

Підскажіть будь-ласка як добавити цю кнопку? Буду вдячний

ДУже вдячний буду зараз розбиратись!!

Скажіть будь-ласка чи можна самому змінити скрипт? в даному скрипті пишеться “земельна ділянка” а мені потрібно “землі …”! Буду дуже вдячний за розяснення!

Примітивно й недосконало , та працює принаймні. Не ганьбіть сильно. Буде час, вдосконалю. Я лише вчуся.

@Map.SelectLayer ID70010 (помічаємо суміжники)
$111=@Map.SelCount (рахуємо їх кількість)
$222=1 (для початку циклу)
$11= (відкриваючий тег додаткової інф.)
$22=(закриваючий тег додаткової інф.)
[ Параметры.Первый ] (переходимо на перший з суміжників)
%metka (початок циклу)
@if $222>$111 then @Break ГОТОВО else (умова завершення циклу, порівнює заг. кількість із номером оброблюваного суміжника)
$2=@Map.Selected.GetParameter ID7001003 (беремо дані із назви суміжника)
$5=/Proprietor (шляхи для @XML.XPath)
$1=/Proprietor/LegalEntity/Name (шляхи для @XML.XPath)
$55=@XML.NodeCount $5 LegalEntity $2 (перевіряємо чи суміжник юр. особа)
$L=/Proprietor/NaturalPerson/FullName/LastName (шляхи для @XML.XPath)
$F=/Proprietor/NaturalPerson/FullName/FirstName (шляхи для @XML.XPath)
$M=/Proprietor/NaturalPerson/FullName/MiddleName (шляхи для @XML.XPath)
$LN=@XML.XPath $L $2 (Прізвище)
$FN=@XML.XPath $F $2 (Ім’я)
$MN=@XML.XPath $M $2 (по-батькові)
$FN=@Calc copy(“$FN”,1,1) (відрізаємо від імені першу літеру)
$FN=@DequoteText $FN
$MN=@Calc copy(“$MN”,1,1) (відрізаємо від по-батькові першу літеру)
$MN=@DequoteText $MN
@if $55>0 then $3=@XML.XPath $1 $2 else $3=землі гр. $LN $FN. $MN. (як юр особа, інакше як фіз. особа)
$3=@DequoteText $3
@Map.Selected.SetParameter ID7001004 $11$3$22 (додаткова інформація= Початок+значення+Кінець)
$222=$222+1 (продовження циклу)
[ Параметры.Следующий ] (перехід на наступного суміжника)
@goto metka (перехід на початок циклу)

Якщо суміжник юр. особа то в додатковій інформації повністю дублюється, тобто “землі запасу сільської ради” в назві суміжника продублюється і в додаткові інформації.
Фізична особа в результаті = “землі гр. Іванов І. І.” (не відміняє).
Якщо власників у суміжної ділянки більше одного - скрипт не працює, поки що. Просуваюся в цьому напрямку.

здравствуйте коллега…а подскажите как скопировать текст скрипта в список

текст выделяется красным цветом

Похоже вы не туда вставляете текст, покажите скриншот.