Динамика АХ:Как я могу открыть документ docuview, прикрепленный к заявке на закупку из заказа на поставку?

StackOverflow https://stackoverflow.com/questions/801735

  •  03-07-2019
  •  | 
  •  

Вопрос

Редактировать:Цель состоит в том, чтобы подготовить документы с ценами, которые были прикреплены к Закупке. Реквизиты доступен персоналу, который обрабатывает Покупку Заказы напрямую и простым способом без необходимости возвращаться к самому документу заявки.

Я хотел бы использовать DocuRef::openDocHandling метод на экране «Заказ на закупку» без дублирования документа, связанного с заявкой на закупку.Я хотел бы сделать это с помощью кнопки, которую я добавлю на экран заказа на покупку;Я знаю номер заявки, связанный с заказом на поставку.

Спасибо заранее.

Это было полезно?

Решение

В форме PurchTable добавьте источник данных VendPurchOrderJour с (активной) заявкой на покупку.Вам не обязательно отображать какие-либо поля источника данных, поэтому вы можете использовать свойство OnlyFetchActive.Затем создайте метод формы «docCursor», чтобы сообщить форме DocuView, какая запись является активной.

public Common docCursor()
{
    return reqDoc ? vendPurchOrderJour : purchTable;
}

Создайте кнопку с помощью метода «clicked»:

void clicked()
{
    reqDoc = true;
    if (!infolog.docu().isDocuViewSet())
        infolog.docu().note(element);
    else
        infolog.docu().setActive();
}

Очистите «reqDoc» в «активном» методе PurchTable.

Это решение не позволяет использовать документы в строках покупки. Возможно, вам придется расширить решение следующим образом (строка — это группа форм):

public Common docCursor()
{
    return reqDoc ? vendPurchOrderJour : 
                    line.contains(element.selectedControl()) ? purchLine :
                    purchTable;
}

Другие советы

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

void clicked()
{
    if (!infolog.docu().isDocuViewSet())
        infolog.docu().note(element);
    else
        infolog.docu().setActive();
}

В вашем вопросе неясна ваша цель.Что ты хочешь?Пожалуйста, расширьте.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top