1. Спонсор публикаций Marketplace codeby. Сервис, который так долго ждали. При расчетах используем биткоин. Первый товар уже в продаже: Консультация на тему ИБ от Ondrik8

    Скрыть объявление
  2. Спонсор публикаций Marketplace codeby. Сервис, который так долго ждали. При расчетах используем биткоин. Второй товар маркетплейса: Надёжная обфускация вашей программы от PingVinich

    Скрыть объявление

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

Тема в разделе "1C и всё что с ней связано", создана пользователем BBDragon, 1 авг 2011.

  1. BBDragon

    BBDragon Well-Known Member

    Репутация:
    0
    Регистрация:
    4 май 2008
    Сообщения:
    148
    Симпатии:
    0
    В документе имеется кнопка, которая открывает справочник "Материалы". Внутри него имеются группы, хотелось бы сделать, чтобы по нажатию кнопки открывалась сразу конкретная группа "Железо" справочника. Вопрос, возможно ли это? :)
     
  2. vbs

    vbs Well-Known Member

    Репутация:
    0
    Регистрация:
    18 фев 2007
    Сообщения:
    1.708
    Симпатии:
    3
    Вешаешь на кнопку процедуру типа :

    Список = СоздатьОбъект("Справочник.Материалы");
    // ГруппаЖелезо - группа, внутри которой будет открываться справочник
    Список.ИспользоватьРодителя(ГруппаЖелезо);
    Список.ВыбратьЭлементы();
    Список.ПолучитьЭлемент();
    ОткрытьПодбор("Справочник.Материалы","ФормаСписка",Список,0);


    Добавлено: Vitfil, надеюсь, простит меня за нарушение его главной заповеди при ответе на подобные вопросы :)
     
  3. unknown181538

    unknown181538 НеГуру
    1C Team

    Репутация:
    0
    Регистрация:
    28 дек 2008
    Сообщения:
    1.418
    Симпатии:
    0
    Я тут написал, и удалил.
    Ибо у меня все сообщения в дерево свернулись. Как это убрать?? ААА!!!
     
  4. BBDragon

    BBDragon Well-Known Member

    Репутация:
    0
    Регистрация:
    4 май 2008
    Сообщения:
    148
    Симпатии:
    0
    vbs, спасибо огромное! Примерно так и предполагал, просто хотелось быть уверенным ;)
     
  5. vbs

    vbs Well-Known Member

    Репутация:
    0
    Регистрация:
    18 фев 2007
    Сообщения:
    1.708
    Симпатии:
    3
    И попробовал бы сначала. Собственные эксперименты - путь к совершенству ;)
     
  6. BBDragon

    BBDragon Well-Known Member

    Репутация:
    0
    Регистрация:
    4 май 2008
    Сообщения:
    148
    Симпатии:
    0
    Попробовал бы с удовольствием, вот только интересовался не для себя, а для друга. А он сейчас в отъезде, MD-шника у меня под рукой не было.. :(
     
  7. BBDragon

    BBDragon Well-Known Member

    Репутация:
    0
    Регистрация:
    4 май 2008
    Сообщения:
    148
    Симпатии:
    0
    Итак, у друга не получилось, решил сам попробовать. Названия справочников я не совсем точно дал, теперь исправляюсь. Значит, имеется справочник "СкладЖалюзи", в нем группы "КомплектующиеДляВертикальныхЖалюзи" и "КомплектующиеДляОкон", которые тоже являются группами и содержат в себе еще группы. Необходимо по нажатию кнопки открыть группу "ЦепиНижние" из группы "КомплектующиеДляВертикальныхЖалюзи" и выбирать элементы из нее. Т.е. иерархия такая: СкладЖалюзи - КомплектующиеДляВертикальныхЖалюзи - ЦепиНижние. Пробовал так, как предлагали - не работает. Вот мой код:

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

    vbs Well-Known Member

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

    и процедуру ОбработкаПодбора включить
     
  9. BBDragon

    BBDragon Well-Known Member

    Репутация:
    0
    Регистрация:
    4 май 2008
    Сообщения:
    148
    Симпатии:
    0
    Итак, наконец-то удалось решить эту проблему. Вот финальный вариант:
    1) в модуле ФормыСписка справочника СкладЖалюзи

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

    Процедура, повешенная на кнопку документа:

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

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

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

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