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

09.05.18

Разработка - Рефакторинг и качество кода

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

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

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

  • РЗ - Регламентное задание
  • ФЗ – Фоновые задания
  • Шедулер -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 было в принципе невозможно.

 

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

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

 

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

Вступайте в нашу телеграмм-группу Инфостарт

РЗ Регламентное задание ФЗ Фоновые задания Шедулер Task Scheduler БСП

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

Рефакторинг и качество кода Нейросети Программист 1С:Предприятие 8 Бесплатно (free)

Продолжение статьи «BSL Language Server внутри 1С:EDT: коннектор, которого не хватало». Там мы научили EDT видеть расширенную диагностику BSLLS, а здесь замкнем контур: научим ИИ-агентов автоматически исправлять эти ошибки строго по официальным стандартам разработки 1С.

02.09.2026    1446    malikov_pro    2    

6

Нейросети Рефакторинг и качество кода Программист 1С 8.3 Бесплатно (free)

В справочнике дополнительных обработок любой базы старше трёх лет лежит два-три десятка файлов. Часть писали вы, часть предыдущий разработчик, часть прислал подрядчик. Завтра одну из них надо править, и первый вопрос не "как править", а "что она вообще делает". Обычный ответ - открыть и читать: полторы тысячи строк это полдня. Показываю, как уложиться в пять минут: пять шагов, у каждого сказано, что он даёт. Внутри распределение 1 135 находок по ста чужим обработкам (четыре первых места из шести - одно и то же), что нашлось в наших собственных обработках, и честный список того, чего этот способ не даёт.

01.09.2026    1506    nedomolkov.ivan    6    

2

Инструментарий разработчика Нейросети Рефакторинг и качество кода Программист 1С 8.3 Абонемент ($m)

Вам досталась чужая обработка на полторы тысячи строк. Автор уволился, документации нет, а править её завтра. Обработка читает код за вас: что он делает, что в нём не так и с чего начинать. Всё считается локально, в интернет ничего не уходит.

10 стартмани

01.09.2026    602    1    nedomolkov.ivan    5    

1

Рефакторинг и качество кода Нейросети Программист 1С:Предприятие 8 Бесплатно (free)

Рассказываю, как подключить к языковым моделям (в Cursor, VS Code, Claude Code) настоящий Синтакс-помощник 1С - со всеми типами, методами, параметрами, примерами кода, контекстами вызова и версиями платформы. Без ручного парсинга HTML: плагин для 1C:EDT в один клик выгружает официальную справку в Docker-контейнер с MCP-сервером и гибридным поиском (FTS5 + векторный индекс).

01.09.2026    1341    malikov_pro    6    

4

Рефакторинг и качество кода Программист 1С 8.3 Бесплатно (free)

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

01.09.2026    974    nedomolkov.ivan    0    

2

Рефакторинг и качество кода Программист 1С:Предприятие 8 Бесплатно (free)

Если вы разрабатываете в 1C:EDT, то наверняка знакомы со штатной системой статического анализа через плагин 1C:Code style V8. Но вы также могли заметить, что база встроенных правил давно не обновлялась: последний стабильный релиз плагина вышел ещё в декабре 2023 года. Чтобы вернуть в EDT свежие и актуальные проверки, я форкнул и доработал проект коннектора к BSL Language Server. В этой статье расскажу, как устроена интеграция, зачем она нужна в эпоху LLM и как подключить плагин за пять минут.

01.09.2026    1023    malikov_pro    5    

4

Перенос данных 1C Рефакторинг и качество кода Программист 1С 8.3 Бесплатно (free)

Правила обмена умеют лежать в двух местах сразу: в макете конфигурации, где их находит глобальный поиск и где их так удобно поправить, и в регистре сведений, откуда они на самом деле исполняются. Пока не проверишь, какой источник включён у плана обмена, правка макета выглядит сделанной и не делает ничего. Разбор задачи, где одно и то же значение ставки оказалось зашито в четырёх местах трёх разных слоёв: карта соответствий в модуле веб-сервиса, обработчик "ПослеЗагрузки" в правиле обмена, числовой ВЫБОР с внутренним ИНАЧЕ 0 внутри сгенерированных правил и общий модуль интеграции с внешним поставщиком чеков. Отдельно - почему у истории с вернувшимися карточками нет доказанной причины, хотя признак сузили до одного вида номенклатуры, и как тестовый прогон на пяти записях сломал сходимость итогового отчёта.

27.08.2026    842    nedomolkov.ivan    0    

1
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Synoecium 793 10.05.18 09:45 Сейчас в теме
Спасибо, что-то на ИС мало статей на тему как не надо делать, большинство пишут как надо (все ведь знают как правильно делать).
user774630; Trancer64; Rjhev; dsdred; +4 Ответить
2. KAV2 159 10.05.18 09:48 Сейчас в теме
Себестоимость для Директора. - Возможно директор хотел не фактическую, а плановую, то есть cost price.
3. dsdred 4280 10.05.18 09:52 Сейчас в теме
(2)Речь была именно про Факт
4. DAAbramov 69 10.05.18 10:18 Сейчас в теме
На инфостарте появилась рубрика "Вредные советы"?)
Upd
Спасибо, нашел
5. pm74 208 10.05.18 10:45 Сейчас в теме
С регламентными заданиями давно для себя решил проблему, универсальное параметризованное РЗ + справочник с хранилищем параметров. Вышло вполне удобно. Пытался опубликовать на ИС, зарубили по оформлению, до сих пор болтается в черновиках.
11. dsdred 4280 10.05.18 22:27 Сейчас в теме
(5)Сильно зарубили?
Интересно было бы посмотреть на решение.
12. pm74 208 10.05.18 23:56 Сейчас в теме
(11) вот описание (сорри за качество записывал поздно вечером )
Прикрепленные файлы:
Описание.wmv
Rjhev; dsdred; +2 Ответить
13. dsdred 4280 11.05.18 09:19 Сейчас в теме
(12)Очень хорошее решение, подойдет для http и web сервисов, регламентных заданий. Надо допиливать статью и публиковать.
У меня в планах у самого было летом написание справочника команд, но тут готовое решение.

Однозначно допиливайте статью и публикуйте!!!

П.С. На ИС смотришь одни Com и XML заголовки мелькают, аж передергивает ;)) Поэтому и статьи стал писать чтобы народ прекращал старье в работе использовать.
14. pm74 208 11.05.18 10:13 Сейчас в теме
(13) код с тех пор уже сильно изменился , в старом тоже куча недочетов (лишних процедур , серверных вызовов итп) нужен рефакторинг .
Думал сделать как расширение , жаль только в него регламентное задание не добавить
15. dsdred 4280 11.05.18 10:27 Сейчас в теме
(14) Расширение + дополнительная обработка (БСП:Дополнительные отчеты и обработки) чем не вариант?
16. pm74 208 11.05.18 10:41 Сейчас в теме
(15) не думал на эту тему , можно попробовать.
кстати из предыдущего моего комментария может сложиться мнение , что какая то нерабочая поделка, но это не так . Работает уже несколько лет в боевом режиме на 2 базах.
Прикрепленные файлы:
Пример.wmv
17. dsdred 4280 11.05.18 10:59 Сейчас в теме
(16)Обязательно нужно публиковать!

Реально то, что хотел писать сам))
6. kiruha 389 10.05.18 10:53 Сейчас в теме
Отдельная база для директора решает множество других проблем :
1) Кроме себестоимости может много чего меняться за день
2) Ничего не тормозит
3) Ничего не блокируется
Обычно только это называется ежедневной копией и доступ кроме директора дается еще финикам
Synoecium; +1 Ответить
7. Synoecium 793 10.05.18 11:20 Сейчас в теме
(6) кстати да, в статье пишется, что цель у директора была чтобы "себестоимость не менялась" и такую проблему можно решить гораздо проще, но такая копия базы очень полезна и возможно стоит потраченных на неё ресурсов. А бывает что нужна еще и третья база - кроме актуальной копии с неизменной информацией еще и тестовая копия которую можно убивать в хлам и она сама восстановится на следующий день.
8. dsdred 4280 10.05.18 11:25 Сейчас в теме
(6)
Отдельная база для директора решает множество других проблем :
1) Кроме себестоимости может много чего меняться за день
2) Ничего не тормозит
3) Ничего не блокируется
Обычно только это называется ежедневной копией и доступ кроме директора дается еще финикам


Обычно, но повторю. Задача была и возникла из-за одного единственного типового отчета на СКД и только для одного человека.
При этом в конторе около 300 сотрудников, в том числе и финики.
9. ron1 10.05.18 11:39 Сейчас в теме
А мы тоже сделали копию, только на sql, и в ней директор, экономисты, финансисты и другие "исты" делают отчеты, потому что быстро. Обычно их не интересует текущий день, они делают отчеты за прошлые годы и уже закончившиеся кварталы и месяцы. Бухгалтерии удобно тем, что у них перестало тормозить, а "истам" удобно в том, что когда бухгалтерия закрывает период и почти каждый день запускает перепроведение документов это им не мешает . Все довольны.
10. ron1 10.05.18 11:42 Сейчас в теме
п.6 я догадываюсь о каком мобильном приложении речь. Мы тоже помучились, пока руководитель не понял, что это лохотрон.
18. Stim213 418 22.05.18 14:43 Сейчас в теме
5 ФЗ и Обработчик ожидания. РЗ чем-то не угодили?

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


Ничего, что регламентные задания выполняются на сервере и от имени пользователя, под которым запущена служба?
При использовании в клиент-серверном режиме сервер ни сном ни духом о файлах на клиенте и ваше РЗ или обработка с РЗ не будут иметь доступа к нужным файлам.
Кроме того, даже если у вас клиент и сервер на одной машине(например, RDP), то, чтобы сервер видел папку пользователя - нужно давать права пользователю, под которым запущен сервер на эту папку. И в этом случае доступ к папке будут иметь все, т.к. что доступно серверу - доступно всем. По этой причине серверный пользователь должен быть максимально ограничен в правах.
Подробнее можете почитать: https://infostart.ru/public/659098/


Почитайте немного матчасть, прежде чем критиковать чужие решения.
o.nikolaev; +1 Ответить
20. dsdred 4280 22.05.18 15:27 Сейчас в теме
(18)В том то и дело, что я в курсе того, что вы описали.

То есть Вы считаете нормальным решением на сервере по таску батником (в котором указан логин и пароль) открывать толстого клиента с обработкой под определенным пользователем который ломится в некую папку?
22. Stim213 418 22.05.18 17:48 Сейчас в теме
(20)

То есть Вы считаете нормальным решением на сервере по таску батником (в котором указан логин и пароль) открывать толстого клиента с обработкой под определенным пользователем который ломится в некую папку?


я не вижу другого решения, невозможно на клиент-сервере выполнить клиентский код в регл задании.

Простой пример - Клиент-серверная база, пользователи работают по RDP на сервере1. При этом служба 1С запущена на сервере2, к которому никому, кроме админов, нет доступа. Папка с файлами находится на терминальном сервере 1.
А теперь расскажите, как через РЗ вы организуете чтение файлов этой папки.
19. Stim213 418 22.05.18 14:54 Сейчас в теме
+ аналогично по прочим пунктам.
Поймите же, что при выполнении РЗ серверный пользователь при всем своем(и вашем) желании не сможет увидеть файлы, хранящиеся на клиенте. Для этого нужен толстый/тонкий клиент, который запускается шедулером.
21. dsdred 4280 22.05.18 15:33 Сейчас в теме
(19)Я это понимаю, так как описанные выше решения переводил на РЗ.

Вы правда считаете, что "Папки для обмена" делают на "клиенте" у некого пользователя при клиент\серверном решении?
23. Stim213 418 22.05.18 17:53 Сейчас в теме
(21)
Вы правда считаете, что "Папки для обмена" делают на "клиенте" у некого пользователя при клиент\серверном решении?


я не могу знать кто и с какой целью создает эти папки. Но если вы хотите обеспечить безопасность файлов в ней, то не следует давать права неё пользователю, под которым крутится сервер, потому что таким образом содержимое может прочесть любой пользователь.
Если секретных данных в папке нет или безопасность поддерживается на уровне ларька средней руки - то можно и сервер. пользователю дать доступ.
24. Stim213 418 22.05.18 17:56 Сейчас в теме
+ я не говорю, что это правильно или неправильно.
Может в вашей конкретной ситуации РЗ и является корректным решением. Но в более общем случае и при разработке универсальных решений такой подход может являться единственно правильным способом, поэтому не стоит так бездумно винить разработчиков. Возможно, у вас просто мало опыта.
25. dsdred 4280 22.05.18 18:57 Сейчас в теме
(24)Отвечу на все разом, если Вы не против.
Согласен, возможно, я не слишком подробно описал, но я предполагал, что упомянув 100 касс с Frontol и файловый обмен в 3 примере, это уже натолкнет на ftp... То есть с касс по ftp прилетали файлы в папки рассшаренные всем пользователям кроме того под которым крутилось 1с по принципу, что Вы описали выше(20). На стороне, где крутится 1с, запускалось то чудо, что я описал. Собственно я перерисовал код под ftp.

По 5 примеру с удалением файла из папки. Инвентаризаторы создавали некий файл определенного формата и передавали его тоже через ftp из вне. Дальше работало то, что описано выше. Я такие вещи в принципе делаю через http сервисы.

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


А по поводу "не следует давать права неё пользователю, под которым крутится сервер", а каким образом работают файловое хранилище в новых конфигурациях? 1С сама сделала именно такой вариант: пользователь, под которым крутится сервер, имеет доступ к папке с файлами, а уже остальным пользователям на уровне конфигурации запрещено использовать внешние обработки, и зарезаны различные доступы. (Хотя может, что то изменилось, но года полтора назад именно так и было)

-> http://v8.1c.ru/doc8/4.htm
Вырезка: "Для работы с файлами различных типов используются приложения, установленные на компьютере пользователя и ассоциированные с соответствующим типом файлов.

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

В информационной базе для хранения файлов предусмотрена структура папок. Файлы распределяются по папкам. Доступ сотрудника к папке может быть ограничен заданными правами доступа."
26. Stim213 418 23.05.18 15:05 Сейчас в теме
(25) Ну что тут можно сказать.
На 1С полагайся, но своей головой все равно думай(с). В 1С много дыр в безопасности, пример взлома я выкладывал: https://infostart.ru/public/182849/

Если хотите действительно сохранить данные - разделяйте их правами доступа на уровне учетных записей ОС, иначе - данные можно утащить.
27. dsdred 4280 23.05.18 15:09 Сейчас в теме
(26)Красивая брешь безопасности
28. azubar 53 16.06.18 23:43 Сейчас в теме
(26) На уровне ОС дыр в безопасности не меньше ;-)
va582; dsdred; +2 Ответить
Для отправки сообщения требуется регистрация/авторизация