8.х Ещё одна интересная задача/!

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

  1. TopicStarter Overlay
    st88
    Offline

    st88 Профессионал в 1С Команда форума

    Регистрация:
    18 окт 2012
    Сообщения:
    1.725
    Симпатии:
    28
    Баллы:
    54
    Ещё одна уникальная задача есть, решение мне конечно к ней предложили но я немного его не понял, да и в конфигурацию сильно изменения вносить не хочется.
    Собственно дело в чём. Есть справочник ВидыОборудования и есть справочник связанный с ним – ТипыОборудования. Т.е. на один вид оборудования может приходиться 10 разных видов оборудования.
    Видыобор: реквизиты – аббревиатура

    - кр.наименование

    ТипыОборуд: реквизиты – аббревиатура
    При заполнении карточки абонента вызывается своего рода классификатор из этих двух справочников.
    Мне надо в запросе у выбранного абонента выбирать его оборудование и выводить его в ТЧ документа по колонкам соотв. типа ( ну пусть 10 колонок).

    Я делаю так: (НО ЭТО ИЗВРАЩЕНИЕ ИСКАТЬ ПО АББРЕВИАТУРЕ!!!): (текс ниже)

    Во-первых он находит только те которые указаны в аббревиатуре, а есть допустим ПГ4а и т.п он их не берет (т.к. берет строгое соотв. аббревиатуре этот метод). При загрузке базы (около 3тыс абонентов) в реквизитах карточки написано в оборуд по разному ( и ПГ-4 и плита 4-х конф, и плита четырех конф, и пл. 4-х кон. и т.д) он их не находит!!!!(.

    Предложили сделать так: сделать справочник с предопределенными значениями соответствующими колонкам таблицы этого документа (назвать его, например, "Группы оборудования") с табличной частью видов Оборудования.. В табличную часть каждого из этих элементов накидать виды Оборудования, входящие в эти группы и при заполнении табличной части в каждую колонку помещать данные из соответсвующей группы.
    Текст:

    Код:
    СписокВидов = Новый СписокЗначений;
    ПГ2 = Справочники.ВидыВДГО.НайтиПоРеквизиту("Аббревиатура","ПГ2");
    ПГ3 = Справочники.ВидыВДГО.НайтиПоРеквизиту("Аббревиатура","ПГ3");
    ПГ4 = Справочники.ВидыВДГО.НайтиПоРеквизиту("Аббревиатура","ПГ4");
    СГБ = Справочники.ВидыВДГО.НайтиПоРеквизиту("Аббревиатура","СГБ");
    
    ЗапросАОГВ = Новый Запрос(
    "ВЫБРАТЬ
    | ВидыВДГО.Ссылка
    |ИЗ
    | Справочник.ВидыВДГО КАК ВидыВДГО
    |ГДЕ
    | (ВидыВДГО.Аббревиатура ПОДОБНО ""%АОГВ%""
    | ИЛИ ВидыВДГО.Аббревиатура = ""ЕВД"")");
    
    ЗапросВПГ = Новый Запрос(
    "ВЫБРАТЬ
    | ВидыВДГО.Ссылка
    |ИЗ
    | Справочник.ВидыВДГО КАК ВидыВДГО
    |ГДЕ
    | ВидыВДГО.Аббревиатура ПОДОБНО ""ВПГ%""");
    
    ЗапросОП = Новый Запрос(
    "ВЫБРАТЬ
    | ВидыВДГО.Ссылка
    |ИЗ
    | Справочник.ВидыВДГО КАК ВидыВДГО
    |ГДЕ
    | ВидыВДГО.Аббревиатура ПОДОБНО ""ОП%""");
    
    // ЗапросАОГВ.УстановитьПараметр("Аббревиатура","%АОГВ%");
    МассивАОГВ = ЗапросАОГВ.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка");
    МассивВПГ = ЗапросВПГ.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка");
    МассивОП = ЗапросОП.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка");
    
    СписокВидов.Добавить(ПГ2);
    СписокВидов.Добавить(ПГ3);
    СписокВидов.Добавить(ПГ4);
    СписокВидов.Добавить(СГБ);
    
    СписокАОГВ = Новый СписокЗначений;
    Для Каждого ТекАОГВ Из МассивАОГВ Цикл
    СписокВидов.Добавить(ТекАОГВ);
    КонецЦикла;
    
    Для Каждого ТекВПГ Из МассивВПГ Цикл
    СписокВидов.Добавить(ТекВПГ);
    КонецЦикла;
    
    Для Каждого ТекОП Из МассивОП Цикл
    СписокВидов.Добавить(ТекОП);
    КонецЦикла;
    
    Запрос.УстановитьПараметр("Подразделение",Подразделение);
    Запрос.УстановитьПараметр("ПГ2",ПГ2);
    Запрос.УстановитьПараметр("ПГ3",ПГ3);
    Запрос.УстановитьПараметр("ПГ4",ПГ4);
    Запрос.УстановитьПараметр("АОГВ",МассивАОГВ);
    Запрос.УстановитьПараметр("ВПГ",МассивВПГ);
    Запрос.УстановитьПараметр("ОП",МассивОП);
    Запрос.УстановитьПараметр("СГБ",СГБ);
    
  2. TopicStarter Overlay
    st88
    Offline

    st88 Профессионал в 1С Команда форума

    Регистрация:
    18 окт 2012
    Сообщения:
    1.725
    Симпатии:
    28
    Баллы:
    54
    задача решена, тему можно закрывать!)

    зы: спс что подредактировали сообщение, а то что-то сильно глючит форум у меня...

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