7.7 Выборка данных из подчиненного справочника

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

  1. TopicStarter Overlay
    Peroman
    Offline

    Peroman Опытный в 1С

    Регистрация:
    26 май 2009
    Сообщения:
    879
    Симпатии:
    13
    Баллы:
    29
    есть обработка для проверки справчоников:
    Код:
    
    //******************************************* 
    Перем Список;
    
    Процедура ПриОткрытии()
    
    Таб = СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("Таблица");
    Для Сч=1 По Метаданные.Справочник() Цикл
    Список.ДобавитьЗначение(Метаданные.Справочник(Сч).Идентификатор);
    КонецЦикла;
    
    ВыбранныйЭлемент ="";
    СчУГ =0;                                                                 
    СчУ  =0;
    СчГ  =0;
    Сч   =0;
    Если
    Список.ВыбратьЗначение(ВыбранныйЭлемент,"Выбор справочника","",30,0)= 1 Тогда
    
    Спр = СоздатьОбъект("Справочник."+ВыбранныйЭлемент);
    Спр.ВыбратьЭлементы();
    Пока Спр.ПолучитьЭлемент() = 1 Цикл
    Если Спр.ЭтоГруппа()=1 Тогда
    Таб.ВывестиСекцию("ГруппаСпр");
    Если Спр.ТекущийЭлемент().ПометкаУдаления() = 1 Тогда
    СчУГ=СчУГ+1;
    КонецЕсли;
    СчГ=СчГ+1;
    Иначе
    Таб.ВывестиСекцию("ЭлементСпр");
    Если Спр.ТекущийЭлемент().ПометкаУдаления() = 1 Тогда
    СчУ=СчУ+1;
    КонецЕсли;
    Сч=Сч+1;
    КонецЕсли;
    КонецЦикла;
    
    Сообщить("Всего групп:"+СчГ+"   из них помеченно на удаление: "+СчУГ);
    Сообщить("Всего элементов: "+Сч+"  из них помеченно на удаление: "+СчУ);
    Иначе
    СтатусВозврата(0); 
    КонецЕсли;
    Таб.Показать();
    КонецПроцедуры 
    
    Процедура Сформировать()
    ОчиститьОкноСообщений();
    Список.УдалитьВсе();
    ПриОткрытии();
    КонецПроцедуры
    
    
    Список = СоздатьОбъект("СписокЗначений");
    
    
    Все нормально.
    Но вот если выбирать данные из подчиненого справочника, то не работает.
    Как выбрать данные из подчиненого справочника?
  2. WaRDeR
    Offline

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

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
  3. Time dont wait
    Offline

    Time dont wait Опытный в 1С

    Регистрация:
    20 окт 2009
    Сообщения:
    192
    Симпатии:
    0
    Баллы:
    26
    Ну добавлю алгоритм:

    ссылка на справочник;
    ИспользоватьВладельца;
    ВыборкаЭлементов;
  4. TopicStarter Overlay
    Peroman
    Offline

    Peroman Опытный в 1С

    Регистрация:
    26 май 2009
    Сообщения:
    879
    Симпатии:
    13
    Баллы:
    29
    WaRDeR-что касается синтаксис помощника, я знаю где он находится и читать я умею.
    Мне нужно просто проверить есть данные в данном справочнике или нету. Соответственно с простыми справочниками проблем ноль, а вот с подчиненными тут проблема ведь :

    ИспользоватьВладельца(<Владелец>,<ФлагИзменения>)
    <Владелец> - значение ЭЛЕМЕНТА связанного справочника, которому подчинен данный справочник.
    Т.е. получается мне надо сначала выбрать все данные по справочнику владельцу, а потом по каждому элементу выбрать данные в подчиненном справочнике.
    Может быть есть метод который отключает владельца - ?Чтобы можно было посмотреть сколько данных в справочнике.
  5. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Только используя владельца и никак иначе
  6. WaRDeR
    Offline

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

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    Видимо не умеешь. Я даже жирным выделил, где нужно почитать внимательнее

    Не могу согласиться с вами, коллега. Выборку можно сделать и без учета владельца. Нужно просто отключить учет иерархии (так же как интерактивно можно щелкнуть на значек с папками).
  7. dianofob
    Offline

    dianofob (-_-)y-.o0O

    Регистрация:
    3 июл 2009
    Сообщения:
    711
    Симпатии:
    0
    Баллы:
    26
    уважаемый WaRDer прав.. Выборка по всем эелементам подчиненного справочника, если нужен владелец - доступ через общий реквизит Владелец. Или выборка по элементам владельца, внутри цикл по подчиненным :) Всё очень просто

    P.S.
    а узнать есть ли подчиненные у владельца - ВыбратьЭлементы() = 0 ;)
  8. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Согласен - был не прав.)))

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