Имя: Пароль:
1C
1C 7.7
v7: 1С77: Загрузка в справочник из ТЗ (Не выбран элемент!)
, , ,
0 листопад
 
09.11.14
19:57
1С77
Загружаю из Таблицы значений на форме обработки, в справочник.Сотрудники. После прохождения первого цикла, выдает сообщение:

Пока СпрСотр.ПолучитьЭлемент() = 1 Цикл  
{C:\555\3.ERT(247)}: Не выбран элемент!


Вот код, подскажите где ошибка:

Процедура Загрузить()
    
    СпрСотр = СоздатьОбъект("Справочник.Сотрудники");
    
    ТЗДиалога.ВыбратьСтроки();
    Пока ТЗДиалога.ПолучитьСтроку() = 1 цикл  
        
        СпрСотр.ВыбратьЭлементы();
        Пока СпрСотр.ПолучитьЭлемент() = 1 Цикл  
            
            Если СпрСотр.ПометкаУдаления() = 1 Тогда
                продолжить;
            КонецЕсли;
            
            Если СпрСотр.ЭтоГруппа() = 1 Тогда
                продолжить;
            КонецЕсли;
            
            Если ЗагрСотр = 1 Тогда
                
                Если СпрСотр.НайтиПоНаименованию(ТЗДиалога.ФИО, 0, 1) = 1 тогда  
                    
                    Сообщить(ТЗДиалога.ФИО + " - найден!");  
                    
                Иначе
                    СпрСотр.Новый();
                    СпрСотр.Наименование = ТЗДиалога.ФИО;
                    СпрСотр.Записать();
                    СпрСотр.ОсновнойЭлемент = СпрСотр.ТекущийЭлемент();
                    СпрСотр.ДатаРождения = ТЗДиалога.ДатаРожд;
                    СпрСотр.ИНН = ТЗДиалога.ИНН;                                                        
                    СпрСотр.Записать();
                    
                КонецЕсли;
                
            Иначе
                
            КонецЕсли;
            
        КонецЦикла;
        
    КонецЦикла;
    
КонецПроцедуры
1 листопад
 
09.11.14
19:58
ТЗДиалога - это таблица значений на форме обработки.
2 NS
 
09.11.14
20:00
После
СпрСотр.НайтиПоНаименованию(ТЗДиалога.ФИО, 0, 1)
или
СпрСотр.Новый();
у тебя уже нет выборки.
3 ДенисЧ
 
09.11.14
20:01
Создай новую переменную, будь женщиной, блЪ!!!
4 листопад
 
09.11.14
20:02
(2) И как быть?
5 листопад
 
09.11.14
20:02
(3) Попрошу не грубить даме!!!
6 ДенисЧ
 
09.11.14
20:06
(5) Попросите. А мы посмотрим....
7 листопад
 
09.11.14
20:08
Разобралась, что если закомментировать строчки ниже, то все работает:

СпрСотр.ВыбратьЭлементы();
        Пока СпрСотр.ПолучитьЭлемент() = 1 Цикл  
            
            Если СпрСотр.ПометкаУдаления() = 1 Тогда
                продолжить;
            КонецЕсли;
            
            Если СпрСотр.ЭтоГруппа() = 1 Тогда
                продолжить;
            КонецЕсли;
8 ДенисЧ
 
09.11.14
20:10
Сдаётся, коллеги, что нас где-то обманывают....
9 2S
 
09.11.14
20:13
Вик, объект выборки и объект записи должны быть разными
10 2S
 
09.11.14
20:14
и вот это
11 2S
 
09.11.14
20:14
Если СпрСотр.НайтиПоНаименованию(ТЗДиалога.ФИО, 0, 1) = 1 тогда
в выборке ее собъет
12 Otkr
 
09.11.14
20:17
ТС видимо Мисти покусала
13 2S
 
09.11.14
20:17
ну а в целом код надо переписываьт
14 2S
 
09.11.14
20:21
СпрСотр = СоздатьОбъект("Справочник.Сотрудники");
    
    ТЗДиалога.ВыбратьСтроки();
    Пока ТЗДиалога.ПолучитьСтроку() = 1 цикл  
        
                 Если СпрСотр.НайтиПоНаименованию(ТЗДиалога.ФИО, 0, 1) = 1 тогда  
                    
                    Сообщить(ТЗДиалога.ФИО + " - найден!");  
                    
                Иначе
                    СпрСотр.Новый();
                    СпрСотр.Наименование = ТЗДиалога.ФИО;
                    СпрСотр.Записать();
                    СпрСотр.ОсновнойЭлемент = СпрСотр.ТекущийЭлемент();
                    СпрСотр.ДатаРождения = ТЗДиалога.ДатаРожд;
                    СпрСотр.ИНН = ТЗДиалога.ИНН;                                                        
                    СпрСотр.Записать();
                    
                КонецЕсли;
                
            
        КонецЦикла;
        
    КонецЦикла;

так будет работать
15 Chameleon1980
 
09.11.14
22:22
ту ти ту тут ту
Программист всегда исправляет последнюю ошибку.