7.7 Простой вопрос по справочникам

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

  1. TopicStarter Overlay
    FDL
    Offline

    FDL

    Регистрация:
    23 сен 2011
    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    1
    Короче говоря Получаю список справочников
    Код:
     
    Процедура ПолучитьСписок()
    Для Индекс=1 По Метаданные.Справочник() Цикл
    СписСпр.ДобавитьЗначение(Метаданные.Справочник(Индекс).Идентификатор);
    КонецЦикла;
    КонецПроцедуры
    
    
    Как сделать чтобы при выборе конкретного справочника показывались его элементы в списке?
  2. dianofob
    Offline

    dianofob (-_-)y-.o0O

    Регистрация:
    3 июл 2009
    Сообщения:
    711
    Симпатии:
    0
    Баллы:
    26
    ?
    Код:
    Процедура ПолучитьСписок()	
    Для Индекс=1 По Метаданные.Справочник() Цикл
    Lst = CreateObject("ValueList");
    Ref = CreateObject("Справочник."+Метаданные.Справочник(Индекс).Идентификатор);
    Ref.SelectItems();
    While Ref.GetItem() = 1 Do
    Lst.AddValue(Ref.CurrentItem());
    EndDo;
    СписСпр.ДобавитьЗначение(Lst,Метаданные.Справочник(Индекс).Идентификатор);
    КонецЦикла;
    КонецПроцедуры
    
  3. WaRDeR
    Offline

    WaRDeR Модераторы Команда форума Модератор

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    Вопрос вообще не понятен... может попробуешь картинки желаемого нарисовать?
  4. TopicStarter Overlay
    FDL
    Offline

    FDL

    Регистрация:
    23 сен 2011
    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    1
    попробую объяснить. только сильно не бейте=)
    есть один выпадающий список который формируется приоткрытии.В этом списке содержатся все справочники.
    Есть 2-й, пустой список типа ListBox-а. Так вот мне нужно поместить в этот типа листбокс все элементы справочника который выбран из выпадающего списка. Например выбрана строка сотрудники -> в листбоксе получили все его элементы.Приходится в сжатые сроки все делать просто
  5. WaRDeR
    Offline

    WaRDeR Модераторы Команда форума Модератор

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    Ну так на вскидку - изучите код фобца (возможно со словарем :D)

    как замечание к его коду - за один раз формировать список со всеми элементами всех справочников - это как-то "круто".... пользователи успеют на обед сходить.

    Лучше формировать один список с видами справочника, а при выборе конкретной строки списка уже заполнять второй список....

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

    PS бить точно не будем :angry:
  6. TopicStarter Overlay
    FDL
    Offline

    FDL

    Регистрация:
    23 сен 2011
    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    1
    Благодарю за подсказки.
    Мог бы ответить раньше но 503-я ошибка вылетала в браузере(К сабжу отношения не имеет)
  7. TopicStarter Overlay
    FDL
    Offline

    FDL

    Регистрация:
    23 сен 2011
    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    1
    Что-то у меня не получилось
    Код:
    Процедура ПолучитьСписок()
    Зн = "";
    Для Ин=1 по СписСпр.РазмерСписка()
    Цикл
    Значение = СписСпр.ПолучитьЗначение(Ин,Зн);
    НазначитьВид(ВыбрСпр,"Справочник."+Значение);
    КонецЦикла;
    ВыбрСпр.ВыбратьЭлементы();
    Пока
    ВыбрСпр.ПолучитьЗначение() = 1 <span style='cursor: pointer; color:red' Onclick="window.open('http://www.1c-pro.ru/wiki/index.php/цикл')">Цикл	</span>
    СоответствияПолей.ДобавитьЗначение(ВыбрСпр.Наименование);
    КонецЦикла;
    КонецПроцедуры
    
    Вид задан непрально пишет...ВыбрСпр имеет Тип <<Справочник>>...видимо что-то я не допонял=(
  8. Хряк
    Offline

    Хряк Профессионал в 1С

    Регистрация:
    26 сен 2007
    Сообщения:
    1.447
    Симпатии:
    37
    Баллы:
    54
    Есть 2-й, пустой список типа ListBox-а.
    если это список, к нему не надо применять назначитьвид(), просто добавляшь в список значения
    если это реквизит типа справочник, тогда
    НазначитьВид(ВыбСпр,Значение);
    Форма.ВыбСпр.НеИзменятьВид(1);
  9. TopicStarter Overlay
    FDL
    Offline

    FDL

    Регистрация:
    23 сен 2011
    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    1
    При ВыбрСпр.ВыбратьЭлементы() ругается что объект не может быть перепозиционирован
  10. dianofob
    Offline

    dianofob (-_-)y-.o0O

    Регистрация:
    3 июл 2009
    Сообщения:
    711
    Симпатии:
    0
    Баллы:
    26
    Ну, такая задачка, все равно медленно будет (если справочники большие), перевыбрал справочник - два раза заполнил. Хотя можно на прямой запрос к бд переписать, ну или просто на черный запрос..
    В итоге: на форме 1й список справочников и 2ой список с элементами (лучше 2ой список заменить на поле ввода типа справочник, и если чо выбирать, но тут смотря чего добиться хотят). Если нужен список все-таки то:
    Код:
    Процедура ПолучитьСписок() //вешаем на формулу первого списка
    СоответствияПолей.УдалитьВсе();
    ИмяСпр = СписСпр.ПолучитьЗначение(СписСпр.ТекущаяСтрока());
    СпрДляСписка = СоздатьОбъект("Справочник."+ИмяСпр);
    СпрДляСписка.ВыбратьЭлементы();
    Пока    СпрДляСписка.ПолучитьЗначение() = 1 Цикл
    СоответствияПолей.ДобавитьЗначение(СпрДляСписка.ТекущийЭлемент());
    КонецЦикла;
    КонецПроцедуры
    
    
    
  11. TopicStarter Overlay
    FDL
    Offline

    FDL

    Регистрация:
    23 сен 2011
    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    1
    Я точь в точь так же пробовал писать. У меня ругается поле агрегатного объекта не обнаружено (получитьзначение()) =)
  12. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Значит СписСпр не является объектом типа СписокЗначений
  13. dianofob
    Offline

    dianofob (-_-)y-.o0O

    Регистрация:
    3 июл 2009
    Сообщения:
    711
    Симпатии:
    0
    Баллы:
    26
    правильно.. нарусском похуже читаю код.. "ПолучитьЭлемент()"
  14. TopicStarter Overlay
    FDL
    Offline

    FDL

    Регистрация:
    23 сен 2011
    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    1
    Хахахахаха....два часа...это видимо бревно в глазу не вижу...всем спасибо=)

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