Синхронные методы блокируют выполнение кода до их завершения.
Асинхронные методы позволяют коду выполняться дальше, при этом отслеживается момент их завершения.
Асинхронные методы пока существуют только для некоторых операций:
- с блокирующими/диалоговыми окнами для пользователя;
- с файлами;
- с криптографией;
- с внешними компонентами.
Асинхронные методы существуют только на клиенте. На сервере по-прежнему доступны синхронные методы (при наличии).
Асинхронные функции в 1С 8.3.13 и выше — это работа кода в многопоточном режиме, который выполняется в параллельном потоке и не блокируют выполнение основного кода. Их необходимо использовать при наличии замедляющих (блокирующих) действий, для ускорения выполнения кода, например: при чтении или загрузки больших файлов из базы данных. При использовании асинхронных функций 1С Предприятие 8.3 продолжает реагировать на действия в пользовательском режиме и позволяет продолжать работу.
Основные асинхронные методы:
- Обещание (получение результата выполнения асинхронной функции). Может находится в состоянии ожидания, нормального завершения или исключения.
- Возвращающие Обещание — например КопироватьФайлАсинх(ИмяФайлаИсточника, ИмяФайлаПриемника)
- Асинх — этот модификатор, который делает процедуру или функцию асинхронной.
- Ждать — этот оператор выполняет ожидание завершения асинхронной функции, стоящей за объектом Обещание и может использоваться только внутри Асинх процедур/функций.
Соответствие синхронных методов асинхронным
Объект | Синхронный метод | Асинхронный метод |
Глобальный контекст | ОткрытьФормуМодально() | ОткрытьФорму() |
Вопрос() | ПоказатьВопрос() | |
ОткрытьЗначение() | ПоказатьЗначение() | |
Предупреждение() | ПоказатьПредупреждение() | |
ВвестиДату() | ПоказатьВводДаты() | |
ВвестиЗначение() | ПоказатьВводЗначения() | |
ВвестиСтроку() | ПоказатьВводСтроки() | |
ВвестиЧисло() | ПоказатьВводЧисла() | |
УстановитьВнешнююКомпоненту() | НачатьУстановкуВнешнейКомпоненты() | |
УстановитьРасширениеРаботыСФайлами() | НачатьУстановкуРасширенияРаботыСФайлами() | |
УстановитьРасширениеРаботыСКриптографией() | НачатьУстановкуРасширенияРаботыСКриптографией() | |
ПодключитьРасширениеРаботыСКриптографией() | НачатьПодключениеРасширенияРаботыСКриптографией() | |
ПодключитьРасширениеРаботыСФайлами() | НачатьПодключениеРасширенияРаботыСФайлами() | |
ПоместитьФайл() | НачатьПомещениеФайла() | |
КопироватьФайл() | НачатьКопированиеФайла() | |
ПереместитьФайл() | НачатьПеремещениеФайла() | |
НайтиФайлы() | НачатьПоискФайлов() | |
СоздатьКаталог() | НачатьСозданиеКаталога() | |
КаталогВременныхФайлов() | НачатьПолучениеКаталогаВременныхФайлов() | |
КаталогДокументов() | НачатьПолучениеКаталогаДокументов() | |
РабочийКаталогДанныхПользователя() | НачатьПолучениеРабочегоКаталогаДанныхПользователя() | |
ПолучитьФайлы() | НачатьПолучениеФайлов() | |
ПоместитьФайлы() | НачатьПомещениеФайлов() | |
ЗапроситьРазрешениеПользователя() | НачатьЗапросРазрешенияПользователя() | |
ЗапуститьПриложение() | НачатьЗапускПриложения() | |
ДиалогРедактированияСтандартногоПериода | Редактировать() | Показать() |
КонструкторФорматнойСтроки | ОткрытьМодально() | Показать() |
ОбработкаРасшифровкиКомпоновкиДанных | ВыбратьДействие() | ПоказатьВыборДействия() |
ДиалогВыбораШрифта | Выбрать() | Показать() |
ДиалогВыбораЦвета | Выбрать() | Показать() |
ДиалогРасписанияРегламентногоЗадания | ОткрытьМодально() | Показать() |
ДиалогВыбораФайла | Выбрать() | Показать() |
СписокЗначений | ОтметитьЭлементы() | ПоказатьОтметкуЭлементов() |
ВыбратьЭлемент() | ПоказатьВыборЭлемента() | |
УправляемаяФорма | ОткрытьМодально() | Открыть() |
ВыбратьИзМеню() | ПоказатьВыборИзМеню() | |
ВыбратьИзСписка() | ПоказатьВыборИзСписка() | |
МенеджерКриптографии | Конструктор | НачатьИнициализацию() |
Зашифровать() | НачатьШифрование() | |
Расшифровать() | НачатьРасшифровку() | |
Подписать() | НачатьПодписывание() | |
ПроверитьПодпись() | НачатьПроверкуПодписи() | |
ПолучитьИнформациюМодуляКриптографии() | НачатьПолучениеИнформацииМодуляКриптографии() | |
ПолучитьСертификатыИзПодписи() | НачатьПолучениеСертификатовИзПодписи() | |
ПолучитьХранилищеСертификатов() | НачатьПолучениеХранилищаСертификатов() | |
ПроверитьСертификат() | НачатьПроверкуСертификата() | |
СертификатКриптографии | Конструктор | НачатьИнициализацию() |
Выгрузка() | НачатьВыгрузку() | |
СредстваКриптографии | ПолучитьИнформациюМодуляКриптографии() | НачатьПолучениеИнформацииМодуляКриптографии() |
ХранилищеСертификатовКриптографии | Добавить() | НачатьДобавление() |
НайтиПоОтпечатку() | НачатьПоискПоОтпечатку() | |
НайтиПоСерийномуНомеру() | НачатьПоискПоСерийномуНомеру() | |
НайтиПоСубъекту() | НачатьПоискПоСубъекту() | |
ПолучитьВсе() | НачатьПолучениеВсех() | |
Удалить() | НачатьУдаление() | |
Файл | Конструктор | НачатьИнициализацию() |
ПолучитьВремяИзменения() | НачатьПолучениеВремениИзменения() | |
ПолучитьНевидимость() | НачатьПолучениеНевидимости() | |
ПолучитьТолькоЧтение() | НачатьПолучениеТолькоЧтения() | |
ПолучитьУниверсальноеВремяИзменения() | НачатьПолучениеУниверсальногоВремниИзменения() | |
Размер() | НачатьПолучениеРазмера() | |
Существует() | НачатьПроверкуСуществования() | |
УстановитьВремяИзменения() | НачатьУстановкуВремениИзменения() | |
УстановитьНевидимость() | НачатьУстановкуНевидимости() | |
УстановитьТолькоЧтение() | НачатьУстановкуТолькоЧтения() | |
УстановитьУниверсальноеВремяИзменения() | НачатьУстановкуУниверсальногоВремениИзменения() | |
ЭтоКаталог() | НачатьПроверкуЭтоКаталог() | |
ЭтоФайл() | НачатьПроверкуЭтоФайл() |