Вт, 23.12.2025, 00:40:22
Главная Регистрация RSS
Приветствую Вас, Гость
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
ПолноеИмяФайлаПортативногоОбъектаМетаданныхЛкс линукс
nickstonaliДата: Чт, 23.11.2023, 12:06:56 | Сообщение # 1
Сержант
Группа: Пользователи
Сообщений: 34
Репутация: 24
Статус: Оффлайн

Код
Функция ПолноеИмяФайлаПортативногоОбъектаМетаданныхЛкс(ИмяОбъекта, ТипМетаданных = "Обработка") Экспорт

   Если Ложь
      Или СтрокиРавныЛкс(ТипМетаданных, "Обработка")
      Или СтрокиРавныЛкс(ТипМетаданных, "ВнешняяОбработка")
      Или СтрокиРавныЛкс(ТипМетаданных, "DataProcessor")
      Или СтрокиРавныЛкс(ТипМетаданных, "ExternalDataProcessor")
   Тогда
      Расширение = "epf";
   ИначеЕсли Ложь
      Или СтрокиРавныЛкс(ТипМетаданных, "Отчет")
      Или СтрокиРавныЛкс(ТипМетаданных, "ВнешнийОтчет")
      Или СтрокиРавныЛкс(ТипМетаданных, "Report")
      Или СтрокиРавныЛкс(ТипМетаданных, "ExternalReport")
   Тогда
      Расширение = "erf";
   Иначе
      ВызватьИсключение "Тип метаданных """ + ТипМетаданных + """ не поддерживается";
   КонецЕсли;
   Если ИмяОбъекта = Метаданные().Имя Тогда
      Результат = мКаталогОбработки + "" + ИмяОбъекта + "." + Расширение;
   Иначе
      //начало
      //Результат = мКаталогОбработки + "Модули\" + ИмяОбъекта + "." + Расширение;   
       Результат = мКаталогОбработки + "Модули" + ПолучитьРазделительПути() +  ИмяОбъекта + "." + Расширение;
       //конец
   КонецЕсли;
   Возврат Результат;

КонецФункции
изменен получитьразделительпути
 
tormozitДата: Пт, 24.11.2023, 07:50:45 | Сообщение # 2
Генералиссимус
Группа: Администраторы
Сообщений: 7259
Репутация: 193
Статус: Оффлайн
Не указан модуль. Функция ПолучитьРазделительПути не определена в этом модуле.
 
nickstonaliДата: Пт, 24.11.2023, 09:18:45 | Сообщение # 3
Сержант
Группа: Пользователи
Сообщений: 34
Репутация: 24
Статус: Оффлайн
ПолучитьРазделительПути - функция платформы доступна с 8.3.3
модуль ирПортативный


Сообщение отредактировал nickstonali - Пт, 24.11.2023, 09:20:35
 
tormozitДата: Пт, 24.11.2023, 09:27:00 | Сообщение # 4
Генералиссимус
Группа: Администраторы
Сообщений: 7259
Репутация: 193
Статус: Оффлайн
Нужна доступность в 8.2.16
 
nickstonaliДата: Пт, 24.11.2023, 09:46:56 | Сообщение # 5
Сержант
Группа: Пользователи
Сообщений: 34
Репутация: 24
Статус: Оффлайн
Тогда нужно принять решение, ситуация такая:

1) открываем ИрПортативный
2) в нем строка ирКэш = ОбщийМодульЛкс("ирКэш", Ложь); 
3) в ОбщийМодульЛкс => ПолноеИмяФайла = ПолноеИмяФайлаПортативногоОбъектаМетаданныхЛкс(Имя);
4) и ПолноеИмяФайлаПортативногоОбъектаМетаданныхЛкс => Результат = мКаталогОбработки + "Модули\" + ИмяОбъекта + "." + Расширение;   

вот тут слеш по идее надо заменить на ирОбщий.РазделительПутиКФайлуЛкс()
но ИрОбщий находиться после ирКэш:
ирКэш = ОбщийМодульЛкс("ирКэш", Ложь);
ирОбщий = ОбщийМодульЛкс("ирОбщий", Ложь);

Те получается, что ирОбщий нельзя использовать.
Если платформенную функцию нельзя использовать, то возможно стоит продублировать функцию из ИрОбщий
каково ваше предложение, по данной ситуации?
 
tormozitДата: Пт, 24.11.2023, 23:54:51 | Сообщение # 6
Генералиссимус
Группа: Администраторы
Сообщений: 7259
Репутация: 193
Статус: Оффлайн
Я не против продублировать функцию, но в ней используется ирКэш. Ты проверил свое предложение?
Может легче не мучаться и использовать вариант "Расширение"?
 
nickstonaliДата: Пн, 27.11.2023, 09:27:37 | Сообщение # 7
Сержант
Группа: Пользователи
Сообщений: 34
Репутация: 24
Статус: Оффлайн
Цитата tormozit ()
Может легче не мучаться и использовать вариант "Расширение"?
не наш метод.

Код
Функция РазделительПутиКФайлуЛкс() Экспорт 
   
   СисИнфо = Новый СистемнаяИнформация;

   Если Ложь
      Или СисИнфо.ТипПлатформы = ТипПлатформы.Windows_x86
      Или СисИнфо.ТипПлатформы = ТипПлатформы.Windows_x86_64 Тогда 
      Разделитель = "\";
   Иначе
      Разделитель = "/";
   КонецЕсли;
   Возврат Разделитель;
КонецФункции



Код
Функция ПолноеИмяФайлаПортативногоОбъектаМетаданныхЛкс(ИмяОбъекта, ТипМетаданных = "Обработка") Экспорт

   Если Ложь
      Или СтрокиРавныЛкс(ТипМетаданных, "Обработка") 
      Или СтрокиРавныЛкс(ТипМетаданных, "ВнешняяОбработка")
      Или СтрокиРавныЛкс(ТипМетаданных, "DataProcessor")
      Или СтрокиРавныЛкс(ТипМетаданных, "ExternalDataProcessor")
   Тогда
      Расширение = "epf";
   ИначеЕсли Ложь
      Или СтрокиРавныЛкс(ТипМетаданных, "Отчет") 
      Или СтрокиРавныЛкс(ТипМетаданных, "ВнешнийОтчет")
      Или СтрокиРавныЛкс(ТипМетаданных, "Report") 
      Или СтрокиРавныЛкс(ТипМетаданных, "ExternalReport")
   Тогда
      Расширение = "erf";
   Иначе
      ВызватьИсключение "Тип метаданных """ + ТипМетаданных + """ не поддерживается";
   КонецЕсли;
   Если ИмяОбъекта = Метаданные().Имя Тогда
      Результат = мКаталогОбработки + "" + ИмяОбъекта + "." + Расширение;
   Иначе 
      //начало
      //Результат = мКаталогОбработки + "Модули\" + ИмяОбъекта + "." + Расширение;   
       Результат = мКаталогОбработки + "Модули" + РазделительПутиКФайлуЛкс() +  ИмяОбъекта + "." + Расширение;
       //конец
   КонецЕсли; 
   Возврат Результат;

КонецФункции


вот так вот работает

Добавлено (28.11.2023, 17:19)
---------------------------------------------
Надо бы добавить. а то смысла нет в предыдущих правках для линукса

 
tormozitДата: Пт, 01.12.2023, 22:37:58 | Сообщение # 8
Генералиссимус
Группа: Администраторы
Сообщений: 7259
Репутация: 193
Статус: Оффлайн
Принято
 
tormozitДата: Вс, 03.12.2023, 20:10:29 | Сообщение # 9
Генералиссимус
Группа: Администраторы
Сообщений: 7259
Репутация: 193
Статус: Оффлайн
Исправлено в 7.03
 
  • Страница 1 из 1
  • 1
Поиск: