Фоновая обработка больших данных в 1С с прогресс баром

Пару лет назад уже сталкивался с подобной задачей (Фоновая обработка больших данных в 1С). Чуть погуглил, что изменилось за это время. А фактически ничего. До сих пор для того чтобы показать обычный прогресс бар, приходится использовать велосипеды. Временные хранилища, для того чтобы передать в клиента результат работы фоновой функции/процедуры как нельзя было использовать, так и сейчас нельзя. Прогресс бар, как нельзя было использовать без костылей…так и сейчас нельзя. Ну я конечно не смотрел что в БСП, т.к. зачастую приходится делать дописки где БСП или нет, или она древняя

Общая «шаблонная» схема использования фонового выполнения функций в 1С можно организаовать следующим образом:

  1. Запускаем фоновое задание
  2. На клиенте запускаем периодическое задание которое отлавливает вывод «сообщить» на сервере
  3. В фоновом задании при помощи «сообщить» выводим всякую служебную информацию. Если нужно в «клиент» передать данные — записываем временный файл в формате например json, и имя его, опять же при помощи «Сообщить» передаём на клиент.
  4. По окончании фонового задания, закрываем выполнение периодического задания

Запуск фонового задания:

Процедура или функция фонового задания обязательно должна находиться в общем модуле:

Периодическая проверка и «отлов» серверного вывода «Сообщить»:

В результате будет что-то вроде:

Фоновая обработка больших данных в 1С

Реле времени своими руками 2

Ранее уже делал подобную схему, но вышло слишком дорого и сложно. Поэтому реле времени своими руками буду упрощать и удешевлять 😉 Во первых уберем индикатор, соответственно сдвиговый регистр будет не нужен. Из индикации добавим светодиод, который будет показывать включено или выключено реле. Так-же подумав, решил добавить кнопку ручного включения/выключения реле. Сердцем будет микросхема attiny85. Так-же в схему добавил и блок питания (HLK-PM01), чтоб вся конструкция была единой платой

Принципиальная схема (потыкать в эмуляторе можно тут):

Реле времени своими руками

Схема на текстолите:

Реле времени своими руками
Реле времени своими руками

Ну и скетч:

Вот так готовлю почву чем заниматься долгими зимними вечерами.. Итоговая стоимость предварительно, вышла примерно такая:

  • блок питания — 160р
  • attiny85 — 80р
  • текстолит — 150р
  • светодиод — 7р
  • реле — 150р

Итого — примерно 600р. Ну собственно это цена реле времени своими руками уже готового если покупать на валдберис. Но тут то своими руками 😉

RedOS: обновление httpd из исходников

Как оказалось (по советам данным на linux.org.ru), наиболее правильным вариантом обновления существующей инсталляции httpd, является «опакечивание» исходных кодов в rpm, а затем штатная его установка. В этом случаем мы избавляемся от проблем с выбором правильных ключей и путей, которые пришлось бы устанавливать руками при компиляции/сборке httpd из исходников. Итак поехали:

Сначала как обычно подготовим среду сборки:

Затем создадим структуру каталогов для сборки:

Далее скачиваем исходные коды httpd:

И теперь «опакечиваем» их в rpm:

Если сборка вываливается с ошибками, то необходимо смотреть файл config.log и до устанавливать необходимые зависимости (смотря на что ругается)

Если сборка прошла успешно, то в папке ~/rpmbuild/RPMS/x86_64 будут пакеты готовые к установке. Устанавливать их можно штатно:

ключ —force в данном случае нужен для того, чтобы установщик не ругался на уже существующие файлы настройки httpd (вот тут осторожно! лучше сначала попробовать без этого ключа и посмотреть ошибки)

Убедимся что версия обновилась:

обновление httpd из исходников

Вот и всё, остается перезапустить сервис httpd

Установка PHP 7.4 на RedOS 8.0

Ситуация: после обновления с RedOS 7.3 до RedOS 8.0, обновился и интерпретатор PHP с 7.4. до 8.1, что к сожалению сломало работу сайта на Bitrix. Нужна установка PHP 7.4 на RedOS 8.0

Задача: сделать даунгрейд PHP 8.1 на PHP 7.4

Решение: Штатным образом в RedOS 8.0 отсутствует возможность установки PHP 7.4, Но! так как RedOS по сути своей совместим с RedHat/CentOS, значит возможно использовать сторонние репозитарии http://rpms.remirepo.net.

Создадим в папке /etc/yum.repos.d файл remi.repo с содержимым:

И файл remi-php74.repo:

После чего останется удалить php8:

И установить взамен php 7.4:

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

установка PHP 7.4 на RedOS 8.0
установка PHP 7.4 на RedOS 8.0

Реле времени своими руками

Долго ли, коротко ли, но вот взяло и перестало работать реле времени на моём септике на даче. Его задачей было — раз в час, включать на 15 минут циркуляционный дренажный насос. А так как покупать новое реле «это не наш метод», было принято решение разработать реле времени своими руками. Максимально дешевое, максимально компактное. Итак, именно поэтому будем использовать микросхему attiny85:

реле времени своими руками

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

Включением-выключением насоса будет заниматься реле:

Чуть посчитав количество требуемых ног у микросхемы, взгруснул — для индикатора требуется 7 ног, плюс на реле одна. А у микросхемы всего 6 выходов. Значит придётся использовать сдвиговый регистр. Задача уже не получается совсем простой, но тем не менее остаётся вполне решаемой.

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

Итак, вырисовался в конце концов следующий алгоритм работы всего этого набора электронники: на индикаторе последовательно сменяются цифры от 9 до 0. Цифры сменяются с интервалом в 6 минут. При достижении 1, включается реле, которое выключается при достижении 0. И так по циклу. Т.е. реле (ну и насос) работает 12 минут из часа.

Общая схема подключения получилась такой:

реле времени своими руками

А скетч такой:

На эмуляторе работу скетча можно посмотреть здесь

1 4 5 6 7 8 283