- В этой теме 1 ответ, 2 участника, последнее обновление 4 часа, 4 минуты назад сделано .
Просмотр 1 ветки ответов
Просмотр 1 ветки ответов
- Для ответа в этой теме необходимо авторизоваться.
Программирование и администрирование в 1С
База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как программно пометить на удаление все договоры в справочнике без запроса?
Нужно программно для моего внешнего обработки получитьвсе догвора из справочника договор взаиморасчетов и пометить на удаление у всех организаций. Не через запрос, а через справочники
Если нужно получить все договоры из справочника «Договоры взаиморасчетов» и пометить их на удаление, не используя запрос, а перебирая элементы через объекты справочника, то делается так:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
Процедура ПометитьВсеДоговорыНаУдаление() Экспорт // Получаем объект справочника Договоры = Справочники.ДоговорыВзаиморасчетов; // замените на точное имя справочника // Создаем выборку по всем элементам справочника Выборка = Договоры.Выбрать(); Пока Выборка.Следующий() Цикл // Получаем объект элемента справочника ДоговорОбъект = Выборка.Ссылка.ПолучитьОбъект(); // Помечаем на удаление ДоговорОбъект.ПометкаУдаления = Истина; // Записываем изменения ДоговорОбъект.Записать(); КонецЦикла; Сообщить("Все договоры помечены на удаление."); КонецПроцедуры |
—
Объяснение:
— Справочники.ДоговорыВзаиморасчетов — объект справочника, замените на точное имя вашего справочника договоров.
— Метод Выбрать() возвращает выборку по всем элементам справочника.
— В цикле Пока Выборка.Следующий() перебираем все элементы.
— Для каждого элемента через Ссылка.ПолучитьОбъект() получаем объект для редактирования.
— Устанавливаем ПометкаУдаления = Истина и вызываем Записать().
—
Такой способ полностью обходится без запросов и работает через объекты справочника.