1С: Аутентификационный контекст клиента отсутствует в рабочем процессе
Данная ошибка возникла у меня, когда я в фоновом задании попытался вставить данные во внешнюю базу данных. Хотя если просто на сервере выполнять кусок когда вида:
зап=внешниеисточникиданных.ОтчетыДля1С.Таблицы.reports_1c_public_raw_ias.СоздатьОбъект();
зап.communal="1"
зап.Записать();
То всё корректно отрабатывалось. Решением оказалось: перед любой операцией со внешним источником данных в фоновом задании проверять установлено ли соединение, и если нет — предварительно его устанавливать:
состояние=ВнешниеИсточникиДанных.ОтчетыДля1С.ПолучитьСостояние();
если состояние=СостояниеВнешнегоИсточникаДанных.Отключен тогда
УстановитьПривилегированныйРежим(Истина);
Соединение = Новый ПараметрыСоединенияВнешнегоИсточникаДанных;
Соединение.АутентификацияОС=ложь;
Соединение.АутентификацияСтандартная=ложь;
Соединение.ИмяПользователя="укацукацу";
Соединение.Пароль="цукаукацук";
Соединение.СтрокаСоединения="DRIVER={PostgreSQL Unicode}; Data Source=PostgreSQL35W; SERVER=цукацука; PORT=5432; DATABASE=reports_1c; UID=цукацукацу; PWD=укацукацук";
Соединение.СУБД="PostgreSQL";
ВнешнийИсточник=ВнешниеИсточникиДанных.ОтчетыДля1С;
ВнешнийИсточник.УстановитьОбщиеПараметрыСоединения(Соединение);
ВнешнийИсточник.УстановитьПараметрыСоединенияПользователя(ПользователиИнформационнойБазы.ТекущийПользователь(),Соединение);
ВнешнийИсточник.УстановитьОбщиеПараметрыСоединения(Соединение);
ВнешнийИсточник.УстановитьПараметрыСоединенияСеанса(Соединение);
ВнешнийИсточник.УстановитьСоединение();
конецесли;