Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 8 общая

УстановитьПометкуУдаления и ПометкаУдаления = Истина

УстановитьПометкуУдаления и ПометкаУдаления = Истина
Я
   Bibr
 
15.03.18 - 10:32
Тема так, для общего образования.
ДокОбъект.ПометкаУдаления = Истина;
и
ДокОбъект.УстановитьПометкуУдаления(Истина);

Есть разница?
Зачем нужен метод, который просто устанавливает свойство?
Предполагаю, что для автоматического отрабатывания событий, типа приудалении приотменепроведении.

Это так или есть ещё какие-то другие нюансы?
 
 
   Lexey_
 
1 - 15.03.18 - 10:35
(0) УстановитьПометкуУдаления(<ПометкаУдаления>, <ВключаяПодчиненные>)
   hhhh
 
2 - 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
   Ненавижу 1С
 
7 - 15.03.18 - 11:11
(4) во втором случае не сработает событие ОбработкаПроведения
   Serg_1960
 
8 - 15.03.18 - 11:12
(3) Лучше не СП, а ИТС почитать - там более подробно:
"Особенности использования поля "ПометкаУдаления" объектов базы данных"
https://its.1c.ru/db/metod8dev#content:2711:hdoc

"...УстановитьПометкуУдаления(). Этот метод выполняет установку свойства в указанное в параметре значение, запись объекта, а также дополнительные действия... Однако следует учитывать, что эти действия являются только рекомендованным типовым способом выполнения пометки на удаление. Они не являются обязательными... разработчик может при необходимости выполнить пометку удаления без дополнительных действий."
   Ненавижу 1С
 
9 - 15.03.18 - 11:13
//вот это вылетит с ошибкой, если документ проведен:

ДокОбъект.ПометкаУдаления = Истина;
ДокОбъект.Записать();

//а вот это нормально сработает:

ДокОбъект.УстановитьПометкуУдаления(Истина);
   Вафель
 
10 - 15.03.18 - 11:14
ДокОбъект.Проведен = Ложь;
ДокОбъект.ПометкаУдаления = Истина;
ДокОбъект.Записать();

Вот так не вылетит
 
 Рекламное место пустует
   Ненавижу 1С
 
11 - 15.03.18 - 11:14
(10) но не сработает ОбработкаУдаленияПроведения
   Bibr
 
12 - 15.03.18 - 11:15
(1) в документе ВключаяПодчиненные нет.
(3) так почитал :)

В целом понятно. Если отработка событий не нужна/вредна, то через реквизит, в противном через метод
   Ц_У
 
13 - 15.03.18 - 11:17
ДокОбъект.Удалить() и не нужно инсинуаций ...
   Serg_1960
 
14 - 15.03.18 - 11:19
(4) и (9) В платформе можно отключить контроль (преславутый ОбменДанными.Загрузка = Истина) и тогда можно иметь проведенный документ (Проведен = Истина) без движений или наоборот - движения могут быть сохранены/созданы у непроведенного документа.

Чисто теоретически (и практически) документы и их движения в регистрах, с точки зрения платформы, автономны и независимы друг от друга.

Кто работает с РИБ - тот в курсе, а остальные - слышали :)
   Ненавижу 1С
 
15 - 15.03.18 - 11:21
(14) ОбменДанными.Загрузка = Истина
тут вообще не причем, все это можно делать и без него
   Serg_1960
 
16 - 15.03.18 - 11:24
(15) Это одна и та же сторона медали. Разработчик самостоятельно решает нужно или нет использовать контроль со стороны платформы и/или конфигурации.
   Малыш Джон
 
17 - 15.03.18 - 11:28
(5) это я понимаю.  это для ТСа вопрос был на "подумать".
   Малыш Джон
 
18 - 15.03.18 - 11:30
(12) нет, не верно. Если есть метод для работы с реквизитом, то напрямую с реквизитом работать не надо.
   Serg_1960
 
19 - 15.03.18 - 11:32
(17) Недавно тут тоже был вопрос на "а если подумать?". Спрашивали зачем нужно ПредопределенноеЗначение().
   cw014
 
20 - 15.03.18 - 11:34
Жесть какая
   Bibr
 
21 - 15.03.18 - 12:07
(18) вроде ж ясно написано: если нужно, чтобы события не отрабатывали, то надо через реквизит.
   Малыш Джон
 
22 - 15.03.18 - 12:14
(21) Пометка документ на удаление - это не просто изменение значение реквизита, а определенный набор происходящих с ним событий. И даже если ТЕБЕ здесь и сейчас эти события не нужны, то другой, работающий с этой базой, предполагает, что если у документа появилась пометка на удаление, значит с документом произошел этот набор событий и будет исходить из этой логики. Не надо г..нокодить.
   Bibr
 
23 - 15.03.18 - 12:20
(22) Спасибо за ваше мнение


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует