Имя: Пароль:
1C
1С v8
Программно заполнить подменю "Ввести на основании" документа обычные формы
0 virdim
 
30.03.17
13:37
Всем привет! Есть табличное поле регистр сведений список, в списке есть колонка с типом документ ссылка. Есть командная панель для этого табличного поля. В этой командной панели хочу чтобы программно заполнялось подменю ввода на основании для этого документа. Можно ли так сделать или руками набивать?
1 jsmith82
 
30.03.17
13:38
Руками
2 virdim
 
03.04.17
09:59
Сделал так

//Вызывается при открытии формы. например так: ЗаполнитьПодменюВводНаОсновании(ЭлементыФормы.КоманднаяПанель9.Кнопки.ПодменюВводНаОсновании
                                Документы.ЗаказПокупателя, "ЗаполнитьНаОснованииЗаказа");
Процедура ЗаполнитьПодменюВводНаОсновании(Подменю, ОбъектМетаданныхДокумент, ИмяПроцедурыДействия)    
    КартинкаДокумент = БиблиотекаКартинок.Документ;
    Для каждого документ из метаданные.документы цикл
        Если Документ.ВводитсяНаОсновании.Содержит(ОбъектМетаданныхДокумент) Тогда
            НК = Подменю.Кнопки.Добавить(документ.Имя, ТипКнопкиКоманднойПанели.Действие, документ.Синоним, Новый Действие(ИмяПроцедурыДействия));
            НК.Картинка = КартинкаДокумент;
        КонецЕсли    
    КонецЦикла
КонецПроцедуры

//Обработчик нажатия на кнопку. Чем заполнять решаем сами
Процедура ЗаполнитьНаОснованииЗаказа(Кнопка)
    Док = Документы[Кнопка.Имя].СоздатьДокумент();
    Док.Заполнить(ЭлементыФормы.СписокЗаказов.ТекущаяСтрока.ЗаказПокупателя);
    Док.ПолучитьФорму("ФормаДокумента").Открыть();
КонецПроцедуры
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший