Создал свою форму для типового регистра КонтактнаяИнформация стандартным конструктором. При этом на форме всего 1 стандартный реквизит Запись типа РегистрСведенийМенеджерЗаписи.
Вызываю форму так
Отбор = Новый Структура;
Отбор.Вставить("Объект",Объект.Ссылка);
Отбор.Вставить("Тип",Элементы.КонтактИнф.ТекущиеДанные.Тип);
Отбор.Вставить("Вид",Элементы.КонтактИнф.ТекущиеДанные.Вид);
ОткрытьФормуМодально("РегистрСведений.КонтактнаяИнформация.ФормаЗаписи",Отбор,ЭтаФорма);
На форме использую такой код:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| КонтактнаяИнформация.Объект,
| КонтактнаяИнформация.Тип,
| КонтактнаяИнформация.Вид,
| КонтактнаяИнформация.Представление,
...
| КонтактнаяИнформация.Комментарий,
| КонтактнаяИнформация.ЗначениеПоУмолчанию
|ИЗ
| РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
|ГДЕ
| КонтактнаяИнформация.Объект = &Объект
| И КонтактнаяИнформация.Тип = &Тип
| И КонтактнаяИнформация.Вид = &Вид";
Запрос.УстановитьПараметр("Вид", Параметры.Вид);
Запрос.УстановитьПараметр("Объект", Параметры.Объект);
Запрос.УстановитьПараметр("Тип", Параметры.Тип);
Результат = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = Результат.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Запись.Вид=ВыборкаДетальныеЗаписи.Вид;
Запись.Тип=ВыборкаДетальныеЗаписи.Тип;
Запись.Объект=ВыборкаДетальныеЗаписи.Объект;
Запись.Представление=ВыборкаДетальныеЗаписи.Представление;
...
КонецЦикла;
НО таким образом при любом редактировании записи при попытке сохранить данные ругается, что такая запись уже существует.
Если же пытаюсь при создании на сервере задать значением реквизит Запись, то ругается "Нельзя изменять поле, содержащее объект данных "
Собственно, вопрос такой: Как открыть правильно спозиционированную форму записи?
Сообщение отредактировал pablo - 04.09.12, 13:53
Правильно поставленный вопрос содержит до 90% ответа.