Головна » Файли » Готові скрипти

Автоматичне присвоєння кадастрових номерів обмінникам згідно ПКК
[ Викачати з сервера (12.2 Kb) ] 07.01.2017, 18:58

Коли, при формуванні ділянок, ми створюємо нові файли XML, то в нас вони ще без реальних кадастрових номерів, оскільки кадастрові номери присвоюються вже потім, коли замовник йде в ЦНАП. Це викликає незручність для ведення власної бази файлів XML.

Даний скрипт сканує ваші файли XML та присвоює їм реальні кадастрові номери, читаючи їх прямо з кадастрової карти, коли ділянки вже внесені реєстратором в базу і їм присвоєні кадастрові номери.

При запуску появиться таке вікно для вибору каталогу з файлами:

Після вибору почнеться сканування усіх файлів XML у вказаній папці та у всіх вкладених у неї папках та приведення їх у відповідність з кадастровими номерами на Публічній кадастровій карті

При цьому в налаштуваннях скрипту можна вказати початкове мінімальне значення номера ділянок, які не треба перевіряти. Для цього потрібно натиснути правою клавішею на кнопці - Змінити кнопку. І в правій частині вікна, що появилося перевести смугу прокрутки у самий верх до появи таких рядків:

$Ignor=2 означає, що файли XML, чотири останні цифри назви яких більші за 1 будуть ігноруватися при перевірці. Це значно прискорює роботу скрипту, оскільки ті файли, яким уже присвоєно кадастровий номер не будуть взагалі відкриватися, а ті, в назві яких останні чотири цифри дорівнюють 0000 та 0001 відриватимуться скриптом і перевірятимуться, чи є на ПКК для них реальний номер.

Замість 2 можна вказати інше число. Все залежить від того, як ви називаєте файли при створенні. Наприклад, коли ви робите відразу 7 ділянок на одну людину і зберігаєте всі XML в одній папці, то називатися вони можуть 4621282200010010000, 4621282200010010001,  4621282200010010002 ... 4621282200010010007. Так от, щоб скрипт розумів, що 4621282200010010007 - це не реальний кадастровий номер ділянки, а просто форма збереження, для цього треба поставити $Ignor=8. Тоді всі файли, номер ділянки яких менший за 8 будуть перевірятися на ПКК. При цьому, якщо у них був реальний номер до 8 і на ПКК він також є - то в цьому нічого страшного. Такий файл просто перевіриться і все. Єдине, що це займе більше часу, бо для перевірки даний файл скрипту доведеться відкрити.

Якщо у вас кожна ділянка в окремій папці і останні цифри завжди 0000, то можна поставити замість 2 цифру 1.

Але якщо тут поставити 0 - то тоді відкриватися для перевірки будуть абсолютно всі файли не залежно від того, яка у них назва і перевірятися та перейменовуватися у відповідності з кадастровою картою.

В будь-якому випадку, відкриватися для перевірки будуть також ті файли, в яких довжина назви файлу не дорівнює 19 символам (у файлах, які мають в кінці назви "_extracted" чи "-", спочатку віднімаються від назви дані символи і аж потім здійснюється підрахунок).

Дальше перевіряється ідентичність у файлі та на публічній карті:

-КОАТУУ
-зони
-кварталу
-номера ділянки

В результаті файл XML змінює як назву, так і вміст усіх цих параметрів всередині файлу і зберігається вже під реальним кадастровим номером.

По завершенні перевірки виводиться невеличке вікно з результатами:

та цілий детальний звіт процедури виконання перевірки та перейменування:

В даному звіті можна побачити, в яких файлах що було змінено. Якщо зміни вносилися в КОАТУУ, то першою колонкою буде описано зміни в КОАТУУ. Якщо мінялася зона чи квартал - відповідно зміни по зоні чи кварталу. Якщо тільки номер ділянки - то буде відображатися опис, яким був номер до перейменування і яким став після. Також, тут показано якою була назва файлу до і стала після та шлях до файлу.

Процес інтегрування кадастрових номерів з публічної кадастрової карти можна зупинити в будь-який момент і продовжити пізніше, завтра чи коли треба. Для цього просто потрібно натиснути у вікні прогресу сканування Cansel. І появиться таке вікно:

Тоді наступного разу при запуску скрипту появиться таке вікно:

де буде запропоновано продовжити з того файлу, на якому закінчили минулого разу.

Обробка кожного відкритого файлу триває близько двох секунд.

Для встановлення потрібно скачати та помістити прикріплений файл у папку з програмою Digitals, та перезапустити програму.

Інші налаштування скрипту.

$DeleteFile=так/ні - чи видаляти оригінальний файл, якщо успішно було створено файл із кадастровим номером.

$FilePath0=D:\Файли з кадастровими номерами - шлях до папки в яку зберігати оброблені файли. Якщо нічого не стоїть після знаку "=", то файли зберігатимуться в оригінальну папку.

$TryPapky=так/ні - включає можливість зберігати результат обробки в окремій папці (задається в попередньому пункті налаштувань) одразу в трьох підпапках:
в першій - перейменовані
в другій - не перейменовані
в третій - оригінали перейменованих.

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

$VseCopy=так/ні - копіює повністю всі, перейменовані і не перейменовані, файли у нову папку (працює тільки коли відключена опція $TryPapky).

$KNvUh=так/ні - заповнювати реальний номер ділянки також і в угіддях (параметр id7000900 Кадастровий номер угіддя)

Приклад використання опції $Ignor

Допустим, є файл 4621288800010010007.

В налаштуваннях виставлено $Ignor=8. Опція $TryPapky включена. Відтак скрипт потрапивши на цей файл:

1) отримає останні чотири цифри його назви - 0007. Якщо 0007 (тобто, 7) менше за 8 (а так і є), то скрипт його відкриє.
2) отримає дані про КОАТУУ, квартал і номер ділянки
3) зчитає дані про КОАТУУ, квартал і номер ділянки з ПКК і:
    а) якщо дані ідентичні, то перейде до наступного файлу, нічого більше ніде не міняючи і не зберігаючи.
    б) якщо на ПКК інші дані, наприклад уже реальний кадастровий номер 4621288800010010158, то скрипт:
- збереже оригінал в папку Оригінали перейменованих;
- збереже вже змінений файл у папку Перейменовані;
- збереже результат обробки у текстовий звіт

Таким чином, в опції $Ignor= можна поставити і число 20 і більше, але тоді просто скрипт довше буде обробляти файли. Бо відкриватиме всі файли, останні цифри яких менші за 20.

Якщо ж поставити тут 1, а у вас є файл 4621288800010010002, який ви так просто самі назвали, але це не реальний кадастровий номер, то цей файл знайдено і перейменовано не буде.

Категорія: Готові скрипти | Додав: Микола
Переглядів: 3049 | Завантажень: 426 | Коментарі: 31 | Рейтинг: 5.0/2
Всього коментарів: 31
avatar
30 renkasvm • 21:34, 04.07.2021
Доброго вечора. у мене наразі скрипт не працює (після змін в публічку) чи буде його оновлення, а то втомлююсь шукати ділянки по публічці щоб записати кадастровий у файл ХМЛ
ДЯкую
avatar
0
31 Микола • 22:56, 04.07.2021
Доброго вечора! Даний скрипт працює. Принаймні кадастрові номери шукає і записує в обмінники. Але для цього треба, щоб версія програми Digitals була не старішою за лютий 2021 року. Але при читанні кадастрових номерів є серйозна проблема, яка полягає в тому, що якщо кадастровий номер ділянки відсутній, то скрипт може читати кадастровий номер сусідньої ділянки. Через це велика частина файлів буде перейменована не вірно. Тому в інші скрипти доданий спеціальний алгоритм для ручної корекції читання кадастрових номерів суміжників (можете переглянути відео). А тут додавати таке не доцільно, бо це займе багато часу. Але щось розробники Digitals планують ніби ввести новий алгоритм читання кадастрових номерів, більш швидкий і точний. Тоді можна буде знову користуватися цим скриптом.
avatar
27 ryvol75 • 00:13, 14.02.2019
Вичислив Причину:Якщо або у Ділянки або у Угіддя прописаний правильний кадастровий номер (чотири цифри) то цей файл тільки перевіряється і НЕ ПЕРЕІМЕНОВУЄТЬСЯ.Якщо у Угідді буде правильний кад. номер - у параметр Ділянки цей правильний НЕ буде вписуваться і файл Не буде переіменований.А можна відключити цю перевірку? Нехай скрипт "тупо" (нагло) без перевірки вписує правильний кад.номер в Ділянки і Угіддя і Переіменовує файл, якщо навіть у файлі в ділянки прописаний Правильний Кад.номер.

