Шейпер трафика на cpp под FreeBSD

Вот нашел в своих старых файлах.  Пытался когда-то переписать шейпер с PHP на cpp, думал что выигрыш в скорости работы получу. Не получил ничего кроме усложнения 😉 Потому осталось в «столе» и в продакшен не пошло. Узкоспециализированная разработка, использовать которую вот так просто не получится. Выложил для «истории», чтоб не потерялась если что.. Читать далее Шейпер трафика на cpp под FreeBSD

1C: Множественный выбор из справочника, включая группы на управляемой форме

Казалось бы простой вопрос, а гуглить пришлось чтобы сделать примерно то что мне нужно порядка часа.

Создаем реквизит с типом «Список значений»

Код модуля:

&НаКлиенте
Процедура КатегорииТовараНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
	ПараметрыПодбора = Новый Структура;    
	ПараметрыПодбора.Вставить("ЗакрыватьПриВыборе", Истина);
	ПараметрыПодбора.Вставить("МножественныйВыбор", Истина);
	ПараметрыПодбора.Вставить("ВыборГруппИЭлементов", ИспользованиеГруппИЭлементов.ГруппыИЭлементы);   
	ОткрытьФорму("Справочник.Номенклатура.ФормаВыбора", ПараметрыПодбора, Элементы.КатегорииТовара);
КонецПроцедуры


 &НаСервере
  Процедура ИтоговаяТаблицаОбработкаВыбораНаСервере(ВыбранноеЗначение)
     Для Каждого вЗнч Из ВыбранноеЗначение Цикл        
           нстр=объект.КатегорииТовара.Добавить(вЗнч);
     КонецЦикла;
  КонецПроцедуры

&НаКлиенте
Процедура КатегорииТовараОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
	 СтандартнаяОбработка = Ложь;
     ИтоговаяТаблицаОбработкаВыбораНаСервере(ВыбранноеЗначение);
КонецПроцедуры

Результат:

Ansible: «module_stdout»: «/usr/bin/python: not found\r\n»

После обновления OS FreeBSD с 10.3 до 11.2, ansible стал ругаться такой ошибкой. Т.е. на удаленном хосте, не в том месте ищет интерпретатор python. Пришлось в файл inventory добавить строчку:

[all:vars]
ansible_python_interpreter=/usr/local/bin/python

pChart Fatal error: Uncaught Error: Cannot use string offset as an array in

Продолжаю ловить ошибки перевода проекта с PHP 5.4 на PHP 7.2 😉 На этот раз обнаружилось что pChart используемый в части отчетов скорее мертв чем жив, а последнее обновление на официальном сайте от 2014 года. Но! Как всегда нашлись энтузиасты, которые создали форк, в котором в 2.1х ошибки совместимости с PHP 7.2 устранены и выпущена ветка 2.2, не совместимая с pChart 2.1x

https://github.com/bozhinov/pChart2.0-for-PHP7/tree/7.x-compatible

https://github.com/bozhinov/pChart2.0-for-PHP7/tree/2.2

Read only для CalDAV+CardDAV сервера Baikal

К сожалению такая полезная функция как ReadOnly для аккаунта на сервере Baikal не предусмотрена. Ну например когда делаешь общую адресную книгу для организации и не хочешь чтобы любой пользователь нечаянно нажав пару кнопок не удалил важные контакты.

Однако! Чуть покопавшись в движке, можно сделать небольшой патч, который позволит на нужное время включать режим readonly, и выключать его (на период когда нужно подправить общий справочник).

Открываем baikal/vendor/sabre/dav/lib/CardDAV/Card.php и в строке 195 меняем write на read.

У себя я оформил всё 3 файлами: 1) Патч 2) Включение режима readonly 3) Выключение режима

readonly.path:

--- /usr/local/www/apache24/sites/baikal/vendor/sabre/dav/lib/CardDAV/Card.php	2018-07-23 14:17:02.792202000 +0300
+++ /home/pavel/path_dav/Card.php	2018-07-23 14:18:20.941978000 +0300
@@ -220,7 +220,7 @@
                 'protected' => true,
             ],
             [
-                'privilege' => '{DAV:}write',
+                'privilege' => '{DAV:}read',
                 'principal' => $this->addressBookInfo['principaluri'],
                 'protected' => true,
             ],

readonly.sh

#!/bin/sh
patch /usr/local/www/apache24/sites/baikal/vendor/sabre/dav/lib/CardDAV/Card.php /home/pavel/path_dav/readonly.path

write.sh

#!/bin/sh
patch -R /usr/local/www/apache24/sites/baikal/vendor/sabre/dav/lib/CardDAV/Card.php /home/pavel/path_dav/readonly.path

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