Имя: Пароль:
1C
1С v8
Изменение реквизита вновь созданного объекта
0 Powerfool
 
24.01.13
05:52
Доброго всем времени суток! Проблема: пишу на 8ке (8.2.17.143) и потребовалось мне, чтобы справочник был связан с регистром сведений (связь впринципе аналогична связи записей с документами регистраторами). На форме элемента этого справочника я завел ТП и вываливаю туда список записей этого регистра с отбором по элементу справочника. Кроме этого завел для ТП ком. панель со стандартными кнопками (добавить, копировать и т.д.) и теперь хочу, чтобы при нажатии кнопки "добавить" у меня открывалась форма регистра а в ней уже проставлялось значение этого справочника. Пробовал уже через Владельца формы регистра пролезть, но там ТП, а как форму на которой расположено ТП получить не знаю.
1 SeraFim
 
24.01.13
06:35
наоборот:
На форме, на которой расположено ТП в событии ПередНачаломДобавления - получаешь нужную форму, заполняешь всё, что нужно, показываешь. СтандартнуюОбработку - отключаешь
2 Powerfool
 
24.01.13
07:10
(1)
"наоборот:
На форме, на которой расположено ТП в событии ПередНачаломДобавления - получаешь нужную форму"

Как получить нужную форму? В Процедуре ПередНачаломДобавления есть только два параметра "Отказ" и "Копирование", а где взять форму?
3 Рэйв
 
24.01.13
07:12
(2)
Форма=РегистрыСведений.Твой.Получитьформу("ЕеИмя");
Форма.Открыть();
4 Powerfool
 
24.01.13
07:32
(3) Предложение понятно и имеет место быть. Да вот только одна беда, теперь мне везде прийдется прописывать вручную процедуру добавления и копирования (и бог знает что ещё). Я думал может быть есть способ более или менее автоматизированный? (например поймать форму или объект в памяти, создание которого я только что инициализировал и задать ему значение реквизита)
5 Рэйв
 
24.01.13
07:40
(4)Поставь для регистра форму записи какую надо и не парься.
При добавлении она автоматом откроется с заполненным влдельцем,т.к. у тебя установлен отбор
6 Powerfool
 
24.01.13
07:42
(1) (3) Да и кстати фокус "СтандартнаяОбработка = Ложь;" тут не будет работать, ибо такого параметра процедура неимеет. Это нада переписывать стандартные процедуры добавления (которая выполняет при нажатии кнопки (+) ), копирования и т.д.
7 Powerfool
 
24.01.13
07:43
(5) Это работает только если в ТП с типом РегистрСведенийСписок сделать связь по регистратору. А регистратора у регистра нет. У этого регистра есть "регистраторозаменитель" в виде справочника.
8 Рэйв
 
24.01.13
07:51
(6)
Отказ=Истина

Что ты как первый раз замужем...
9 Рэйв
 
24.01.13
07:52
Форма=РегистрыСведений.Твой.Получитьформу("ЕеИмя");
Форма.РеквизитСправочник = Ссылка;
Форма.Открыть();
10 Powerfool
 
24.01.13
08:03
(8) А вот и вправду, не выспался наверное. Кланяюсь тебе в ноги добрый человек.
Кстати если кому ещё нужно сделал так:
Если Не Копирование Тогда
Форма=РегистрыСведений.Твой.ПолучитьФорму("ЕеИмя");
Форма.РеквизитСправочник = Ссылка;
Форма.Открыть();
Отказ = Истина;
КонецЕсли;
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший