Создал свою статью, потому что не нашёл подобную статью на Инфостарте, которая бы точно подходила для моей ситуации, и в которой было бы подробно всё описано, чтобы можно было просто скопировать код.
С формы обработки запускаем в фоновом задании функцию, которая находится в не глобальном общем модуле "расш_ОбщийМодульСервер" со свойством "Сервер".
// форма обработки
&НаКлиенте
Процедура ОбновитьТаблицу(Команда)
расш_ОбновитьТаблицыСверок();
КонецПроцедуры
// Вызов функции в фоновом задании:
// 1) запуск с клиента фонового задания на сервере
// 2) на клиенте подключение обработчика завершения фонового задания
// 3) на клиенте проверка выполнения фонового задания
// 4) на сервере получение результата фонового задания
&НаКлиенте
Процедура расш_ОбновитьТаблицыСверок()
// 1) запуск с клиента фонового задания на сервере
ВыборкаСверка = расш_ВыборкаСверка();
// 2) на клиенте подключение обработчика завершения фонового задания
расш_ПараметрыОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(ЭтотОбъект);
расш_ПараметрыОжидания.ВыводитьОкноОжидания = Истина;
расш_ОповещениеСверка = Новый ОписаниеОповещения("расш_ПриЗавершенииВыборкиСверки", ЭтотОбъект);
ДлительныеОперацииКлиент.ОжидатьЗавершение(ВыборкаСверка, расш_ОповещениеСверка, расш_ПараметрыОжидания);
КонецПроцедуры
&НаСервере
Функция расш_ВыборкаСверка()
расш_ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияФункции(ЭтаФорма.УникальныйИдентификатор);
Возврат ДлительныеОперации.ВыполнитьФункцию(расш_ПараметрыВыполнения, "расш_ОбщийМодульСервер.расш_ВыборкаСверкаНоменклатуры");
КонецФункции
// 3) на клиенте проверка выполнения фонового задания
&НаКлиенте
Процедура расш_ПриЗавершенииВыборкиСверки(РезультатИзВремХран, расш_ДопПараметры) Экспорт
Если РезультатИзВремХран = Неопределено Тогда // пользователь отменил задание
Возврат;
КонецЕсли;
Если РезультатИзВремХран.Статус = "Ошибка" Тогда
ВызватьИсключение РезультатИзВремХран.ПодробноеПредставлениеОшибки;
КонецЕсли;
расш_ЗаполнениеТаблицСверки(РезультатИзВремХран);
ПоказатьПредупреждение( , "Таблицы обновлены!");
КонецПроцедуры
// 4) на сервере получение результата фонового задания
&НаСервере
Процедура расш_ЗаполнениеТаблицСверки(РезультатИзВремХран)
РезультатВыборкаСверка = ПолучитьИзВременногоХранилища(РезультатИзВремХран.АдресРезультата);
Для каждого ТекН Из РезультатВыборкаСверка.ТаблицаНаименований Цикл
НовН = СписокНоменклатуры.Добавить();
ЗаполнитьЗначенияСвойств(НовН, ТекН);
КонецЦикла;
Для каждого ТекЕд Из РезультатВыборкаСверка.ТаблицаЕдиниц Цикл
НовЕд = СписокЕдиниц.Добавить();
ЗаполнитьЗначенияСвойств(НовЕд, ТекЕд);
КонецЦикла;
УдалитьИзВременногоХранилища(РезультатИзВремХран.АдресРезультата);
КонецПроцедуры
// общий модуль расш_ОбщийМодульСервер
Функция расш_ВыборкаСверкаНоменклатуры() Экспорт
// упрощённый текст функции
ТаблицаНаименований = Новый ТаблицаЗначений;
ТаблицаНаименований.Колонки.Добавить("Номенклатура",Новый ОписаниеТипов("Строка",,,,Новый КвалификаторыСтроки(100)));
...
ТаблицаЕдиниц = Новый ТаблицаЗначений;
ТаблицаЕдиниц.Колонки.Добавить("Единица",Новый ОписаниеТипов("Строка",,,,Новый КвалификаторыСтроки(50)));
...
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
...
| СправочникНоменклатура.Наименование";
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
...
НоваяСтрока = ТаблицаНаименований.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, Выборка);
...
НоваяСтрокаЕд = ТаблицаЕдиниц.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрокаЕд, Выборка);
...
КонецЦикла;
РезультатВыборкаСверка = Новый Структура("ТаблицаНаименований, ТаблицаЕдиниц", ТаблицаНаименований, ТаблицаЕдиниц);
Возврат РезультатВыборкаСверка;
КонецФункции