Совершенствуя хорошее: разработка собственного механизма корректировок на 1С

Системный архитектор ALP Group Вячеслав Крайнов и методолог ALP Group Николай Хайрутдинов делятся личным опытом создания самописного решения по настройке корректировочных документов для крупного корпоративного заказчика.

Совершенствуя хорошее: разработка собственного механизма корректировок на 1С

Предыстория

Мы работаем в команде по разработке кастомной автоматизированной системы коммерческого учета для одного российского промышленного холдинга. Старая версия системы, как и большинство цифровых решений заказчика, была написана на базе коробочного решения 1С — в данном случае, «1С:Управление торговлей 10.3». Позже на ее основе мы начали разрабатывать новую систему для автоматизации учета.

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

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

Создание

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

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

Настройка корректировки документа «Приходный ордер на товары». Источник: ALP Group
Настройка корректировки документа «Приходный ордер на товары». Источник: ALP Group

Самым сложным оказался первый этап — собрать методическую базу и защитить нашу самописную идею перед заказчиком. Подход нужно было согласовать со всеми службами — не только с коммерческим, но также бухгалтерским и управленческим учетом. Мы должны были убедить всех участников, что данные будут именно такими, как необходимо, а единый подход позволит оптимизировать процессы в компании. Казалось, что это сложнее защиты дипломной работы, но в итоге мы справились.

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

Также в данный механизм мы встроили ролевую модель, чтобы разным пользователям с разным набором прав была доступна возможность корректировки различных реквизитов. В зависимости от бизнес-роли (а их в холдинге, на минуточку, более сотни!), кто-то сможет редактировать все реквизиты, а кто-то — только некоторые из них.

Корректировочный документ «Приходный ордер на товары». Отражены реквизиты, доступные для изменения согласно настройке, и их значения до изменения. В данном примере изменен реквизит «Количество». Источник: ALP Group
Корректировочный документ «Приходный ордер на товары». Отражены реквизиты, доступные для изменения согласно настройке, и их значения до изменения. В данном примере изменен реквизит «Количество». Источник: ALP Group

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

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

77
Начать дискуссию
[]