|
v7: Дозапись в txt файл | ☑ | ||
---|---|---|---|---|
0
Svetka
18.03.13
✎
13:51
|
Делаю обработку по замене значений. Требуется писать эти замены в лог-файл.
Проблема в том, что мне надо добавить в лог только те замены, которые произведены в этом сеансе работы обработки, а добавляются все. Процедура СоздатьЛогФайл() Если ФлагЛогФайла=1 Тогда ЛогФайл = СоздатьОбъект("Текст"); ЛогФайл.КодоваяСтраница(0); наим = СокрЛП(Тек)+"1Slog.TXT"; Если ФС.СуществуетФайл(Пут+наим)=1 Тогда ЛогФайл.Открыть(Пут+наим); КонецЕсли; Иначе ЛогФайл=0; КонецЕсли; КонецПроцедуры Процедура ВЛогФайл(текст,вид="I") Если ФлагЛогФайла=1 Тогда ЛогФайл.ДобавитьСтроку(текст); наим = СокрЛП(Тек)+"1Slog.TXT"; ЛогФайл.Записать(Пут+наим); КонецЕсли; КонецПроцедуры Процедура ПриОткрытии() ФлагЛогФайла=1; Пут=КаталогИБ(); СоздатьЛогФайл(); КонецПроцедуры Процедура ВыполнитьЗамены() ........... ВЛогФайл("Справочник: "+ТЗСсылки.Ссылка.Вид()+ " " +Спр.ТекущийЭлемент()+" "+"Поле: " + Рекв); ........... КонецПроцедуры |
|||
1
Chum
18.03.13
✎
13:55
|
(0) что мешает плодить файлы по времени? Один запуск = один файл. Останется только с именем файла повыпендриваться.
|
|||
2
palpetrovich
18.03.13
✎
13:56
|
из кода непонятно чем определяются актуальность "замен"
|
|||
3
palpetrovich
18.03.13
✎
13:59
|
+(2) т.е. должно наверное быть нечто типа
Если ФлагЗаменаВЭтомСеансе Тогда ВЛогФайл("Справочник: "+ТЗСсылки.Ссылка.Вид()+ " " +Спр.ТекущийЭлемент()+" "+"Поле: " + Рекв); КонецЕсли; |
|||
4
Svetka
18.03.13
✎
13:59
|
(1) Мешает: Лог создается для квартала.
В квартале много контрагентов у каждого надо сменить договор. Замены делаются в разное время. (2) не поняла ваш вопрос. |
|||
5
palpetrovich
18.03.13
✎
14:03
|
(4) аналогично :)
|
|||
6
Svetka
18.03.13
✎
14:03
|
Есть подозрение, что проблема в объекте "Текст" и штатными методами работы с ними 1с.
|
|||
7
palpetrovich
18.03.13
✎
14:05
|
(6) давай весь текст ВыполнитьЗамены()
|
|||
8
Svetka
18.03.13
✎
14:08
|
(7) Зачем? Замены выполняются прекрасно. Проблема в дозаписи файла txt, в который пишутся замены из всех сеансов.
|
|||
9
Svetka
18.03.13
✎
14:16
|
В Книга знаний: Пример чтения и записи текстовых файлов (Scripting.FileSystemObject)
Процедура ПрочитатьФайл() ИмяФайла=КаталогИБ()+"romix_test.txt"; fso=СоздатьОбъект("Scripting.FileSystemObject"); file=fso.OpenTextFile(ИмяФайла, 1, 0, 0); //Открываем файл в режиме "только чтение" Пока file.AtEndOfStream=0 Цикл стр=file.ReadLine(); Сообщить(стр); КонецЦикла; file.Close(); КонецПроцедуры Т.е., видимо VBScript мне в помощь? |
|||
10
Torquader
19.03.13
✎
00:59
|
Если через Fso и дописывать в конец, то открываем
Файл=fso.OpenTextFile(ИмяФайла,8,0,0);// открываем на дозапись и потом всё, что мы запишем в наш "журнал", будет дописано в конец файла. |
|||
11
Svetka
19.03.13
✎
06:29
|
(10) Спасибо.
FSO творит чудеса! Больше никогда не буду пытаться пользоватьтся СоздатьОбъект("Текст"). Процедура СоздатьЛогФайл() Если ФлагЛогФайла=1 Тогда наим = СокрЛП(Тек)+"1Slog.TXT"; fso=СоздатьОбъект("Scripting.FileSystemObject"); Если ФС.СуществуетФайл(Пут+наим)=1 Тогда ЛогФайл=fso.OpenTextFile(Пут+наим, 8, 0, 0); Иначе ЛогФайл=fso.CreateTextFile(Пут+наим, -1, 0); КонецЕсли; Иначе ЛогФайл=0; КонецЕсли; КонецПроцедуры //******************************************* Процедура ВЛогФайл(текст,вид="I") Если ФлагЛогФайла=1 Тогда ЛогФайл.WriteLine(текст); КонецЕсли; КонецПроцедуры |
|||
12
1Сергей
19.03.13
✎
07:19
|
echo "удаление базы..." >> log.txt
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |