Как лучше сделать?

Тема в разделе "1C и всё что с ней связано", создана пользователем SeverBap, 15 окт 2008.

  1. SeverBap

    SeverBap Well-Known Member

    Регистрация:
    18 сен 2007
    Сообщения:
    440
    Симпатии:
    0
    Вообщем ситуация такая: имеется два справочника, первый двух уровневый, второй подчинен первому;
    понадобилось нарисовать один отчет, суть которого в следующем: пользователь открывает отчет (по умолчанию там ставится дата отчета как рабочаяДата - эта дата условная, представлена как месяц год тоесть: Август 2008г.), исходя из этой даты (кторая может интерактивно менятся прямо в отчете) происходит выборка данных из этих двух справочников, - тоесть ДатаГод() возращает код группы в первом справочнике, датаМесяц() во втором ... как сделать правильно и разумную выборку которая довала нормальный результат за короткое время ....
    я уже начал мыслить на эту тему пока к чему-то путному не дошел: делаем обход по всем элементам справочника второго и смотрим чтобы:
    ТекущийЭлемент().Владелец.Родитель.Код=Число(ДатаГод(РодительОтбора)) И (ТекущийЭлемент().Код=Число(ДатаМесяц(РодительОтбора))) ....

    это хорошо когда все хорошо всмысле их мало элементов в справочнике втором!!!

    есть решение посложней но по скорости быстрей, с запросами свои заморочки ....
     
  2. vitfil

    vitfil IT-интегратор

    Регистрация:
    2 апр 2004
    Сообщения:
    2.070
    Симпатии:
    0
    1С++ и прямые запросы спасут отца русской демократии!
     
  3. SeverBap

    SeverBap Well-Known Member

    Регистрация:
    18 сен 2007
    Сообщения:
    440
    Симпатии:
    0
    поподробней!!! У меня есть компанента FormEX!
     
  4. vitfil

    vitfil IT-интегратор

    Регистрация:
    2 апр 2004
    Сообщения:
    2.070
    Симпатии:
    0
    А нужна компонента 1cpp.dll
     
  5. kaa

    kaa Гость

    Спр //1 справочник
    Спр1//второй

    Спр.НайтиПоКоду(ДатаГод(РодительОтбора));
    ТекРод = Спр.ТекущийЭлемент();
    Спр.ИспользоватьРодителя(ТекРод.ТекущийЭлемент());
    Спр.ВыбратьЭлементы();
    Пока Спр.ПолучитьЭлемент()=1 Цикл

    Спр1.ИспользоватьВладельца(Спр.ТекущийЭлемент());//это если коды уникальны
    Спр1.НайтиПоКоду(ДатаМесяц(РодительОтбора));

    //если нет
    ТекВладелец = Спр.ТекущийЭлемент();
    ТекКод = ДатаМесяц(РодительОтбора);
    ТекстЗапроса =
    |Нужный = Справоник.ххх.ТекущийЭлемент;
    |Владелец = Справочник.ххх.Владелец;
    |Код = Справоник.ххх.код;
    |Условие (Владелец в ТекВладелец);
    |Условие (Код = ТекКод);

    //и т.д.
    КонецЦикла;

    где-то так я ТАК думаю :unsure:
     
  6. vitfil

    vitfil IT-интегратор

    Регистрация:
    2 апр 2004
    Сообщения:
    2.070
    Симпатии:
    0
    kaa
    и сколько это будет работать?
     
  7. SeverBap

    SeverBap Well-Known Member

    Регистрация:
    18 сен 2007
    Сообщения:
    440
    Симпатии:
    0
    Я думаю будет работать очень долго!
    Я пока в шоке и пользуюсь вот этим:
    Код (Text):
    .........
    ВиртуальныйСправочникОтчетныхПериодов=СоздатьОбъект("Справочник.ОтчетныйПериод");
    Если ПустоеЗначение(РодительОтбора)=0 Тогда
    ВиртуальныйСправочникОтчетныхПериодов.ИспользоватьДату(ТекущаяДата());
    ВиртуальныйСправочникОтчетныхПериодов.ВыбратьЭлементы(0);
    Пока ВиртуальныйСправочникОтчетныхПериодов.ПолучитьЭлемент()=1 Цикл
    Если (Число(ВиртуальныйСправочникОтчетныхПериодов.Владелец.Родитель.Код)=Число(ДатаГод(РодительОтбора))) И (Число(ВиртуальныйСправочникОтчетныхПериодов.Код)=Число(ДатаМесяц(РодительОтбора))) Тогда
    ..........
    КонецЕсли;
    КонецЦикла;
    КонецЕсли;
    скорей всего я с ним и останусь ... нда ... теперь сижу ковыряюсь внутренним кодом убираю все циклы и пишу без циклов и запросов ...
    :blink:
     
  8. kaa

    kaa Гость

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

    SeverBap Well-Known Member

    Регистрация:
    18 сен 2007
    Сообщения:
    440
    Симпатии:
    0
    как надо было построить справочники??? (я недавно спрашивал как лучше построить структуру никто не ответил!)
     
  10. kaa

    kaa Гость

    Делать (подчиненный справочник) не подчиненым и добавить реквизит допустим Хозяин с типом первого справочника,с сортировкой и отбором тогда можно было бы воспользоваться ВыбратьЭлементыПоРеквизиту, а остальное надо смотреть по конкретной задаче
     
  11. SeverBap

    SeverBap Well-Known Member

    Регистрация:
    18 сен 2007
    Сообщения:
    440
    Симпатии:
    0
    Нее такое тоже рассматривал, неподошло! Причин было куча сам не помню ... да и по логике должно быть!! Впринципе все реал могу наклипать и такое за пол часа и сравнить!!! И вывесить результат .... так же могу показать схемотично что у меня заложено может кто-то и даст совет по написанию!! :blink:

    Структура схематично:
     

    Вложения:

    • _________.JPG
      _________.JPG
      Размер файла:
      72,4 КБ
      Просмотров:
      15
  12. SeverBap

    SeverBap Well-Known Member

    Регистрация:
    18 сен 2007
    Сообщения:
    440
    Симпатии:
    0
    что нет ни у кого идей??? ;)
     
  13. kaa

    kaa Гость

  14. SeverBap

    SeverBap Well-Known Member

    Регистрация:
    18 сен 2007
    Сообщения:
    440
    Симпатии:
    0
    Понятно!!! :eek:
     
  15. SeverBap

    SeverBap Well-Known Member

    Регистрация:
    18 сен 2007
    Сообщения:
    440
    Симпатии:
    0
    vitfil ну показывай как прямые запросы делать!!!
    или где можно посмотреть то!!!???
     
  16. vitfil

    vitfil IT-интегратор

    Регистрация:
    2 апр 2004
    Сообщения:
    2.070
    Симпатии:
    0
    В очередной раз прощу ващу грубость... "У меня большое и доброе сердце. Как у теленка" (с) ну почти дословно "Золотой теленок".
    най сайте 1cpp.ru есть и последняя версия компоненты, и подробнейшая документация. Ну а дальше - учебники по СУБД, SQL и вперед!
     
  17. SeverBap

    SeverBap Well-Known Member

    Регистрация:
    18 сен 2007
    Сообщения:
    440
    Симпатии:
    0
    Счас посмотрим!!!! (у меня в моей конфигурке уже несколько компанент!!!!) :(
     
  18. SeverBap

    SeverBap Well-Known Member

    Регистрация:
    18 сен 2007
    Сообщения:
    440
    Симпатии:
    0
    не то, вообщем опять отбор по новой для отчета - усложнение по бюджетам и отбор по дате!!!
     
Загрузка...

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