Поки, Автоматичною заміною, попробував замінить у 55-и файлів Кад.номери і в ділянці і в Угідді на "0", потім запустив скрипт і ВСІ файли ПЕРЕІМЕНУВАЛИСЬ і в Ділянці і в Угідді прописались правильні Ка.номери.
avatar
0
28 Микола • 00:26, 14.02.2019
кадастровий номер в угідді скриптом взагалі не перевіряється, в ділянці - так

справа в тому, що у всіх ваших обмінниках уже є присвоєний реальний кадастровий номер у параметрі Унікальний номер ділянки

Так що скрипт просто бачить, що у обміннику все співпадає - і коатуу, і зона, і квартал, і номер ділянки, тому його і не перейменовує. 

Так у скрипті зроблено для того, щоб він автоматом не перейменовував старі спарені файли, в яких було зразу декілька ділянок в одному файлі і які в назві в кінці мали букву, наприклад, 462128330001001_N.xml
avatar
29 ryvol75 • 00:33, 14.02.2019
Дякую.
Оновлений скрипт Без перевірок робить перейменування і заміну Кад.номерів.
Те що потрібно.
avatar
25 ryvol75 • 19:59, 13.02.2019
Додатково, якщо комусь непотрібно дублювати кад.номер ділянки в кад.номер угіддя, зробити можливість виставляти у налаштуваннях скрипту:  =так/ні.
avatar
24 ryvol75 • 19:41, 13.02.2019
Доброго вечора.
Корисний скрипт.
Нічого у скрипті не змінював, перейменовував у ту ж саму теку.
Файли із одним угіддям (рілля) перейменував.
Незахотів перейменовувати файли із кількістю більше одно угіддя.
Можливо причина і не в кількості угідь.
Помилки немає ніякої, просто оброблено 8 файлів - перейменовано  "0".
Прохання, якщо не складно, добавити у скрипт після його виконання автоматичне копіювання значення параметра "7000513 Унікальний номер ділянки в межах кварталу" шару "70005 XML: Земельна ділянка" до параметру "7000900 Кадастровий номер" шару "70009 XML: Угіддя".
Простими словами: вставити значення Кадастрового номера у ВСІ угіддя у файлі із параметра Кадастрового номера ділянки.
Згоден на "Індивідуальне замовлення".
Дякую.
avatar
0
26 Микола • 23:23, 13.02.2019
додано $KNvUh=так/ні - заповнювати реальний номер ділянки також і в угіддях (параметр id7000900 Кадастровий номер угіддя). Але ця опція не має ніякого відношення до перейменування файлу. Причину неперейменування у вашому випадку слід шукати в чомусь іншому. Може датум карти у файлах XML не вірний? Може папка з результатом не доступна. Пробуйте різні варіанти.
avatar
14 777 • 17:38, 10.05.2018
доброго дня. Підкажіть будьласка чи можна зробити так щоб воно вписувало кадастровий номер в DMF ?
avatar
0
15 Микола • 20:26, 10.05.2018
Все на одну карту? - Ні. Це треба повністю переробляти скрипт.
Якщо ж структура файлів DMF буде ідентична XML. Мається на увазі Id шарів та параметрів. Тобто, це будуть ті ж файли XML, тільки збережені як DMF, то тоді так. Для цього просто замініть в коді скрипту .xml на .dmf.  .xml там згадується багато разів (10-20), міняйте все.
avatar
12 777 • 19:18, 16.09.2017
А якщо ділянка ще не зареєстрована, то скрипт я так розумію не присвоює кадастровий номер?
avatar
0
13 Микола • 09:21, 17.09.2017
ділянці присвоюється кадастровий номер тільки в тому випадку, коли вона є на Публічній кадастровій карті
avatar
10 denysbdv • 11:01, 01.09.2017
Це робиться автоматично чи потрібно вручну вносити зміни на основі "Результату перейменування" в txt?
avatar
0
11 Микола • 21:14, 02.09.2017
автоматично
avatar
9 denysbdv • 10:58, 01.09.2017
Скрипт дозволяє перейменувати XML і внести в нього номер ділянки?
avatar
0
8 Микола • 12:10, 03.02.2017
додав в скрипт нову функцію від розробників @XML.Valid XMLStringOrFileName, яка перевіряє валідність файлу перед відкриттям.
avatar
6 Kernel • 10:19, 23.01.2017
При запуске скрипта вот такая писулька ) выскакивает - Unable to create a directory.
avatar
0
7 Микола • 21:27, 23.01.2017
Вкажіть в налаштуваннях:
$FilePath0=C:\Результат
інший диск. Бо диск С, як системний, часто має обмежений доступ, зокрема на створення папок та файлів скриптом.
avatar
0
5 Микола • 18:05, 20.01.2017
суттєво модернізував скрипт. Добавив можливість включати в налаштуваннях:
1) видалення старих файлів, якщо були створені нові (тобто, заміна старих на нові)
2) можливість збереження перероблених файлів в окремій папці, шлях до якої треба вказати в налаштуваннях
3) можливість зберігати в окремій папці одразу в трьох підпапках:
в першій - перейменовані
в другій - не перейменовані
в третій - оригінали перейменованих.

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

Також добре протестовано на різних варіантах і вдосконалено інші моменти скрипту.
avatar
4 Леший • 20:06, 17.01.2017
Да добру справу ви робите!!!
avatar
3 igorgorvat • 14:35, 17.01.2017
Класний скрипт ДЯКУЮ.... smile
avatar
1 kovboj • 13:40, 16.01.2017
я якщо в мене файли називуются пофамільно то що робити в такому випадку?
avatar
1
2 Микола • 20:15, 16.01.2017
якщо файли називаються пофамільно, то будуть створені копії файлів із назвою у вигляді кадастрового номера. Але бажано в такому випадку поставити в налаштуваннях $Ignor=0, щоб не вийшло так, що довжина файла за збігом буде становити 19 символів і скрипт його ідентифікає як такий, що має вже кадастровий номер.

До речі, скрипт не видаляє старі файли, а тільки створює нові поряд із старими.
avatar
16 riveve60 • 16:13, 26.07.2018
Доброго дня. У мене файли знаходяться в окремих папках, тобто на кожного замовника-інша папка. Як зробити, щоб файли, яким присвоється номер зберігались в папку, де знаходиться оригінал? Дякую
avatar
0
17 Микола • 18:07, 26.07.2018
Доброго дня!
Натисніть на кнопці правою клавішею мишки - Змінити кнопку
В пункті $FilePath0=C:\Робочі папки зітріть C:\Робочі папки, щоб вийшло просто $FilePath0=
Якщо нічого не стоїть після знаку "=", то файли зберігатимуться в оригінальну папку.
avatar
18 riveve60 • 18:22, 26.07.2018
Така помилка вибиває: Unable to create a directory .Всі файли на диску "D"
avatar
0
19 Микола • 19:44, 26.07.2018
трохи нижче в коді є рядок:
$FolderExists=@FolderExists $FilePath0
видаліть його
avatar
20 riveve60 • 20:01, 26.07.2018
На жаль не виходить. Рядок видалив. Таблиця вибиває, що  перейменовано та перевірено файли, але файл взагалі не зберігає.  Тільки текстовий документ, де вказано, номер ділянки до , і після.
avatar
0
21 Микола • 20:29, 26.07.2018
бо при такому варіанті не підтримується опція "Три папки". Відлючіть її і буде зберігати.
avatar
22 riveve60 • 20:43, 26.07.2018
Щиро дякую. Працює. Дуже корисний скрип. Дякую
avatar
0
23 Микола • 20:57, 26.07.2018
Оновив скрипт. Коли включений режим зберігання в тій самій папці, де вихідний обмінник ($FilePath0= (пусто)), то режим "Три папки" автоматично відключається. Видаляти вказаний вище в коментарях рядок також вже не потрібно.
avatar