gitrules icon indicating copy to clipboard operation
gitrules copied to clipboard

Разбор значений и свойств

Open sfaqer opened this issue 6 years ago • 16 comments

При разборе правил, каталоги для значений и свойств создаются с именем кода элемента (1, 2, 3... 39 т.д.), хотелось бы видеть в наименовании каталога наименование значения\свойства, на текущий момент визуальный поиск конкретного элемента затруднителен. default

sfaqer avatar Jun 21 '18 06:06 sfaqer

Надо подумать как сделать. Для значений это можно реализовать. Для свойств уже проблема.

otymko avatar Jun 21 '18 07:06 otymko

@sfaqer Например это может выглядеть так: image

otymko avatar Jun 21 '18 08:06 otymko

Формат имени: "[ПорядковыйНомер] " + НаименованиеЭлемента

otymko avatar Jun 21 '18 08:06 otymko

@sfaqer Можно попробовать: https://github.com/otymko/gitrules/releases/tag/0.2.2 P.S. для установки: opm install -f path/to/file

otymko avatar Jun 21 '18 08:06 otymko

Вытекающая проблема -> длина путей увеличена и теперь: image

otymko avatar Jun 22 '18 02:06 otymko

@otymko Столкнулся с проблемой аналигочной

В недрах ишуйтрекера уноскрипта есть даваний ишуй: https://github.com/EvilBeaver/OneScript/issues/67

Я так понимаю каких то путей обхода нет. Можно сократить некоторые очевидные наименования (ПравилаКонвертацииОбъектов -> ПКО, ПравилаВыгрузкиДанных->ПВД), так же можно перед сохранением проверять длину пути итоговую, и обрезать в наименовании например приёмник свойства.

sfaqer avatar Jun 22 '18 06:06 sfaqer

@sfaqer проблема в том что у меня какой-то ПКО может лежать по следующему путь в конвертации: Документы -> ЕГАИС -> Версия 1 -> Остатки ЕГАИС и т.п.

Большую часть пусти будут все равно занимать наименования свойств как в моем примере. Поэтому из-за ограничения windows мало что можно сделать -> Наименование группа + Наименования свойств очень длинными получаются.

otymko avatar Jun 22 '18 06:06 otymko

@otymko я так понял это не ограничение windows, а ограничения дотнета который внутри уноскрипта, но в нашем случае это ничего не меняет. В любом случае добавить какую либо проверку на длину пути стоит, и как либо его сократить. Насколько я понимаю мастер сейчас тоже будет падать, если будет достаточно большая иерархия каталогов в ПКО, даже если свойства\значения будут идентификатором.

sfaqer avatar Jun 22 '18 07:06 sfaqer

@sfaqer Да, если иерархия будет больше чем 260 символов то и мастер упадет. Я проекты делаю обычно в 1-2 папках от корня диска.

Надо ждать решения от oscript.

otymko avatar Jun 22 '18 07:06 otymko

Проблема длинных путей решается установкой ключа реестра (Только для Windows 10, 1607) и перезагрузкой: HKLM\SYSTEM\CurrentControlSet\Control\FileSystem\LongPathsEnabled = 1 (Тип: REG_DWORD) https://habr.com/post/307186/

bf0rce avatar Dec 14 '18 10:12 bf0rce

@bf0rce обязательно на днях попробую!

otymko avatar Dec 15 '18 15:12 otymko

@otymko, из подробностей могу указать следующее.

  1. При обращении к файлам и каталогам из под OneScript будет ошибка.
  2. Ошибку можно обойти, если создавать каталоги из записывать файлы, например, через comОбъект FileSystemObject. Видимо, там напрямую идет Windows API (или как там это называется).
  3. Придется еще сделать настройку git config --system core.longpaths true, иначе сам гит тоже может ругаться.
  4. При запуске кода внутри платформы правила разберутся нормально без ошибок.

bf0rce avatar Dec 17 '18 11:12 bf0rce

Добрый день, коллеги! Скажите, а какие то работы идут по исправлению ситуации с длинной пути 260 символов? Я не могу разложить правила уже месяц))

ViktorErmakov avatar May 18 '20 05:05 ViktorErmakov

На данный момент те способы, о которых я писал выше не работают. Мы свои проблемы пока обходим локальными вызовами команд PowerShell. Он с длинными путями, как оказалось, работает без ошибок.

bf0rce avatar Oct 07 '20 11:10 bf0rce

Можете дать какую то инструкцию, или в статье по разбору правил выложить к примеру? Я лично забросил хранить правила в гите с тех пор, т.к. не знаю как решить данную проблему. Получается что проект этот для меня немного умер.

ViktorErmakov avatar Oct 08 '20 05:10 ViktorErmakov

Собственно, инструкции нет. Нас пока спасают просто топорные вставки кода, наподобие такого.

	ЗапуститьПриложение("PowerShell.exe -WindowStyle Hidden -Command ""New-Item -ItemType Directory -Force -Path '" + ОбъединитьПути(ТекущийКаталог(), КаталогКоллекции) + "'""",, Истина, КодВозврата);
	Если КодВозврата > 0 Тогда
		ВызватьИсключение("");
	КонецЕсли;

Ну а текстовые файлы пишутся через объект ADODB.Stream. Он тоже работает без проблем с длинными путями.

bf0rce avatar Oct 08 '20 17:10 bf0rce