|
Перезапись регистра сведений (Непериодического, Независимого). Помогите разобраться. 🠗 (Волшебник 30.11.2017 09:39) | ☑ | ||
---|---|---|---|---|
0
Румата
30.11.17
✎
08:51
|
В процедуре "ПередЗаписью" в форме элемента справочника "Номенклатуры" хочу данные из реквизита справочника записывать в свойство (регистр сведений "ЗначениеСвойствОбъектов"). Название реквизита "НоменклатурнаяГруппа", название свойства "ВидНоменклатуры".
Вот код : Процедура ПередЗаписью(Отказ) УстановитьСвойствоУНоменклатуры("Вид номенклатуры",НоменклатурнаяГруппа.Наименование); КонецПроцедуры ===================== Процедура УстановитьСвойствоУНоменклатуры(НаименованиеСвойства,ЗначениеСвойства) НашеСвойство = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию(НаименованиеСвойства); НаборЗаписей = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Объект.Установить(ЭтотОбъект.Ссылка); НаборЗаписей.Отбор.Свойство.Установить(НашеСвойство); НаборЗаписей.Прочитать(); НоваяЗапись = НаборЗаписей.Добавить(); НоваяЗапись.Объект = Ссылка; НоваяЗапись.Свойство = НашеСвойство; НоваяЗапись.Значение = Справочники.ЗначенияСвойствОбъектов.НайтиПоНаименованию(ЗначениеСвойства); НаборЗаписей.Записать(Истина); КонецПроцедуры =========================== Вот ошибка : Ошибка при вызове метода контекста (Записать) НаборЗаписей.Записать(Истина); по причине: Запись с такими ключевыми полями существует! ============================ Помогите пожалуйста разобраться, что я не так делаю. Спасибо ! |
|||
1
Mankubus
30.11.17
✎
08:55
|
(0)
НашеСвойство = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию(НаименованиеСвойства); НоваяЗапись = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьНаборЗаписей(); НоваяЗапись.Объект = Ссылка; НоваяЗапись.Свойство = НашеСвойство; НоваяЗапись.Значение = Справочники.ЗначенияСвойствОбъектов.НайтиПоНаименованию(ЗначениеСвойства); НаборЗаписей.Записать(Истина); |
|||
2
Mankubus
30.11.17
✎
08:56
|
(1) то есть так:
НашеСвойство = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию(НаименованиеСвойства); НоваяЗапись = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьМенеджерЗаписей(); НоваяЗапись.Объект = Ссылка; НоваяЗапись.Свойство = НашеСвойство; НоваяЗапись.Значение = Справочники.ЗначенияСвойствОбъектов.НайтиПоНаименованию(ЗначениеСвойства); НаборЗаписей.Записать(Истина); |
|||
3
rphosts
30.11.17
✎
08:57
|
НаборЗаписей.Прочитать();
НоваяЗапись = НаборЗаписей.Добавить(); замени на НаборЗаписей.Прочитать(); НаборЗаписей.Очистить(); НоваяЗапись = НаборЗаписей.Добавить(); |
|||
4
Румата
30.11.17
✎
09:22
|
( rphosts) Ошибки не возникает, но не перезаписывает новые значения. Наверное где-то ещё идет запись в этот регистр ...
|
|||
5
Румата
30.11.17
✎
09:22
|
Сейчас буду разбираться ...
|
|||
6
1sanekmaloi1
30.11.17
✎
09:23
|
Чтение набора вообще накой надо, без Прочитать() все будет работать?
|
|||
7
Волшебник
модератор
30.11.17
✎
09:25
|
Используй менеджер записи или проверяй, что отбор действительно установился
|
|||
8
Mankubus
30.11.17
✎
09:43
|
(4) а мой вариант чем не устроил?
|
|||
9
Румата
30.11.17
✎
10:14
|
( Mankubus) Не рабочий вариант, сейчас подправлю, попробую ...
Что-то не могу разобраться, значения не перезаполняются через набор записей |
|||
10
Румата
30.11.17
✎
10:18
|
Вот так переделал процедуру, но все равно остаются старые значения в регистре... Голову уже сломал...
Процедура УстановитьСвойствоУНоменклатуры(НаименованиеСвойства,ЗначениеСвойства) НашеСвойство = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию(НаименованиеСвойства); НоваяЗапись = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьМенеджерЗаписи(); НоваяЗапись.Объект = Ссылка; НоваяЗапись.Свойство = НашеСвойство; НоваяЗапись.Значение = Справочники.ЗначенияСвойствОбъектов.НайтиПоНаименованию(ЗначениеСвойства); НоваяЗапись.Записать(Истина); КонецПроцедуры |
|||
11
Румата
30.11.17
✎
10:24
|
Господа, помогите пожалуйста... Уже не первый час пытаюсь разобраться )
|
|||
12
Румата
30.11.17
✎
11:36
|
Разобрался. Всему виной Обработка "ЗначенияСвойств" Табличная часть "СвойстваИЗначения" ;)
|
|||
13
Румата
30.11.17
✎
11:44
|
Вот код, может кому-нибудь пригодится :
Процедура УстановитьСвойствоУНоменклатуры(НаименованиеСвойства,ЗначениеСвойства) НашеСвойство = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию(НаименованиеСвойства); НайденнаяСтрока = ОбработкаОбъектЗначенияСвойств.СвойстваИЗначения.Найти(НашеСвойство,"Свойство"); Если НайденнаяСтрока <> Неопределено Тогда НайденнаяСтрока.Значение = Справочники.ЗначенияСвойствОбъектов.НайтиПоНаименованию(ЗначениеСвойства); КонецЕсли; КонецПроцедуры |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |