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