1C выбор из списка на управляемой форме

Задача: организовать на форме выбор из списка, с первоначальным заполнением из запроса

Решение:

1. Создаем на форме реквизит, с типом «Список значений» и обьектом — СправочникСсылка.Склады:

2. Создаем событие формы «При создании на сервере» и заполняем список:

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	// Заполним по умолчанию часть складов, если таковые есть..
	сп=новый ТаблицаЗначений;
	сп.Колонки.Добавить("Склады");
	спстр=сп.Добавить();
	спстр.Склады=Справочники.Склады.НайтиПоНаименованию("Вологда Торговля");
	спстр=сп.Добавить();
	спстр.Склады=Справочники.Склады.НайтиПоНаименованию("Вологда Ремонт (Р)");
	
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
                   |	Склады.Ссылка КАК Ссылка,
                   |	Склады.Представление КАК Представление
                   |ИЗ
                   |	Справочник.Склады КАК Склады
                   |ГДЕ
                   |	Склады.Ссылка В(&СписокСкладов)";
	Запрос.УстановитьПараметр("СписокСкладов", сп.ВыгрузитьКолонку("Склады"));	
    Выборка = Запрос.Выполнить().Выбрать();

    Пока Выборка.Следующий() Цикл
        СписокСкладов.Добавить(Выборка.Ссылка,Выборка.Представление);
    КонецЦикла;	
КонецПроцедуры

Получаем результат вида:

The server requested authentication method unknown to the client

После апгрейда сервера MySQL 8, часть скриптов стала выдавать при коннекте ошибку вида:

The server requested authentication method unknown to the client

Решение: нужно для пользователя поменять способ аутенфикации:

ALTER USER 'vasya'@'localhost' IDENTIFIED WITH mysql_native_password
BY 'password';

Простой случай сокращения полного ФИО

В случае простого случая необходимости сокращения ФИО вида «Пупкин Василий Иванович» до Пупкин В.И. можно воспользоваться следующей функцией:

/**
 * Сокращение полного имени до Фамилия И.О.
 * @param type $fio
 * @return string
 */
function smallfio($fio,$coding="UTF-8"){
  $ret="";
  $arr=  explode(" ", $fio);
  //die(mb_detect_encoding($arr[1]));
  if (isset($arr[0]) and isset($arr[1]) and isset($arr[2])){
    $arr[1]=trim($arr[1]);
    $arr[2]=trim($arr[2]);
    $ret=$arr[0]." ".mb_substr($arr[1],0,1,$coding).".".mb_substr($arr[2],0,1,$coding).".";
  } else
  if (isset($arr[0]) and isset($arr[1])){
    $ret=$arr[0]." ".mb_substr($arr[1],0,1,$coding).".";
  };  
  return $ret;
};

Отключение бинарных логов в MySQL 8

По умолчанию они включены, и в конфигурационном файле my.cnf их не отключить. Вообще конечно они нужны для восстановления БД в случае сбоев или репликации, но бывают ситуации, что их полезно отключить. В MySQL 8 их можно только отключить поправив службу запуска, добавив ключ:

--disable-log-bin

Жизнь замечательных грибов