Имя: Пароль:
1C
1С v8
РегистрСведенийКлючЗаписи Проверка: Сервер
0 sergei123654
 
25.08.11
12:15
Добрый день. Пишу:
&НаСервере
Функция ВернутьКлючЗаписи(Пользователь, Настройка, Знаечние) Экспорт
   
   СтруктураКлючаЗаписи = Новый Структура();
   СтруктураКлючаЗаписи.Вставить("Пользователь",Пользователь);
   СтруктураКлючаЗаписи.Вставить("Настройка",Настройка);
   СтруктураКлючаЗаписи.Вставить("Значение",Знаечние);

   КлючЗаписи = Новый РегистрСведенийКлючЗаписи.НастройкиПользователей(СтруктураКлючаЗаписи);
   
   Возврат КлючЗаписи;
   
КонецФункции  

&НаКлиенте
Процедура ДеревоНастроекПередНачаломИзменения(Элемент, Отказ)
   Отказ = Истина;

       КлючЗаписи = ВернутьКлючЗаписи(Объект.Ссылка,Элемент.ТекущиеДанные.Наименование,Элемент.ТекущиеДанные.ТипЗначения);
       
       Если Не КлючЗаписи.Пустой() Тогда
           ПараметрыФормы = Новый Структура("Ключ",КлючЗаписи);
           Форма = ПолучитьФорму("РегистрСведений.ДокументыФизическихЛиц.ФормаЗаписи", ПараметрыФормы);
           Форма.ОткрытьМодально();
       КонецЕсли;


   Элементы.ДеревоНастроек.Обновить();
   
КонецПроцедуры


Выдает ошибку -
{Справочник.Пользователи.Форма.ФормаЭлемента.Форма(9,21)}: Тип не определен (РегистрСведенийКлючЗаписи.НастройкиПользователей)
   КлючЗаписи = Новый <<?>>РегистрСведенийКлючЗаписи.НастройкиПользователей(СтруктураКлючаЗаписи); (Проверка: Сервер)


Подскажите, кто знает, кгде ошибаюсь?
1 sergei123654
 
25.08.11
12:42
Ааааап!

что то я не то употребляю что ли.

СП пишет
РегистрСведенийКлючЗаписи.<Имя регистра сведений> (InformationRegisterRecordKey.<Имя регистра сведений>)
Свойства:

<Имя измерения> (<Dimension name>)
Период (Period)
Регистратор (Recorder)

Методы:

Пустой (IsEmpty)

Конструкторы:

Основной

Описание:

Набор значений, однозначно идентифицирующих запись регистра. Объект используется в тех случаях, когда необходимо сослаться на определенную запись. Например, он выступает в качестве значения свойства ТекущаяСтрока табличного поля, отображающего список записей регистра.
Важно! Данный объект нельзя использовать как устойчивый идентификатор записи, например, как ссылку для элементов справочника. Фактически имеет смысл только пока запись есть и не перезаписывалась.

Доступность:

Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение.

Незнаете почему он на сервер ругается?
2 Mort
 
25.08.11
12:46
Внимательно читаем СП про конструкторы и создание ключа записи. Сервер тут ни при чем.
3 Mort
 
25.08.11
12:49
Гм. В СП тоже жгут. написали одну форму "Новый", тут же в описании указание что нужно использовать другую форму. Кстати в СП 8.2 не в первый раз встречаю. Недавно тоже проскакивало.
4 sergei123654
 
25.08.11
12:55
(2) у вас случайно нет кода для примера?

Что за конструкторы?
5 Mort
 
25.08.11
13:00
Из СП:

Описание:

Создает новый объект на основе переданных параметров.
Для типов метаданных нужно использовать функциональную форму оператора Новый(<Тип>[, <ПараметрыКонструктра>]).


Получается:

Новый (Тип("РегистрСведенийКлючЗаписи.НастройкиПользователей"),СтруктураКлючаЗаписи)
6 sergei123654
 
25.08.11
13:09
(5) большое спасибо

все отработало на клиенте так -

       СтруктураКлючаЗаписи = Новый Структура();
       СтруктураКлючаЗаписи.Вставить("Пользователь",Объект.Ссылка);
       СтруктураКлючаЗаписи.Вставить("Настройка",Элемент.ТекущиеДанные.Наименование);
       
       Массив = Новый Массив;
       Массив.Добавить(СтруктураКлючаЗаписи);
       
       КлючЗаписи = Новый ("РегистрСведенийКлючЗаписи.НастройкиПользователей", Массив);
       
       Если Не КлючЗаписи.Пустой() Тогда
           ПараметрыФормы = Новый Структура("Ключ",КлючЗаписи);
           Форма = ПолучитьФорму("РегистрСведений.НастройкиПользователей.ФормаЗаписи", ПараметрыФормы);
           Форма.ОткрытьМодально();
       Иначе
           Сообщение = Новый СообщениеПользователю;
           Сообщение.Текст = "Запись не найдена.";
           Сообщение.Сообщить();
       КонецЕсли;


как то весело все это...