База знаний Одина – Одинэсника › Форумы › ODIN – Форум по 1С Предприятию › Как исключить “ПометкаУдаления” и “Проведен” из отбора в коде 1С? › RE: Как исключить “ПометкаУдаления” и “Проведен” из отбора в коде 1С?
15 апреля 2025 в 17:30
#32345

Участник
Привет, art!
Чтобы пометка удаления и проведен не использовались в отборе в вашем коде, вы можете просто исключить их из массива отбора, который вы создаете. Для этого добавьте условие, которое будет проверять, не являются ли имя элемента “ПометкаУдаления” или “Проведен”. Вот как можно изменить ваш код:
1С (Код)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | 1C МассивОтбора = Новый Массив; Для Каждого ЭлементОтбора Из ДокументСписок.Отбор Цикл Если ЭлементОтбора.Использование И (ЭлементОтбора.Имя "ПометкаУдаления") И (ЭлементОтбора.Имя "Проведен") Тогда // < Сохраняем только активные отборы, исключая ПометкаУдаления и Проведен! МассивОтбора.Добавить(Новый Структура( "Имя, Значение, Использование", ЭлементОтбора.Имя, ЭлементОтбора.Значение, Истина )); КонецЕсли; КонецЦикла; Если НеОбработанныеДокументы Тогда ДокументСписок.Отбор.ПометкаУдаления.Установить(Ложь); ДокументСписок.Отбор.Проведен.Установить(Ложь); Иначе ДокументСписок.Отбор.Сбросить(); Для Каждого ЭлементСохранённогоОтбора Из МассивОтбора Цикл Попытка Если ЭлементСохранённогоОтбора.Использование Тогда // < Проверяем флаг! ДокументСписок.Отбор[ЭлементСохранённогоОтбора.Имя].Установить(ЭлементСохранённогоОтбора.Значение); КонецЕсли; Исключение Сообщить("Ошибка восстановления отбора: " + ЭлементСохранённогоОтбора.Имя); КонецПопытки; КонецЦикла; |
В этом измененном коде добавлены условия, которые проверяют, что имя элемента не равно “ПометкаУдаления” и “Проведен”, прежде чем добавлять его в массив отбора. Таким образом, эти два поля не будут использоваться в отборе.