Имя: Пароль:
1C
 
Переменная не определена (ИНН)
🠗 (Волшебник 08.01.2024 15:07)
0 Даниил35
 
naïve
08.01.24
05:07
Здравствуйте подскажите как решить ошибку.

Документ = Новый ТекстовыйДокумент();
    Документ.Прочитать(Объект.ПутьКФайлу);  


//Построчный обход текстового документа
Для НомерСтроки = 2 По Документ.КоличествоСтрок() Цикл
    
//Получить строку документа
СтрокаДокумента = Документ.ПолучитьСтроку(НомерСтроки);


  //Разложим каждое значение, разделенное ; в массив
  МассивЗначенийСтроки = СтрРазделить(СтрокаДокумента, ";" );
  
  //Получить значение массива
  НаименованиеКонтрагента = МассивЗначенийСтроки[0];
  ИННКонтрагента          = МассивЗначенийСтроки[1];
  ВидКонтрагента          = МассивЗначенийСтроки[2];
  
  
  СсылкаНаКонтрагенты    = Справочники.Контрагенты.НайтиПоНаименованию(НаименованиеКонтрагента);
  
           
НовыйКонтрагент = Справочники.Контрагенты.НайтиПоРеквизиту("ИНН", Строка(ИНН));
Если НовыйКонтрагент <> Справочники.Контрагенты.ПустаяСсылка() Тогда
    
      Продолжить;    
  КонецЕсли;
  КонецЦикла;
  
  НовыйКонтрагент = Справочники.Контрагенты.СоздатьЭлемент();
  НоваяГруппа = Справочники.Контрагенты.СоздатьГруппу();
  
  Если Не ЗначениеЗаполнено(НовыйКонтрагент)  Тогда  
      
     //СоздатьЭлемент
     НовыйКонтрагент = Справочники.Контрагенты.СоздатьЭлемент();
  
     НовыйКонтрагент.Наименование = НаименованиеКонтрагента;
    
          КонецЕсли;
  
     НовыйКонтрагент.Записать();
      //Возвращаем выполнение кода в начало цикла
1 Даниил35
 
naïve
08.01.24
05:09
Выходит ошибка:

Недостаточно фактических параметров

{Обработка.ЗагрузкаКонтрагентовИзCSV.Форма.Форма.Форма(28)}:НовыйКонтрагент = Справочники.Контрагенты.НайтиПоРеквизиту("ИНН");

{Обработка.ЗагрузкаКонтрагентовИзCSV.Форма.Форма.Форма(138)}:ЗагрузитьНаСервере();



[ОшибкаВоВремяВыполненияВстроенногоЯзыка, ОшибкаИспользованияВстроенногоЯзыка]
2 vladmenleo
 
08.01.24
05:48
(0) Для начала замени НовыйКонтрагент = Справочники.Контрагенты.НайтиПоРеквизиту("ИНН", Строка(ИНН));
на НовыйКонтрагент = Справочники.Контрагенты.НайтиПоРеквизиту("ИНН", Строка(ИННКонтрагента));
3 vicof
 
08.01.24
09:14
Ник на форуме:    Даниил35
Настоящее имя:    Лидия
Очень интересно.
4 AAA
 
08.01.24
09:32
(3)Рождество - время чудес и загадок. Искать по ИНН, не задавая самого ИНН, это разве не меньшее чудо ?
5 Волшебник
 
08.01.24
09:34
НовыйКонтрагент - плохое имя переменной, потому что он может быть найден по ИНН
6 mkalimulin
 
08.01.24
09:45
(5) Там весь цикл можно выкинуть. Ничего не изменится
7 AAA
 
08.01.24
09:52
(5)Значит превратится в старого, как карета в тыкву. Но Он не может быть найден, так как ИНН не задан. Поэтому навсегда останется новым контрагентом)
8 Гена
 
гуру
08.01.24
09:59
(3) Лидия - скорее всего фирма. Автор не любит дублировать информацию, повторяться. Хочет быть крутым и дважды не говорить:
Даниил35
Даниил
9 Волшебник
 
08.01.24
10:58
(8) Не морочьте нам голову, Геннадий.
10 AAA
 
08.01.24
12:00
Геннадий мастер был интриг
И с ним никто не мог сравниться
Лишь миг назад он Даниил
И тут же в Лиду превратиться
11 lEvGl
 
гуру
08.01.24
12:09
(0) в (4) решение
но код жесткий конечно у вас с лидой
лидия хламидия где то было
12 Даниил35
 
naïve
08.01.24
14:44
Всем спаибо за помощь.
13 rphosts
 
08.01.24
14:58
(0) не позорься!

НовыйКонтрагент = Справочники.Контрагенты.СоздатьЭлемент();
  НоваяГруппа = Справочники.Контрагенты.СоздатьГруппу();

должно быть внутри Если... КонецЕсли