Имя: Пароль:
1C
1С v8
Программно изменить реквизит справочника 8.2
0 shamut
 
27.05.12
20:41
Добрый день. Я начинающий программист, прошу помощи. Как изменить реквизит справочника, делаю так:


&НаКлиенте
Процедура Кнопка(Команда)
   ТекОбъект = Объект;
   ЭтаФорма.абвНаСервере(ТекОбъект);
КонецПроцедуры


&НаСеврере  
Процедура абвНаСервере(ТекОбъект)
   ГСЧ = Новый ГенераторСлучайныхЧисел(255);
   СлучЧисло = ГСЧ.СлучайноеЧисло(10000001,99999999);
   
   
   рек = РеквизитФормыВЗначение(ТекОбъект.КодКарты);
   
   рек = СлучЧисло;
КонецПроцедуры

1. Как правильно вызвать процедуру в модуле формы? Ругается процедура или функция не определена.
2. Как обратиться к реквизиту справочника для его изменения?
Поиск по форуму не помог(
1 m-serg74
 
27.05.12
20:59
может вместо ЭтаФорма.абвНаСервере(ТекОбъект); просто абвНаСервере(ТекОбъект);
2 Shrike
 
27.05.12
21:02
&НаСеврере -> &НаСервере
3 shamut
 
27.05.12
21:06
(2)исправил, свою идиотскую ошибку
Теперь вот так вот ругается

{Справочник.Карты.Форма.ФормаЭлемента.Форма(14)}: Ошибка при вызове метода контекста (РеквизитФормыВЗначение): Несоответствие типов (параметр номер '1')
   рек = РеквизитФормыВЗначение(ТекОбъект.КодКарты);
по причине:
Несоответствие типов (параметр номер '1')
4 Mort
 
27.05.12
21:07
На сервер не надо ходить:

&НаКлиенте
Процедура Кнопка(Команда)

   ГСЧ = Новый ГенераторСлучайныхЧисел(255);
   Объект.ТвойРеквизит = ГСЧ.СлучайноеЧисло(10000001,99999999);

КонецПроцедуры
5 shamut
 
27.05.12
21:10
Спасибо большое)помогло
6 shamut
 
27.05.12
21:19
Почему генератор выдает всегда одно и тоже число??
7 Smallrat
 
27.05.12
21:52
(6) зато случайное
8 Smallrat
 
27.05.12
21:58
(6) Запихни в конструктор генератора что-нибудь постоянно меняющееся - например Новый ГенераторСлучайныхЧисел(Секунда(ТекущаяДата()))
9 shamut
 
27.05.12
22:33
(8) Сделал, как ты сказал, ничего не поменялось
10 Smallrat
 
27.05.12
22:40
(9) это для каких-нибудь интерактивных действий - когда время будет разное. Если речь идет о чем-нибудь автоматическом - когда нужно в одну секунду сгенерировать много разных чисел тогда не знаю - надо подумать - можно например в качестве начального значения инициализации использовать время, а в качестве следущего значения инициализации - предыдущее случайное значение. Сдается мне, правда, что я велосипед изобретаю.
11 hhhh
 
27.05.12
22:44
(9) ну вот здесь

   ГСЧ = Новый ГенераторСлучайныхЧисел(255);
   Объект.ТвойРеквизит = ГСЧ.СлучайноеЧисло(10000001,99999999);


ты похоже бредишь.
надо

ГСЧ = Новый ГенераторСлучайныхЧисел(255);

создать один раз в начале. А ты при каждом нажатии кнопки его создаешь.
12 Smallrat
 
27.05.12
22:48
ой млин, вот я туплю - (11) прав
правда получать будешь ты всегда одну и туже последовательность
13 shamut
 
28.05.12
14:33
(11) в какое место лучше вставить генератор случайных чисел, чтобы он один раз вызывался?
14 0_Serg_0
 
28.05.12
14:38
(13) приоткрытии ??
15 shamut
 
28.05.12
15:07
как передать значение ГСЧ в процедуру при открытии?
16 shamut
 
28.05.12
15:37
*как передать значение ГСЧ в процедуру при нажатии кнопки?
17 shamut
 
29.05.12
01:25
Помогите, пожалуйста..Совсем в ступоре из-за этого
18 H A D G E H O G s
 
29.05.12
01:31
Гейтс мой.
Че мешает сделать так?

ГСЧ=Новый ГенераторСлучайныхЧисел;
Сообщить(ГСЧ.СлучайноеЧисло(1,100));

Хоть изредка читайте СП.
Нееее, вот!
http://www.forum.mista.ru/users_photo/19975.jpg