Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / [игнор отключен] [закрыт для гостей] / Странные проблемы с регистром / 7 сообщений из 7, страница 1 из 1
22.04.2011, 11:07
    #37228172
Заварник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странные проблемы с регистром
День добрый.
Первый раз пытаюсь работать с регистром а в частности записать данные в регистр из экселевского файла примерно такого вида.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
LED 22" SAMSUNG UE-22C4000PW		
Аудио	                     Авторегулировка громкости	
Аудио	                     Акустическая система	                     два динамика
Аудио	                     Мощность звука	                             6 Вт (2х3 Вт)
Аудио	                     Сабвуфер	
Аудио	                     Стереозвук	                                     есть
...                                  ...                                                     ...
Электропитание	             Потребляемая мощность	                     50

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
Файлы = НайтиФайлы(ЭлементыФормы.ПолеВвода1.Значение,"*.xls*");
Для каждого Файл из Файлы цикл
	Попытка
		Эксель = Новый COMОбъект("Excel.Application");
	Исключение
		Сообщить(ОписаниеОшибки());
		Возврат;
	КонецПопытки;
	Номенклатура = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул", Файл.ИмяБезРасширения);
	ОбъектНом = Номенклатура.ПолучитьОбъект();
	Книга = Эксель.WorkBooks.Open(Файл.ПолноеИмя);
	Лист = Книга.WorkSheets( 1 );
	ВсегоКолонок = Лист.Cells( 1 , 1 ).SpecialCells( 11 ).Column;
	ВсегоСтрок = Лист.Cells( 1 , 1 ).SpecialCells( 11 ).Row;
	Для Строка =  2  По ВсегоСтрок Цикл 
    	Для Колонка =  1  По ВсегоКолонок Цикл
			Если Колонка =  1  тогда
				ГруппаСвойств = Справочники.ГруппаСвойств.НайтиПоНаименованию(СокрЛП(Лист.Cells(Строка,Колонка).Value));
			КонецЕсли;
			Если Колонка =  2  тогда
				Свойство = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию(СокрЛП(Лист.Cells(Строка,Колонка).Value));
			КонецЕсли;
			Если Колонка =  3  тогда
				Значение = СокрЛП(Лист.Cells(Строка,Колонка).Value);
			КонецЕсли;
		КонецЦикла;
	Если не Значение = "" тогда
		Набор = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьНаборЗаписей();
		НоваяЗапись = Набор.Добавить();
		НоваяЗапись.Объект = ОбъектНом.Ссылка;
		НоваяЗапись.Свойство = Свойство.Ссылка;
		НоваяЗапись.ГруппаСвойств = ГруппаСвойств.Ссылка;
		НоваяЗапись.Значение = Значение;
		Набор.Записать();
	КонецЕсли;
	КонецЦикла;
КонецЦикла;
Эксель.Application.Quit();
КонецПроцедуры

Но из более чем 50 строк в регистр записывается только последняя.
Почему не могу понять.

Спасибо
...
Рейтинг: 0 / 0
22.04.2011, 11:10
    #37228180
Господин ПЖ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странные проблемы с регистром
регистры сведений не подчиненные регистратору обычно пишут через менеджер записи...
...
Рейтинг: 0 / 0
22.04.2011, 11:20
    #37228199
Заварник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странные проблемы с регистром
Господин ПЖрегистры сведений не подчиненные регистратору обычно пишут через менеджер записи...

Спасибо большое, все получилось.
Вопрос, решен.
...
Рейтинг: 0 / 0
22.04.2011, 11:31
    #37228229
pail
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странные проблемы с регистром
Заварник,

Надеюсь, вы не на живой базе упражнялись?
потому что ваш код очищает ВЕСЬ регистр, оставляя ровно одну запись - последнюю.
Так работает
Код: plaintext
НаборЗаписей.Записать(); 
без установленного отбора
...
Рейтинг: 0 / 0
22.04.2011, 11:38
    #37228254
Господин ПЖ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странные проблемы с регистром
pailЗаварник,

Надеюсь, вы не на живой базе упражнялись?
потому что ваш код очищает ВЕСЬ регистр, оставляя ровно одну запись - последнюю.
Так работает
Код: plaintext
НаборЗаписей.Записать(); 
без установленного отбора

+100

осторожнее с наборами...
...
Рейтинг: 0 / 0
22.04.2011, 11:40
    #37228262
Заварник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странные проблемы с регистром
pailЗаварник,

Надеюсь, вы не на живой базе упражнялись?
потому что ваш код очищает ВЕСЬ регистр, оставляя ровно одну запись - последнюю.
Так работает
Код: plaintext
НаборЗаписей.Записать(); 
без установленного отбора

Pail нет, база была тестовой, да и регистр и так был пустой.
...
Рейтинг: 0 / 0
22.04.2011, 12:12
    #37228359
HoBTID
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странные проблемы с регистром
ЗаварникГосподин ПЖрегистры сведений не подчиненные регистратору обычно пишут через менеджер записи...

Спасибо большое, все получилось.
Вопрос, решен.
При этом не стоит забывать, что обработчики модуля набора записей регистра ПередЗаписью и ПриЗаписи будут вызваны 2 раза :
1-й раз для пустого набора записей
и 2-й раз для набора из одной записи.

Поэтому, если пишется много данных, и есть хотя бы 1 из этих обработчиков,
более оптимально использовать Набор записей , с установленными отборами конечно, а не Менеджер записи.
...
Рейтинг: 0 / 0
Форумы / [игнор отключен] [закрыт для гостей] / Странные проблемы с регистром / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]