Имя: Пароль:
1C
1С v8
Объект ЗаписьТекста открывает файл для записи монопольно. Есть альтернатива?
0 i_rodionov
 
16.01.17
21:20
Нужно писать текстовый лог файл, в который несколько сеансов одновременно могут дописывать строки. Возможно, подскажете, как это сделать?
1 Кирпич
 
16.01.17
21:36
открывать файл пока не откроется, сделать запись и закрыть, чтобы другие могли записать.
2 Кирпич
 
16.01.17
21:46
ну или в какую нибудь БД писать через ADO, например.
3 i_rodionov
 
16.01.17
21:46
(1) открывать пока не откроется - не катит. Это пожирание ресурса. Воркараунд пока один - писать параллельные логи для каждого сеанса. Хотелось бы слить в один.
4 i_rodionov
 
16.01.17
21:47
(2) Да не надо писать, можно было бы в регистр сведений складывать. Но надо текстовый лог
5 Кирпич
 
16.01.17
21:48
(4) ну пиши в регистр сведений, потом сливай в текст
6 i_rodionov
 
16.01.17
21:50
(5) Вариант нормальный, но тогда отпадает нужда в текстовом файле вообще, лучше сделать отчет по регистру, что ли
7 Кирпич
 
16.01.17
21:50
(3) ну смотря как и сколько писать
8 Кирпич
 
16.01.17
21:51
(6) так тебе отчет надо или в файл писать? :)
9 i_rodionov
 
16.01.17
21:53
(8) Изначально была идея писать не в базу, а в текст, потому что это лог общения с веб ресурсом. Туда идет отправка остатков и цен, оттуда - результат работы контентщиков. Это веб магаз
10 Torquader
 
16.01.17
21:53
Отдельный LOG для каждого процесса/потока - самый правильный подход, так как иначе возможны ситуации, когда несколько потоков одновременно что-то записали и перезатёрли друг друга.
11 i_rodionov
 
16.01.17
21:54
(10) думал об этом. Согласен.
12 Torquader
 
16.01.17
21:59
(11) Просто, можно сделать один основной файл, где процессы/потоки регистрируются и пишут, в какие файлы они потом будут писать результаты своей работы, чтобы было понятно, кто и куда писал, а далее - каждый пишет в своё место - иначе - будут блокировки.
Если блокировки не страшны, то регистр сведений как раз подходит для того, чтобы все писали туда сразу.
Также, не стоит забывать, что у 1С есть журнал регистрации.
13 i_rodionov
 
16.01.17
22:01
(12) для журнала регистрации придется писать периодическую очистку, потому что будет пухнуть быстро.
Пока сделал для каждого сеанса разные логи.
14 Torquader
 
17.01.17
00:02
(13) Их и чистить будет проще, так как можно будет удалять/архивировать те, которые уже не пишутся.
15 i_rodionov
 
17.01.17
00:04
(14) Написал некий гибрид. В журнал складываю только результат от веба, отличный от 200. В текстовые файлы добавил имя учетки 1С, чтобы были разные для сеансов. Получился компромисс.
16 i_rodionov
 
17.01.17
00:05
(14) вернее в имя текстового файла добавил имя учетки
17 i_rodionov
 
17.01.17
00:05
(14) Все фоновые задания работают не анонимно, поэтому будет работать с разными логами.
18 i_rodionov
 
17.01.17
00:10
(14) Чтобы все было вообще надежно, надо узнавать ID сеанса. Подскажете?
19 i_rodionov
 
17.01.17
00:12
(14) НомерСоединения() должно помочь
AdBlock убивает бесплатный контент. 1Сергей