7.7 Открытие элемента группы справочника напрямую

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

  1. TopicStarter Overlay
    BBDragon
    Offline

    BBDragon Опытный в 1С

    Регистрация:
    11 мар 2010
    Сообщения:
    183
    Симпатии:
    2
    Баллы:
    29
    Имеется справочник "СкладЖалюзи", в нем группы "КомплектующиеДляВертикальныхЖалюзи" и "КомплектующиеДляОкон", которые тоже являются группами и содержат в себе еще элементы, часть из которых также является группами . В документе необходимо создать кнопку, по нажатию на которую открывается группа "ЦепиНижние" из группы "КомплектующиеДляВертикальныхЖалюзи" и можно выбрать элементы из нее. Т.е. иерархия такая: СкладЖалюзи - КомплектующиеДляВертикальныхЖалюзи - ЦепиНижние. Кнопку я создал, повесил на нее процедуру "ВыборЦепи"

    Код:
    Процедура ВыборЦепи()
    Список=СоздатьОбъект("Справочник.СкладЖалюзи"); 
    Список.ВыбратьЭлементы();
    Список.НайтиПоНаименованию("ЦепиНижние");
    Список.ИспользоватьРодителя(Список.ТекущийЭлемент());
    Список.ВыбратьЭлементы();
    Список.ПолучитьЭлемент();
    ОткрытьПодбор("Справочник.СкладЖалюзи", "ФормаСписка", Список,0); 
    КонецПроцедуры 
    
    Однако при нажатии на нее выбор открывается с верхнего уровня, а не с группы "ЦепиНижние" как мне надо :angry:
    Вкратце написал процедуру ОбработкаПодбора, окончательный вариант сделаю позже, при уточнении ТЗ.

    Код:
    Процедура ОбработкаПодбора(Значение)     
    Товар = Значение;
    Ценность = Товар.Цена;
    КонецПроцедуры
    
    Таким образом все работает нормально, только справочник не хочет открываться с нужного уровня
  2. WaRDeR
    Offline

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

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    А если при открытии подбора указать "Список.ТекущийЭлемент()"?
  3. TopicStarter Overlay
    BBDragon
    Offline

    BBDragon Опытный в 1С

    Регистрация:
    11 мар 2010
    Сообщения:
    183
    Симпатии:
    2
    Баллы:
    29
    WaRDeR, увы, то же самое(
  4. WaRDeR
    Offline

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

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    Ну значит нужно обрабатывать открытие формы списка справочника...
    BBDragon нравится это.
  5. TopicStarter Overlay
    BBDragon
    Offline

    BBDragon Опытный в 1С

    Регистрация:
    11 мар 2010
    Сообщения:
    183
    Симпатии:
    2
    Баллы:
    29
    Подскажите, пожалуйста, примерно каким образом :angry:
  6. Хряк
    Offline

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

    Регистрация:
    26 сен 2007
    Сообщения:
    1.447
    Симпатии:
    37
    Баллы:
    54
    Спр=СоздатьОбъект("Справочник.СкладЖалюзи");
    СпрГ=СоздатьОбъект("Справочник.СкладЖалюзи");
    СпрГ.НайтиПоНаименованию("ЦепиНижние",0,1);
    Спр.ИспользоватьРодителя(СпрГ.ТекущийЭлемент());
    ОткрытьПодбор("Справочник.СкладЖалюзи");

    если так не выйдет фсё до открытьподбор перенеси в форму списка спр.жалюзи и при отркрытии по форма.параметр оценивай нужен этот код или нет
  7. Бухгалтерский угодник
    Offline

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

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

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

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    ЭЭэээээххххххх, молодежь................
    Продолжать?
    BBDragon нравится это.
  9. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Мнннндддаааа. Лопухнулся
  10. TopicStarter Overlay
    BBDragon
    Offline

    BBDragon Опытный в 1С

    Регистрация:
    11 мар 2010
    Сообщения:
    183
    Симпатии:
    2
    Баллы:
    29
    Да, так действительно не получается. Что за параметр и как его надо анализировать в форме списка справочника, подскажите, пожалуйста :angry:


    Ну пробовал я так, все равно не получается(

    Код:
    Процедура ВыборЦепи()   
    Спр=СоздатьОбъект("Справочник.СкладЖалюзи"); 
    СпрГ=СоздатьОбъект("Справочник.СкладЖалюзи"); 
    СпрГ.НайтиПоНаименованию("ЦепиНижние",0,1);
    Спр.ИспользоватьРодителя(СпрГ.ТекущийЭлемент());
    ОткрытьПодбор("Справочник.СкладЖалюзи",,,,Спр); 
    КонецПроцедуры
    
    Или вы по другому предлагаете?
  11. WaRDeR
    Offline

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

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    Спр - это должен быть конкретный элемент.
    Полагаю в вашем случае это будет СпрГ.

    Код:
    ОткрытьПодбор("Справочник.СкладЖалюзи",,,,СпрГ); 
    
    BBDragon нравится это.
  12. TopicStarter Overlay
    BBDragon
    Offline

    BBDragon Опытный в 1С

    Регистрация:
    11 мар 2010
    Сообщения:
    183
    Симпатии:
    2
    Баллы:
    29
    Нет, так тоже не получается. Я перепробовал разные варианты, бесполезно. Как-то по-другому надо, но вот как??!
    Вроде бы элементарная вещь, а уже несколько дней не могу докопаться до истины. ЖКК исследовал на эту тему, но так ничего и не нашел.
  13. WaRDeR
    Offline

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

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    :angry:
    Ну значит точно через открытие формы....

    В модуле, в котором открываем:
    Код:
    	СпрГ=СоздатьОбъект("Справочник.СкладЖалюзи"); 
    СпрГ.НайтиПоНаименованию("ЦепиНижние",0,1);
    Параметры = СоздатьОбъект("СписокЗначений");
    Параметры.Установить("Группа", СпрГ.ТекущийЭлемент());
    ОткрытьПодбор("Справочник.СкладЖалюзи",,Параметры,,Спр); 
    
    В модуле списка справочника СкладЖалюзи:

    Код:
    Процедура ПриОткрытии()
    Параметр = Форма.Параметр;
    Если ТипЗначенияСтр(Форма.Параметр) = "СписокЗначений" Тогда
    ОткрываемаяГруппа = Параметр.Получить("Группа");
    Если ПустоеЗначение(ОткрываемаяГруппа) = 0 Тогда
    ИспользоватьРодителя(ОткрываемаяГруппа);
    //......
    
    BBDragon нравится это.
  14. TopicStarter Overlay
    BBDragon
    Offline

    BBDragon Опытный в 1С

    Регистрация:
    11 мар 2010
    Сообщения:
    183
    Симпатии:
    2
    Баллы:
    29
    WaRDeR, Бухгалтерский угодник, огромное спасибо! :angry:
    Наконец-то удалось решить эту проблему :aua:
    Итак, вот финальный вариант:
    1) в модуле ФормыСписка справочника СкладЖалюзи

    Код:
    Процедура ПриОткрытии()
    Параметр = Форма.Параметр;
    Если ТипЗначенияСтр(Форма.Параметр) = "СписокЗначений" Тогда
    ОткрываемаяГруппа = Параметр.Получить("Группа");
    Если ПустоеЗначение(ОткрываемаяГруппа) = 0 Тогда
    ИспользоватьРодителя(ОткрываемаяГруппа);
    КонецЕсли;
    КонецЕсли;
    КонецПроцедуры
    
    
    Процедура, повешенная на кнопку документа:

    Код:
    Процедура ВыборЦепи()   
    СпрГ=СоздатьОбъект("Справочник.СкладЖалюзи"); 
    СпрГ.НайтиПоНаименованию("ЦепиНижние",0,1);
    Параметры = СоздатьОбъект("СписокЗначений");
    Параметры.Установить("Группа", СпрГ.ТекущийЭлемент());
    ОткрытьПодбор("Справочник.СкладЖалюзи","ФормаСписка",Параметры,,Спрг);  
    КонецПроцедуры
    
    
    Без указания параметра "ФормаСписка" в строке ОткрытьПодбор не получалось.

    Ну и финальная обработка подбора (это пока только набросок)

    Код:
    Процедура ОбработкаПодбора(Значение)     
    Товар = Значение;
    Ценность = Товар.Цена;
    Предупреждение(Ценность);
    КонецПроцедуры 
    
    
    Еще раз огромное спасибо всем! Урра :D
  15. WaRDeR
    Offline

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

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    Ну значит по умолчанию открывалась другая форма, поэтому потребовалось указать конкретную форму (кстати, в формах справочника можно расставить флажки основной формы, и формы для выбора)
    BBDragon нравится это.

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