Имя: Пароль:
1C
1С v8
Разбор текстового файла
0 1987denis
 
08.09.15
09:22
Кусок кода, в отладчике показано, что проходит всё нормально, но в РС, добавляет только 1-но физ. лицо.
Если Найти(ТекСтр,"Доверенность выдана") Тогда
НаименованиеФизЛица=СокрЛП(Сред(ТекСтр,20,СтрДлина(ТекСтр)));
ДокВозвратТоваровОтПокупателя.ФизЛицо=Справочники.ФизическиеЛица.НайтиПоНаименованию(НаименованиеФизЛица);
                                                
Пока НаименованиеФизЛица=НаименованиеФизЛица Цикл
Если ДокВозвратТоваровОтПокупателя.ФизЛицо=Справочники.ФизическиеЛица.ПустаяСсылка() Тогда
        ФизЛицо        =  Справочники.ФизическиеЛица.СоздатьЭлемент();
        ФизЛицо.Наименование = НаименованиеФизЛица;
        ФизЛицо.ФИО = НаименованиеФизЛица;
        ФизЛицо.Записать();
        ДокВозвратТоваровОтПокупателя.ФизЛицо=Справочники.ФизическиеЛица.НайтиПоНаименованию(НаименованиеФизЛица);
Иначе
        ДокВозвратТоваровОтПокупателя.ФизЛицо=Справочники.ФизическиеЛица.НайтиПоНаименованию(НаименованиеФизЛица);                        
КонецЕсли;                
НаборЗаписей=РегистрыСведений.ДокументыФизическихЛиц.СоздатьНаборЗаписей();
Запись=НаборЗаписей.Добавить();
Запись.Период=ДокВозвратТоваровОтПокупателя.Дата;
Запись.ВидДокумента=Справочники.ВидыДокументовФизическихЛиц.ПаспортРФ;
Запись.Физлицо=Справочники.ФизическиеЛица.НайтиПоНаименованию(НаименованиеФизЛица);
Запись.ЯвляетсяДокументомУдостоверяющимЛичность=Истина;    
     Запись.Физлицо=Справочники.ФизическиеЛица.НайтиПоНаименованию(НаименованиеФизЛица);
     НаборЗаписей.Записать();    
КонецЦикла;    
КонецЕсли;
1 aka AMIGO
 
08.09.15
09:24
замени Пока 1=1 Цикл :)
2 butterbean
 
08.09.15
09:24
НаборЗаписей=РегистрыСведений.ДокументыФизическихЛиц.СоздатьНаборЗаписей();
и
НаборЗаписей.Записать();
вынеси из цикла
3 1Сергей
 
08.09.15
09:24
Пока НаименованиеФизЛица=НаименованиеФизЛица Цикл
Можно просто заменить на
Пока Истина Цикл


А сколько должен добавить?
4 aka AMIGO
 
08.09.15
09:24
и, конечно, в теле цикла - условие выхода
5 1987denis
 
08.09.15
09:28
в 1 доке 1 физ лицо, доков может быть и 100.
6 Trotter
 
08.09.15
09:30
А каким методом определяется конец текстового документа ?
Как в XML нету Пока XML.Прочитать() ?
7 1987denis
 
08.09.15
09:31
это txt файл
8 1987denis
 
08.09.15
09:41
НаборЗаписей=РегистрыСведений.ДокументыФизическихЛиц.СоздатьНаборЗаписей();                                                
Пока НаименованиеФизЛица=НаименованиеФизЛица Цикл
    Если ДокВозвратТоваровОтПокупателя.ФизЛицо=Справочники.ФизическиеЛица.ПустаяСсылка() Тогда
        ФизЛицо        =  Справочники.ФизическиеЛица.СоздатьЭлемент();
        ФизЛицо.Наименование = НаименованиеФизЛица;
        ФизЛицо.ФИО = НаименованиеФизЛица;
        ФизЛицо.Записать();
        ДокВозвратТоваровОтПокупателя.ФизЛицо=Справочники.ФизическиеЛица.НайтиПоНаименованию(НаименованиеФизЛица);
    Иначе
        ДокВозвратТоваровОтПокупателя.ФизЛицо=Справочники.ФизическиеЛица.НайтиПоНаименованию(НаименованиеФизЛица);                        
    КонецЕсли;                
    
    Запись=НаборЗаписей.Добавить();
    Запись.Период=ДокВозвратТоваровОтПокупателя.Дата;
    Запись.ВидДокумента=Справочники.ВидыДокументовФизическихЛиц.ПаспортРФ;
    Запись.ЯвляетсяДокументомУдостоверяющимЛичность=Истина;    
    Запись.Физлицо=Справочники.ФизическиеЛица.НайтиПоНаименованию(НаименованиеФизЛица);
    Если НаименованиеФизЛица=НаименованиеФизЛица Тогда
        Прервать;
    КонецЕсли;
КонецЦикла;    
НаборЗаписей.Записать();     
КонецЕсли;
Не создает других физ лиц...хотя в цикле обходит всех  по документам документы
9 1987denis
 
08.09.15
12:27
Готова)
Программист всегда исправляет последнюю ошибку.