Имя: Пароль:
1C
 
Запись лога в файл на клиенте параллельно с выполнением на сервере
0 SeiOkami
 
20.01.20
09:34
Добрый день.

Подскажите, как лучше всего сделать запись лога в файл параллельно с выполнением.

Есть обработка. Она создаёт документы в фоновом задании, на форме самой обработки крутится обработчик ожидания, который постоянно опрашивает фоновое. Хочу писать лог из фонового задания в файл на клиентской машине. Загвоздка в том, что писать нужно параллельно с выполнением. То есть, если сеанс вдруг упадёт, то в логе должен быть лог до падения.

Можно было бы писать при помощи ЗаписьТекста, но нужно записывать в таком формате, чтобы этот файл можно было бы программно преобразовать в таблицу лога. То бишь, это должен быть или ЗначениеВСтрокуВнутр или XML или JSON. Чтобы потом нормально данные прочитать и вывести в отчёт

Какой объект платформы можно для этого использовать?
1 Конструктор1С
 
20.01.20
09:41
Кури метод БСП ДлительныеОперации.СообщитьПрогресс(), у него есть параметр, в который можно передать примитивное значение. В частности, можно сериализовать нужные тебе данные в XML и протащить через этот параметр
2 Конструктор1С
 
20.01.20
09:42
3 SeiOkami
 
20.01.20
09:43
(1), приведённый тобой метод поможет передать инфу из сервера на клиент, но загвоздка именно в том, как потом эту инфу записывать в файл лога
4 ezhikofff
 
20.01.20
09:46
(0) зачем писать лог именно на клиенте? можно же писать на сервере в сетевую папку, доступную клиентам...не?

На сервере можно писать лог сразу в табличный документ
5 ДенисЧ
 
20.01.20
09:47
В базу данных пиши каждый чих с фиксированием транзакции
6 SeiOkami
 
20.01.20
09:48
(4), нужно именно писать на клиенте
7 Конструктор1С
 
20.01.20
10:14
(3) в клиентском методе складывай в коллекцию значений, а потом закинешь в файл
8 Cyberhawk
 
20.01.20
10:16
(7) Клиент упал и лога нет
9 Cyberhawk
 
20.01.20
10:16
А какие проблемы с ЗаписьТекста?
10 Cyberhawk
 
20.01.20
10:17
(4) "писать на сервере в сетевую папку, доступную клиентам...не?" // Неуниверсально. Никакой общей папки, доступной рабочему процессу, может и не быть
11 Конструктор1С
 
20.01.20
10:26
(8) ага, свет рубанут и каюк
12 SeiOkami
 
20.01.20
10:33
(9), просто нужно не просто строчки для пользователя писать, а данные, которые потом можно сериализовать в 1Сные и в отчете вывести.
Например, каждая строка лога - это структура с свойствами "Дата,Документ,ОписаниеОшибки".
13 SeiOkami
 
20.01.20
10:33
пока что вижу только один вариант - писать всё в текстовый файл при помощи ЗаписьТекста. и вставлять всякую заранее заготовленную безумную строку, чтобы потом по ней разбивать элементы. Тип "балблаблаздесьразделительстрок"