|
1С v8. Удаление объектов
|
Я
|
|
User_Agronom 08.01.13 - 14:37 | Можно ли программно установить метку удаления на объект не получая и не записывая его?
Вариант приведённый ниже не подходит((
Объект1 = Выборка.ПолучитьОбъект();
Объект1.ПометкаУдаления=Истина;
Объект1.Записать();
Нужно просто установить метку (удалить его полностью) |
zak555 1 - 08.01.13 - 14:38 | установить метку != удалить его полностью
|
Нуф-Нуф 2 - 08.01.13 - 14:38 | "Нужно просто установить метку (удалить его полностью)" ты бы определился, шашечки или ехать
|
acsent 3 - 08.01.13 - 14:38 | без объекта никак
|
1Сергей 4 - 08.01.13 - 14:38 | >>Нужно просто установить метку (удалить его полностью)
это пять |
Тот 7 - 08.01.13 - 14:40 | Оригинально. Перевожу на русский. "Можно ли изменить объект, не записывая его?"
Ответ. "Можно. Только он не изменится." |
Тот 8 - 08.01.13 - 14:41 | А почему приведенный вариант то не подходит?
|
acsent 9 - 08.01.13 - 14:43 | скорее всего вопрос в том чтобы избежать события передзаписью
|
1Сергей 10 - 08.01.13 - 14:43 | Объект1 = Выборка.ПолучитьОбъект();
Объект1.Удалить();
не? Рекламное место пустует |
Нуф-Нуф 11 - 08.01.13 - 14:44 | настоящие адинеснеги убивают запись в физических таблицах. и никаких "ПередЗаписью"
|
1Сергей 12 - 08.01.13 - 14:45 | Пардон,
Объект1.УстановитьПометкуУдаления(Ыстына);
|
User_Agronom 13 - 08.01.13 - 14:45 | ( 8) Объект кривой. Он не запишется, так как там много ошибок.
Нужно его просто удалить.
( 10) Спс, сейчас попробую. |
User_Agronom 14 - 08.01.13 - 14:45 | |
Тот 15 - 08.01.13 - 14:46 | ( 9) Так переписать его. Проверить - была только пометка установлена или нет. |
acsent 16 - 08.01.13 - 14:47 | ( 14) не поможет. Првильно все проверки перед записью ставить после
проверки ОбменДанными.Загрузка = Истина |
Тот 17 - 08.01.13 - 14:47 | ( 13) Ага. Давай. Получишь битые ссылки. |
User_Agronom 18 - 08.01.13 - 14:47 | ( 12) Не катит. Он всё равно объект перезаписывает |
User_Agronom 19 - 08.01.13 - 14:48 | ( 17) Не получу. Эти объекты ни с чем не связаны. |
User_Agronom 20 - 08.01.13 - 14:48 | В идеале просто выставить метки и штатным образом удалить. Если что-то с чем-то и связано - так оно не удлалится
|
1Сергей 21 - 08.01.13 - 14:49 | ( 19) тогда удали их из конфигурации |
User_Agronom 22 - 08.01.13 - 14:50 | ( 21) А как насчет контроля: вдруг где-то с чем-то связано? |
acsent 23 - 08.01.13 - 14:50 | update ... set DeletionMark = 1
|
Тот 24 - 08.01.13 - 14:50 | ( 18) Может там перед удалением процедура имеется? |
1Сергей 25 - 08.01.13 - 14:53 | ( 22) Операции > Поиск ссылок на Объекты |
User_Agronom 26 - 08.01.13 - 14:53 | ( 9) Да. Нужно избежать события "перед записью"
Я неправильно выразился |
User_Agronom 27 - 08.01.13 - 14:54 | ( 25) кривых объектов около 400. Все их искать долго.
На то мы и программисты)) |
Тот 28 - 08.01.13 - 14:54 | ( 26) Так закомменти его. А после удаления - восстанови. |
User_Agronom 29 - 08.01.13 - 14:55 | ( 10) - это работает.
Но, насколько я понимаю, просто удаляется объект: без контроля зависимостей. |
1Сергей 30 - 08.01.13 - 14:56 | |
Тот 31 - 08.01.13 - 14:57 | ( 29) Правильно понимаешь. Без контроля ссылочной целостности удаляет. |
Тот 32 - 08.01.13 - 14:57 | ( 29) Потом можешь пройтись лечилкой. Восстановит что-то как-то криво. |
User_Agronom 33 - 08.01.13 - 15:03 | С одним подобным случаем я уже справился. (просто заполнял пустые значения - всё равно же потом удалять). Осталось всего два кривых объекта, которые оказалось несложно проверить вручную через ( 25)
Теперь второй. Осложняется тем, что для того, чтобы записать нужно править правильные объекты (чего не хотелось бы).
Самое интересное, можно щелкнуть правой кнопкой мыши и без всякой записи установить метку удаления. Поэтому родилась мысль, что это можно сделать программно. Но не знаю как(( |
Mafoni 34 - 08.01.13 - 15:20 | А УстановитьПометкуУдаления ?? Не катит ???
|
Aprobator 35 - 08.01.13 - 15:25 | ( 13) если конца типовая и объект не переписке через одно место, то может помочь:
...
ИзменяемыйОбъект.ОбменДанными.Загрузка = Истина;
ИзменяемыйОбъект.Записать();
|
Aprobator 36 - 08.01.13 - 15:26 | Млин. Андроид замахал слова подменять (
|
Mafoni 37 - 08.01.13 - 15:26 | ( 34) + ОбменДанными.Загрузка = Истина - в стандартных конфах в процедуре ПередЗаписью есть проверка на то откуда записывается объект!! |
Mafoni 38 - 08.01.13 - 15:27 | ( 36) будь мужиком юзай вин 8!!! |
Aprobator 39 - 08.01.13 - 15:34 | |
Mafoni 40 - 08.01.13 - 15:36 | Бросай колеса нафиг они к добру не доведут ! :)
|
User_Agronom 41 - 08.01.13 - 15:37 | ( 35) Конфигурация типовая.
Старт был дан другим программистом.
Этот "программист" наделал кучу косяков. Пытаюсь по одному избавляться.
Я думаю, что нормальный программист (и даже админ) должен понимать вещи вроде ( 31) и отдавать отчет своим действиям.
Метка удаления тем и хороша, что практически ничего не изменяет. Т.е. висячих ссылок не будет. А уж по 3-5 объектам можно и ( 25) провести проверку и анализ. |
Mafoni 42 - 08.01.13 - 15:39 | ( 41) нормальный программист перед тем как сделать важные изменения backup делает ! |
User_Agronom 43 - 08.01.13 - 15:43 | ( 42) Это правильно.
Но когда пишешь код нужно представлять, что этот код делает.
Можно просто удалить и забить. А потом будет висеть куча ссылок битых и пр. пр. пр. И никто, кроме программиста, про это в конторе не узнает |