Имя: Пароль:
1C
1С v8
Перебор ТЗ
,
0 demonkov
 
17.10.13
23:00
Всем доброго времени суток.В 1с тока разбираюсь...Задача такая...Делаю загрузку из ТЗ...Идет перебор строк ТЗ и создается Контрагент...Как сделать так чтобы проверялась уникальность пары реквизитов при создании (фио+знач)
Пример ТЗ
ФИО       Знач
Иванов    111
Петров    222
Сидоров   333
Иванов    444
Создаються 3 контрагента...(Иванов 111) а надо чтоб еще и (Иванов 444)...


Если к.Пустая()и ком=""  ТОгда    
          Контр =  Справочники.Контрагенты.СоздатьЭлемент();
          Контр.Наименование=стртз.ФИО;
          Контр.Комментарий=стртз.знач;
          Контр.Записать();  
          
       ИначеЕсли       
          к=стртз.ФИО  и  к.Комментарий=стртз.занч  ТОгда    
          Контр =  к.ПолучитьОбъект();
          Контр.Наименование=стртз.ФИО;
          Контр.Комментарий=стртз.знач;
          Контр.Записать();
      Иначеесли
          к=стртз.фио  и  к.Комментарий<>стртз.занч  ТОгда    
          Контр =  Справочники.Контрагенты.СоздатьЭлемент();
          Контр.Наименование=стртз.ФИО;
          Контр.Комментарий=стртз.знач;
          Контр.Записать();
КонецЕсли;
      
      
      
          Сообщить("Создан контрагент "+стртз.ФИО);
     КонецЦикла;


Буду благодарен за помощь!!!!!
1 demonkov
 
17.10.13
23:01
ТЗ=Данные.Выгрузить();

      
       Для каждого стртз из ТЗ    Цикл
          
          
К= Справочники.Контрагенты.НайтиПоНаименованию(стртз.ФИО);
    Ком=к.Комментарий;
    
  

Если к.Пустая()и ком=""  ТОгда    
          Контр =  Справочники.Контрагенты.СоздатьЭлемент();
          Контр.Наименование=стртз.ФИО;
          Контр.Комментарий=стртз.знач;
          Контр.Записать();  
          
       ИначеЕсли       
          к=стртз.ФИО  и  к.Комментарий=стртз.занч  ТОгда    
          Контр =  к.ПолучитьОбъект();
          Контр.Наименование=стртз.ФИО;
          Контр.Комментарий=стртз.знач;
          Контр.Записать();
      Иначеесли
          к=стртз.фио  и  к.Комментарий<>стртз.занч  ТОгда    
          Контр =  Справочники.Контрагенты.СоздатьЭлемент();
          Контр.Наименование=стртз.ФИО;
          Контр.Комментарий=стртз.знач;
          Контр.Записать();
КонецЕсли;
      
      
      
          Сообщить("Создан контрагент "+стртз.ФИО);
     КонецЦикла;
2 AllJoke
 
17.10.13
23:04
Найтистроки быть может помогут
3 AllJoke
 
17.10.13
23:05
+запрос по из
4 demonkov
 
18.10.13
00:13
Сделал вот так

ТЗ=Данные.Выгрузить();


Для каждого стртз из ТЗ Цикл
    
ПараметрыОтбора = Новый Структура;
ПараметрыОтбора.Вставить("ФИО", стртз.ФИО);
ПараметрыОтбора.Вставить("Знач", стртз.Знач);
НайденныеСтроки = ТЗ.НайтиСтроки(ПараметрыОтбора);
            

   Если     НайденныеСтроки.Количество()>0 Тогда
    
          Контр =  Справочники.Контрагенты.СоздатьЭлемент();
          Контр.Наименование=стртз.фИО;
          Контр.Комментарий=стртз.Знач;
          Контр.Записать();  
                  
          Сообщить("Создан контрагент "+контр);
      Иначе
          Продолжить;
    КонецЕсли      
  
  КонецЦикла;

Все создает правильно.Как проверить на существование в справочнике элемента,сравнить с отбором?
К= Справочники.Контрагенты.НайтиПоНаименованию(стртз.ФИО);
Если к.Пустая() тогда.....так не работает.....
Направьте в нужную сторону)