1C выбор из списка на управляемой форме
Задача: организовать на форме выбор из списка, с первоначальным заполнением из запроса
Решение:
1. Создаем на форме реквизит, с типом «Список значений» и обьектом — СправочникСсылка.Склады:
2. Создаем событие формы «При создании на сервере» и заполняем список:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
&НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) // Заполним по умолчанию часть складов, если таковые есть.. сп=новый ТаблицаЗначений; сп.Колонки.Добавить("Склады"); спстр=сп.Добавить(); спстр.Склады=Справочники.Склады.НайтиПоНаименованию("Вологда Торговля"); спстр=сп.Добавить(); спстр.Склады=Справочники.Склады.НайтиПоНаименованию("Вологда Ремонт (Р)"); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Склады.Ссылка КАК Ссылка, | Склады.Представление КАК Представление |ИЗ | Справочник.Склады КАК Склады |ГДЕ | Склады.Ссылка В(&СписокСкладов)"; Запрос.УстановитьПараметр("СписокСкладов", сп.ВыгрузитьКолонку("Склады")); Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл СписокСкладов.Добавить(Выборка.Ссылка,Выборка.Представление); КонецЦикла; КонецПроцедуры |
Получаем результат вида:
The server requested authentication method unknown to the client
После апгрейда сервера MySQL 8, часть скриптов стала выдавать при коннекте ошибку вида:
1 |
The server requested authentication method unknown to the client |
Решение: нужно для пользователя поменять способ аутенфикации:
1 2 |
ALTER USER 'vasya'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; |
Простой случай сокращения полного ФИО
В случае простого случая необходимости сокращения ФИО вида «Пупкин Василий Иванович» до Пупкин В.И. можно воспользоваться следующей функцией:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
/** * Сокращение полного имени до Фамилия И.О. * @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 их можно только отключить поправив службу запуска, добавив ключ:
1 |
--disable-log-bin |