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

Фильтрация элементов справочника(Номенклатура на пример)

Автор KiTT, 03 июн 2011, 10:34

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

KiTT

Кто знает, есть ли  простая возможность при открытии справочника показывать все элементы справочника кроме удаленных?
На ум приходит использования динамичного фильтра, но при большом размере спр это не эффективно.

prog1c7.7

есть способ, актуально?
через установитьотбор()

KiTT

Спасибо, актуально
Но как через отбор можно отфильтровать помеченные на удаление элементы справочника?

prog1c7.7

надо реквизит накидать (единичку) на номенклатуру например,
и в глобальнике предопред. ПриУдаленииЭлемента()
Если спр.Вид данный справочник, то Показать (так обзовем реквизит)  = 0,
а потом в форме списка установить отбор по "Показать"  -  доходит?

KiTT


KiTT

Такой фрагмент в гл.модуле процедура ПриУдаленииЭлемента():
....

ИначеЕсли УдалЭлем.Вид() = "Номенклатура" Тогда  //
   
      Если ПометкаУдаления=1 Тогда
         //УдалЭлем.УстановитьАтрибут("ПомНаУд",0);
         УдалЭлем.ПомНаУд=0;
         УдалЭлем.Записать();
      Иначе
         //УдалЭлем.УстановитьАтрибут("ПомНаУд",1);
         УдалЭлем.ПомНаУд=1;
         УдалЭлем.Записать();
      КонецЕсли;
         
   ....
         

KiTT

Выдает ошибку:

УдалЭлем.Записать();
{Глобальный модуль(13131)}: Не выбран элемент!
Как решить?

prog1c7.7

получи этот элемент.
он у тебя просто пока на позиции, а чтоб записать надо получить его.  :befhbt:
забыл первичные методы?... али напомнить как получать?

KiTT


zuza

ИначеЕсли УдалЭлем.Вид() = "Номенклатура" Тогда  //
      СпрНом = СоздатьОбъект("Справочник.Номенклатура");
      // получаем эл-т
      СпрНом.НайтиЭлемент(УдалЭлем);

      Если ПометкаУдаления=1 Тогда
         //УдалЭлем.УстановитьАтрибут("ПомНаУд",0);
         УдалЭлем.ПомНаУд=0;
         УдалЭлем.Записать();
      Иначе
         //УдалЭлем.УстановитьАтрибут("ПомНаУд",1);
         УдалЭлем.ПомНаУд=1;
         УдалЭлем.Записать();
      КонецЕсли;
         
   ....

Теги:

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

Рейтинг@Mail.ru

Поиск