"1С:Предприятие" версии 8.3.8 и выше
07.06.2016
В платформе "1С:Предприятие" версии 8.3.8 и выше без использования режима совместимости изменилась модель завершения работы приложения.
Прежняя модель не поддерживала корректную работу в веб-клиенте в связи с имеющимися ограничениями браузеров.
При работе в рамках новой модели, в процессе завершения работы приложения запрещено открытие окон и выполнение серверных вызовов в следующих обработчиках:
Согласно новой модели работы все несохраненные данные следует сохранять сразу, а не накапливать их до момента завершения работы системы. Если сохранение данных сразу невозможно, то предлагается следующий подход. Для каждой формы в обработчике ПередЗакрытием предупреждаем пользователя о наличии несохраненных данных. Если пользователь выбирает продолжить работу в приложении, сохраняем данные автоматически (или предлагаем сохранить вручную, нажатием кнопки Сохранить или аналогичной). В противном случае – приложение закрывается, а данные не сохраняются.
Копировать в буфер обмена&НаКлиенте Процедура ПередЗакрытием(Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка) Если ЕстьНесохраненныеДанные Тогда Если Не ЗавершениеРаботы = Истина Тогда СохранениеНесохраненныхДанныхНаСервере(); Иначе Отказ = Истина; ТекстПредупреждения = "Закрытие формы приведёт к потере несохранённых данных!"; ПодключитьОбработчикОжидания("СохранениеНесохраненныхДанных", 1, Истина); КонецЕсли КонецЕсли КонецПроцедуры &НаКлиенте Процедура СохранениеНесохраненныхДанных() Экспорт ЕстьНесохраненныеДанные = Ложь; СохранениеНесохраненныхДанныхНаСервере(); КонецПроцедуры &НаСервере Процедура СохранениеНесохраненныхДанныхНаСервере() Сообщить("Данные сохранены."); КонецПроцедуры