Насилие над Сборкой. УТ 11.5

Клиент обратился с проблемой обновления с УТ 11.4 на УТ 11.5.

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

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

Пришлось разбираться «на ходу». Оказывается, товарные ордера формируются при проведении документа Сборка. Причем в эти ордера попадают все комплекты на разборку, по всем документам Сборка. Какой в этом смысл, понять сложно, но такова типовая логика УТ 11.

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

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

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

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

Итак, я выявил причину ошибки — была сделана доработка, которая позволяла в документе Сборка работать сразу с несколькими комплектами.

И это воистину дьявольское решение. Ведь программисту, сопровождающему это решение из релиза в релиз нужно будет погружаться в глубины типового кода, чтобы выискивать, где 1С определяет таблицу товаров и комплектов. А это не просто.

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

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

На самом деле проще было бы создать документ-агрегатор над несколькими сборками. Это было бы и дешевле в реализации и проще для последующего сопровождения.

Я вспомнил, как отговаривал одного руководителя проекта создать копию типовых документов, объясняя, что это плохое решение. И вот опять я сталкиваюсь с попыткой решить свои задачи в 1С «кавалеристским наскоком» — бац-бац и в продакшн, а после нас хоть трава не расти.

Среда: УТ 11.4, УТ 11.5
Объем: 3 час.

fixin

Программирую на 1С с 1999 года. В 1С просто Гений. В 2020 году ушел из офиса на вольные хлеба фриланса. Принимаю заказы.

Читайте также:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *