Диалог выбора файла 1с ошибка
В этой статье будут рассмотрены варианты диалогов выбора для пользователей только в немодальных вариантах (асинхронных) использования. Все данные функции 1С имеют одну форму и тип работы – открывают пользователю интерактивное окно, не останавливая при этом работу по выполнению кода. А затем интерактивный выбор пользователя обрабатывается другой функцией - Оповещением о выборе. Отказ от модальности работы является обязательным условием для возможности работы в программе 1С в веб-клиенте.
1. Вариант 1. Выбор из списка значений.
Если нужно предоставить пользователю выбор значения из списка, то в 1С для данной цели нужно использовать функцию ПоказатьВыборИзСписка().
Создаем список значений для выбора, описываем оповещение - функцию, которая будет выполняться после выбора значения. Функция оповещения обязательно должна быть указана с ключевым словом Экспорт. Найти параметры функции: Результат - то, что вернет функция по завершению выбора, ДополнительныеПараметры - Любые параметры, которые хотим дополнительно передать в данную функцию.
Список = Новый СписокЗначений;
ОповещениеОВыборе = Новый ОписаниеОповещения("ПослеЗакрытияВыбораСтепениВажности", ЭтаФорма);
Процедура ПослеЗакрытияВыбораСтепениВажности(Результат,ДополнительныеПараметры) Экспорт
Если Результат<>Неопределено Тогда
2. Вариант 2. Интерактивный подбор файла 1С 8.3
Чтобы осуществить интерактивный подбор файла 1С 8.3, используется объект ДиалогВыбораФайла, но не метод Выбрать(), а метод Показать(), параметром которого является ОписаниеОповещения. Результат интерактивного выбора - это массив путей доступа к файлам подборки.
ОповещениеОВыборе = Новый ОписаниеОповещения("ПослеЗакрытияВыбораПутиКаталога", ЭтаФорма);
ДиалогВыбораМассиваФайлов= Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
Процедура ПослеЗакрытияВыбораПутиКаталога(МассивПутейВыбранныхФайлов, ДополнительныеПараметры) Экспорт
Если МассивПутейВыбранныхФайлов<>Неопределено Тогда
Специалист компании ООО «Кодерлайн»
Вас могут заинтересовать следующие статьи:
94 [PROP_CODE] => TAGS2 [TITLE] => Вас могут заинтересовать следующие семинары: ) --> 95 [PROP_CODE] => TAGS [TITLE] => Вас могут заинтересовать следующие вебинары: ) -->
Вас могут заинтересовать следующие вебинары:
Вернитесь в конфигуратор и выберите пункт меню "Конфигурация" -> "Открыть конфигурацию":
В открывшемся окне нажмите правой кнопкой на пункте "Конфигурация" и выберите из раскрывшегося меню пункт "Свойства":
Откроется окно со свойствами конфигурации (справа):
Пролистайте его в самый низ и найдите там пункт "Режим использования модальности":
Установите его значение в "Использовать":
Внимание! Обратите внимание, что если вы используете платформу 1С, отличную от той, что мы скачивали в первом уроке (более поздней версии), то у вас также будет присутствовать поле "Режим использования синхронных вызовов. ". Его также нужно установить в "Использовать".
Наконец, выберите пункт меню "Конфигурация" -> "Сохранить конфигурацию":
Готово! Теперь ошибки больше не возникнет.
Пояснения ниже - для тех кому интересно, что мы сделали.
Мы включили режим использования модальности в нашей конфигурации. По умолчанию этот режим выключен и это не позволяет нам использовать такие команды как ВвестиЧисло, ВвестиСтроку, ВвестиДату, ОткрытьЗначение.
Дело в том, что эти команды относятся к модальным. Их вызов приводит к тому, что перед пользователем появляется окно (например, для ввода информации), которое блокирует возможность работы с программой, пока окно не закроется.
А так как наличие таких окон крайне нежелательно при работе с 1С через веб-браузер, то при разработке новых конфигураций режим модальности по умолчанию выключен.
Мы же можем смело включать его, так как пишем учебные примеры, не рассчитанные на работу в интернете.
Адаптировала обработку под интерфейс Такси Бухгалтерии 3, и получила ошибку:
Ошибка при вызове метода контекста (Выбрать)
Если ДиалогОткрытияФайла.Выбрать() Тогда
Использование синхронных методов на клиенте запрещено!
Нужно использовать создание объекта «ОписанияОповещения» и вызов другого метода диалога Показать()
Вот пример кода с ошибкой:
Исправленный код:
Похожие FAQ
17 правил для составления оптимального ЗАПРОСа к данным базы 1С 44
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ 1C: Enterprise Development Tools 50
И вот случилось долгожданное: Вышел 1C: Enterprise Development Tools - это среда для разработки конфигурации в IDE Eclipse. С сайта 1С: « 1C:Enterprise Development Tools » – это инструмент нового поколения для разработчиков бизнес-приложений систем Автоматическая архивация баз 1С с использованием Cobian Backup и VBS скриптов 8
Клиент попросил настроить автоматическую архивацию баз 1С раз в три дня и выгрузку архивов на Dropbox и на FTP Сервер. Кроме 1С нужно архивировать папку с рабочими документами. Хочет - так хочет, делаем: Первым делом настроим автоматическую архивац Динамический список ~ отбор в динамическом списке программно 2
Для установки отбора в динамическом списке используется свойство Отбор. Добавление нового элемента отбора осуществляется следующим образом: ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); Для того чтобы новый Добавление дополнительных отчетов и обработок в управляемом приложении 6
Для добавления отчета или обработки нужно в модуле добавить Функцию СведенияОВнешнейОбработке() Функция СведенияОВнешнейОбработке() Экспорт // Объявим переменную, в которой мы сохраним и вернем "наружу" необходимые данные ПараметрыРегистрации Посмотреть все результаты поиска похожих
Еще в этой же категории
При установленном первом или втором режиме возникает подобная ошибка.
Решения:
1. Изменить свойство конфигурации
2. Отказаться от использования таких окон/меню/Предупреждений
3. Переписать на другие функции, например для ошибки из топика использовать функцию ПоказатьВыборИзСписка():
Пример кода:
Полный список проблемных методов
Модальный метод | Немодальный метод |
---|---|
Глобальный контекст | |
Вопрос | ПоказатьВопрос |
Предупреждение | ПоказатьПредупреждение |
ОткрытьЗначение | ПоказатьЗначение |
ВвестиДату | ПоказатьВводДаты |
ВвестиЗначение | ПоказатьВводЗначения |
ВвестиСтроку | ПоказатьВводСтроки |
ВвестиЧисло | ПоказатьВводЧисла |
УстановитьВнешнююКомпоненту | НачатьУстановкуВнешнейКомпоненты |
УстановитьРасширениеРаботыСФайлами | НачатьУстановкуРасширенияРаботыСФайлами |
УстановитьРасширениеРаботыСКриптографией | НачатьУстановкуРасширенияРаботыСКриптографией |
ПоместитьФайл | НачатьПомещениеФайла |
ОткрытьФормуМодально | ОткрытьФорму |
ДиалогРедактированияСтандартногоПериода | |
Редактировать | Показать |
КонструкторФорматнойСтроки | |
ОткрытьМодально | Показать |
ДиалогРасписанияРегламентногоЗадания | |
ОткрытьМодально | Показать |
ДиалогВыбораШрифта | |
Выбрать | Показать |
ДиалогВыбораЦвета | |
Выбрать | Показать |
ОбработкаРасшифровкиКомпоновкиДанных | |
ВыбратьДействие | ПоказатьВыборДействия |
СписокЗначений | |
ОтметитьЭлементы | ПоказатьОтметкуЭлементов |
ВыбратьЭлемент | ПоказатьВыборЭлемента |
УправляемаяФорма | |
ВыбратьИзМеню | ПоказатьВыборИзМеню |
ВыбратьИзСписка | ПоказатьВыборИзСписка |
ОткрытьМодально | Открыть |
Раньше люди нуждались в продуктах, чтобы выжить. Теперь продукты нуждаются в людях, чтобы выжить.
— Николас Джонсон
В данной статье будет рассмотрена ошибка 1С «Использование синхронных методов на клиенте запрещено». Стоит отметить, что синхронные методы в 1С – это те методы, которые не позволяют использовать код, пока сами не завершатся.
1. Устранение ошибки использования синхронных методов
Ошибка использования синхронных методов в системе 1С выводится в следующем виде:
Рис. 1 Использование синхронных методов на клиенте запрещено
Рис. 2 Открытие конфигурации при использовании синхронных методов
Откроется окно, в нём необходимо кликнуть на пункт «Конфигурация» и выбрать в выпадающем списке «Свойства»:
Рис. 3 Выбор свойств конфигурации
Рис. 4 Свойства конфигурации
Пролистываем список свойств до пунктов «Режим использования модальности» и «Режим использования синхронных вызовов расширений платформы»:
Рис. 5 Режимы использования модальности и использования синхронных вызовов расширенной платформы
Далее в настройках режимов следует выбрать «Использовать»:
Рис. 6 Активация использования режима синхронных вызовов
Далее выбираем пункт «Конфигурация» и сохраняем её:
Рис. 7 Кнопка для сохранения конфигурации
Ошибка «Использование синхронных методов запрещено» полностью была устранена.
2. Механизм устранения ошибки использования синхронных методов
А теперь подробнее рассмотрим сам механизм устранения ошибки.
Был включен модальный режим в конфигурации. Так как согласно стандартным настройкам он выключен, команды «ВвестиСтроку», «ОткрытьЗначение», «ВвестиДату», «ВвестиЧисло» были недоступны, потому что являются модальными. В случае вызова данных команд происходит блокировка доступа для пользования программой: появляется всплывающее окно, и дальнейшая работа не является возможной до тех пор, пока оно не закроется. Появление подобных всплывающих окон довольно негативно сказывается при работе системы 1С, особенно через сеть Интернет. Как раз по этой причине модальный режим и отключён по умолчанию. Но в нашем случае при наличии ошибки «Использование синхронных методов на клиенте запрещено», если не ведётся работа в Интернете, данный способ довольно удобен и прост.
В данной статье была дана подробная инструкция со скриншотами по устранению ошибки «Использование синхронных методов на клиенте запрещено» в 1С, а также объяснена сама технология, механизм устранения ошибки.
Специалист компании «Кодерлайн»
Вас могут заинтересовать следующие статьи:
Читайте также: