Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 17:41

Ошибка при попытке удаления. БД 1С 8.2

Автор Kvax, 18 июл 2011, 16:17

0 Пользователей и 1 гость просматривают эту тему.

Kvax

Здравствуйте!
Столкнулся со следующей проблемой, имеются справочники:
- Справочник.Вакансии
- Справочник. Резюме
Необходимо удалять из них элементы, которые хранятся более определенного времени.

При попытке выполнить обработку выдает сообщение об ошибке:

- При попытке удаления Вакансии:

{Обработка.ЧисткаБазы.Форма.Форма.Форма(22)}: Метод объекта не обнаружен (Удалить)
Выборка.Удалить(0);


- При попытке удаления Резюме:

{Обработка.ЧисткаБазы.Форма.Форма.Форма(37)}: Метод объекта не обнаружен (ПометкаУдаления)
Выборка.Ссылка.ПометкаУдаления();


Буду очень признателен, в решении данной проблемы.

Код обработки прилагается.





Процедура ЧисткаБазы(Фл_СтарыеВакансии, Фл_СтарыеРезюме)

КолСтарыхВакансий = 0;

Выборка = Справочники.Вакансии.Выбрать();
Пока Выборка.Следующий() Цикл
Если (Выборка.ДатаРазмещения+ Выборка.СрокХранения) < ТекущаяДата() Тогда
Сообщить ("Вакансия № " + Выборка.Код);
КолСтарыхВакансий = КолСтарыхВакансий+1;

Если Фл_СтарыеВакансии Тогда
Выборка.Удалить(0);
КонецЕсли;
Иначе
Сообщить("Просроченных вакансий - нет!");
КонецЕсли;
КонецЦикла;
                                     
КолСтарыхРезюме = 0;
Выборка = Справочники.Резюме.Выбрать();
Пока Выборка.Следующий() Цикл
Если (Выборка.ДатаРазмещения+ Выборка.СрокХранения) < ТекущаяДата() Тогда
Сообщить ("Резюме № " + Выборка.Код);
КолСтарыхВакансий = КолСтарыхВакансий+1;

Если Фл_СтарыеРезюме Тогда
Выборка.Ссылка.ПометкаУдаления();
КонецЕсли;
Иначе
Сообщить("Просроченных резюме - нет!");
КонецЕсли;
КонецЦикла;


КонецПроцедуры

Шурыгин Иван Сергеевич

во первых по 1 проблеме, уж надо писать

Выборка.ПолучитьОбъект().Удалить();


но я так не рекомендую, лишь потому, что вы можете не учесть наличие ссылок. лучше делать так:


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


Тем самым мы после сможем удалить элементы при помощи стандартной обработки удаления.

второй случай, метода пометка удаления не существует. пользуемся также как и показано выше!
===================================
жизнь надо прожить так, чтоб вверху посмотрели.
и сказали "А ну ка повтори"
===================================

Kvax

Огромное спасибо за помощь, прислушаюсь к вашей рекомендации!!!

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск