Имя: Пароль:
1C
 
Помогите с присвоением родителя
0 LeoKeyn
 
13.11.17
09:12
Всем здравствуйте! Никак не могу понять, почему не получается присвоить родителя элементу справочника.
Элемент = Справочники.ИмпортДоговоровЗайма.СоздатьЭлемент();
        Элемент.Наименование = Лист.Cells(i + 1, 1).Value;
        //Элемент.ЭтоГруппа = Лист.Cells(i + 2, 2).Value;
        ГруппаЭлемент = Справочники.ИмпортДоговоровЗайма.НайтиПоНаименованию(Лист.Cells(i + 1, 3).Value);
        Элемент.Родитель = ГруппаЭлемент.Ссылка;
Что я тут делаю не так, группа просто не ищется
1 LeoKeyn
 
13.11.17
09:13
(0) Хотя значение приходит нужное, пробовал делать это и через
Справочники.ИмпортДоговоровЗайма.НайтиПоНаименованию(Строка(Лист.Cells(i + 1, 3).Value))
Все равно Никак
2 Рэйв
 
13.11.17
09:17
Если НЕ ЗнчениеЗаполненно(ГруппаЭлемент ) Тогда
    Предупреждение("Упссс...");
КонецЕсли;
3 LeoKeyn
 
13.11.17
09:20
(2) Так мне не нужна остановка если не найдет, мне нужно, чтобы находил, ведь такой элемент точно есть)
4 LeoKeyn
 
13.11.17
09:20
(2) Просто может я делаю что то не так(очевидно конечно) но вот вопрос что
5 1dvd
 
13.11.17
09:21
(3) Попробуй СокрЛП
И вообще пользуйся отладчиком
6 LeoKeyn
 
13.11.17
09:23
(5) Пробовал. И отладчиком пользуюсь. В Строка(Лист.Cells(i + 1, 3).Value) приходит правильное значение, но НайтиПоНаименованию не срабатывает почемуто
7 1dvd
 
13.11.17
09:24
(6) чудес не бывает
8 LeoKeyn
 
13.11.17
09:24
могу код полностью привести
Попытка
    Эксель = Новый COMОбъект("Excel.Application");    
    Исключение
        Сообщить(ОписаниеОшибки());
        Возврат;
    КонецПопытки;     
    Книга = Эксель.WorkBooks.Add("Z:\_DISTRIB\External processing\1.xlsx");
    Лист = Эксель.WorkSheets(1);
    
    
      Для i = 0 По Лист.UsedRange.Rows.Count Цикл
          Если Строка(Лист.Cells(i + 1, 3).Value) = "" Тогда
              
          
          ГруппаЭлемент = Справочники.ИмпортДоговоровЗайма.СоздатьГруппу();
      ГруппаЭлемент.Наименование = Лист.Cells(i + 1, 1).Value;
      ГруппаЭлемент.Записать();
            Иначе
        //Элемент = Справочники.ИмпортДоговоровЗайма.СоздатьЭлемент();
        //Элемент.Наименование = Лист.Cells(i + 1, 1).Value;
        ////Элемент.ЭтоГруппа = Лист.Cells(i + 2, 2).Value;
        //ГруппаЭлемент = Справочники.ИмпортДоговоровЗайма.НайтиПоНаименованию(Лист.Cells(i + 1, 3).Value);
        //Элемент.Родитель = ГруппаЭлемент.Ссылка;
        //Элемент.НомерДоговора = Лист.Cells(i + 1, 4).Value;
        //Элемент.ФИО = Лист.Cells(i + 1, 5).Value;
        //Элемент.ДатаДоговора = Лист.Cells(i + 1, 6).Value;
        //Элемент.СуммаДоговора = Лист.Cells(i + 1, 7).Value;
        //Элемент.СрокДоговора = Лист.Cells(i + 1, 8).Value;
        //Элемент.ДатаОкончания = Лист.Cells(i + 1, 9).Value;
        //Элемент.СтавкаПоДоговору = Число(Лист.Cells(i + 1, 10).Value);
        //Элемент.ПСК = Лист.Cells(i + 1, 11).Value;         
        //Элемент.Записать();

    КонецЕсли;
    
    КонецЦикла;      
    
     Для i = 0 По Лист.UsedRange.Rows.Count Цикл
          Если Строка(Лист.Cells(i + 1, 3).Value) = "" Тогда
              
      //    
      //    ГруппаЭлемент = Справочники.ИмпортДоговоровЗайма.СоздатьГруппу();
      //ГруппаЭлемент.Наименование = Лист.Cells(i + 1, 1).Value;
      //ГруппаЭлемент.Записать();
            Иначе
        Элемент = Справочники.ИмпортДоговоровЗайма.СоздатьЭлемент();
        Элемент.Наименование = Лист.Cells(i + 1, 1).Value;
        //Элемент.ЭтоГруппа = Лист.Cells(i + 2, 2).Value;
        ГруппаЭлемент = Справочники.ИмпортДоговоровЗайма.НайтиПоНаименованию(Строка(Лист.Cells(i + 1, 3).Value));
        Элемент.Родитель = ГруппаЭлемент.Ссылка;
        Элемент.НомерДоговора = Лист.Cells(i + 1, 4).Value;
        Элемент.ФИО = Лист.Cells(i + 1, 5).Value;
        Элемент.ДатаДоговора = Лист.Cells(i + 1, 6).Value;
        Элемент.СуммаДоговора = Лист.Cells(i + 1, 7).Value;
        Элемент.СрокДоговора = Лист.Cells(i + 1, 8).Value;
        Элемент.ДатаОкончания = Лист.Cells(i + 1, 9).Value;
        Элемент.СтавкаПоДоговору = Число(Лист.Cells(i + 1, 10).Value);
        Элемент.ПСК = Лист.Cells(i + 1, 11).Value;         
        Элемент.Записать();

    КонецЕсли;
    
    КонецЦикла;
    
    
    Эксель.ActiveWorkBook.Close(Истина,"");
    Эксель.Quit();
9 LeoKeyn
 
13.11.17
09:24
(7) а причем тут чудеса?)
10 LeoKeyn
 
13.11.17
09:24
(7) Все ведь по логике работать должно)
11 FIXXXL
 
13.11.17
09:25
(9) "C" и "С", к примеру

в эксельчиках чего только не встретишь...
12 1dvd
 
13.11.17
09:26
(11) или НПП
13 LeoKeyn
 
13.11.17
09:32
(11) Там цифры)
14 LeoKeyn
 
13.11.17
09:33
(11) Наименования числовые: "77987" например
15 FIXXXL
 
13.11.17
09:33
(13) (12)
16 FIXXXL
 
13.11.17
09:34
прогони через
стрЗаменить(ТвоёЗначениеЕкселя,Символы.НПП,"");
17 h-sp
 
13.11.17
09:35
(14) приколист. Даже дети знают, что Строка(77987) = "77 987"


У тебя есть группа "77 987"  ??
18 LeoKeyn
 
13.11.17
09:40
(17) Я думал на это) а как это исправить?)
19 nordbox
 
13.11.17
09:41
(18) Смотри функции работы со строками )
20 LeoKeyn
 
13.11.17
09:52
(16) попробую, спасибо
(17) пробовал присваивать наименование группе через Строка(), не помогло
21 h-sp
 
13.11.17
09:55
(20) XMLСтрока везде пиши
22 LeoKeyn
 
13.11.17
10:28
(21) Спасибо большое, это помогло. Запомню этот оператор себе на вооружение на будущее. Всем большое спасибо за помощь!