Чек-лист архитектора 1С: идемпотентность и устойчивость процессов

Как пользоваться чек-листом

Для каждого процесса, задания, интеграции:

  • ❌ — неидемпотентно и опасно
  • ⚠️ — условно допустимо
  • ✅ — архитектурно корректно

Если ❌ в зоне обязательности — это дефект архитектуры, а не «особенность реализации».


I. Процессы, где идемпотентность ОБЯЗАТЕЛЬНА

Если здесь нет идемпотентности — система сломается.


1. Интеграции и обмены

Проверь:

  • Есть ли уникальный ключ входящего сообщения?
  • Может ли сообщение прийти повторно?
  • Что произойдёт при повторной обработке?

Красные флаги:

  • создание документов «если не нашли»
  • отсутствие журнала обработки
  • зависимость результата от истории вызовов

Архитектурный минимум:

  • входное сообщение = идентифицируемая операция
  • повтор → noop / восстановление / отказ

2. Регламентные задания

Проверь:

  • Что будет, если задание:
    • упадёт на середине?
    • запустится дважды?
    • будет запущено вручную?

Красные флаги:

  • приращения без контроля
  • записи в регистры «дописыванием»
  • отсутствие контрольных точек

Архитектурный минимум:

  • расчёт состояния → синхронизация
  • возможность безопасного перезапуска

3. Массовые обработки

Проверь:

  • Можно ли запустить обработку повторно?
  • Есть ли точка согласованности результата?

Красные флаги:

  • обработка меняет данные без проверки текущего состояния
  • нет возможности отката или восстановления

Архитектурный минимум:

  • каждый объект обрабатывается идемпотентно
  • повтор не ухудшает состояние

4. Автоматическое создание документов

Проверь:

  • Является ли документ:
    • состоянием?
    • или побочным эффектом?

Красные флаги:

  • документ создаётся без бизнес-ключа
  • повтор создаёт новый документ

Архитектурный минимум:

  • один бизнес-процесс → один документ
  • повтор → обновление или отказ

II. Зоны повышенного риска (нужно решение архитектора)

Здесь идемпотентность не всегда обязательна, но решение должно быть осознанным.


5. Проведение документов

Проверь:

  • Безопасно ли повторное проведение?
  • Все ли регистры:
    • очищаются?
    • пересчитываются?

Красные флаги:

  • движения дописываются
  • часть регистров не очищается

Решение архитектора:

  • либо гарантировать повторную проводимость
  • либо запретить повтор и зафиксировать это

6. Очереди задач и фоновые процессы

Проверь:

  • Есть ли уникальный ключ задачи?
  • Что будет при двойной постановке?

Красные флаги:

  • очередь как список «что сделать»
  • отсутствие дедупликации

Решение архитектора:

  • очередь = набор идемпотентных задач
  • или строгая сериализация

7. Пользовательские кнопки «Сформировать / Пересчитать»

Проверь:

  • Что произойдёт при двойном клике?
  • Можно ли безопасно нажать ещё раз?

Красные флаги:

  • повтор → новые документы / движения

Решение архитектора:

  • либо идемпотентная логика
  • либо жёсткий запрет и блокировки

III. Где идемпотентность МОЖНО не делать

Но только осознанно и задокументировано.


8. Ручные управляемые операции

Примеры:

  • закрытие месяца
  • разовые корректировки
  • ручные управленческие решения

Условия допустимости:

  • есть регламент
  • есть ответственный
  • есть логирование

9. Операции без повторов по определению

Примеры:

  • физическая инвентаризация
  • подписание документа

Важно:

  • повтор невозможен не технически, а процессно

IV. Универсальные вопросы архитектора (обязательные)

Перед сдачей решения задай себе:

  1. Что будет, если это выполнится ещё раз?
  2. Можно ли восстановить состояние?
  3. Есть ли ключ операции?
  4. Можно ли пересчитать результат?
  5. Можно ли безопасно перезапустить процесс?

Если хотя бы на один ответ:

«Ну… в принципе… наверное…»

— архитектура незрелая.


V. Минимальный стандарт архитектора 1С

Если упростить до сути:

  • ❌ Нет ключа → нет идемпотентности
  • ❌ Есть побочный эффект → будет дубль
  • ❌ Нет пересчёта → нет восстановления
  • ❌ Документ = транзакция → ошибка модели

Что если я заблуждаюсь?

  1. Возможно, бизнес готов платить за ручную коррекцию
    👉 Проверка: сколько стоит час ключевого специалиста?
  2. Возможно, система не будет масштабироваться
    👉 Проверка: что будет при росте ×3?
  3. Возможно, риски приемлемы
    👉 Проверка: зафиксированы ли они письменно?

Этот чек-лист можно использовать как:

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

+ There are no comments

Add yours