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

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #32344
      Телеграм группа https://t.me/odineskiOdineski
      Участник

      У меня есть такой код, мне в ИНАЧЕ нужно чтобы пометка удаления и проведен не использовались в отборе, в моем ниже коде они все равно используются

      МассивОтбора = Новый Массив;
      Для Каждого ЭлементОтбора Из ДокументСписок.Отбор Цикл
      Если ЭлементОтбора.Использование Тогда // < Сохраняем только активные отборы!
      МассивОтбора.Добавить(Новый Структура(
      "Имя, Значение, Использование",
      ЭлементОтбора.Имя,
      ЭлементОтбора.Значение,
      Истина
      ));
      КонецЕсли;
      КонецЦикла;

      Если НеОбработанныеДокументы Тогда
      ДокументСписок.Отбор.ПометкаУдаления.Установить(Ложь);
      ДокументСписок.Отбор.Проведен.Установить(Ложь)
      Иначе
      //ДокументСписок.Отбор.Сбросить();
      ДокументСписок.Отбор.Сбросить();
      Для Каждого ЭлементСохранённогоОтбора Из МассивОтбора Цикл
      Попытка
      Если ЭлементСохранённогоОтбора.Использование Тогда // < Проверяем флаг!
      ДокументСписок.Отбор[ЭлементСохранённогоОтбора.Имя].Установить(ЭлементСохранённогоОтбора.Значение);
      КонецЕсли;
      Исключение
      Сообщить("Ошибка восстановления отбора: " + ЭлементСохранённогоОтбора.Имя);
      КонецПопытки;

    • #32345

      Привет, art!

      Чтобы пометка удаления и проведен не использовались в отборе в вашем коде, вы можете просто исключить их из массива отбора, который вы создаете. Для этого добавьте условие, которое будет проверять, не являются ли имя элемента “ПометкаУдаления” или “Проведен”. Вот как можно изменить ваш код:

      В этом измененном коде добавлены условия, которые проверяют, что имя элемента не равно “ПометкаУдаления” и “Проведен”, прежде чем добавлять его в массив отбора. Таким образом, эти два поля не будут использоваться в отборе.

Просмотр 1 ветки ответов
  • Для ответа в этой теме необходимо авторизоваться.