Не пытайтесь повторить это на работе!
Сокращения и сленг в статье:
- РЗ - Регламентное задание
- ФЗ – Фоновые задания
- Шедулер -Task Scheduler, компонент Microsoft Windows, который предоставляет возможность запланировать запуск программ или скриптов в определённые моменты времени или через заданные временные интервалы. (РЗ на Windows)
- Батник - файл с расширением *.bat
- БСП – Библиотека стандартных подсистем
- УТ – Управление торговлей
- ERP - 1С:ERP Управление предприятием 2.
Содержание:
1 Себестоимость для Директора.
2 Не смог доделать до конца и использовал помощь зала.
3 По старинке. Толстым по тонкому.
4 Перемудрили, хотели как лучше наверное…
5 ФЗ и Обработчик ожидания. РЗ чем-то не угодили?
7 Почти все предусмотрели. Бесконечный цикл.
1 Себестоимость для Директора.
Поведали мне тут историю про ERP и директора, которого удивлял отчет по себестоимости. Суть в том, что в течение дня себестоимость по Номенклатуре менялась и его это дико удивляло, объяснить же ему, что это вполне нормально сил не нашлось. Был придуман «Гениальный» план…
Средствами MSSQL раз в день (ранним утром) из последнего бекапа подымалась копия базы доступ, к которой был прописан директору за место рабочей базы. Все ради того чтобы он мог смотреть отчет по себестоимости с неменяющимися в течение дня цифрами. Соответственно копия весит ровно столько же, сколько и рабочая база.
На самом деле удивляет, что из всех возможных вариантов, а их на вскидку приходит в голову масса, к примеру:
-по регламенту собирать куда-то срез на утро и сделать отчет именно по этому срезу.
-либо дополнительный отчет (механизм из БСП), сохраняющий данные при первом запуске за день, а все последующие запуски в течение дня, показывающий только сохраненные данные.
-или все-таки объяснить, что меняющаяся себестоимость в течение дня - это нормально.
Но выбрали именно такой ресурсоемкий вариант…
2 Не смог доделать до конца и использовал помощь зала.
Эту ситуацию рассказала мне коллега по работе. Была задача, по регламенту собирать некий файл Excel и отправлять его на почту, но 1с программист не смог довести всю работу до конца. Толи у него сил не хватило, толи времени, толи желания…
Средствами 1с по регламенту собирался файл Excel и сохранялся на диск. Средствами виндового шедулера запускался скрипт, который отправлял тот самый файл по почте. Самое важное, что поработал 1С программист и системный администратор, они настроили время запуска РЗ и шедулера так, чтобы все работало почти бесшовно…
3 По старинке. Толстым по тонкому.
Это решение видел я лично, досталось оно от одной Франчайзи. Была задачка: собирать с касс в Розницу (Серверная) данные по регламенту. Касс было около 100, по 1-2 на магазине. На кассах стоял Frontol, обмен касс с Розницей настроен был через файлы (подпиленный типовой механизм).
Виндовый шедулер запускал батник, который запускал 1С в толстом клиенте и запускал внешнюю обработку, которая запрашивала отчет за смену либо загружала отчеты, если они лежали в папках обмена.
Я понимаю, что типовые механизмы в данном случае написаны в большинстве на клиентских модулях, но по тому количеству переделок, что было в Рознице, видно было, что за первоначальный вид конфигурации не боролись, поэтому для меня до сих пор остается тайной, почему не создали регламент и не перенесли код на сервер. А лучше вообще создали бы дополнительную обработку (механизм из БСП) и перенесли код в нее и использовали бы ее как регламент.
4 Перемудрили, хотели как лучше наверное…
Это решение опять же видел лично, оно досталось от Франчайзи. Оно, кстати, не такое страшное как выше. В рознице необходимо было сделать регламент и обработку по запуску процедуры усушки товара. Запускать либо по регламенту, либо вручную.
Была добавлена обработка в «Расширения конфигурации» с формой. В модуле обработки была экспортная процедура. В конфигурацию было добавлено РЗ и модуль, в котором была одна единственная процедура:
Процедура ЗапуститУсушкуТовараВРознице() Экспорт
Обработка = Обработки.УсушкаТовараРозница.Создать();
Обработка.ЗапуститьУсушкуНаВсехСкладах(Неопределено);
КонецПроцедуры
Предполагаю, что хотели сделать доработку без изменения конфигурации, но не учли, что на тот момент в расширение еще нельзя было добавлять модули и до сих пор нельзя добавлять РЗ.
Можно было в уже созданной обработке, в модуле добавить функцию СведенияОВнешнейОбработке() Экспорт с двумя командами «ВызовСерверногоМетода» и «ОткрытиеФормы» и все… Используя механизм БСП без доработки конфигурации.
5 ФЗ и Обработчик ожидания. РЗ чем-то не угодили?
Это решение видел лично. Задача состоит в том, что нужно было проверять папку с небольшим интервалом и если в папке присутствует файл, обработать его и удалить. База Розница (Серверная).
Виндовый шедулер запускал батник, который запускал 1С в толстом клиенте и запускал внешнюю обработку, которая запускала фоновое задание и подключала обработчик ожидания. Данный механизм ломался, если что-то случалось на сервере, где запускался толстый клиент.
Тут или РЗ или дополнительная обработка решала бы данную задачу.
Не буду рассказывать плотно про мобильное приложение, попробую кратенько. Есть некое мобильное приложение со значком «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 было в принципе невозможно.
На этом пока все.
Я буду периодически пополнять данную статью и если вдруг вы нашли решение, которого здесь нет, но оно тоже «Костыльное» пишите в комментариях или мне на почту, я его добавлю.
В конце решил написать статью с примерами использования механизма из БСП, который мог решить большинство перечисленных выше задач -> БСП. Дополнительные отчеты и обработки. Регламентные задания примеры от простого к сложному