Имя: Пароль:
1C
1С v8
УФ. Узнать владельца формы.
, ,
0 Перелетный косяк
 
15.08.14
06:39
Доброго дня.
Задача вроде тривиальная, но затупил.
Есть справочник «ОбъектыНедвижимости» и РС «Арендаторы», у которого есть измерение «ОбъектНедвижимости».
Есть форма элемента справочника «ОбъектНедвижимости». На нее кинут ДинСписок (ПроизвольныйЗапрос), у которого основная таблица = РС «Арендаторы».
Соответственно через кнопку «создать» командной панели динсписка я могу создавать запись РС.
Вопрос: Как при создании РС увидеть владельца, т.е. тот элемент номенклатуры, из открытой формы которого была нажата кнопка "создать"?
1 Перелетный косяк
 
15.08.14
06:54
Может, кто-нибудь ткнет в то место типовых (УТ11, УНФ) где сие реализовано?
2 SergeyKB
 
15.08.14
07:10
на уровне модуля набора записей ловишь

// Процедура - обработчик события "ОбработкаЗаполнения".
//
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)

    ОбработкаЗаполненияРегистраСведений(ЭтотОбъект, ДанныеЗаполнения, СтандартнаяОбработка);

КонецПроцедуры

//Заполнение служебных реквизитов по умолчанию сведениями
Процедура ОбработкаЗаполненияРегистраСведений(Источник, ДанныеЗаполнения = Неопределено, СтандартнаяОбработка = Ложь) Экспорт
    
    Для каждого ЗаписьНабора Из Источник Цикл
        
        Если ТипЗнч(ДанныеЗаполнения) = Тип("Структура") тогда
            Для Каждого Элемент Из ДанныеЗаполнения Цикл
                Попытка
                    ЗаписьНабора[Элемент.Ключ] = Элемент.Значение;
                Исключение
                КонецПопытки;    
            КонецЦикла;    
        КонецЕсли;
        
        Попытка
            ЗаписьНабора.Пользователь = ПараметрыСеанса.ТекущийПользователь;    
        Исключение
            Продолжить;
        КонецПопытки;
        
    КонецЦикла;
    
КонецПроцедуры
3 Перелетный косяк
 
15.08.14
07:27
(2) ДанныеЗаполнения = Неопределено
4 Перелетный косяк
 
15.08.14
07:31
Если б я его вызывал "Своей" кнопкой, то ессно мог бы передать нужные параметры, но я вызываю создание записи РС штатной кнопкой с панели, а она ничего не передает в РС...(
5 butterbean
 
15.08.14
07:44
у реквизита поставь флажок "Заполнять из данных заполнения"
6 Перелетный косяк
 
15.08.14
08:01
(5) см. (3)
ДанныеЗаполнения в модуль РС не приходят
7 SergeyKB
 
15.08.14
08:10
>Есть форма элемента справочника «ОбъектНедвижимости». На нее кинут ДинСписок (ПроизвольныйЗапрос), у которого основная таблица = РС «Арендаторы».

Есть 2 варианта связи подчиненных спиской
1. по старинке как в 8.1 размещать на форме элемента список

2. в регистре сведений на измерение установить признак Ведущее (Запись будет подчинена объектам, записываемым в данном измерении) тем самым в УФ регистр будет доступен через меню Перейти и командный интерфейс сформирует всё сам
8 SergeyKB
 
15.08.14
08:11
я так понимаю вы сделали по старинке с 8.1 это на форме справочника разместили динамический список и через параметр запроса наложили отбор по текущему элементу
9 SergeyKB
 
15.08.14
08:11
и если из этого списка создавать элемент то параметр текущего отбора не будет доступен
10 SergeyKB
 
15.08.14
08:13
Если я всё правильно думаю то варианта 2

1. Обрабатывать события дин. списка и ловить при добавлении и делать всё самому ... формировать ключ записи вызывать форму ...

2. Изменить запрос дин. списка отказаться от отбора через параметр запроса

Отбор накладывать через КоллекциюОтбор дин. списка типо так


&НаСервере
Процедура УстановитьОтборСвязанныхСписков(Ссылка)

    КоллекцияОтбора = ЗначенияВеличинПараметровЗамеров.Отбор.Элементы;
    
    Если КоллекцияОтбора.Количество() = 0 тогда
        ОтборПоСсылке = КоллекцияОтбора.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
        ОтборПоСсылке.Использование = Истина;
        ОтборПоСсылке.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
        ОтборПоСсылке.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Параметр");
    Иначе
        ОтборПоСсылке = КоллекцияОтбора[0];
    КонецЕсли;
    
    ОтборПоСсылке.ПравоеЗначение   = Ссылка;
    
КонецПроцедуры
11 SergeyKB
 
15.08.14
08:14
тем самым при создании новой записи регистра, ДанныеЗаполнения не будут = неопределено
Ошибка? Это не ошибка, это системная функция.