8.х Отбор в справочнике

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем AK79, 23 дек 2007.

  1. TopicStarter Overlay
    AK79
    Offline

    AK79

    Регистрация:
    23 дек 2007
    Сообщения:
    27
    Симпатии:
    0
    Баллы:
    1
    Мне необходимо показать форму списка справочника, но справочник должен быть показан не полностью, а начиная с определенной группы и ниже. Как лучше это реализовать?
  2. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Запросом проверять вхождения родителя, где-то видел такую задачку - сейчас пороюсь
  3. Эмин
    Offline

    Эмин Руководитель проектов

    Регистрация:
    25 май 2007
    Сообщения:
    1.178
    Симпатии:
    1
    Баллы:
    26
    При открытии или перед открытием или там где надо открыть эту форму установить отбор для поля спика справочника.

    Вид сравнения будет "В иерархии"
    Значение - эта ваша группа.

    В понедельник пример смогу выложить, а так - в типовой есть такие решения, надо только найти.
  4. TopicStarter Overlay
    AK79
    Offline

    AK79

    Регистрация:
    23 дек 2007
    Сообщения:
    27
    Симпатии:
    0
    Баллы:
    1
    Код:
    Процедура КомплектующиеНаименованиеНачалоВыбора(Элемент, СтандартнаяОбработка)
    СтандартнаяОбработка = Ложь;
    Комп = ЭлементыФормы.Комплектующие;
    ГруппаФильтр = комп.ТекущаяСтрока.группа;
    ФормаВыбора = Справочники.Номенклатура.ПолучитьФормуВыбора("ФормаВыбора",ГруппаФильтр);
    ФормаВыбора.СправочникСписок.Отбор.Наименование.Значение= ГруппаФильтр;
    ФормаВыбора.СправочникСписок.Отбор.Наименование.ВидСравнения = ВидСравнения.ВИерархии;
    ФормаВыбора.СправочникСписок.Отбор.Наименование.Использование = Истина;
    ФормаВыбора.Открыть();  
    КонецПроцедуры
    
    Я думал так сделать, но что-то не так. Вот текст ошибки:

    {Документ.КомплектацияРМ.Форма.ФормаДокумента(64)}: Ошибка при установке значения атрибута контекста (ВидСравнения): Недопустимый тип сравнения
    ФормаВыбора.СправочникСписок.Отбор.Наименование.ВидСравнения = ВидСравнения.ВИерархии;
    по причине:
    Недопустимый тип сравнения

    Используйте тэг
    Код:
    [/color]
  5. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    СправочникСписок в этом контексте - это реквизит, а тебе нужен элемент формы.

    Код:
    ЭлементыФормы.СправочникСписок....
    
  6. ИгорьК
    Offline

    ИгорьК

    Регистрация:
    24 дек 2007
    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    1
    Делал для Авансового отчета. По умолчанию должен открываться элемент справочника "проживание" из группы "командировочные расходы"

    Код:
            СтандартнаяОбработка = ЛОжь;
    Форма = Справочники.СтатьиЗатрат.ПолучитьФормуВыбора();
    Форма.ВладелецФормы = Элемент;
    Форма.ЗакрыватьПриВыборе = Истина;
    Форма.ЗакрыватьПриЗакрытииВладельца = Истина;
    Форма.МножественныйВыбор = Ложь;
    Результат = Справочники.СтатьиЗатрат.НайтиПоКоду("101000071");
    Если не Результат.Пустая() тогда
    Форма.НачальноеЗначениеВыбора = Результат;
    КонецЕсли;
    Если Форма.Открыта() тогда
    Форма.Активизировать();
    Иначе
    Форма.Открыть();
    КонецЕсли;
    
    Используйте тэг
    Код:
    [/color]
  7. TopicStarter Overlay
    AK79
    Offline

    AK79

    Регистрация:
    23 дек 2007
    Сообщения:
    27
    Симпатии:
    0
    Баллы:
    1
    УрА!!! Получилось, с небольшими изменениями
    Код:
    Процедура КомплектующиеНаименованиеНачалоВыбора(Элемент, СтандартнаяОбработка)
    Комп = ЭлементыФормы.Комплектующие;
    ГруппаФильтр = комп.ТекущаяСтрока.группа;
    СтандартнаяОбработка = Ложь;
    Форма =  Справочники.Номенклатура.ПолучитьФормуВыбора();
    Форма.ВладелецФормы = Элемент;
    Форма.ЗакрыватьПриВыборе = Истина;
    Форма.ЗакрыватьПриЗакрытииВладельца = Истина;
    Форма.МножественныйВыбор = Ложь;    
    ГруппаРодитель = Справочники.Номенклатура.НайтиПоНаименованию(ГруппаФильтр);
    Результат = Справочники.Номенклатура.ВыбратьИерархически(ГруппаРодитель);
    Результат.Следующий();
    Форма.НачальноеЗначениеВыбора = Результат.ПолучитьОбъект();
    Если Форма.Открыта() тогда
    Форма.Активизировать();
    Иначе
    Форма.Открыть();
    КонецЕсли; 
    
    КонецПроцедуры
    
    Используйте тэг
    Код:
    [/color]

Поделиться этой страницей