|
УстановитьПометкуУдаления и ПометкаУдаления = Истина | ☑ | ||
---|---|---|---|---|
0
Bibr
15.03.18
✎
10:32
|
Тема так, для общего образования.
ДокОбъект.ПометкаУдаления = Истина; и ДокОбъект.УстановитьПометкуУдаления(Истина); Есть разница? Зачем нужен метод, который просто устанавливает свойство? Предполагаю, что для автоматического отрабатывания событий, типа приудалении приотменепроведении. Это так или есть ещё какие-то другие нюансы? |
|||
1
Lexey_
15.03.18
✎
10:35
|
(0) УстановитьПометкуУдаления(<ПометкаУдаления>, <ВключаяПодчиненные>)
|
|||
2
hhhh
15.03.18
✎
10:36
|
(0) ну основной нюанс: если
ДокОбъект.ПометкаУдаления = Истина; тогда ты еще должен написать ДокОбъект.Записать(); |
|||
3
Малыш Джон
15.03.18
✎
11:04
|
(0) а почитать СП?
|
|||
4
Малыш Джон
15.03.18
✎
11:06
|
(0) и встречный вопрос: а почему мы пишем
Док.Записать(РежимЗаписиДокумента.Проведение); а не Док.Проведен = Истина; Док.Записать(); ? |
|||
5
Вафель
15.03.18
✎
11:09
|
(4) Это разные действия
|
|||
6
Вафель
15.03.18
✎
11:10
|
Скорее всего это наследие 7.7
|
|||
7
Ненавижу 1С
гуру
15.03.18
✎
11:11
|
(4) во втором случае не сработает событие ОбработкаПроведения
|
|||
8
Serg_1960
15.03.18
✎
11:12
|
(3) Лучше не СП, а ИТС почитать - там более подробно:
"Особенности использования поля "ПометкаУдаления" объектов базы данных" https://its.1c.ru/db/metod8dev#content:2711:hdoc "...УстановитьПометкуУдаления(). Этот метод выполняет установку свойства в указанное в параметре значение, запись объекта, а также дополнительные действия... Однако следует учитывать, что эти действия являются только рекомендованным типовым способом выполнения пометки на удаление. Они не являются обязательными... разработчик может при необходимости выполнить пометку удаления без дополнительных действий." |
|||
9
Ненавижу 1С
гуру
15.03.18
✎
11:13
|
//вот это вылетит с ошибкой, если документ проведен:
ДокОбъект.ПометкаУдаления = Истина; ДокОбъект.Записать(); //а вот это нормально сработает: ДокОбъект.УстановитьПометкуУдаления(Истина); |
|||
10
Вафель
15.03.18
✎
11:14
|
ДокОбъект.Проведен = Ложь;
ДокОбъект.ПометкаУдаления = Истина; ДокОбъект.Записать(); Вот так не вылетит |
|||
11
Ненавижу 1С
гуру
15.03.18
✎
11:14
|
(10) но не сработает ОбработкаУдаленияПроведения
|
|||
12
Bibr
15.03.18
✎
11:15
|
(1) в документе ВключаяПодчиненные нет.
(3) так почитал :) В целом понятно. Если отработка событий не нужна/вредна, то через реквизит, в противном через метод |
|||
13
Ц_У
15.03.18
✎
11:17
|
ДокОбъект.Удалить() и не нужно инсинуаций ...
|
|||
14
Serg_1960
15.03.18
✎
11:19
|
(4) и (9) В платформе можно отключить контроль (преславутый ОбменДанными.Загрузка = Истина) и тогда можно иметь проведенный документ (Проведен = Истина) без движений или наоборот - движения могут быть сохранены/созданы у непроведенного документа.
Чисто теоретически (и практически) документы и их движения в регистрах, с точки зрения платформы, автономны и независимы друг от друга. Кто работает с РИБ - тот в курсе, а остальные - слышали :) |
|||
15
Ненавижу 1С
гуру
15.03.18
✎
11:21
|
(14) ОбменДанными.Загрузка = Истина
тут вообще не причем, все это можно делать и без него |
|||
16
Serg_1960
15.03.18
✎
11:24
|
(15) Это одна и та же сторона медали. Разработчик самостоятельно решает нужно или нет использовать контроль со стороны платформы и/или конфигурации.
|
|||
17
Малыш Джон
15.03.18
✎
11:28
|
(5) это я понимаю. это для ТСа вопрос был на "подумать".
|
|||
18
Малыш Джон
15.03.18
✎
11:30
|
(12) нет, не верно. Если есть метод для работы с реквизитом, то напрямую с реквизитом работать не надо.
|
|||
19
Serg_1960
15.03.18
✎
11:32
|
(17) Недавно тут тоже был вопрос на "а если подумать?". Спрашивали зачем нужно ПредопределенноеЗначение().
|
|||
20
cw014
15.03.18
✎
11:34
|
Жесть какая
|
|||
21
Bibr
15.03.18
✎
12:07
|
(18) вроде ж ясно написано: если нужно, чтобы события не отрабатывали, то надо через реквизит.
|
|||
22
Малыш Джон
15.03.18
✎
12:14
|
(21) Пометка документ на удаление - это не просто изменение значение реквизита, а определенный набор происходящих с ним событий. И даже если ТЕБЕ здесь и сейчас эти события не нужны, то другой, работающий с этой базой, предполагает, что если у документа появилась пометка на удаление, значит с документом произошел этот набор событий и будет исходить из этой логики. Не надо г..нокодить.
|
|||
23
Bibr
15.03.18
✎
12:20
|
(22) Спасибо за ваше мнение
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |