Имя: Пароль:
1C
1С v8
Регистры сведений
0 tg30000
 
17.07.12
05:32
Подскажите из текстового файла не добавляет все записи в регистр , а только одно.Что не так поставил что бы в цикле добавлялись...




Процедура Кнопка1Нажатие(Элемент)
   
   Текст = Новый ТекстовыйДокумент;
   Текст.Прочитать("D:\E.TXT");   //читаем текстовый файл
   //номер_п_п/Код/ЛицевойСчет/Сумма/ФИО
   
   Сч = 0;
   
   МассивПолей =Новый Массив();
   ОбработкаПрерыванияПользователя();
   Для НомерСтроки = 1 По Текст.КоличествоСтрок() Цикл
       
       Стр = Текст.ПолучитьСтроку(НомерСтроки);
       Сч =Сч+1;
       СтрокаРазбор = Новый ТекстовыйДокумент;
       СтрокаРазбор.УстановитьТекст((СтрЗаменить(Стр,";",Символы.ПС)));
       Артикул    = СтрокаРазбор.ПолучитьСтроку(1);
       Наименование   = СтрокаРазбор.ПолучитьСтроку(2);
       ЛицевойСчет = СтрокаРазбор.ПолучитьСтроку(3);
       ШтрихКод   = СтрокаРазбор.ПолучитьСтроку(4);
       Фамилия   = СтрокаРазбор.ПолучитьСтроку(5);
       Имя    = СтрокаРазбор.ПолучитьСтроку(6);
       Отчество  = СтрокаРазбор.ПолучитьСтроку(7);
       Сообщить("Добавлено " + Сч +" Объектов");
       
       Запись = РегистрыСведений.ЛицевыеСчетаРаботниковОрганизации.СоздатьМенеджерЗаписи();
       Запись.НомерЛицевогоСчета = ЛицевойСчет;
       Запись.Записать();
       
   КонецЦикла;
   
КонецПроцедуры
1 i_rodionov
 
17.07.12
05:35
Чтобы ответить на вопрос нужно знать состав измерений и ресурсов и периодичность
2 tg30000
 
17.07.12
05:38
Непериодический
режим записи :независимый.

Добавляется одна строка только, а не все с файла.
3 tg30000
 
17.07.12
05:43
Данные в сообщении правильно считает, а записывает в регистр только одно.
4 IvanIvanch
 
17.07.12
05:45
так может там лицевой счет один и тот же?
5 i_rodionov
 
17.07.12
05:45
(3) Я не вижу, чтобы туда какой-то ресурс записывался. Отсюда, наверное, проблема
6 tg30000
 
17.07.12
05:50
Ресурс:НомерЛицевогоСчета
7 i_rodionov
 
17.07.12
05:54
(6) Ресурс без измерения разве имеет практический смысл?
8 tg30000
 
17.07.12
05:55
(7) Ок.Понял в чем проблема вроде.
Спасибо)
9 Oleg_Kag
 
17.07.12
05:56
(7)+1
ПО умолчанию при записи параметр стоит Истина.
И добавиться только одна запись, последняя. Т.к. будут перетираться все предыдущие с пустым значением измерений.
10 kn
 
17.07.12
06:02
Вот пример из СП
Курс = РегистрыСведений.КурсыВалют.СоздатьМенеджерЗаписи();
Курс.Валюта = ВыбВалюта;
Курс.Период = ТекущаяДата();
Курс.Прочитать();
Если Не Курс.Выбран() Тогда
   Курс.Период = ТекущаяДата();
   Курс.Валюта = ВыбВалюта;
   Курс.Курс = 41.35;
   Курс.Кратность = 1;
КонецЕсли;
Если ВвестиЧисло(Курс.Курс, "Введите курс на сегодня",15,5) Тогда
   Курс.Записать();
КонецЕсли;
11 i_rodionov
 
17.07.12
06:05
(10) Тут же явные измерения есть - Валюта. Ресурсы - Курс, Кратность.
12 kn
 
17.07.12
06:08
(11)да,верно, у автора нет измерения.
13 tg30000
 
17.07.12
06:10
Что то не получается...

Измерения:
Организация СправочникСсылка.Организации
Банк СправочникСсылка.Банки
ФизЛицо СправочникСсылка.ФизическиеЛица

Ресурсы:
НомерЛицевогоСчета Строка

Не получается добавить из файла....
14 Wobland
 
17.07.12
06:12
(13) ты все измерения/ресурсы добавляешь в регистр?
15 tg30000
 
17.07.12
06:12
(13)
Нужно по идее все.
16 Wobland
 
17.07.12
06:19
(15) так..
17 tg30000
 
17.07.12
06:34
Нешел такое в нете:
Как добавить запись в непериодический независимый регистр сведений?

НаборЗаписей = РегистрыСведений.ЗначенияСвойств.СоздатьНаборЗаписей();

НаборЗаписей.Отбор.Номенклатура.Установить(ТекущаяНоменклатура);
НаборЗаписей.Отбор.Свойство.Установить(ТекущееСвойство);

НоваяЗапись = НаборЗаписей.Добавить();
НоваяЗапись. Номенклатура = ТекущаяНоменклатура;
НоваяЗапись.Свойство = ТекущееСвойство;
НоваяЗапись.Значение = ТекущееЗначение;

НаборЗаписей.Записать();
18 tg30000
 
17.07.12
06:37
Не пойму принцип добавление ..
Ну получил строки:



Процедура Кнопка1Нажатие(Элемент)
   
   Текст = Новый ТекстовыйДокумент;
   Текст.Прочитать("D:\E.TXT");   //читаем текстовый файл

   МассивПолей =Новый Массив();
   ОбработкаПрерыванияПользователя();
   Для НомерСтроки = 1 По Текст.КоличествоСтрок() Цикл
       
       Стр = Текст.ПолучитьСтроку(НомерСтроки);
       СтрокаРазбор = Новый ТекстовыйДокумент;
       СтрокаРазбор.УстановитьТекст((СтрЗаменить(Стр,";",Символы.ПС)));
       ЛицевойСчет = СтрокаРазбор.ПолучитьСтроку(3);
       Фамилия   = СтрокаРазбор.ПолучитьСтроку(5);
       Имя    = СтрокаРазбор.ПолучитьСтроку(6);
       Отчество  = СтрокаРазбор.ПолучитьСтроку(7);
       Сообщить("Добавлено " + Сч +" Объектов");
       
   КонецЦикла;
   
КонецПроцедуры



теперь нужно полученные данные записать в регистр ...
19 Wobland
 
17.07.12
06:39
(18) пример:

НаборЗаписей = РегистрыСведений.ЗначенияСвойств.СоздатьНаборЗаписей();

НаборЗаписей.Отбор.Номенклатура.Установить(ТекущаяНоменклатура);
НаборЗаписей.Отбор.Свойство.Установить(ТекущееСвойство);

НоваяЗапись = НаборЗаписей.Добавить();
НоваяЗапись. Номенклатура = ТекущаяНоменклатура;
НоваяЗапись.Свойство = ТекущееСвойство;
НоваяЗапись.Значение = ТекущееЗначение;

НаборЗаписей.Записать();
20 tg30000
 
17.07.12
06:43
Я только не понял Отбор в моем случае что будет?
21 Wobland
 
17.07.12
06:45
(20) совокупность измерений
22 tg30000
 
17.07.12
06:55
мда...
23 tg30000
 
17.07.12
08:28
а как сюда добавить так пока и не пойму
24 tg30000
 
17.07.12
11:15
ап..
25 AaNnDdRrEeYy
 
17.07.12
11:37
Запись = РегистрыСведений.ЛицевыеСчетаРаботниковОрганизации.СоздатьМенеджерЗаписи();
//перед записью заполни измерения!
Запись.Организация = ...
Запись.Банк =...
Запись.ФизЛицо  =...      

Запись.НомерЛицевогоСчета = ЛицевойСчет;
       Запись.Записать();
26 tg30000
 
17.07.12
12:15
(25) только последнюю запись записывает...