Здрасвствуйте.
Тело процедуры ПриУдаленииЭлемента(Элемент,Режим) :
Если (Режим=1)
записать
КонецЕсли;
т.е. тело должно срабатывать при непосредственном удалении, но если почему-то не работает. может быть потому , что я сначала помечаю объект на удаление, а только потом удаляю, но он же все равно удаляется?!
Я кая понимаю при удаление помеченных объектов эта процедура не вызывается.
Она вызовется при удаление с помощью функции Удалить(1). В этом случае Режим = 1
z2z5 Написал:
-------------------------------------------------------
> Я кая понимаю при удаление помеченных объектов эта
> процедура не вызывается.
> Она вызовется при удаление с помощью функции
> Удалить(1). В этом случае Режим = 1
Не правильно понимаешь. При удалении с помощью метода Удалить(1) функция ПриУдаленииЭлемента(<?>,) не вызывается.
Она вызывается с параметром режим=1 в том случае, если пользователю разрешено интерактивное удаление объектов.
Всем приветы!
Почему команда Записать(); не вызывает предопределенную ПриЗаписи() ?
Может потому что вызывается из ПриОткрытии() ?
Да, и еще: когда ПриЗаписиПерепроводить(1);, Записать(); из ПриОткрытии() тож не перепроводит...
Спасибо.
При пометке на удаление процедура срабатывает, а при удалении нет. А мне надо, чтобы она срабатывала только при удалении, для этого и Если Режим=1...
Вы что-то ни как не договоритесь, или договариваетесь не о том... Процедуру кидаешь в глобальный модуль. А в ней проверяешь:
1. Если процедура вдруг запустилась с параметром 0, и элемент поменчен на удаление, то значит, пользователь снимает пометку удаления
2. Если процедура запустилась с параметром 0, и элемент не поменчен на удаление, то значит, пользователь устанавливает пометку удаления
3. Если процедура запустилась с параметром 1, и элемент поменчен на удаление, то значит, пользователь решил окончательно угробить базу, вызвав "Удаление помеченных объектов"
4. Если процедура запустилась с параметром 1, и элемент не поменчен на удаление, то значит в базе произошли необратимые процессы
А вообще, такие вопросы не постят на форум, и не ждут ответов в течение нескольких дней, а берут книгу и читают. А я поступаю еще проще: кидаю в глобальник вот это, и смотю, что будет:
Спасибо большое. Но проблема у меня в другом. Процедура ПриУдаленииЭлемента() срабатывает только при пометке на удаление, а при Операции->УдалениеПомеченныхОбъектов нет. Я просто не понимаю почему...
poppy Написал:
-------------------------------------------------------
> Она вызывается с параметром режим=1 в том случае,
> если пользователю разрешено интерактивное удаление
> объектов.
O-Planet Написал:
-------------------------------------------------------
> 3. Если процедура запустилась с параметром 1, и
> элемент поменчен на удаление, то значит,
> пользователь решил окончательно угробить базу,
> вызвав "Удаление помеченных объектов"
> 4. Если процедура запустилась с параметром 1, и
> элемент не поменчен на удаление, то значит в базе
> произошли необратимые процессы
Прежде чем расказывать начинающим сказки - сам попробуй.
laureli Написал:
-------------------------------------------------------
> а при Операции->УдалениеПомеченныхОбъектов нет. Я
> просто не понимаю почему...
sashulyT Написал:
-------------------------------------------------------
> интерактивно - это как?
Для начала нужно разрешить непосредственное удаление объектов: Конфигуратор\Меню\Конфигурация\Открыть конфигурацию\Меню\Действия\Свойства\Задача\Разрешить непосредственное удаление объектов.
Процедура глСброситьПризнакМодифицированности(Конт) Экспорт
// сброс признака модифицированности для формы
Если Конт.Модифицированность()=1 Тогда
НачатьТранзакцию();
Конт.Записать();
ОтменитьТранзакцию();
КонецЕсли;
КонецПроцедуры // СброситьПризнакМодифицированности
Показать
Хорошо, только если у юзверя в правах не выбрано изменение без перепроведения - ругаицца... А надо чтоб тихо...
Сделал примерно следующее: в ПриОткрытии():
Если (Выбран()=1) И (Проведен()=1) Тогда
Провести();
ИначеЕсли (Выбран()=1) И (Проведен()=0) Тогда
Записать();
КонецЕсли;