Вход | Регистрация
 

Как в Linux создать папку файлового кэша для конкретной базы 1С?

Как в Linux создать папку файлового кэша для конкретной базы 1С?
Я
   TormozIT
 
25.04.21 - 11:01
Нашел где в Linux 1С хранит файловый кэш базы (например толстый клиент и конфигуратора хранят там метаданные).
~/.1cv8/1C/1Cv8/436a356c-54bd-4d6c-9198-ea9f92a74fa2

Решил рядом создать свой каталог
СоздатьКаталог("~/.1cv8/1C/1Cv8/Srvr__localhost__Ref__testdb__");

Получил
Ошибка при вызове метода
контекста (СоздатьКаталог): Ошибка создания каталога: Ошибка доступа к
файлу '~'. 13(0x0000000D): Permission denied

Как правильно создать там каталог?
   ДенисЧ
 
1 - 25.04.21 - 11:05
ls -la ~/.1cv8/
ls -la ~/.1cv8/1C/
ls -la ~/.1cv8/1Cv8/

что показывают? Или "линукса нет, но делать надо"?
   TormozIT
 
2 - 25.04.21 - 11:11
(1) У меня линукса нет.
   TormozIT
 
3 - 25.04.21 - 11:12
(1) Проверить смогу через пользователей спустя какое то время.
   ДенисЧ
 
4 - 25.04.21 - 11:14
Мда... Метод дистанционного программирования...

Я так начинал... По знакомству, через отца давал свои первые программки, чтобы "девочки"-перфораторщицы их в свободное время набили и запустили в машзал... Где-то через неделю получал распечатку ответов...

Поставить линух в виртбоксе - вообще никак?
   TormozIT
 
5 - 25.04.21 - 11:16
(4) Думаешь достаточно поставить только линукс в виртуальной машине? А всякие платформы 1С и серверы БД не нужно?
   mistеr
 
6 - 25.04.21 - 11:18
(0) По-моему, "~" только в баше работает. Нужно /home/user.
   ДенисЧ
 
7 - 25.04.21 - 11:18
(5) А в чём проблема-то?
Сервер 1с ставится в виртуалку и, по слухам, ключа до 12 пользователей не просит.
Постгре поставить - тоже минут 10, тебе же тонкий тюнинг не нужен.
Итого хватит обычной виртуалки на ГБ диска.
   mistеr
 
8 - 25.04.21 - 11:18
Или "./", если ты уже дома.
   TormozIT
 
9 - 25.04.21 - 11:22
(6) Полный путь еще узнать надо. Может есть какая то переменная среды с именем пользователя?
   TormozIT
 
10 - 25.04.21 - 11:23
(8) Это что? Можешь полный путь написать для (0)?
   ДенисЧ
 
11 - 25.04.21 - 11:25
(10) Попробуй $USER
   TormozIT
 
12 - 25.04.21 - 11:26
(6) Баш - это оболочка для linux со своими фичами для указания путей к файлам?
   TormozIT
 
13 - 25.04.21 - 11:42
(1)
perl@astra-1:~$ ls -la ~/.1cv8/
итого 12
drwxr-xr-x  3 perl perl 4096 июл 31  2020 .
drwx------ 33 perl perl 4096 апр 25 10:54 ..
drwxr-xr-x  3 perl perl 4096 июл 31  2020 1C
perl@astra-1:~$ ls -la ~/.1cv8/1C/
итого 12
drwxr-xr-x 3 perl perl 4096 июл 31  2020 .
drwxr-xr-x 3 perl perl 4096 июл 31  2020 ..
drwxr-xr-x 9 perl perl 4096 апр 25 10:39 1cv8
perl@astra-1:~$ ls -la ~/.1cv8/1Cv8/
ls: невозможно получить доступ к '/home/perl/.1cv8/1Cv8/': Нет такого файла или каталога

Похоже проблема регистре буквы "C" в последней имени нижней папки "1Cv8"
   GANR
 
14 - 25.04.21 - 11:49
(2) Поставь в VirtualBox - реально это просто
   Djelf
 
15 - 25.04.21 - 11:50
(13) Точно так! В Linux можно создать одновременно и 1Cv8 и 1сV8 и 1сv8, а правильный каталог (тот что создает 1С) ~/.1cv8/1C/1cv8/
   ДенисЧ
 
16 - 25.04.21 - 11:53
"Похоже проблема регистре буквы "

О, сколько нам открытий чудных
готовит просвещения дух...
   TormozIT
 
17 - 25.04.21 - 12:02
(15) Регистр исправил. Но при выполнении моего кода ошибка осталась прежней

Ошибка создания каталога: Ошибка доступа к файлу '~'. 13(0x0000000D): Permission denied

Значит "~" нельзя использовать. Помогите познать нужный _полный_ путь.
Правильно я понял, что теперь надо пробовать
/home/$USER/.1cv8/1Cv8/
?
   TormozIT
 
18 - 25.04.21 - 12:03
(17) точнее /home/$USER/.1cv8/1cv8/
   TormozIT
 
19 - 25.04.21 - 12:04
(18) и еще точнее точнее /home/$USER/.1cv8/1C/1cv8/
   Biker
 
20 - 25.04.21 - 12:12
зачем рядом?
КаталогВременныхФайлов()
Там и создавай .
   mistеr
 
21 - 25.04.21 - 12:12
Полный путь выдаcт команда cd
   ДенисЧ
 
22 - 25.04.21 - 12:16
(19) Нет. $USER - это башевская. Тебе нужно получить значение переменной USER и подставить её в путь.
   TormozIT
 
23 - 25.04.21 - 12:20
(22) Как получить значение этой переменной?
Так echo USER?
Так echo $USER?
Так echo "USER"?
Или как?
   TormozIT
 
24 - 25.04.21 - 12:23
(20) Затем что файловый кэш сохраняется между сеансами работы и при изменении пути к папке временных файлов и при ее очистке.
   ДенисЧ
 
25 - 25.04.21 - 12:24
вариант 2
   TormozIT
 
26 - 25.04.21 - 12:26
(25) Т.е. в коде 1С это будет
КомандаСистемы("echo $USER > result.txt")
?
   Djelf
 
27 - 25.04.21 - 12:29
(17) Проверил, да, увы, 1С не умеет так создавать каталог  ~/.1cv8/1C/1cv8/
Зато это умеет КомандаСистемы("mkdir ~/.1cv8/1C/1cv8/tmpdir");
А Сообщить(РабочийКаталогДанныхПользователя()); выдает
/home/addm/.1cv8/1C/1cv8/9d87b1e5-60f5-4f46-9750-2bbbd6bd234e/b008bd70-850d-4415-8cbc-6cdfd87e8c8e/App/
Можно и отсюда получить нужный каталог.
   TormozIT
 
28 - 25.04.21 - 12:38
(27) Спасибо. Способ через mkdir как вариант записал, но у меня в коде несколько мест, где создаются каталоги. Пока не хочется везде править. Поищу способ получения полного пути.
У меня поддержка 8.2 есть. Так что РабочийКаталогДанныхПользователя() не подойдет.
   TormozIT
 
29 - 25.04.21 - 12:39
Ну и получать значение переменной $USER в коде 1С в любом случае тоже хочется научиться.
   TormozIT
 
30 - 25.04.21 - 12:48
Можно ли взять имя пользователя из КаталогВременныхФайлов()? Всегда ли он будет лежать внутри каталога пользователя?
 
 Рекламное место пустует
   Djelf
 
31 - 25.04.21 - 13:04
(29) В БСП есть обертка над запуском команд с перенаправлением потоков.
Если упростить, то получение имени пользователя выгладит так:
  Команда = "printenv USER";
  ВременныйФайл = КаталогВременныхФайлов()+"/out.tmp";
  КомандаСистемы(Команда+" > "+ВременныйФайл);
  ЧтениеТекста = Новый ЧтениеТекста(ВременныйФайл, КодировкаТекста.Системная);
  Результат = ЧтениеТекста.Прочитать();    
  Сообщить(Результат);

   TormozIT
 
32 - 25.04.21 - 16:31
(31) Спасибо. С выполнение кода на клиенте задача решена.
Теперь переходим на сервер. Там уже нет переменной окружения USER. Как найти каталог там?
   Djelf
 
33 - 25.04.21 - 16:37
(32) Не может не быть! 1С "на сервере" запускается под пользователем usr1cv8, вот он и должен в переменной окружения.
   TormozIT
 
34 - 25.04.21 - 16:41
(33) Ну у нас получился такой список командой env:
LANG=ru_RU.UTF-8
OLDPWD=/
INVOCATION_ID=baccfcf6945as8fsu0pdf8s
PWD=/tmp
HOME=/home/usr1cv8
JOURNAL_STREAM=9:34252
KRB5_KTNAME="/opt/1cv8/x86_64/8.3.18.891/usr1cv8.keytab"
SHLVL=2
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
_=/usr/bin/env
   ДенисЧ
 
35 - 25.04.21 - 17:21
(34) У тебя есть HOME=/home/usr1cv8
Для твоих целей этого мало?
   TormozIT
 
36 - 25.04.21 - 19:52
(35) Переменная HOME будет всегда и в ней всегда будет имя пользователя для службы сервера? Ранее ты о ней не писал.
   ДенисЧ
 
37 - 25.04.21 - 20:21
(36) В линухе можно переопределить любую переменную среды. Так что это не Госстрах.
Но вряд ли кто в здравом уме станет её переделывать.
   TormozIT
 
38 - 25.04.21 - 20:24
Какая папка в linux будет аналогом C:\ProgramData в Windows?
   TormozIT
 
39 - 25.04.21 - 20:26
(38) В частности там лежит \1C\1CEStart\1CEStart.cfg общий для всех пользователей.
   TormozIT
 
40 - 25.04.21 - 20:36
1cestart.cfg
Файл 1cestart.cfg содержит настройки, которые используют программы запуска (1cestart и 1cv8s), клиентские приложения (1cv8 и 1cv8c) и внешнее соединение.
Расположение файла:
● Для ОС Windows: .
   ● %APPDATA%\1C\1CEStart – для конкретного пользователя. Файл изменяется при выполнении настроек окна запуска (см. здесь).
   ● %ALLUSERSPROFILE%\Application Data\1C\1CEStart (%ALLUSERSPROFILE%\1C\1CEStart для ОС Windows Vista и выше) – для всех пользователей компьютера. Файл изменяется только во время установки системы «1С:Предприятие».
● Для ОС Linux: ~/.1C/1cestart.
● Для OS X: ~/.1C/1cestart.

Получается общие настройки есть только ОС Windows, а в остальных ОС общих настроек нет?
   TormozIT
 
41 - 26.04.21 - 09:05
(33) Жду тебя в теме ВК http://devtool1c.ucoz.ru/forum/3-1359-1#7299
   Biker
 
42 - 26.04.21 - 10:03
(40) /opt/1cv8/conf
   Biker
 
43 - 26.04.21 - 10:09
+ для списка баз  есть /opt/1cv8/common 1cescmn.cfg
   Почему 1С
 
44 - 26.04.21 - 10:17
(0) Код вызваться с клиента или с сервера?
На папку для юзверей под которым происходит вызов метода, права есть?
chmod https://losst.ru/komanda-chmod-linux
   TormozIT
 
45 - 26.04.21 - 10:55
(44) Код зовется с клиента и сервера.
   Garykom
 
46 - 26.04.21 - 10:58
Прикольно заставляют на линукс с винды переходить однако
   mistеr
 
47 - 26.04.21 - 11:57
(46) Кто заставляет?


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.