Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
21 ноя 2024, 22:42

помогите с решением задачи запуска процедуры между модулями разных объектов

Автор Alexbis, 01 ноя 2019, 18:21

0 Пользователей и 1 гость просматривают эту тему.

Alexbis

Возникла такая задача - на управляемых формах 1с 8.3 в нетиповой конфигурации сделать на форме элемента справочника Контрагенты кнопку, по нажатию  которой отображается долг контрагента перед организациями, которые есть в базе. Для расчета долга в базе есть регистрНакопления долгиКонтрагентов.

Собственно весь вопрос в том,  как из формы справочника вызвать процедуру из формы отчета?
заранее благодарен за помощь с идеями.

По идее все написано, но при вызове из модуля формы справочника процедуры , находящейся в модуле формы отчета скд, система сообщает что нет такого имени, хотя данная процедура &насервере и объявлена экспортной.

LexaK

вариантов великое множество, как программно запустить отчет
вот один из них, пример

    //получаем объект отчета
    лкОтчет = Отчеты.ОтчетПоЗадолженности.Создать();
    //получаем форму отчета
    ФормаОтчета = лкОтчет.ПолучитьФорму();
    ФормаОтчета.СпособОтображенияОкна = ВариантСпособаОтображенияОкна.Максимизированное;
    ФормаОтчета.Открыть();
    //можно здесь передать нужные параметры в отчет
    ...
    лкОтчет.СкомпоноватьРезультат(ФормаОтчета.ЭлементыФормы.Результат);
если помогло нажмите: Спасибо!

Alexbis

Подскажите а данный код должен быть в каком модуле?

попробовал в модуле формы справочника, ошибка
{Справочник.Контрагенты.Форма.ФормаЭлемента.Форма(7)}: Ошибка при вызове метода контекста (ПолучитьФорму)
   ФормаОтчета = лкОтчет.ПолучитьФорму();
по причине:
Интерактивные операции недоступны

попробовал в модуле формы отчета - тоже ошибка -
{Отчет.ОтчетоКредиторскойЗадолженности1.Форма.ФормаОтчета.Форма(7)}: Ошибка при вызове метода контекста (ПолучитьФорму)
    ФормаОтчета = лкОтчет.ПолучитьФорму();
по причине:
Интерактивные операции недоступны
Добавлено: 05 ноя 2019, 10:01


из клиентской процедуры формы -
&НаКлиенте
Процедура Команда1(Команда)
   лкОтчет = Отчет.ОтчетоКредиторскойЗадолженности1.Создать();

{Справочник.Контрагенты.Форма.ФормаЭлемента.Форма(23,12)}: Переменная не определена (Отчет)
   лкОтчет = <<?>>Отчет.ОтчетоКредиторскойЗадолженности1.Создать(); (Проверка: Тонкий клиент)

LexaK

Отчет -> ОтчетЫ, это на толстом клиенте, на тонком используйте функцию ПолучитьФорму(...)
если помогло нажмите: Спасибо!

Пересвет

Alexbis, я начинающий. Заинтересовал твой вопрос. Вдруг с таким придется сталкиваться и мне )). Только не пойму, что ты хочешь? Получить уже сформированный отчёт или вызвать только его форму?

Если просто форму, то я вот так пробовал, работает.

Alexbis

задача получить сумму долга, те выполнить отчет причем с параметром (указать контрагента))
Формы управляемые, клиент тонкий

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск