Здравствуйте! По поиску вопрос уже поднимался, но рабочего решения так и нашел.
Задача заключается в следующем. Есть карточка счета/договора/и т.д. В карточке заполнено какое-либо справочное поле. Так вот, необходимо в зависимости от этого справочного поля отображать разный список печатных форм.
Было выяснено, что список доступных для печати форм формируется в методе initCardPrintForms в миксине ["PrintReportUtilities"]
Соответственно, я этот метод переопределил.
Добавив туда после вызова метода
this.preparePrintFormsMenuCollection(printFormsMenuCollection);
Вызов своего метода для скрытия формы:
this.hidePrintFormsMenuItem(printFormsMenuCollection);
В этом методе планировалось построчно проверять название (или id) отчета и в зависимости от этого скрывать конкретную форму из списка.
Планировалось использовать что-то типа такой конструкции:
hidePrintFormsMenuItem: function(printForms) {
printForms.eachKey(function(key, item) {
var formName = item.get("Caption");
switch (ЗНАЧЕНИЕ_СПРАВОЧНИКА) {
case value1:
if (formName!="Отчет1") item.set("Visible", false);
break;
case value2:
if (formName!="Отчет2") item.set("Visible", false);
break;
}
}, this);
},
Собственно вопрос в том, как получить значение нужного мне поля (справочника) в контексте текущего метода? А может есть готовое решение и не нужно изобретать велосипед?