В общем, другие советы шаманов также не подходили, я лишь понял, что обмен РИБ и роль пользователя несовместимы, а другие манипуляции излишни.
Выход был, как ни странно, прост – что называется граблями по граблям – путем наделения пользователя полными правами, но только на время процедуры обмена. Это делается методом глобального контекста УстановитьПривилегированныйРежим(Истина). В принципе прописывать его отключение в файловом варианте необязательно – при возврате из процедуры/функции, в которой был включен привилегированный режим, он будет выключен автоматически (неявно).
Изменения:
- Создан интерфейс «Обмен РИБ» с одной кнопкой «Выполнить обмен», создана роль «Обмен РИБ» - права только на запуск и право на выполнение обновлений информационной базы – это на случай если будут изменения конфигурации и кассир может через свой интерфейс обновить конфигурацию самостоятельно, но это уже другая история. И все, больше никаких админских прав.
- В модуле обычного приложения в процедуре ЗапускИнтерфейсаКассира() подключаем интерфейс «Обмен РИБ».
- В общие модуле ПараметрыОбменаДанными в процедуре ОткрытьФормуВыполненияОбменаРИБ() – для роли "ОбменРИБ" включаем привилегированный режим.
- В общие модуле ПроцедурыОбменаДанными в процедуре ВыполнитьОбменДаннымиПоПроизвольнойНастройке () – для роли "ОбменРИБ" включаем привилегированный режим.
- В общей форме ФормаВыполненияОбменаДанными в процедурах ОпределитьНаличиеНастройки() и УстановитьПараметрыОбменаПоНастройке() – для роли "ОбменРИБ" включаем привилегированный режим.
Необходимого пользователя наделяем ролью "ОбменРИБ" – и делаем обмен.
В приложении файл обновления. Как обновить: берем стандартную УТ 10.3.29.1 и обновляем - Конфигурация -> Поддержка -> Обновить конфигурацию, выбираем файл обновления - обновляем. Затем выгружаем конфигурацию в файл и этим файлом обновляем рабочую базу.