Имя: Пароль:
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) Спасибо большое, это помогло. Запомню этот оператор себе на вооружение на будущее. Всем большое спасибо за помощь!
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн