Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
sfaqer opened this issue Jun 21, 2018 · 16 comments
Open

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

sfaqer opened this issue Jun 21, 2018 · 16 comments
Labels
enhancement New feature or request

Comments

@sfaqer
Copy link

sfaqer commented Jun 21, 2018

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

@otymko
Copy link
Owner

otymko commented Jun 21, 2018

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

@otymko otymko added the enhancement New feature or request label Jun 21, 2018
@otymko
Copy link
Owner

otymko commented Jun 21, 2018

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

@otymko
Copy link
Owner

otymko commented Jun 21, 2018

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

@otymko
Copy link
Owner

otymko commented Jun 21, 2018

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

@otymko
Copy link
Owner

otymko commented Jun 22, 2018

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

@sfaqer
Copy link
Author

sfaqer commented Jun 22, 2018

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

В недрах ишуйтрекера уноскрипта есть даваний ишуй:
EvilBeaver/OneScript#67

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

@otymko
Copy link
Owner

otymko commented Jun 22, 2018

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

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

@sfaqer
Copy link
Author

sfaqer commented Jun 22, 2018

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

@otymko
Copy link
Owner

otymko commented Jun 22, 2018

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

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

@bf0rce
Copy link

bf0rce commented Dec 14, 2018

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

@otymko
Copy link
Owner

otymko commented Dec 15, 2018

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

@bf0rce
Copy link

bf0rce commented Dec 17, 2018

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

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

@ViktorErmakov
Copy link

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

@bf0rce
Copy link

bf0rce commented Oct 7, 2020

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

@ViktorErmakov
Copy link

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

@bf0rce
Copy link

bf0rce commented Oct 8, 2020

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

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

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

4 participants