7.7 Выборка из Спрвочника

Тема в разделе "Типовые решения "1С:Предприятие 7.7"", создана пользователем geniusbsd, 15 дек 2008.

  1. TopicStarter Overlay
    geniusbsd
    Offline

    geniusbsd

    Регистрация:
    11 авг 2008
    Сообщения:
    18
    Симпатии:
    0
    Баллы:
    1
    День Добрый
    Типовая конфигурация 7.7

    Возник вопрос по выборки из справочника.
    Справочник имеет реквизиты
    Наименование
    Переменная 1 - Текст
    Переменная 2 -Текст
    Код - тип перечисление (сортировка и отбор включены)
    Размер1 число
    Размер2 число
    Размер3 число

    Требуется получить элемент
    если Название Реквизита Размер = Переменной размер И если Значение Кода = Переменной2
    При использовании только первого условия все работает, при добавлени втрого не работает:(


    Пробовал делать Справочник.ВыборЭлементовПоРеквизиту("Код",Переменная2)

    Но тогда даные у котороыйх Код = Переменной2 Не выводятся


    Помогите решить данную проблему!!!
    За ранее спасибо
  2. Stado_adama
    Offline

    Stado_adama Модераторы Модератор

    Регистрация:
    27 ноя 2007
    Сообщения:
    1.086
    Симпатии:
    0
    Баллы:
    26
    Код это вообще зарезервированная переменная, и перечислением она быть не может... а если у тебя там все же не код, то сравнивать реквизит тип которого перечисление надо так:
    Код:
    реквизит = Перечисление.НазваниеПеречисления.ЗначениеПеречисления
    
  3. TopicStarter Overlay
    geniusbsd
    Offline

    geniusbsd

    Регистрация:
    11 авг 2008
    Сообщения:
    18
    Симпатии:
    0
    Баллы:
    1
    Делал и так, всче равно выдает только Первое Найденое значение
    А у меня могут быть 20 значений с одинаковым наименованием но с разным Кодом(Шифр)
  4. Stado_adama
    Offline

    Stado_adama Модераторы Модератор

    Регистрация:
    27 ноя 2007
    Сообщения:
    1.086
    Симпатии:
    0
    Баллы:
    26
    значит ты не правильно организуешь перебор... давай код сюда...
  5. TopicStarter Overlay
    geniusbsd
    Offline

    geniusbsd

    Регистрация:
    11 авг 2008
    Сообщения:
    18
    Симпатии:
    0
    Баллы:
    1
    Код:
    Если де = "К1" Тогда
    рек = Перечисление.ВидыДеформации.К1;
    ИнчеЕсли де = "К1" Тогда
    рек = Перечисление.ВидыДеформации.К2; 
    КонецЕсли;
    СпрНММ = СоздатьОбъект("Справочник.Детали");
    СпрДетали = СоздатьОбъект("Справочник.МатерДетали");
    СпрДетали.ИспользоватьВладельца(Модель);
    СпрДетали.ВыбратьЭлементы();//ВыбратьЭлементы();
    Пока СпрДетали.ПолучитьЭлемент()=1 Цикл  
    
    НММ.ИспользоватьВладельца(сСпрДетали.МатДет);
    НММ.ВыбратьЭлементыПоРеквизиту("Деформация",рек); 
    Пока НММ.ПолучитьЭлемент()=1 Цикл
    Если  (НММ.Род<>зРод) 
    
    Тогда  Продолжить;
    
    КонецЕсли;
    Если СпрДетали.Норма = Нмм.ТекущийЭлемент();
    Сообщить(СокрЛП(НмМ.Наименование));
    КонецЕсли;
    КонецЦикла;
    КонецЦикла;
    
    [warn="Внимание"]Пользуемся тегом [ code ].[/warn]



    СпрДетали - имеет реквизиты
    Норма - справочник.Детали

    Детали имеет реквизиты

    Род - справочник вид
    Деформация - Перечислление.ВидыДеформации

    зРод - элемент ввода справочник.вид
    де - элемент ввода перечисление.вид деформации
    При таком коде результат нулевой

    Хотя В справочники НММ есть элемент с наименованием = СпрДетали.Норма и с деформацией К1 и К2

    Сообщить (СокрЛП(зРод)+СокрЛП(де)) выдает все как надо
Похожие темы
  1. Diversant
    Ответов:
    1
    Просмотров:
    575
Загрузка...

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