Информационный поток
Задания вакансии материалы разработки сообщения форума
Рубрики статей и материалов
Яндекс-директ

Ограничение платформы. Особенность работы внешних отчетов и обработок в зависимости от типа формы

  • Добавить свою публикацию
  • для этого требуется регистрация

Откуда проблема растет

Представим такую ситуацию: Вы работаете с конфигурацией "Управление производственным предприятием" версии 1.3. Основной режим запуска для конфигурации - "Обычное приложение", однако в свойствах конфигурации установлена поддержка управляемых форм в обычном приложении.

Изображение

Эта настройка означает, что в режиме обычного приложения мы можем открывать управляемые формы объектов конфигурации (формы документов, справочников, обработок и т.д.). 

В принципе, настройка полезная, особенное если конфигурация постепенно переводится на управляемые формы. Но есть одно большое "НО". Если мы попытаемся открыть внешнюю обработку или отчет с управляемой формой, то он попросту не запустится.

Демонстрация

Создадим обработку с управляемой формой, на которую поместим декорацию (надпись).

Изображение

Далее добавим ее в справочник "Внешние обработки", пройдя в меню "Сервис -> Дополнительные внешние отчеты и обработки -> Внешние обработки".

Изображение

С добавлением проблем не возникнем. Далее попытаемся открыть добавленную обработку двойным щелчком. Никакой рекации не проследует.

Для того, чтобы разобраться в действия платформы, попытаемся открыть внешнюю обработку программным образом. Для этого я добавил в меню "Сервис" команду "Открыть внешнюю обработку". Код обработчика команды следующий:

 Процедура ПолныйДействие() Экспорт
	
	ВнешнияяОбработка = Справочники.ВнешниеОбработки.НайтиПоНаименованию("Тест");
	
	ИмяФайла = ПолучитьИмяВременногоФайла();
	ДвоичныеДанные = ВнешнияяОбработка.ХранилищеВнешнейОбработки.Получить();
	ДвоичныеДанные.Записать(ИмяФайла);
			
	Форма = ВнешниеОбработки.ПолучитьФорму(ИмяФайла);
	
	Форма.Открыть();
	
КонецПроцедуры

 Если смотреть в отладке, то после выполнения строки

Форма = ВнешниеОбработки.ПолучитьФорму(ИмяФайла);

в переменной "Форма" будет значение "Неопределено", несмотря на то, что объект обработки был успешно получен.

 Изображение

То есть платформа попросту не может получить форму обработки и возвращает результат "Неопределено".

Но у меня все работает!

Однако, если добавить обработку в состав объектов конфигурации, то все нормально запустится. В этом и заключается ограничение платформы, которое было обозначено в начале статьи.

 Изображение

В итоге

Теперь Вы знаете еще одну особенность работы платформы 1С:Предприятие 8.2 и сможете учитывать ее при разработке. Самое интересное: если в управляемом приложении попытаться открыть внешнюю обработку в обычной формой, то будет открыта пустая управляемая форма.

Почему разработчики платформы не добавили возможность открывать внешние обработки / отчеты с типом формы, отличным от типа, в котором запущен клиентский сеанс? Точного ответа на этот вопрос нет. Можно лишь предположить, что в дальнейшем планируется перевод всех конфигураций на управляемые формы и создание подобной поддержки не целесообразно.

 
0
Читайте также
Копирование сведений для нового объекта
Как при копировании элемента по F9 на форме нового появлялись бы сразу цены копируемого элемента
Разработки
Нумератор документов 7.7
Как установить нумерацию документов? Можно использовать во всех конфигурациях.
Удаленное управление с помощью нашего сервиса
Возможность удаленного управления
Программа для фрилансеров
В программе много отчетов, которые позволяют отслеживать состояние текущих дел
Еще от автора
≡ к списку статей