|
Подскажите пожалуйста с записью объекта |
☑ |
0
Double_Medved
28.10.12
✎
22:55
|
1с 8.2, Торговля. Есть Справочник "КартыЛояльности", в элементе есть кнопка "Активировать", при нажатии которой заносятся некоторые данные в регистр сведений. Необходимо сделать чтобы Активация проходила только один раз, то есть при повторном нажатии на "Активировать" уже не писать никакие данные, а сказать "Карта уже активирована" Для этого сделал реквизит типа булево "Активирована" - должен становиться Истина при первой Активации и так сохраняться. Но он почему-то после закрытия не сохраняется, наверно я как-то не так его записываю.. Помогите плиз
Если Объект.Активирована = Истина
Тогда Сообщить("Карта уже активирована")
Иначе ЗаписьРегистр();
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ЗаписьРегистр()
МенеджерЗаписи = РегистрыСведений.КартыЛояльностиСведения.СоздатьМенеджерЗаписи();
МенеджерЗаписи.КартаЛояльности = Объект.Ссылка;
МенеджерЗаписи.ПроцентСкидки = 3;
МенеджерЗаписи.СуммаНакопления = 0;
Попытка
МенеджерЗаписи.Записать();
Исключение
Сообщить(Описаниеошибки());
КонецПопытки;
Объект.Активирована = Истина;
КонецПроцедуры;
|
|
1
Double_Medved
28.10.12
✎
22:55
|
Должно наверно быть что-то типа Объект.Записать()?
|
|
2
Нуф-Нуф
29.10.12
✎
07:13
|
+1 к записать, но подход в целом не верный. Дополнительный реквизит не требуется. Можешь при попытке активировать смотреть в регистр и при наличии нужных записей выдавать ошибку
|
|
3
0xFFFFFF
29.10.12
✎
07:27
|
Да, нафик доп. реквизит. На то он и РС, чтобы различные состояния объекта реквизитами не плодить.
|
|
4
Double_Medved
29.10.12
✎
12:37
|
Спасибо за советы, так и сделал - записываю только если нет записи по этой карте, то есть если она не была активирована.Реквизит убрал
|
|