Версия для печати темы (https://pro1c.org.ua/index.php?s=3a4bcd4c9be409e2605495ace87dbcd0&showtopic=67399)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование обычных форм 1С 8.2 и не интерфейсной логики _ Обычные формы: повторно открыть форму отчета

Автор: kserg2012 15.12.23, 11:01

Добрый день

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

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

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

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

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

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

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

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

Автор: denis84 15.12.23, 11:32

kserg2012 @ Сегодня, 11:01 * ,

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

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

Процедура ПриПовторномОткрытии()
   Активизировать();
КонецПроцедуры

Автор: kserg2012 15.12.23, 12:23

Цитата(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 15.12.23, 19:48

Перевірте чи є щось таке, якщо прибрати, буде одна форма відкриватись.

ЭтаФорма.КлючУникальности = Новый УникальныйИдентификатор();


Автор: kserg2012 18.12.23, 9:33


Цитата(alex1c @ 15.12.23, 20:48) *
Перевірте чи є щось таке

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

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

но установленные в этих местах точки останова показали, что этот код не вызывается

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua