|
Изменение реквизита вновь созданного объекта |
☑ |
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) А вот и вправду, не выспался наверное. Кланяюсь тебе в ноги добрый человек.
Кстати если кому ещё нужно сделал так:
Если Не Копирование Тогда
Форма=РегистрыСведений.Твой.ПолучитьФорму("ЕеИмя");
Форма.РеквизитСправочник = Ссылка;
Форма.Открыть();
Отказ = Истина;
КонецЕсли;
|
|
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший