Небольшая предыстория.
В последнее время в формах заказов и реализаций/приобретений появилось много интересного и полезного. Однако по какой то причине, разработчики игнорируют тот факт, что большинству пользователей трудно (а иногда и невозможно в силу разных причин) держать в голове данные, которых становится все больше.
Когда в формах появились упаковки, все обрадовались и кинулись ими пользоваться... ну как же, это же удобно - не надо считать сколько там коробок/штук/килограмм на поддоне. Один раз ввел "пакинг" в НСИ, и пользуйся.
Однако это привело к другого рода проблемам. Оказалось, что цена то в голове у абсолютного большинства пользователей - в базовых единицах. Ну т.е. за штуку. А форма... она же "умная"... она за упаковку цену рисует. И стали возникать разрывы шаблонов у наших работников.
Отсюда появилась задача - добавить в формы документов продаж/закупок колонку "Цена за единицу хранения". И так чтобы она считалась при любом изменении в таблице Товары. И чтобы стало у менеджеров все как прежде - шоколадно... чтобы помнить только одну цифру, а то ишь... за такие деньги еще и больше одной цифры надо помнить... это где такое видано то.
Выдали ТЗ техподдержке - реализовать задуманное через расширение, чтобы конфигурацию с поддержки не снимать.
Надо сказать, там ребята быстрые, сделали все за 1 день. Однако сделали с заимствованием форм и кучи реквизитов с ними. Все это дело какое то время работало, пока не стали в обновлениях меняться формы... не считая коллизий с другими расширениями, которые тоже содержат те же формы с теми же реквизитами.
В общем пришли мы к мнению, что заимствование форм - есть зло, которое надо искоренять.
В итоге было сделано расширение, в котором реализовано добавление на формы ЗаказКлиента, ЗаказПоставщику, РеализацияТоваровУслуг и ПриобретениеТоваровУслуг реквизитов и элементов "Цена за единицу хранения", "Количество единиц хранения", "Итого вес", и обработчики к ним.
Помимо этого, была изменена процедура получения данных для печатной формы счета на оплату:
КоличествоЕдИзм - количество в единицах хранения,
БазоваяЕдиницаИзмерения - наименование единицы хранения
Цена - цена за единицу хранения
ЦеныУпаковки - цена за упаковку (до изменения параметр назывался - Цена).
Чтобы воспользоваться этим, надо изменить макет печатной формы счета, в котором установить использование этих параметров.
Ну и для "защиты от дурака" добавлено автоматическое заполнение грузополучателя и банковских счетов организации/партнера в вышеуказанных формах.
Все изменения форм происходят программно, поэтому расширение никак не повлияет на последующие обновления конфигурации.
При этом структура данных не изменяется, а добавляемые реквизиты рассчитываются "на лету" и используются пока открыта форма.
Тестировалось расширение на конфигурации КА 2.4.13.51 на платформе 8.3.17.
Обновлено 20.11.2020: Немного изменил логику вызова процедуры пересчета общего веса товаров объекта.