Есть директория /var/1C , которая видна под пользователем с ограниченными правами. По сути директория /var предназначения для записи в неё произвольных файлов во время работы приложения (логи, кэши). Поэтому несколько странно, что она не находится в /var/opt/1C .
Есть директория /usr/share, для хранения ресурсов приложения (иконки, шрифты, ресурсы игр). Но 1С её не использует, владелец у неё root, обычные пользователи могут только читать, создавать в ней ничего нельзя обычному пользователю. Т.е. под root-ом поставил приложение 1 раз, выполнил скрипты по копированию ресурсов и забыл.
Сама 1С устанавливается в директорию /opt/1cv8 , где у пользователя-владельца user1cv8 полные права, у остальных только чтение и выполнение. Про назначение директорий можно тут почитать: FHS - https://refspecs.linuxfoundation.org/FHS_3.0/fhs/index.html
Если бы 1С понадобилось хранить общие для системы конфигурационные файлы, она бы могла использовать /etc/opt , но она этого не делает.
Для хранения настроек каждого пользователя используется $HOME директория.
Большое спасибо. Теперь инструменты частично работают в ОС LINUX. надеюсь в текущем году вы сможете адаптировать данный инструментарий для LINUX. И еще хотелка из разряда фантастики. Сделайте пожалуйста вариант Основной панели под тонкий клиент, в котором будут следующие инструменты: консоль кода, консоль запросов. Может быть еще консоль компоновки данных. Просто есть ощущение, что в будущем 1с может полностью вырезать обычные формы и оставить только управляемые.
{ВнешняяОбработка.ирПоискДублейИЗаменаСсылок.МодульОбъекта(302)}: Поле объекта не обнаружено (ЭлементыФинальныхГрупп) мРезультатыПоиска = РезультатПакета[ИндексыИменРезультатов.ЭлементыФинальныхГрупп].Выгрузить();
ИндексыИменРезультатов - пустая структура, т.к. ПолучитьСтруктуруРезультатаПакетногоЗапроса():
Код
Функция ПолучитьСтруктуруРезультатаПакетногоЗапроса(ТекстПакета, ПрефиксКомментария = "//") Экспорт
Результат = Новый Структура; Если Не ирКэш.ЛиПлатформаWindowsЛкс() Тогда Возврат Результат; КонецЕсли; МассивТекстовЗапросов = РазбитьГрубоТекстПакетногоЗапросаНаТекстыЗапросов(ТекстПакета); RegExp.Global = Ложь; RegExp.Multiline = Истина; RegExp.Pattern = ПрефиксКомментария + мМаркерИмениЗапросаПакета + "(" + шИмя + ")(?: |\n|\r)"; Индекс = -1; Для Каждого ТекстЗапроса Из МассивТекстовЗапросов Цикл Индекс = Индекс + 1; Вхождения = RegExp.Execute(ТекстЗапроса); Если Вхождения.Count = 0 Тогда Продолжить; КонецЕсли; ИмяЗапроса = Вхождения.Item(0).SubMatches(0); Если ирОбщий.ЛиИмяПеременнойЛкс(ИмяЗапроса) Тогда Результат.Вставить(ИмяЗапроса, Индекс); КонецЕсли; КонецЦикла; Возврат Результат;
КонецФункции
Опять всё упирается в RegExp =(
Не знаю, возможно я скажу банальность, но разбор по регулярному выражению реализован на языке 1С в конфигурации 1С:Переводчик.
Сообщение отредактировал redkayaexotika - Суббота, 08.05.2021, 15:28
Платформа: 8.3.19.1079 Режим БД: клиент-серверный Конфигурация. Название: Демонстрационное приложение (1.0.32.2) Конфигурация. Основной режим запуска: Управляемое приложение Конфигурация. Вариант встроенного языка: Русский Конфигурация. Режим управления блокировкой данных: Управляемый Конфигурация. Режим совместимости: Версия8_3_18 Инструменты разработчика. Версия: Расширение 5.91.0e Инструменты разработчика. Инструмент: Прочее Инструменты разработчика. Объекты на сервере: Да Инструменты разработчика. Разрешены имитаторы: Да Расширения. ВесТоваров () Расширения. Колонтитулы () Расширения. ИнструментыРазработчикаTormozit (5.91.0e) Клиент. ОС: Linux x86-64 Клиент. Приложение: Управляемое приложение 64б Клиент. Проверка модальных вызовов: Нет Клиент. Язык интерфейса конфигурации: ru Клиент. Язык интерфейса системы: ru Сервер. ОС: Linux x86-64 Сервер. Процесс: 64-разрядный
"Информация для технической поддержки" -> Вкладка "XML"
Метод объекта не обнаружен (init) {ИнструментыРазработчикаTormozit Обработка.ирПлатформа.Форма.Текст.Форма(358)}: РедакторXML().init(Инфо.ВерсияПриложения);
// Независимое выполнение Многострочный = ЛОЖЬ; ИгнорироватьРегистр = ИСТИНА; RegExp = Новый COMОбъект("VBScript.RegExp"); RegExp.Global = Истина; RegExp.Multiline = Многострочный; RegExp.IgnoreCase = ИгнорироватьРегистр; RegExp.Pattern = Корень; Вхождения = RegExp.Execute(ТекстГдеИскать); Для каждого Вхождение Из Вхождения Цикл Начало = Вхождение.FirstIndex; Длина = Вхождение.Length; Значение = Вхождение.Value; КореньЗначение = Вхождение.SubMatches(0); КонецЦикла;
// Выполнение в подсистеме "Инструменты разработчика" Многострочный = ЛОЖЬ; ИгнорироватьРегистр = ИСТИНА; Вхождения = ирОбщий.НайтиРегулярноеВыражениеЛкс(ТекстГдеИскать, Корень, "Корень",, ИгнорироватьРегистр, Многострочный, Ложь); #Если Сервер И Не Сервер Тогда Вхождения = Обработки.ирПлатформа.Создать().ВхожденияРегВыражения; #КонецЕсли Для каждого Вхождение Из Вхождения Цикл Начало = Вхождение.ПозицияВхождения; Длина = Вхождение.ДлинаВхождения; Значение = Вхождение.ТекстВхождения; КореньЗначение = Вхождение.Корень; КонецЦикла;
В консоли запросов что-то непонятное с цветом заголовков полей, он почему-то белый, едва читаем
Так и задумано, чтобы очевидный смысл узкой колонки не дублировался обрезающимся текстом и в то же время у колонки был заголовок для случаев, когда ее надо показывать в каких то списках, доступных полях и т.д. Такой прием применяю во многих местах.
Ошибки все поправил, кроме генерации кода в конструкторе регулярного выражения. Там непонятно как исправлять. Текущее поведение кажется самым полезным. Новая тестовая версия расширения https://www.hostedredmine.com/attachments/407189
Если в консоли запросов, где нет запроса нажимаешь "Открыть подсказку" (Ctrl+Shift+Space) такое выдает
Индекс находится за границами массива {ИнструментыРазработчикаTormozit Обработка.ирКлсПолеТекстаПрограммы.МодульОбъекта(2129)}: мТекстДляПоискаОпределения = ЗапросыПакета[ЗапросыПакета.ВГраница()]; {ИнструментыРазработчикаTormozit Обработка.ирКлсПолеТекстаПрограммы.МодульОбъекта(1653)}: РазобратьТекущийКонтекст(,, Истина); {ИнструментыРазработчикаTormozit Обработка.ирКлсПолеТекстаПрограммы.МодульОбъекта(906)}: ОткрытьСправкуПоПараметру(); {ИнструментыРазработчикаTormozit Обработка.ирКлсПолеТекстаПрограммы.МодульОбъекта(841)}: Результат = ВыполнитьКоманду(Команда); {ИнструментыРазработчикаTormozit Обработка.ирКонсольЗапросов.Форма.Форма.Форма(327)}: Результат = ЭкземплярКомпоненты.Нажатие(Кнопка);
Если текст запроса есть, то выдает "Не удалось подключить внешнюю компоненту Общая"
Та же ошибка на команде "Поиск справки по текущему слову".
Добавлено (09.05.2021, 21:03) --------------------------------------------- Похоже, что некоторые сообщения об ошибках просто затираются в инструментах. Например ввожу заведомо некорректный запрос в консоли запросов и жму Ctrl+F7 (синтаксическая проверка). Вижу, что что-то мелькает и исчезает. И неважно ошибочный запрос или нет, просто ничего не выводится. Как будто команда ничего не делает.
Добавлено (09.05.2021, 21:05) --------------------------------------------- Горячие клавиши Ctr+~ и Alt+Shift+C / Alt+Shift+V не работают.
Добавлено (09.05.2021, 21:07) --------------------------------------------- Конструктор запросов ИР не работает. Не открывается.
Добавлено (09.05.2021, 21:14) --------------------------------------------- "Редактор объекта БД", справочник Валюты, у него нет табличных частей, перехожу на вкладку "Табличные части" и просто жму команду "Колонки", получаю такую ошибку
Значение не является значением объектного типа (Имя) {ИнструментыРазработчикаTormozit Обработка.ирРедакторОбъектаБД.Форма.Форма.Форма(3784)}: ИмяТЧ = ирОбщий.ПоследнийФрагментЛкс(ТабличноеПоле.Имя, фОбъект.мПрефиксИмениТабличногоПоляТЧ, Ложь); {ИнструментыРазработчикаTormozit Обработка.ирРедакторОбъектаБД.Форма.Форма.Форма(5158)}: ПолноеИмяМетаданных = ИмяТаблицыБДТабличногоПоля(ТабличноеПоле);
Та же самая ошибка на команде "Сбросить колонки таблицы". Там же команда "Расширить колонки на 5 символов" и "Сузить колонки в 2 раза"
Значение не является значением объектного типа (ИсточникДействий) {ИнструментыРазработчикаTormozit ОбщийМодуль.ирОбщий.Модуль(35733)}: ИсточникДействий = КоманднаяПанельКнопкиЛкс(ЭтаФорма, Кнопка).ИсточникДействий; {ИнструментыРазработчикаTormozit Обработка.ирРедакторОбъектаБД.Форма.Форма.Форма(3744)}: ирОбщий.УниверсальнаяКомандаФормыЛкс(ЭтаФорма, Кнопка, ТекущееТабличноеПоле(ЭтаФорма));
Там же "Исследовать метаданные табличной части":
Значение не является значением объектного типа (Имя) {ИнструментыРазработчикаTormozit Обработка.ирРедакторОбъектаБД.Форма.Форма.Форма(5224)}: МетаданныеТЧ = МетаданныеОбъекта.ТабличныеЧасти.Найти(ЭлементыФормы.СтраницыПанельТабличныеЧасти.ТекущаяСтрока.Имя);
Добавлено (09.05.2021, 21:25) --------------------------------------------- После получения результата запроса жму команду "Группировка таблицы", а там уже команду "Выделить в источнике", выдается такая ошибка:
Значение не является значением объектного типа (Владелец) {ИнструментыРазработчикаTormozit ОбщийМодуль.ирОбщий.Модуль(13837)}: СтруктураИлиСтрокаТаблицы = СтруктураИлиСтрокаТаблицы.Владелец().Колонки; {ИнструментыРазработчикаTormozit ОбщийМодуль.ирОбщий.Модуль(24753)}: СтрокаКлюча = ИменаСвойствСтруктурыЛкс(СтруктураИлиСтрокаТаблицы); {ИнструментыРазработчикаTormozit Обработка.ирПлатформа.Форма.ГруппировкаТаблицы.Форма(369)}: ирОбщий.ВыделитьСтрокиТабличногоПоляПоКлючуЛкс(ЭтаФорма.ВладелецФормы, ЭлементыФормы.СтрокиТекущегоКлюча.ТекущаяСтрока,, Ложь);
Сообщение отредактировал nclockworker - Воскресенье, 09.05.2021, 21:17