Имя: Пароль:
1C
1С v8
Помогите пожалуйста с регистром сведений
,
0 Double_Medved
 
26.10.12
14:07
Помогите сделать запись в регистр сведений, пожалуйста. 8.2, Конфигурация Торговля. Есть справочник КартыЛояльности - Нужно сделать в форме справочника кнопку "Активировать" - и по ее нажатии записать в Регистр сведений "КартыЛояльностиСведения" (Измерение - карта(Справочник.КартыЛояльности), ресурсы - сумма накопления(число) и процент скидки(число))Строчку: Карта - открытый элемент справочника, СуммаНакопления = 0, ПроцентСкидки = 3.
Делаю так: В Команде "Активировать", привязанной к этой кнопке:
Процедура Активировать(Команда)
  МенеджерЗаписи = РегистрыСведений.КартыЛояльностиСведения.СоздатьМенеджерЗаписи();
МенеджерЗаписи.Карталояльности = Объект;
МенеджерЗаписи.процентСкидки = 3;
МенеджерЗаписи.СуммаНакопления = 0;
МенеджерЗаписи.Записать();
КонецПроцедуры

Никаких ошибок не выдает, в регистр ничего не записывает. Помогите пожалуйста, что не так?
1 Double_Medved
 
26.10.12
14:10
Регистр независимый
2 pavelul73
 
26.10.12
14:11
Может нужно не активировать а нажатие?
Процедура Кнопка1Нажатие(Элемент)
3 hhhh
 
26.10.12
14:11
МенеджерЗаписи.Карталояльности = Объект.Ссылка;  не?
4 pavelul73
 
26.10.12
14:13
попробуй еще так:
Попытка
Записать();
Исключение
Сообщить(ОписаниеОшибки());
5 SachoZ
 
26.10.12
14:14
(0) смотри (3) =)
6 pessok
 
26.10.12
14:14
(3) плюсцы
7 Zmich
 
26.10.12
14:15
роцедура Активировать(Команда)
  МенеджерЗаписи = РегистрыСведений.КартыЛояльностиСведения.СоздатьМенеджерЗаписи();
НоваяЗапись = МенеджерЗаписи.Добавить();
НоваяЗапись.Карталояльности = Объект;
НоваяЗапись.процентСкидки = 3;
НоваяЗапись.СуммаНакопления = 0;
МенеджерЗаписи.Записать();
КонецПроцедуры
8 Double_Medved
 
26.10.12
14:26
Блин а это должно выполняться на сервере или клиенте?
Наверно на сервере...
По умолчанию Активировать(Команда) прописалась &НаКлиенте,
если писать там этот код по выдает ошибку "Переменная не определена (РегистрыСведений)"
Объясните пожалуйста вот мы привязываем к кнопке на форме команду, она выполняется по идее на клиенте, а записывать в регистр сведений мы должны на сервере, да? А как передать управление на сервер?
9 hhhh
 
26.10.12
14:28
(8) ну там в конфе десятки тысяч примеров, чего вы юморите?
10 Alexander Shevchuck
 
26.10.12
14:31
Если хочешь можешь сделать через набор записей как вариант :

НаборЗаписей = РегистрыСведений.ЗначенияСвойств.СоздатьНаборЗаписей();
   
НаборЗаписей.Отбор.Номенклатура.Установить(ТекущаяНоменклатура);
НаборЗаписей.Отбор.Свойство.Установить(ТекущееСвойство);
   
НоваяЗапись = НаборЗаписей.Добавить();

НоваяЗапись.Номенклатура = ТекущаяНоменклатура;
НоваяЗапись.Свойство = ТекущееСвойство;
НоваяЗапись.Значение = ТекущееЗначение;

НаборЗаписей.Записать();
11 МишКа
 
26.10.12
14:31
(8) Вызвать выполнение процедуры, которая расположена на сервере. А как ты думал?
12 Double_Medved
 
26.10.12
14:32
hhhh, ну извините, я понимаю что вопрос простой, просто че-то не выходит. Если делать так:
&НаКлиенте
Процедура Активировать(Команда)
ЗаписьВРегистр();
КонецПроцедуры

&НаСервере
Процедура ЗаписьВРегистр()
............
.........
.........
КонецПроцедуры;

То вылетает ошибка "Процедура с указанным именем не определена (ЗаписьВРегистр
)"
13 Double_Medved
 
26.10.12
14:33
Как правильно вызвать процедуру выполняющуюся на сервере? Просто процедуры НаКлиенте не видят напрямую процедуры на сервере, так ведь?
14 SachoZ
 
26.10.12
14:38
(13) не так
15 Double_Medved
 
26.10.12
14:39
А как объясните пожалуйста? нужно писать общий модуль? Или как?
16 SachoZ
 
26.10.12
14:40
(15) в (9) самый правильный вариант
17 Double_Medved
 
26.10.12
14:44
Короче понятно что тут могут только сказать не фига лезть на форум сиди сам разбирайся, а на форуме типа только те кто все знает сидят и ничего не говорят.
18 МишКа
 
26.10.12
15:00
(13)
ставь &наСервере перед объявлением процедуры
если лень ставить - не ставь )))))
19 МишКа
 
26.10.12
15:01
+(18) ...в том же модуле