|
Чистка справочников: как не затронуть предопределенные данные? | ☑ | ||
---|---|---|---|---|
0
_stay true_
11.09.13
✎
13:43
|
Здравствуйте. Нужно почистить несколько справочников в УТ 11, написал для этого внешнюю обработку. Но при её выполнении вылетает ошибка: "невозможно установить пометку удаления на предопределнные элементы справочника". Вопрос моя такой: как сделать так, чтобы при установки пометки удаления(и, собственно, удалении в дальнейшем) не затрагивались предопределенные элементы? Фрагмент кода обработки(чистка справочника "организации"):
ОрганизацииВыборка = Справочники.Организации.Выбрать(); Пока ОрганизацииВыборка.Следующий() Цикл Организации = ОрганизацииВыборка.ПолучитьОбъект(); Организации.УстановитьПометкуУдаления(ИСТИНА); Организации.Записать(); КонецЦикла; |
|||
1
Любопытная
11.09.13
✎
13:44
|
Предопределенный (Predefined)
Использование: Только чтение. Описание: Тип: Булево. Указывает, что данный элемент справочника является предопределенным элементом. Истина - предопределенный. Доступность: Сервер, толстый клиент, внешнее соединение. |
|||
2
Euguln
11.09.13
✎
13:46
|
(0) Получится удалить предопределенный элемент - напиши.
А так (1) Если Не Организации.Предопределенный Тогда Организации.УстановитьПометкуУдаления(ИСТИНА); Организации.Записать(); КонецЕсли; |
|||
3
_stay true_
11.09.13
✎
13:47
|
(2) Да не нужно мне предопределенные удалять, наоборот - их не нужно трогать вообще:)
|
|||
4
_stay true_
11.09.13
✎
13:47
|
(2) Спасибо большое. Пойду попробую:)
|
|||
5
_stay true_
11.09.13
✎
13:56
|
сразу не отходя от кассы: теперь вылезло вот такое:
{Форма.Форма.Форма(539)}: Ошибка при вызове метода контекста (УстановитьПометкуУдаления) Номенклатура.УстановитьПометкуУдаления(ИСТИНА); по причине: Ошибка при выполнении обработчика - 'ПередЗаписью' по причине: {Справочник.Номенклатура.МодульОбъекта(138)}: Значение поля "Рабочее наименование" не уникально ВызватьИсключение ТекстИсключения; Как бороться? |
|||
6
Любопытная
11.09.13
✎
13:58
|
Значение поля "Рабочее наименование" не уникально - очищать это поле, раз уж все равно удаляешь
|
|||
7
Euguln
11.09.13
✎
13:59
|
Можно сделать так перед записью
Номенклатура.ОбменДанными.Загрузка = Истина; |
|||
8
_stay true_
11.09.13
✎
14:06
|
Попробую вариант с очисткой.
|
|||
9
_stay true_
11.09.13
✎
14:22
|
И последний вопрос: а можно как-то программно сразу все-все документы из базы удалить?
|
|||
10
Serg_1960
11.09.13
✎
14:30
|
(9) Да, можно.
|
|||
11
Aleksey
11.09.13
✎
14:32
|
drop table
|
|||
12
Serg_1960
11.09.13
✎
14:39
|
(чисто поржать) "Универсальный обмен данных в формате XML" - последняя закладка - "Удаление данных" :))
|
|||
13
Serg_1960
11.09.13
✎
14:40
|
Тьфу, "данных" --> "данными"
|
|||
14
_stay true_
11.09.13
✎
14:46
|
(13) Я теперь себя каким-то Днищем 1С чувствую:)
|
|||
15
hhhh
11.09.13
✎
14:49
|
(14) а типовыми обработками не судьба удалить? Зачем изобретать свои обработки, да еще и для каждого справочника?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |