Каталог решений - Велостыли: Регламентные задания

Велостыли: Регламентные задания

Велостыли: Регламентные задания

В наличии

Переделывая очередное «Костыльное» решение, в голову пришла мысль, собрать все странные решения в одну статью, чтобы была некая библиотека о том, как делать не надо (Навеяно вредными советами). Потом понял, что в одну статью не получится все записать, начну с регламентных заданий. Поясню, в данную статью попали примеры из жизни, которые так или иначе реализованы на механизме регламентных заданий, при этом совершенно не всегда этот подход в принципе оправдан.

Категория:

Описание

Не пытайтесь повторить это на работе!

Сокращения и сленг в статье:

  • РЗ — Регламентное задание
  • ФЗ – Фоновые задания
  • Шедулер -Task Scheduler, компонент Microsoft Windows, который предоставляет возможность запланировать запуск программ или скриптов в определённые моменты времени или через заданные временные интервалы. (РЗ на Windows)
  • Батник — файл с расширением *.bat
  • БСП – Библиотека стандартных подсистем
  • УТ – Управление торговлей
  • ERP — 1С:ERP Управление предприятием 2.

Содержание:

1 Себестоимость для Директора.

2 Не смог доделать до конца и использовал помощь зала.

3 По старинке. Толстым по тонкому.

4 Перемудрили, хотели как лучше наверное…

5 ФЗ и Обработчик ожидания. РЗ чем-то не угодили?

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

7 Почти все предусмотрели. Бесконечный цикл.

 

1 Себестоимость для Директора.

Поведали мне тут историю про ERP и директора, которого удивлял отчет по себестоимости. Суть в том, что в течение дня себестоимость по Номенклатуре менялась и его это дико удивляло, объяснить же ему, что это вполне нормально сил не нашлось. Был придуман «Гениальный» план…

Средствами MSSQL раз в день (ранним утром) из последнего бекапа подымалась копия базы доступ, к которой был прописан директору за место рабочей базы. Все ради того чтобы он мог смотреть отчет по себестоимости с неменяющимися в течение дня цифрами. Соответственно копия весит ровно столько же, сколько и рабочая база.

На самом деле удивляет, что из всех возможных вариантов, а их на вскидку приходит в голову масса, к примеру:

-по регламенту собирать куда-то срез на утро и сделать отчет именно по этому срезу.

-либо дополнительный отчет (механизм из БСП), сохраняющий данные при первом запуске за день, а все последующие запуски в течение дня, показывающий только сохраненные данные.

-или все-таки объяснить, что меняющаяся себестоимость в течение дня — это нормально.

Но выбрали именно такой ресурсоемкий вариант…

2 Не смог доделать до конца и использовал помощь зала.

Эту ситуацию рассказала мне коллега по работе. Была задача, по регламенту собирать некий файл Excel и отправлять его на почту, но 1с программист не смог довести всю работу до конца. Толи у него сил не хватило, толи времени, толи желания…

Средствами 1с по регламенту собирался файл Excel и сохранялся на диск. Средствами виндового шедулера запускался скрипт, который отправлял тот самый файл по почте. Самое важное, что поработал 1С программист и системный администратор, они настроили время запуска РЗ и шедулера так, чтобы все работало почти бесшовно…

3 По старинке. Толстым по тонкому.

Это решение видел я лично, досталось оно от одной Франчайзи. Была задачка: собирать с касс в Розницу (Серверная) данные по регламенту. Касс было около 100, по 1-2 на магазине. На кассах стоял Frontol, обмен касс с Розницей настроен был через файлы (подпиленный типовой механизм).

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

Я понимаю, что типовые механизмы в данном случае написаны в большинстве на клиентских модулях, но по тому количеству переделок, что было в Рознице, видно было, что за первоначальный вид конфигурации не боролись, поэтому для меня до сих пор остается тайной, почему не создали регламент и не перенесли код на сервер. А лучше вообще создали бы дополнительную обработку (механизм из БСП) и перенесли код в нее и использовали бы ее как регламент.

4 Перемудрили, хотели как лучше наверное…

Это решение опять же видел лично, оно досталось от Франчайзи. Оно, кстати, не такое страшное как выше. В рознице необходимо было сделать регламент и обработку по запуску процедуры усушки товара. Запускать либо по регламенту, либо вручную.

Была добавлена обработка в «Расширения конфигурации» с формой. В модуле обработки была экспортная процедура. В конфигурацию было добавлено РЗ и модуль, в котором была одна единственная процедура:

Процедура ЗапуститУсушкуТовараВРознице() Экспорт

       Обработка = Обработки.УсушкаТовараРозница.Создать();

       Обработка.ЗапуститьУсушкуНаВсехСкладах(Неопределено);

КонецПроцедуры

Предполагаю, что хотели сделать доработку без изменения конфигурации, но не учли, что на тот момент в расширение еще нельзя было добавлять модули и до сих пор нельзя добавлять РЗ.

Можно было в уже созданной обработке, в модуле добавить функцию СведенияОВнешнейОбработке() Экспорт с двумя командами «ВызовСерверногоМетода» и «ОткрытиеФормы» и все… Используя механизм БСП без доработки конфигурации.

5 ФЗ и Обработчик ожидания. РЗ чем-то не угодили?

Это решение видел лично. Задача состоит в том, что нужно было проверять папку с небольшим интервалом и если в папке присутствует файл, обработать его и удалить. База Розница (Серверная).

Виндовый шедулер запускал батник, который запускал 1С в толстом клиенте и запускал внешнюю обработку, которая запускала фоновое задание и подключала обработчик ожидания. Данный механизм ломался, если что-то случалось на сервере, где запускался толстый клиент.

Тут или РЗ или дополнительная обработка решала бы данную задачу.

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

Не буду рассказывать плотно про мобильное приложение, попробую кратенько. Есть некое мобильное приложение со значком «1С:Совместимо», нарисованное 10 лет назад (так заявлено на сайте), учитывая то, что первая версия мобильной платформы вышла 29.05.2013., а http сервисы пришли с платформой 8.3.5 в 10.07.2014. Получается 10 лет назад, это действительно был прорыв, но решения с годами устаревают и надо озаботится о переработке решения под текущие реалии.

В общем, стояла задача подобрать мобильное приложение для обмена с УТ10, причем решение b2b. На сколько я понимаю, выбрали это решение из-за красивых картинок на сайте. Громких лозунгов "Быстро, Дешево, Легко!". И от того, что фирму обслуживала Франчайзи являющаяся официальным партнером разработчика этого решения.

Вы скажите причем здесь регламентные задания!?

По большему счету, РЗ тут и недолжно быть, но… Рассказываю, как это все работает…

1 Скачивается некая внешняя обработка.

2 С помощью нее делаются настройки в базе.

3 Прописывается под кем она должна запускаться и на каком сетевом ресурсе будет лежать. К этому ресурсу у пользователей должны быть полные права.

4 Виндовый шедулер под пользователем запускает толстый клиент и запускает данную обработку, и она постоянно обрабатывает вызовы.

5 При старте обработка запускает какой-то сервер обработки вызовов, который принимает и отдает данные.

Самое странное, что при работе всего этого, чем больше клиентов подключается через мобилку, тем сложнее работать в УТ сотрудникам. Постоянные конфликты блокировок, съедание всех ресурсов и страшные тормоза, то есть с транзакциями откровенно плохо продумано. Да и сам этот механизм ломался при динамическом обновлении и разных факторах. В итоге раньше раз 10-20 в день завершали работу запущенного толстого клиента и запускали заново через батник прописанный в шедулере. Это уже как ритуал было ;))

В данный момент большая часть клиентов переведена на веб клиент + http-сервис, а параллельно всех остальных переводят на новое самописное приложение, работающее через http-сервис. УТ чувствует себя все лучше и лучше.

7 Почти все предусмотрели. Бесконечный цикл.

Вот этот вариант почти был рабочий, банальная ошибка привела к зацикливанию. По регламенту надо было отправлять сообщения из регистра, в котором они копились. Выбирались первые 100 записей с сортировкой по измерению «ПопыткаОтправки». Сначала надо было отправить те сообщения, которые в прошлый раз были не отправлены. Если сообщение по какой-то причине не отправлялось, «ПопыткаОтправки» увеличивалась на 1. По регламенту если попыток отправки было 10 и более (жестко прописано в коде) сообщения больше не выбирались из регистра. Все бы ничего, но «ПопыткаОтправки» было с типом Число(1), то есть достигнуть 10 было в принципе невозможно.

 

На этом пока все.

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

 

В конце решил написать статью с примерами использования механизма из БСП, который мог решить большинство перечисленных выше задач -> БСП. Дополнительные отчеты и обработки. Регламентные задания примеры от простого к сложному

has been added to your cart:
Оформление заказа