|
Запись в РС (непериод., незав.) набора записей | ☑ | ||
|---|---|---|---|---|
|
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
|
НД=РегистрыСведений.ТвойРегистр.СоздатьНаборЗаписей();
ТЗ=НД.Выгрузить(); Для каждой Стр из ТЗ тут правим КонецЦикла НД.Загрузить(ТЗ); НД.Записать() |
| Форум | Правила | Описание | Секции | Поиск |