|
Изменить ресурс РС при удалении записи |
☑ |
0
Juliette_
Juliette
20.09.23
✎
13:00
|
Надо запретить удаление записи регистра сведений, вместо этого изменить значение ресурса "Актуальность". В менеджере набора
Процедура ПередЗаписью(Отказ, Замещение)
Если ЭтотОбъект.Количество() = 0 Тогда
Отказ = Истина;
КонецЕсли;
КонецПроцедуры
А как поменять значение? Менеджер записи использовать?
|
|
1
Donkey_hot
20.09.23
✎
13:03
|
Для Каждого Запись Из ЭтотОбъект Цикл
....
КонецЦикла
|
|
2
Juliette_
Juliette
20.09.23
✎
13:04
|
спасибо!
|
|
3
Juliette_
Juliette
20.09.23
✎
13:11
|
не совсем корректно.
Теперь не дает записать и при создании новой записи.
А при удалении
Процедура ПередЗаписью(Отказ, Замещение)
Если ЭтотОбъект.Количество() = 0 Тогда
Для Каждого Запись Из ЭтотОбъект Цикл
Запись.Актуальность = НЕ Запись.Актуальность;
КонецЦикла;
Отказ = Истина;
КонецЕсли;
КонецПроцедуры
не меняется значение, ведь Отказ = Истина.
Как решить вопрос?
|
|
4
lubitelxml
20.09.23
✎
13:17
|
(3) может надо все таки так:
Если ЭтотОбъект.Количество() = 0 Тогда
Отказ = Истина;
Иначе
Для Каждого Запись Из ЭтотОбъект Цикл
Запись.Актуальность = НЕ Запись.Актуальность;
КонецЦикла;
КонецЕсли;
|
|
5
lubitelxml
20.09.23
✎
13:18
|
Я бы еще "Запись.Актуальность = НЕ Запись.Актуальность; " заменил на "Запись.Актуальность = ЛОЖЬ", иначе может неактуальные сделать актуальными
|
|
6
Juliette_
Juliette
20.09.23
✎
13:24
|
(4) ну так после удаления записи 0 и получается (
|
|
7
lubitelxml
20.09.23
✎
14:01
|
(6) если у тебя нет записей, то и цикл не выполнится ведь
|
|
8
Juliette_
Juliette
20.09.23
✎
14:04
|
(7) да, и как решить?
Удаляем запись, количество = 0, отказ = истина
И при этом надо изменить значение ресурса
|
|
9
lubitelxml
20.09.23
✎
14:10
|
вот так попробуй:
Если ЭтотОбъект.Количество() = 0 И ЭтотОбъект.Модифицированность() =Истина Тогда
Отказ = Истина;
КонецЕсли;
|
|
10
AlexeyKh
20.09.23
✎
14:19
|
Если ЭтотОбъект.Количество() = 0 Тогда
//удаление записей, производится при установленном Отборе!!!!!
//вот по нему и читаем то что хотят удалить!!!!
ЭтотОбъект.Проичитать();
//и а дальше вставляете свой цикл обхода записей
ДЛя каждого ....
//Отказ = Истина; //это убрать!!!!
КонецЕсли;
|
|
11
Juliette_
Juliette
20.09.23
✎
14:24
|
(10) Круто! Спасибо большое
|
|
12
Juliette_
Juliette
20.09.23
✎
14:30
|
Процедура ПередЗаписью(Отказ, Замещение)
Если ЭтотОбъект.Количество() = 0 И ЭтотОбъект.Модифицированность() Тогда
ЭтотОбъект.Прочитать();
Для Каждого Запись Из ЭтотОбъект Цикл
Запись.Актуальность = Ложь;
КонецЦикла;
КонецЕсли;
КонецПроцедуры
вот так работает корректно, отсеиваются проблемы с дублированием записей
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший