Преобразование сертификата для подписи ГИС ЖКХ

Дано: флешка с сертификатом для подписи сообщений для ГИС ЖКХ,

Задача: выдернуть с рутокена контейнер в формате p12 и расчленить его на сертификат+открытый ключ+закрытый ключ. Задачу уже подобную год назад решал, но как оказалось мануал который сам для себя тогда делал немножко не точный. Потому обновлю.

Решение:

  1. Для получения файла с токена необходимо воспользоваться P12FromGostCSP
  2. Сертификат: openssl pkcs12 -in p12.pfx -clcerts -nokeys -out public.crt
  3. Публичный ключ: openssl x509 -in public.crt -out public.pem -outform PEM
  4. Закрытый ключ без пароля: openssl pkcs12 -in p12.pfx -nocerts -out key.pem -nodes

Javascript: формирование csv файла

Задача: на чистом javascript сформировать и сохранить из браузера файл формата csv, адекватно открывающийся табличным редактором (например OnlyOffice)

Решение:

rows=[];
rows.push(["aa","bb"]);

let csvContent = "data:text/csv;charset=utf-8," + rows.map(e => e.join(",")).join("\n");
var encodedUri = encodeURI(csvContent);
var link = document.createElement("a");
link.setAttribute("href", encodedUri);
link.setAttribute("download", "download.csv");
document.body.appendChild(link); 
link.click();

Что тут происходит: заполняется некий массив, далее создаётся ссылка в DOM, и в элемент ссылки записываются данные массива. Далее эмулируется нажатие собственно на эту ссылку.

Всплывающее окно на Битрикс «Управление сайтом»

Хм..вот плохо иногда быть самоучкой по методу научного тыка. Для некоторых вещей изобретал велосипед при наличии штатного функционала. Ранее всплывающие окна отрисовывал в стиле bootstrap, а оказывется для этого есть штатные вещи. Далее пример окна:

  popup_warning = BX.PopupWindowManager.create("popup-message", BX('element'), {
            content: 'Показания по всем радостям не записаны!',
            width: 300, 
            height: 200,
            zIndex: 100,
            closeIcon: {opacity: 1},
            titleBar: 'Внимание!',
            closeByEsc: true, 
            darkMode: false, 
            autoHide: false, 
            draggable: true, 
            resizable: true, 
            min_height: 100, 
            min_width: 100, 
            lightShadow: true, 
            overlay: {backgroundColor: 'black',opacity: 500}, 
            buttons: [
                new BX.PopupWindowButton({
                    text: 'Понятно', 
                    id: 'ok-btn', 
                    className: 'ui-btn ui-btn-success',
                    events: {
                      click: function() {
                          popup_warning.close()
                      }
                    }
                })
            ],
            events: {
               onPopupShow: function() {                                 
               },
               onPopupClose: function() {
               }
            }
        });

Подсмотрено тут

Глядя на цены на услуги на Авито

Проткнул давече колесо на самокате. Ну думаю если колеса на машинах клеят за 600р, так уж наверное с самокатом вопрос решить фигня вопрос. Открываю авито…и тут я прихудел чуток, от этих цен: от 2500 за колесо, плюс стоимость камеры от 800р. И далее сыграла у меня моя природная жадность. Купил на WB камеру за 300р, и комлект лопаточек для 176р. Пришли через день. Далее я утром попыхтел с час. Причем дольше всего тупо искал как отвинтить мотор-колесо у самоката. И всё, замена осуществлена, самокат снова в работе. Цена вопроса 476р плюс час времени.

И тут я подумал, что это отличный бизнес-план, как заработать кучу денег за летний сезон: нужно всего лишь подать объявление на то-же авито, зарядив ценник в два раза дешевле за замену камеры. Но тут меня уже обломал сам авито: сказал что в этом разделе объявления платные. Аж 263 рубля за разовое размещение. В общем так я и не стал долларовым миллионером..

1С: Отбор в списке выбора с предустановленным фильтром

Задача: в табличной части на форме документа давай выбирать пользователю только необходимые элементы справочнике при заполнении реквизита.

Решение:

В реквизите установим связь параметров выбора «Очищать» при каждой попытке выбора элемента:

На событие «При изменении» табличной части на форме добавить событие, которое формирует фильтр:

	НовыйПараметр = Новый ПараметрВыбора("Отбор.Суд", ЗначениеРеквизитаОбъекта(Объект.Суд, "ПризнакСуда"));
	НовыйМассив = Новый Массив();
	НовыйМассив.Добавить(НовыйПараметр);
	НовыеПараметры = Новый ФиксированныйМассив(НовыйМассив);
	Элементы.ДанныеИскаРезультат.ПараметрыВыбора = НовыеПараметры;  

И в параметрах выбора выставим:

1 2 3 315