HelpF.pro

Использование синхронных методов на клиенте запрещено

Адаптировала обработку под интерфейс Такси Бухгалтерии 3, и получила ошибку:

Ошибка при вызове метода контекста (Выбрать)

Если ДиалогОткрытияФайла.Выбрать() Тогда

по причине:

Использование синхронных методов на клиенте запрещено!

Это вызвано тем, что Использование модальных окон запрещено!

Решение:

Нужно использовать создание объекта «ОписанияОповещения» и вызов другого метода диалога Показать()

Вот пример кода с ошибкой:

Код 1C v 8.2 УП
 &НаКлиенте
Процедура Выгрузить(Команда)
Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение);
    Диалог.Заголовок = "Сохранить в файл";
    Диалог.Фильтр = "Файл ТЧ документа (*.ftd)|*.ftd|Все файлы (*.*)|*.*";
    Диалог.ПолноеИмяФайла = "Выгрузка_"+Строка(Документ.Номер);
    Если Диалог.Выбрать() Тогда
          ЗначениеВФайл(Диалог.ПолноеИмяФайла, ТПТЧ);
КонецЕсли;   
КонецПроцедуры

Исправленный код:

Код 1C v 8.3
 &НаКлиенте
Процедура Выгрузить(Команда)

Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение);
    Диалог.Заголовок = "Сохранить в файл";
    Диалог.Фильтр = "Файл ТЧ документа (*.ftd)|*.ftd|Все файлы (*.*)|*.*";
    Диалог.ПолноеИмяФайла = "Выгрузка_"+Строка(ВернутьНомерОснования(Объект.Основание));
    Диалог.Показать(Новый ОписаниеОповещения("ВыгрузитьЗавершение", ЭтаФорма, Новый Структура("Диалог", Диалог)));

КонецПроцедуры

&НаКлиенте
Процедура ВыгрузитьЗавершение(ВыбранныеФайлы, ДополнительныеПараметры) Экспорт

Диалог = ДополнительныеПараметры.Диалог;

Если (ВыбранныеФайлы <> Неопределено) Тогда
ВыгрузитьСервер(Диалог.ПолноеИмяФайла);     
КонецЕсли;

КонецПроцедуры

&НаСервере
Процедура ВыгрузитьСервер(ПолнИмяФайла)
ЗначениеВФайл(ПолнИмяФайла, ЭтаФорма.ТЗ.Выгрузить());
КонецПроцедуры

Опубликовано на сайте: https://HelpF.pro
Прямая ссылка: https://HelpF.pro/faq82/view/1838.html