• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

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

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

evgenyatam

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

evgenyatam

похоже это просто нереально. то-есть нереально с иерархией групп и элементов стандартными средствами. нестандартными можно, но нерентабельно.
 
Д

Дайнеко

Вот таких вот описанных чертиков не видел. А может не помню....
Иерархия реальна. Только делается мудрено. Надо при каждом переходе пользователя в другую группу вызывать установку отбора.

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


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

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

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

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

ИспользоватьСписокЭлементов(СпТов);
КонецПроцедуры	// УстОтбор
 
V

vbs

похоже это просто нереально. то-есть нереально с иерархией групп и элементов стандартными средствами. нестандартными можно, но нерентабельно.
А этот метод - явно нестандартный.
Я бы еще предложил рассмотреть интерфейс обращения к иерархической структуре в обработке "Регламентированные отчеты". Его чуть доработать,
написать стандартное заполнение - и можно пользоваться.
Еще раз убедился, что без применения 8-й буквы алфавита ИспользоватьСписокЭлементов() употребить вряд ли возможно
 
E

evgenyatam

Я бы еще предложил рассмотреть интерфейс обращения к иерархической структуре в обработке "Регламентированные отчеты". Его чуть доработать,
написать стандартное заполнение - и можно пользоваться.
я примерно так и сделал - работает.
без применения 8-й буквы алфавита
а что за 8-я буква?
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!