Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Форма записи для регистра сведений
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование управляемых форм 1С 8.2
pablo
Создал свою форму для типового регистра КонтактнаяИнформация стандартным конструктором. При этом на форме всего 1 стандартный реквизит Запись типа РегистрСведенийМенеджерЗаписи.
Вызываю форму так
    Отбор = Новый Структура;
    Отбор.Вставить("Объект",Объект.Ссылка);
    Отбор.Вставить("Тип",Элементы.КонтактИнф.ТекущиеДанные.Тип);
    Отбор.Вставить("Вид",Элементы.КонтактИнф.ТекущиеДанные.Вид);
    ОткрытьФормуМодально("РегистрСведений.КонтактнаяИнформация.ФормаЗаписи",Отбор,ЭтаФорма);

На форме использую такой код:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    КонтактнаяИнформация.Объект,
        |    КонтактнаяИнформация.Тип,
        |    КонтактнаяИнформация.Вид,
        |    КонтактнаяИнформация.Представление,
...
        |    КонтактнаяИнформация.Комментарий,
        |    КонтактнаяИнформация.ЗначениеПоУмолчанию
        |ИЗ
        |    РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
        |ГДЕ
        |    КонтактнаяИнформация.Объект = &Объект
        |    И КонтактнаяИнформация.Тип = &Тип
        |    И КонтактнаяИнформация.Вид = &Вид";

    Запрос.УстановитьПараметр("Вид", Параметры.Вид);
    Запрос.УстановитьПараметр("Объект", Параметры.Объект);
    Запрос.УстановитьПараметр("Тип", Параметры.Тип);

    Результат = Запрос.Выполнить();

    ВыборкаДетальныеЗаписи = Результат.Выбрать();

    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        Запись.Вид=ВыборкаДетальныеЗаписи.Вид;
        Запись.Тип=ВыборкаДетальныеЗаписи.Тип;
        Запись.Объект=ВыборкаДетальныеЗаписи.Объект;
        Запись.Представление=ВыборкаДетальныеЗаписи.Представление;
...    
    КонецЦикла;

НО таким образом при любом редактировании записи при попытке сохранить данные ругается, что такая запись уже существует.
Если же пытаюсь при создании на сервере задать значением реквизит Запись, то ругается "Нельзя изменять поле, содержащее объект данных "
Собственно, вопрос такой: Как открыть правильно спозиционированную форму записи?
pumbaE
Непонятно где у вас определяется КлючЗаписиРегистра?
Пример работы с записью можно посмотреть или в УНФ или в БСП.


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

Выкладываю код, поскольку на картинке не видно содержимого функции ПолучитьКлючЗаписи
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.