Имя: Пароль:
1C
1С v8
логирование
0 Droning
 
07.06.18
12:32
дано задание сделать логирование по новым контрагентам из обработки синхронизации данных с utm5.

Тоесть если синхронизировался новый контрагент,  то записываем строку в лог файл тхт.

я на правильном пути? или есть какие-то критические ошибки?
1 Droning
 
07.06.18
12:32
&НаКлиенте
Функция ВывестиЛогДобавленийИИзмененийКонтрагентов() Экспорт
    
    Контрагенты = Справочники.Контрагенты;
    НайденныйКонтрагент = Неопределено;

    Для Каждого СтрокаТЗ Из ТЗ Цикл
        
      
        Если (СтрокаТЗ.Статус = "new_customer") Тогда
                        НайденныйКонтрагент = Контрагенты.НайтиПоНаименованию(СокрЛП(СтрокаТЗ.name));
                        ТекОбъект = НайденныйКонтрагент.ПолучитьОбъект();
                        
                        ТекОбъект.Наименование = СокрЛП(СтрокаТЗ.name);
                        ТекОбъект.ИНН = СокрЛП(СтрокаТЗ.inn);
                        
                        ТекОбъект.Записать();
        КонецЕсли;
                    
    КонецЦикла;            
                    
                
        Текст = Новый ТекстовыйДокумент;
        Кодировка = "UTF8";
        
                                                 
        Выборка = ТекОбъект.Выбрать();

        Пока Выборка.Следующий() Цикл
  
            Текст.ЗаписатьСтроку( "Новый Контрагент " + Выборка.Наименование + "ИНН № "+ Выборка.ИНН + "Успешно синхронизирован.");
        КонецЦикла;

  
        Текст.Записать("c:\textLog.txt");

    
                    
        
            
                                    
                
КонецФункции;
2 catena
 
07.06.18
12:35
Что такое ТекОбъект? Что будет, если пять запишется, а на шестом запись окончится ошибкой?
3 Droning
 
07.06.18
12:39
в моем понимании ТекОбъект - это объект справочника Контрагенты, полученный поиском по наименованию... Или яя не прав?

по поводу ошибок пока не думал, хотелось бы чстобы хотя бы это было синтаксически правильно
4 Droning
 
07.06.18
12:40
Сейчас в отладке пишет, что ожидается ключевое слово КонецЦикла... Вроде же все циклы оформлены..
5 catena
 
07.06.18
12:42
(3)Теперь еще раз подумай, что такое ТекОбъект после цикла и что такое ТекОбъект.Выбрать()?
6 Droning
 
07.06.18
12:43
Тоесть ТекОбъект существует только внутри цикла и если я его использую, то надо  использовать в цикле?
7 Droning
 
07.06.18
12:50
&НаКлиенте
Процедура ВывестиЛогДобавленийИИзмененийКонтрагентов() Экспорт
    
    Контрагенты = Справочники.Контрагенты;
    НайденныйКонтрагент = Неопределено;
    
    Для Каждого СтрокаТЗ Из ТЗ Цикл
        
      
        Если (СтрокаТЗ.Статус = "new_customer") Тогда
                        НайденныйКонтрагент = Контрагенты.НайтиПоНаименованию(СокрЛП(СтрокаТЗ.name));
                        ТекОбъект = НайденныйКонтрагент.ПолучитьОбъект();
                        
                        ТекОбъект.Наименование = СокрЛП(СтрокаТЗ.name);
                        ТекОбъект.ИНН = СокрЛП(СтрокаТЗ.inn);
                        
                        ТекОбъект.Записать();
        КонецЕсли;
                Текст = Новый ТекстовыйДокумент;
        Кодировка = "UTF8";
        
                                                 
        Выборка = ТекОбъект.Выбрать();

        Пока Выборка.Следующий() Цикл
  
            Текст.ЗаписатьСтроку( "Новый Контрагент " + Выборка.Наименование + "ИНН № "+ Выборка.ИНН + "Успешно синхронизирован.");
            Текст.Записать("c:\textLog.txt");
        КонецЦикла;

  
    
    КонецЦикла;            

















Может так?
8 catena
 
07.06.18
12:53
что такое ТекОбъект и что такое ТекОбъект.Выбрать()?
9 Droning
 
07.06.18
13:01
ТекОбъект это новый контрагент типа справочник.контрагенты.

что я неправильно говорю? у меня просто пока еще нет целостного представления о том что верно а что нет, да еще и с синтаксисом провал....
10 catena
 
07.06.18
13:03
(9)Синтаксис-помощник украли? Отладчик потерялся?
ТекОбъект - это СправочникОбъект. Есть у него метод Выбрать()? Что ты от него ожидаешь?
11 Droning
 
07.06.18
13:04
по поводу Выборка = ТекОбъект.Выбрать()--- я не знаю правльно ли это написано. вот вообще не знаю. Как мне обойти все полученные новые контрагенты и записать их наименование и инн в файл?
12 Droning
 
07.06.18
13:04
а Какой метод использовать применителдьно к нему?
13 Droning
 
07.06.18
13:06
как и где посмотреть методы обращения к тем или иным объектам?
14 catena
 
07.06.18
13:07
(13)Меню Справка -> Синтаксис-помощник.
15 Droning
 
07.06.18
13:09
Спасибо, гениально) сам бы не догадался) только вот как им грамотно пользоваться, это уже другой вопрос)
16 Droning
 
07.06.18
13:12
Выборка = ТекОбъект.Прочитать();   подойдет?
17 catena
 
07.06.18
13:24
(16)Зачем вы его насилуете? Вы его только что записали, все, что вам надо, в нем уже есть.
18 ildary
 
07.06.18
13:29
(9) LivingStar? Уж больно речь похожа. Медленно положи конфигуратор на землю и отойди от него.
19 Droning
 
07.06.18
13:42
если ты про меня, то нет) не LivingStar)
20 Droning
 
07.06.18
13:42
catena, буду пробовать, спасибо)
21 Droning
 
07.06.18
13:43
но вот ошибка про КонецЦикла никуда так и не хочет уходить. /Вроде везде проставлены ; и окончания циклов
22 Droning
 
07.06.18
14:00
После КонецПроцедуры стояла ; . вот откуда ошибка
Закон Брукера: Даже маленькая практика стоит большой теории.