|
Подскажите в чем ошибка записи регистра сведений | ☑ | ||
---|---|---|---|---|
0
espanol
25.05.12
✎
12:13
|
Процедура ТабличноеПолеБрендыМодельОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
ТекДан = ЭлементыФормы.ТабличноеПолеБренды.ТекущиеДанные; НаборЗаписей = РегистрыСведений.Аксессуары.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Номенклатура.Установить(Ссылка); НаборЗаписей.Отбор.Бренд.Установить(ТекДан.Бренд); НаборЗаписей.Отбор.Модель.Установить(ТекДан.Модель); НаборЗаписей.Отбор.Комплектация.Установить(ТекДан.Комплектация); НаборЗаписей.Отбор.УникальныйИД.Установить(ТекДан.УникальныйИД); НаборЗаписей.Отбор.СвязанныеНоменклатурыИРаботы.Установить(ЭлементыФормы.ТабличноеПолеТоварыРаботы.ТекущиеДанные.СвязанныеТоварыРаботы); НаборЗаписей.Прочитать(); Если НЕ НаборЗаписей.Количество() = 0 Тогда НоваяЗапись = НаборЗаписей[0]; НоваяЗапись.Модель = ВыбранноеЗначение; КонецЕсли; НаборЗаписей.Записать(); КонецПроцедуры {Справочник.Номенклатура.Форма.ФормаЭлемента.Форма(2095)}: Ошибка при вызове метода контекста (Записать) НаборЗаписей.Записать(); по причине: Запись не верна! Значение поля не соответствует установленному отбору: Аксессуары: Металлический телескопический стержень с фонариком и магнитом, Ferrari, Ceed, AMBIENTE, , cc5ae5ad-9359-4e50-8cb1-9623085d4629 (Регистр сведений: Аксессуары; Поле: Модель) |
|||
1
zak555
25.05.12
✎
12:14
|
зачем при выборе что-то писать ?
|
|||
2
espanol
25.05.12
✎
12:16
|
(1) дак просто меняем значение и это новое значение должно взамен старого записаться в строку регистра
|
|||
3
YF
25.05.12
✎
12:16
|
(0) Ты прочитал с одним значением модели, а пишешь с другим
|
|||
4
YF
25.05.12
✎
12:17
|
(2) Удаляй старую запись и пиши новую
|
|||
5
espanol
25.05.12
✎
12:17
|
(4) ясно, так и думал что единственный выход...
|
|||
6
Нуф-Нуф
25.05.12
✎
12:17
|
а чем менеджер записи не угодил?
|
|||
7
YF
25.05.12
✎
12:18
|
(6) А в книжках рекомендуют писать в регистры наборами, хотя мне тоже непонятно зачем наборами, если в них влезает только одна запись
|
|||
8
Нуф-Нуф
25.05.12
✎
12:22
|
(7) менеджер сначала удаляет, а потом пишет, если не ошибаюсь. и он это делает для одной записи
и при записи большого набора это не оптимально. а набор может сразу много... |
|||
9
YF
25.05.12
✎
12:28
|
(8) Дык набор с несколькими записями с отбором фиг прочитаешь, там везде отбор на равенство
|
|||
10
Maxus43
25.05.12
✎
12:30
|
(9) это если отбор по всем измерениям... а пачкой по всей Номенклатура заколебёшся писать менеджером
|
|||
11
YF
25.05.12
✎
12:32
|
(10) А, ну да, если так, то оно самое.
|
|||
12
JesteR
25.05.12
✎
12:36
|
Если хочешь наборами, я предполагаю что тебе придется:
1. установить отбор по старому значению и записать набор, все записи удовлетворяющие отбору удалятся; 2. создать новый набор с отбором по выбранной модели, добавить новые записи и записать. Т.е. по любому сначала удаляешь старые записи, потом добавляешь новые. |
|||
13
espanol
25.05.12
✎
12:41
|
Если НЕ Результат.Количество() = 0 Тогда
Для Каждого Стр Из Результат Цикл НаборЗаписей = РегистрыСведений.Аксессуары.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Номенклатура.Установить(Ссылка); НаборЗаписей.Отбор.Бренд.Установить(Стр.Бренд); НаборЗаписей.Отбор.Модель.Установить(Стр.Модель); НаборЗаписей.Отбор.Комплектация.Установить(Стр.Комплектация); НаборЗаписей.Отбор.УникальныйИД.Установить(Стр.УникальныйИД); НаборЗаписей.Отбор.СвязанныеНоменклатурыИРаботы.Установить(Стр.СвязанныеНоменклатурыИРаботы); НаборЗаписей.Прочитать(); НаборЗаписей.Удалить(0); НаборЗаписей.Записать(); НаборЗаписейНовая = РегистрыСведений.Аксессуары.СоздатьНаборЗаписей(); НоваяЗаписьНовая = НаборЗаписейНовая.Добавить(); НоваяЗаписьНовая.Модель = ВыбранноеЗначение; НоваяЗаписьНовая.Номенклатура = Ссылка; НоваяЗаписьНовая.Бренд = Стр.Бренд; НоваяЗаписьНовая.Комплектация = Стр.Комплектация; НоваяЗаписьНовая.УникальныйИД = Стр.УникальныйИД; НоваяЗаписьНовая.СвязанныеНоменклатурыИРаботы = Стр.СвязанныеНоменклатурыИРаботы; НоваяЗаписьНовая.Количество = Стр.Количество; НаборЗаписейНовая.Записать(); КонецЦикла; КонецЕсли; Попробовал сделать так, не прокатывает, он при записи все данные в регистре затирает... в чем причина? |
|||
14
espanol
25.05.12
✎
12:48
|
А все разобрался
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |