Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Обычные формы: повторно открыть форму отчета
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
kserg2012
Добрый день

Платформа 1С:Предприятие 8.3 (8.3.15.1778)

"Управление производственным предприятием для Украины", редакция 1.2
Разработка конфигурации: "ABBYY Ukraine", 2005-2007 (1.2.6.7)

Обычные формы, Режим совместимости: Версия 8.1

есть задача: необходимо открыть форму отчета и выполнить отчет (типа режим автозапуска)

но вот сталкнулся с непонятной для меня ситуацией - при повторном программном открытии формы отчета
всегда получаю новый экземпляр формы отчета

подскажите пож-та что некорректно в моем коде?

ФормаОтчета = Отчеты.АнализТочкиЗаказа.ПолучитьФорму("Форма", Неопределено, "АнализТочкиЗаказаАвтоЗапуск");

Если ФормаОтчета.Открыта()=Ложь Тогда
    ФормаОтчета.Автозапуск = Истина;
    ФормаОтчета.Открыть();
Иначе
    ФормаОтчета.Активизировать();
    ФормаОтчета.Обновить();
КонецЕсли;
denis84
kserg2012 @ Сегодня, 11:01 необходимо зарегистрироваться для просмотра ссылки ,

а можливо "Предопределенная процедура в модуле формы "ПриПовторномОткрытии()""

//В модуле формы отчта процедура ПриПовторномОткрытии

Процедура ПриПовторномОткрытии()
   Активизировать();
КонецПроцедуры
kserg2012
Цитата(denis84 @ 15.12.23, 12:32) необходимо зарегистрироваться для просмотра ссылки
а якщо так:

изменил как в примере - в отладчике вижу, что при каждом повторном вызове

ФормаОтчета.Открыта()=ЛОЖЬ

что и приводит к созданию новой формы отчета
такое ощущение, что какие-то проблемы с платформой??

Цитата(denis84 @ 15.12.23, 12:32) необходимо зарегистрироваться для просмотра ссылки
а можливо "Предопределенная процедура в модуле формы "ПриПовторномОткрытии()""

в моем отчете такого события не было, добавил
Процедура ПриПовторномОткрытии(СтандартнаяОбработка)
    Сообщить("Это ПриПовторномОткрытии",СтатусСообщения.Информация);
    Активизировать();
КонецПроцедуры


всё равно - при повторном вызове создается новая форма отчета

Цитата(kserg2012 @ 15.12.23, 12:01) необходимо зарегистрироваться для просмотра ссылки
Платформа 1С:Предприятие 8.3 (8.3.15.1778)


попробовал на другой платформе и базе

1С:Предприятие 8.3 (8.3.12.1685)
Бухгалтерия для Украины, редакция 1.2. (1.2.44.1)
Обычные формы, Режим совместимости: Версия 8.2.16

ФормаОтчета = Отчеты.АнализСчета.ПолучитьФорму("ФормаОтчета", Неопределено, "ОтчетАнализСчета");

Если ФормаОтчета.Открыта() Тогда
    ФормаОтчета.Активизировать();
Иначе
    ФормаОтчета.Открыть();
КонецЕсли;


этот "упрощенный" код (без автозапуска) работает, новое окно отчета создается только при первом запуске
при повторном запуске - выполняется переход в уже открытую форму

получается - скорее всего проблема в конкретной платформе + конфигурация упп которая под 8.1...
alex1c
Перевірте чи є щось таке, якщо прибрати, буде одна форма відкриватись.
ЭтаФорма.КлючУникальности = Новый УникальныйИдентификатор();

kserg2012

Цитата(alex1c @ 15.12.23, 20:48) необходимо зарегистрироваться для просмотра ссылки
Перевірте чи є щось таке

идея понятна, поискал в конфе подобный код - и нашел 2 места в общих модулях, связанные с работой отчетов

Процедура НазначитьФормеУникальныйКлючИдентификации(Форма) Экспорт
Процедура ОткрытьНовоеОкноОтчета(Отчет, ФормаОтчета) Экспорт

но установленные в этих местах точки останова показали, что этот код не вызывается
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.