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С;
		ВнешнийИсточник.УстановитьОбщиеПараметрыСоединения(Соединение);
		ВнешнийИсточник.УстановитьПараметрыСоединенияПользователя(ПользователиИнформационнойБазы.ТекущийПользователь(),Соединение);	
		ВнешнийИсточник.УстановитьОбщиеПараметрыСоединения(Соединение);
		ВнешнийИсточник.УстановитьПараметрыСоединенияСеанса(Соединение);
		ВнешнийИсточник.УстановитьСоединение();
	
	конецесли;

Гудбай reg.ru

Сегодня наконец окончательно ушел с reg.ru Уж очень сильно стали борщить с ценой за продление доменов. Еще год назад хотел, уже код переноса заказал, да остановили скидкой на продление в 50%. А в этом году не остановили. Ну не остановили, так и ушел. Зачем каждый год её вымаливать, если у других регистраторов она сразу на 50% дешевле?

P.S. Пришел я на reg.ru не добровольно, а с 2domains.ru, там цены были адекватные. Но увы, он закрылся и принудительно передал все домены в reg.ru

1С: ФИО строкой в структуру

Задача: преобразовать строку вида «Пупкин Василий Алибабаевич Оглы Муглы» в структуру Фамилия-Имя-Отчество.

Казалось бы простая часто используемая функция, но быстрым гугленьем ничего толкового найти не удалось. В том что попадалось, не учитывалось, что после отчества у человека может быть еще много всяких добавок-приставок. Потому нарисовал свой велосипед:

Функция ВыделитьФИО(ФИОСТР)
	ФИО=Новый Структура("Фамилия,Имя,Отчество","","","");
	ФИОСТР=СокрЛП(ФИОСТР);
	ФИОСТР=СтрЗаменить(ФИОСТР,"  "," ");
	ФИОСТР=СтрЗаменить(ФИОСТР,"  "," ");
	ФИОМ=СтрРазделить(ФИОСТР," ");
	ФИО.Фамилия=ФИОМ[0];
	если ФИОМ.Количество()>1 тогда
		ФИО.Имя=ФИОМ[1];
	конецесли;	
	если ФИОМ.Количество()>2 тогда
		ФИО.Отчество=ФИОМ[2];		
		если ФИОМ.Количество()>3 тогда
			Для Счетчик = 3 По ФИОМ.Количество-1 Цикл
				ФИО.Отчество=ФИО.Отчество+ФИОМ[Счетчик]; 
			КонецЦикла;
		конецесли;				
	конецесли;	
	
	возврат ФИО;
КонецФункции

&НаСервере
Процедура РазложитьНаСервере()
	ФИО=ВыделитьФИО("Пупкин Василий Алибабаевич Оглы Муглы");
КонецПроцедуры

На выходе будет структура:

  • Фамилия: Пупкин
  • Имя: Василий
  • Отчество: Алибабаевич Оглы Муглы

Что собственно полностью меня устраивает.

Чтиво за последнее время

Взрослое:

Маска Конструктора. Захар Зарипов. Краткий сюжет: выживание горстки людей закинутых для колонизации Марса. Оценка 3/5. Начало хорошее, а дальше скучно. Не дочитал.

Цикл Низший. Михайлов Р.А. Краткий сюжет и идея: после экологической катастрофы люди переселились в искусственно созданные убежища под управлением «Системы». Большая часть людей там находится в «замороженном» виде и со стертой памятью. Во время «естественной» убыли населения, «замороженные» размораживаются, и подселяются к текущему населению. Так было последние лет 300, пока не разморозили ОДИ. Оценка 5/5. P.S. Перечитываю этот цикл уже раз третий наверное..

Цикл Инфер. Михайлов Р.А. Продолжение цикла «Низший». ОДИ удалось сбежать. Теперь он «наверху». Оценка 3/5. Дочитал, но уже с трудом. Или приелось или автор таки поисписался на эту тему..

Голова на колесиках. Шенгельц Игорь Александрович. Сюжет: богатенький буратино после того как попал в аварию, в надежде на то что в будущем его смогут вылечить, замораживает себя. Однако после разморозки «всё пошло не так». Будущее..выглядит совсем по другому. Голову приделывают на платформу с колесиками, дают в манипуляторы швабру и веник и вперед — ты теперь уборщик помещений, выживай. Оценка 5/5

Цикл «Идеальный мир социопата». Очередное пришествие системы и зомби. Путешествие между мирами. В целом интересно. Оценка 4/5

Цикл «Звезды,пламя и сталь». Сюжет: в далеком будущем в мире осталось всё так-же: войны, и дети в детдомах. Один из воспитанников этого детдома смог заполучить себе нейросеть Джоре. В обем мир из «вселенной EVE». В целом читабельно 4/5

Детское:

Увы, детского читаю всё меньше и меньше. Старшему уже ничего не нужно на ночь читать давно. Младшая тоже уже без энтузизазма воспринимает чтение. Жаль, очень жаль..

  • Всё о медвежонке Паддингтоне: оценка 3/5, как по мне скучновато. Не дочитали
  • Заячьи Лапки. К. Паустовский. Оценка 3/5. Слог уже подустарел, ребенку не очень многое понятно. Приходится объяснять
  • Фома — белый медвежонок. Вера Чаплина. Оценка 3/5.

1С: проверка почты по протоколу IMAP

Задача: прочитать почту из почтового ящика и обработать её посредством 1С.

Решение: за основу можно взять код что-то вроде:

Профиль = Новый ИнтернетПочтовыйПрофиль;
		Профиль.АутентификацияPOP3 = Ложь;
		Профиль.АутентификацияSMTP = Ложь;		
		// IMAP         		
	 УстановитьПривилегированныйРежим(Истина);
	  уз=справочники.УчетныеЗаписиЭлектроннойПочты.НайтиПоНаименованию("Поверка приборов учета");
      Пароли = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(уз, "Пароль, ПарольSMTP");
	УстановитьПривилегированныйРежим(Ложь);	  			
		Профиль.ИспользоватьSSLIMAP = Истина;
		Профиль.АдресСервераIMAP = уз.СерверВходящейПочты;
		Профиль.ПортIMAP = уз.ПортСервераВходящейПочты; 	
		Профиль.ПользовательIMAP = уз.ПользовательSMTP;
		Профиль.ПарольIMAP = Пароли.ПарольSMTP;
		Профиль.ТолькоЗащищеннаяАутентификацияIMAP=Ложь;
		IПочта = Новый ИнтернетПочта;
		Сообщ = Новый СообщениеПользователю();
			IПочта.Подключиться(Профиль, ПротоколИнтернетПочты.IMAP); //ПротоколИнтернетПочты.POP3		
			заголовки=IПочта.ПолучитьЗаголовки();
			если заголовки.Количество()>0 тогда		
				ПоследнийЗаголовок=Новый Массив();
				ПоследнийЗаголовок.Добавить(заголовки[заголовки.Количество()-1]);					
				МассивСообщений = Новый Массив;
				МассивСообщений = IПочта.Выбрать(Ложь,ПоследнийЗаголовок);					
				ТекстСообщения=МассивСообщений[0].тексты[0].Текст;			
					уд=Новый Массив();
					уд.Добавить(МассивСообщений[0]);
					IПочта.УдалитьСообщения(уд);	
					IПочта.ОчиститьУдаленныеСообщения();
			иначе	
				answer.result="писем нет";
			конецесли;		
		IПочта.Отключиться(); 	
1 2 3 301