|
УФ: записывать в лог | ☑ | ||
---|---|---|---|---|
0
dft2014
29.03.19
✎
17:17
|
Добрый день!
Пишу обработку, которая последовательно создает три вида документов. Подскажите, как в управляемых формах вести лог (можно в файл-txt), какие документы создаются? &НаКлиенте Процедура СформироватьДокументы(Команда) СформироватьДокументГПХНаСервере(); ... СформироватьДокументНачислениеНаСервере(Структура.мСотрудники,СсылкаДН); ... док = СформироватьДокументВедомостьНаСервере(Структура.мФизЛица,СсылкаДН); КонецПроцедуры |
|||
1
Fish
29.03.19
✎
17:31
|
"как в управляемых формах вести лог (можно в файл-txt)" - Да вроде точно так же, как и в обычных. Через ТекстовыйДокумент.
|
|||
2
Temai
29.03.19
✎
17:32
|
Подтверждаю ответ из (1), так же как и в обычных формах
|
|||
3
Ник080808
29.03.19
✎
17:36
|
(0) в регистр сведений лучше пихать
|
|||
4
dft2014
29.03.19
✎
17:44
|
Написала функцию, код ниже:
Функция ЗаписатьЛог(Лог) Экспорт Если НЕ Лог = "" Тогда ТекДокумент = Новый ТекстовыйДокумент; ТекДокумент.УстановитьТекст("НАЧАЛО:" + Символы.ПС + Лог); ТекДокумент.УстановитьТипФайла(КодировкаТекста.UTF8); ТекДокумент.Записать("c:\55.txt"); КонецЕсли; КонецФункции Также, в каждой процедуре по созданию документов, вставила соответствующие строчки: ЗаписатьЛог(Строка(НовыйДокументДГПХ.Ссылка)); ЗаписатьЛог(Строка(НовыйДокументНачислениеДог.Ссылка)); ЗаписатьЛог(Строка(НовыйДокументВедомость.Ссылка)); В результате, в файле c:\55.txt остается только одна запись - о последнем записанном документе. Как сделать, чтобы каждая новая запись не затирала предыдущую, а добавляла новую? |
|||
5
Temai
29.03.19
✎
17:57
|
Ты каждый раз новый документ создаешь(поэтому 1 строка - последняя), объяви создание заранее в другой процедуре и только 1 раз
|
|||
6
dft2014
29.03.19
✎
18:00
|
(5) Как это реализовать?!
|
|||
7
Temai
29.03.19
✎
18:02
|
(6) Блин ну я же написал.
ТекДокумент = Новый ТекстовыйДокумент; - Убери из функции ЗаписатьЛог() и Объяви тут: ТекДокумент = Новый ТекстовыйДокумент; ЗаписатьЛог(Строка(НовыйДокументДГПХ.Ссылка)); ЗаписатьЛог(Строка(НовыйДокументНачислениеДог.Ссылка)); ЗаписатьЛог(Строка(НовыйДокументВедомость.Ссылка)); |
|||
8
Temai
29.03.19
✎
18:02
|
И передавай в свою функцию этот документ и уже в него пиши
|
|||
9
dft2014
29.03.19
✎
18:37
|
(7) Так не получится, т.к. функция ЗаписатьЛог() вызывается в разных процедурах:
&НаКлиенте Процедура СформироватьДокументы(Команда) СформироватьДокументГПХНаСервере(); ... СформироватьДокументНачислениеНаСервере(Структура.мСотрудники,СсылкаДН); ... док = СформироватьДокументВедомостьНаСервере(Структура.мФизЛица,СсылкаДН); КонецПроцедуры &НаСервере Процедура СформироватьДокументГПХНаСервере() Для Каждого СтрокаТЧ из Объект.тчСотрудники Цикл ЗаписатьЛог(Строка(НовыйДокументДГПХ.Ссылка)); КонецЦикла; КонецПроцедуры &НаСервере Процедура СформироватьДокументНачислениеНаСервере() Для Каждого СтрокаТЧ из Объект.тчСотрудники Цикл ЗаписатьЛог(Строка(НовыйДокументНачисление.Ссылка)); КонецЦикла; КонецПроцедуры &НаСервере Процедура СформироватьДокументВедомостьСервере() Для Каждого СтрокаТЧ из Объект.тчСотрудники Цикл ЗаписатьЛог(Строка(НовыйДокументВедомость.Ссылка)); КонецЦикла; КонецПроцедуры Функция ЗаписатьЛог(Лог) Экспорт Если НЕ Лог = "" Тогда ТекДокумент = Новый ТекстовыйДокумент; ТекДокумент.УстановитьТекст("НАЧАЛО:" + Символы.ПС + Лог); ТекДокумент.УстановитьТипФайла(КодировкаТекста.UTF8); ТекДокумент.Записать("c:\55.txt"); КонецЕсли; КонецФункции |
|||
10
ДенисЧ
29.03.19
✎
18:42
|
А что, журнал регистрации уже не котируется?
|
|||
11
dft2014
29.03.19
✎
18:51
|
(10) я созданные документы записываю в лог, а потом в печатную форму на экран хочу выводить.
|
|||
12
Ластик
29.03.19
✎
18:53
|
(0) пиши в ЖР, так быстрее, по ЖР собрать логи не проблема потом
|
|||
13
Ластик
29.03.19
✎
18:55
|
(11) что выводить то в ПФ, логи или документы из лога
|
|||
14
dft2014
29.03.19
✎
18:59
|
(13) Документы из лога. Но можно и не в лог-файл записывать, но и в таблицу значений, например. Но вот как это в моем случае реализовать?
|
|||
15
dft2014
29.03.19
✎
18:59
|
(12) Зачем засорять ЖР?
|
|||
16
MyNick
29.03.19
✎
19:04
|
(11) формировать печатную форму по данным текстового документа, созданного обработкой записи документов? Больше на бред похоже
|
|||
17
lubitelxml
29.03.19
✎
19:04
|
(14) лучше тогда РС использовать. Скажите - как задача стоит, может все проще можно сделать
|
|||
18
dft2014
29.03.19
✎
19:07
|
(17) Задача: чтобы после загрузки бухгалтер увидел что загрузил и в какие документы. В регистре эту информацию хранить не надо.
|
|||
19
singlych
29.03.19
✎
19:57
|
Загрузка из формы? Храни эту инфу в реквизите формы.
|
|||
20
runoff_runoff
29.03.19
✎
22:18
|
Новый ЗаписьТекста
|
|||
21
MyNick
30.03.19
✎
07:43
|
(18) про реквизиты формы, переменную типа массив что-то слышали вообще?
|
|||
22
Сияющий в темноте
30.03.19
✎
09:01
|
Если писать хочется на сервере,то или открытие файла с дописыванием,то есть Новый ЗаписьТекста...дописывание или передачп массива с данными строк обратно на клиента.
на клиенте,запись текста можно создать в отдельной переменной модуля формы и в него писать. если хочется пользователю показать,то делаем вкладку журнал на форме,туда таблицу формы и в нее и пишем,в таблице три колонки-когда,кто и что. |
|||
23
Сияющий в темноте
30.03.19
✎
09:02
|
в модуле управляемой формы вверху:
&НаКлиенте Перем МойЛог; |
|||
24
hhhh
30.03.19
✎
09:13
|
(22) так можно же создать реквизит формы МойЛог, и писать в него текст на сервере, с клиентом вообще не париться. На клиенте просто показывать этот текст.
|
|||
25
Franchiser
гуру
30.03.19
✎
12:33
|
(21) я пишу в лог на клиенте в реквизит формы типа список значений (тип определяется при создании формы) , лог собирается из работы 10 фоновых заданий в асинхронном режиме.
|
|||
26
Franchiser
гуру
30.03.19
✎
12:38
|
(23) меня не устроило то что в этом случае нельзя писать в лог в серверных процедурах
|
|||
27
Franchiser
гуру
30.03.19
✎
12:41
|
Если создать реквизит формы неопределенного вида, и при создании формы назначит тип массив то будет ошибка, поэтом варианты только список значений, структура, тз
|
|||
28
Сияющий в темноте
30.03.19
✎
20:37
|
(26)писать можно,только нужнл результат на клиента возвращать.
просто,в функциях без контекста все равно писать вручную с возвратом,а тогда зачем два разных механизма? |
|||
29
Рэйв
30.03.19
✎
20:45
|
(0)твое НаКиенте уже все портит.
Запомни уже, сто все действия с базой делаются на сервере |
|||
30
Web00001
31.03.19
✎
15:41
|
(25)Ты и (0) два разных человека?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |