Накопал несколько способов уведомить пользователя о чём-либо.
1) notify-send
1
notify-send--urgency normal--expire-time=10000-ityping-monitor-hint:x:500-hint:y:500"Внимание!""В ITIL висит задача срок которой скоро подходит к концу!"
2) fly-dialog
1
fly-dialog--passivepopup"В ITIL висит задача срок которой скоро подходит к концу!"10
3) qdbus
1
qdbus org.kde.plasmashell/org/kde/osdService showText"""Уважаемый, у тебя куча инцидентов не закрытых в ИТИЛ!"
На основе этого знания сейчас буду изобретать велосипед, который будет уведомлять сотрудников о не закрытых задачах. Ибо на почту получать всё это не удобно..
Ранее уже описывал как поднять защищенный туннель с ГИС ЖКХ.Теперь настало время научится делать запросы. Для этого их необходимо подписывать. Подписывается тело сообщения XML заключенное внутри тега body:
Сохраню его в файл in.xml. Далее для работы понадобится сертификат в формате x.509, он выгружается в формате BASE64 из Крипто-про
Подпись сохранилась в файл to_sign.sig, помещаем содержимое внутри тега SignatureValue и получившийся таким образом файл пробуем отправить в ГИС ЖКХ.
Некоторые заметки:
1) Как вытащить закрытый ключ с флешки с подписью — нужно воспользоваться утилитой P12FromGostCSP. Если вы пользовались чем-то другим, то с большой долей вероятностью получите ошибку:
2) Формировать подпись или через КриптоПро или через OpenSSL.
3) Есть готовая утилита для формирования шапки с подписью написанная на Python 2.7. Я её перевел на Python3, сделав минимальные косметические изменения. В принципе работает. Скачать тут
Update 16.06.2025: на текущий момент не удалось достичь успешной отправки запроса в ГИС ЖКХ. Ошибка:
Такая ошибка возникает в 1С на Linux если не установлена библиотека libpng.so Чтоб не гадать что именно нужно доустановить, можно сделать так:
1
apt install libpng*
UPDATE: Иногда это не помогает, или ошибка возвращается на некоторых ПК спустя несколько дней. Почему, вопрос открытый. Грешу на несколько кривые корпоративные обновления ОС. Второй способ решить проблему: найти в конфигураторе макет «КомпонентаПечатиШтрихкодов» и загрузить в него последнюю версию компонента скачанного с сайта 1С (на 10.06.2025 это BarcodeLibNative_10_0_10_5.zip). Да, прямо бинарник, прямо архив.
Ну задача написания нужного запроса сводится к следующим шагам:
Сделаем выборку записей, сгруппировав по дублирующемуся полю. Получим количество дублей, и максимальный id дубля (чтобы знать какой удалять)
Если количество записей больше 1, то запись с максимальным id удалим
В итоге запрос может получится примерно таким:
1
2
3
4
5
delete from ls_indications where id in(
select max_id from(
select count(ls)ascnt,max(id)asmax_id from ls_indications where period='2025-03-01'group by ls
)aszxc where zxc.cnt>1
)
P.S. Если дублей больше 2-х, то запрос нужно выполнить несколько раз, т.к. он удаляет за один раз только одну дублирующуюся запись. Можно конечно наваять скрипт, который этот недостаток убирает, но смысла обычно нет, проще запрос выполнить несколько раз