Имя: Пароль:
1C
1С v8
Загрузка данных в регистр сведений
0 Woiager1984
 
19.01.12
22:19
Подскажите пытаюсь загрузить данные из текстового файла в регистр сведений лицевые счета сотрудников:

Процедура КнопкаСформироватьНажатие(Кнопка)
   Перем Стр;
   Стр= "";
   
   ФизЛица = Справочники.ФизическиеЛица;
   СпрУчреждение = Справочники.Организации;
   СпрБанк = Справочники.Контрагенты;
   НайденнаяСсылкаБанк = СпрБанк.НайтиПоНаименованию("Сбер банк",Истина,,);
   НайденныйБанк = НайденнаяСсылкаБанк.ПолучитьОбъект();

   СпрУчреждение = Справочники.Организации.Выбрать();
   Пока СпрУчреждение.Следующий() Цикл
       Организация = СпрУчреждение.Ссылка;
   КонецЦикла;
   
   Текст = Новый ЧтениеТекста;
   Текст.Открыть(ИмяФайла);
   НаборЗаписей = РегистрыСведений.ЛицевыеСчетаРаботниковОрганизации.СоздатьНаборЗаписей();
   
   Пока Стр <> Неопределено Цикл // строки читаются до символа перевода строки
       Стр = Текст.ПрочитатьСтроку();
       //Есть строка с данными. Запишем эти данные в 1С
       
       Позиция = Найти(Стр,";");
       Сотр=Лев(Стр,Позиция-1);  //строка "Адрес прописка" или что то такое
       ЛС=Сред(Стр,Позиция+1);
       
       //ЗначениеПоУмолчанию - ЛОЖЬ
       НайденнаяСсылка = ФизЛица.НайтиПоНаименованию(Сотр,Истина,,);
       Если НайденнаяСсылка=ФизЛица.ПустаяСсылка() Тогда
           //Сообщить("Не найден сотрудник "+ФИО+", ИНН "+ИНН+". Адрес и телефон не перенесен!");
       Иначе//Нашли нужного сотрудника
           ФизЛицо = НайденнаяСсылка.ПолучитьОбъект();
           
           НоваяЗапись=НаборЗаписей.Добавить();    
           НоваяЗапись.Организация=Организация;
           НоваяЗапись.Банк=НайденныйБанк;
           НоваяЗапись.ФизЛицо=ФизЛицо;
           НоваяЗапись.НомерЛицевогоСчета=ЛС;
           
       КонецЕсли;
   КонецЦикла;
   НаборЗаписей.Записать();
   Текст.Закрыть();
   
КонецПроцедуры

но выдает ошибку:

{Форма.ФормаОтчета.Форма(51)}: Ошибка при вызове метода контекста (Записать)
   НаборЗаписей.Записать();
по причине:
Запись с такими ключевыми полями существует! : ЛицевыеСчетаРаботниковОрганизации: ГОУ СПО АО "Архангельский колледж культуры", ,  (Регистр сведений: Лицевые счета сотрудников; Номер строки: 2)

Не подскажите?
1 shuhard
 
19.01.12
22:22
(0) а чё тут подсказывать - Запись с такими ключевыми полями существует!
2 Woiager1984
 
19.01.12
22:23
Открываю регистр,пусто?))
3 shuhard
 
19.01.12
22:27
(2) бу га га,
у тебя в наборе записей дубли
4 Woiager1984
 
19.01.12
22:31
Из файла удаляю все строки кроме первой,тоже самое?
5 Woiager1984
 
19.01.12
22:32
Можно ли как-то открыть набор записей для просмотра,как в 7.7 в таблице функция выбратьстроку()???
6 n1cr0s
 
19.01.12
22:36
(5) Точку останова поставь
7 shuhard
 
19.01.12
22:36
(3) НаборЗаписей = РегистрыСведений.ЛицевыеСчетаРаботниковОрганизации.СоздатьНаборЗаписей();

НаборЗаписей.Прочитать();
ТЗ=НаборЗаписей.Выгрузить();
ТЗ.ВыбратьСтроку("Тут кто-то решил что я пустой ?");
8 hhhh
 
19.01.12
22:50
(5) вот это что за бред???

ФизЛицо = НайденнаяСсылка.ПолучитьОбъект();

Коллекцию приколов создаешь?
9 Woiager1984
 
19.01.12
22:57
А как найти в справочнике ФЛ сотрудника по наименованию?
10 Woiager1984
 
19.01.12
22:57
(7) воспользовался,но в таблице одна строка всего??
11 timurhv
 
19.01.12
23:37
Врешь ты, у тебя конфигуратор говорит что как минимум 2 :)
12 chepsoid
 
20.01.12
06:24
остановись посмотри что записываешь, где то двоятся данные у тебя...
13 kosts
 
20.01.12
06:46
В наборе нужно установить отбор, а то могут удаляться другие ранее сохраненные записи.
14 kosts
 
20.01.12
06:48
(8) Везде пишет объект вместо ссылки...
Значения остаются пустыми во всех записях и по этому совпадают...
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.