|
|
|
|
Запись в РС (непериод., незав.) набора записей |
☑ |
0
Nikoss
27.07.12
✎
10:10
|
Есть РС. Измерения: Номенклатура, Поставщик, Характеристика. Ресурс: цена.
Он заполнен так:
Н1 П1 Х1 100
Н1 П2 Х1 200
Н2 П1 Х1 300
Н2 П2 Х2 400
Н2 П3 Х1 500
У меня есть ТЗ, допустим заполнен так(с такими же полями, что и РС):
Н1 П2 Х1 999
Н2 П3 Х1 888
Соответственно хочу загрузить это. Через обход ТЗ и запись менеджеромЗаписи все понятно.
Можно ли сделать набором записей?
Сначала сделал так:
ОтборНомеклатура = ТЗ.Скопировать(, "Номенклатура");
ОтборПоставщик = ТЗ.Скопировать(, "Поставщик");
ОтборХарактеристика = ТЗ.Скопировать(, "Характеристика");
ОтборНомеклатура.Свернуть("Номенклатура");
ОтборПоставщик.Свернуть("Поставщик");
ОтборХарактеристика.Свернуть("Характеристика");
НаборЗаписей = РегистрыСведений.Пробный.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Номенклатура. Установить(ОтборНомеклатура);
НаборЗаписей.Отбор.Поставщик. Установить(ОтборПоставщик);
НаборЗаписей.Отбор.Характеристика. Установить(ОтборХарактеристика);
Для каждого СтрокаТЗ Из ТЗ Цикл
НоваяЗапись = НаборЗаписей.Добавить();
НоваяЗапись.Номенклатура = СтрокаТЗ.Номенклатура;
НоваяЗапись.Поставщик = СтрокаТЗ.Поставщик;
НоваяЗапись.Характеристика = СтрокаТЗ.Характеристика;
НоваяЗапись.Цена = 2312;
КонецЦикла;
НаборЗаписей.Записать();
Но оказалось что нельзя в отбор передавать список, вид сравнения только равно можно.
|
|
1
Maxus43
27.07.12
✎
10:19
|
правильно оказалось,
для такого типа регистра менеджер записи юзай
|
|
2
Nikoss
27.07.12
✎
12:08
|
Просто если из ТЗ 10к записей нужно записать, это же каждый раз обращение к БД будет. А набором как бы один раз все.
|
|
3
hhhh
27.07.12
✎
12:12
|
(2) ну сделай
НачатьТранзакцию()
....
Зафиксировать транзакцию()
тоже будет один раз обращение.
|
|
4
Галахад
гуру
27.07.12
✎
12:16
|
НД=РегистрыСведений.ТвойРегистр.СоздатьНаборЗаписей();
ТЗ=НД.Выгрузить();
Для каждой Стр из ТЗ
тут правим
КонецЦикла
НД.Загрузить(ТЗ);
НД.Записать()
|
|
AdBlock убивает бесплатный контент. 1Сергей