• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

как отфильтровать справочник в 7.7

  • Автор темы Автор темы evgenyatam
  • Дата начала Дата начала
E

evgenyatam

Использую процедуру ИспользоватьСписокЭлементов. Фильтрация происходит но: в каждой группе присутствует элемент без наименования и значений полей, иконка у него с красным вопросом и его невозможно отредактировать.
как сделать чтобы такие элементы не выводились?
зы: код выложу если попросите. список значений проверял - пустых элементов нет.
 
похоже это просто нереально. то-есть нереально с иерархией групп и элементов стандартными средствами. нестандартными можно, но нерентабельно.
 
Вот таких вот описанных чертиков не видел. А может не помню....
Иерархия реальна. Только делается мудрено. Надо при каждом переходе пользователя в другую группу вызывать установку отбора.

Код:
//-----------------------------------------------
Процедура ПриВыбореРодителя(Род)
УстОтборОтстатков(Род);
КонецПроцедуры


// Устанавливает отбор. Она же и выключает его
// Вызывается также из галочки на диалоге "Вкл/Вык" (без параметров)
Процедура УстОтборОтстатков(Род="")
Если (Род = "") Тогда
Род = ИспользоватьРодителя(); // берется группа открытая на диалоге
КонецЕсли;

Если НЕ(ТолькоОстатки = 1) Тогда // флажок диалога Выкл
ИспользоватьСписокЭлементов();
Возврат;
КонецЕсли;

СпТов.УдалитьВсе();
Спр = СоздатьОбъект("Справочник."+ Вид());
Спр.ИспользоватьРодителя(Род);
Спр.ВыбратьЭлементы(1);
Пока Спр.ПолучитьЭлемент() = 1 Цикл
Если НЕ(Спр.Родитель = Род) Тогда
Продолжить;
КонецЕсли;
Если НЕ(Спр.ЭтоГруппа() = 1) Тогда	// группы всегда
Если ОстатокТовара(Спр.ТекущийЭлемент()) = 0 Тогда
Продолжить;
КонецЕсли;
КонецЕсли;

СпТов.ДобавитьЗначение(Спр.ТекущийЭлемент());
КонецЦикла;

ИспользоватьСписокЭлементов(СпТов);
КонецПроцедуры	// УстОтбор
 
похоже это просто нереально. то-есть нереально с иерархией групп и элементов стандартными средствами. нестандартными можно, но нерентабельно.
А этот метод - явно нестандартный.
Я бы еще предложил рассмотреть интерфейс обращения к иерархической структуре в обработке "Регламентированные отчеты". Его чуть доработать,
написать стандартное заполнение - и можно пользоваться.
Еще раз убедился, что без применения 8-й буквы алфавита ИспользоватьСписокЭлементов() употребить вряд ли возможно
 
Я бы еще предложил рассмотреть интерфейс обращения к иерархической структуре в обработке "Регламентированные отчеты". Его чуть доработать,
написать стандартное заполнение - и можно пользоваться.
я примерно так и сделал - работает.
без применения 8-й буквы алфавита
а что за 8-я буква?
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab