Предисловие:
В предыдущей статье я предложил методику модификации конфигурации 1С, находящейся на поддержке с описанием некоторых применяемых мною подходов программирования, позволяющих с минимальными изменениями объектов конфигурации добиться, по моему мнению, максимально "простого" обновления типовой конфигурации. Хочу уточнить что речь идет о тех случаях, когда Вам необходимо менять типовой объект.
Ограничения: подсистема разрабатывалась для 8.2 управляемое приложение, а именно - конфигурация УТ11. Но механизм может быть применен для любой конфигурации на базе 8.2 управляемые формы. Данная статья и прикрепленная конфигурация направлена на то чтобы продемострировать возможности возможности платформы 8.2 и не является 100% решением всех потребностей динамического изменения формы.
В данной редакции реализованны механизмы:
- Добавление динамических реквизитов любых форм (форм объектов, списков, общих форм и т.п.).
- Добавление динамических элементов форм связанных с реквизитами объектов или реквизитами форм (ПолеФормы, ТаблицаФормы)
- Переопределение старнадтных обработчиков с возможностью их "наследования"
В качестве примера реализации в конфигурации присутствуют:
- Динамическое добавление условного оформления формы (в т.ч. и использование при оформлении динамических реквизитов).
- Замена таблицы-источника динамического списка на запрос и модификация запроса динамического списка по "правилам", описаным в предыдущей статье.
- Динамическое добавление комманды формы.
- Константа "Работа с заказами".
- Справочник "Номенклатура"
- Реквизиты:
- Код
- Наименование
- ИспользованиеВЗаказах - если "ложь" то отказ от выбора в документе заказа.
- Формы:
- Форма элемента - на форме (Код, Наименование, ИспользованиеВЗаказах)
- Форма списка - источник динамического списка физическая таблица Справочник.Номенклатура.
- Документ "Заказ"
- Реквизиты
- Номер
- Дата
- Табличные части
- Товары
- номер строки
- Номенклатура
- Количество
- Формы
- Форма документа.
- Поведение формы: Если константа "Работа с заказами" = ложь тогда форма заказа не открывается с предупреждением. При попытке выбрать номенклатуру с признаком ИспользованиеВЗаказах = ложь отказ от выбора с сообщением.
- Форма списка
- Источник динамического списка - запрос.
- При открытии документа система должна игнорировать константу "Работа с заказами". т.е. открываться всегда.
- Добавить Табличную Часть "График оплаты" обязательную для заполнения. Реквизиты: Дата, Сумма
- Добавить в таблицу Товары реквизиты Цена, Сумма. Сумма должна пересчитываться автоматически при изменении кол-ва и цены.
- Добавить в таблицу товары реквизит Отменена - булево. При значении Истина цвет строки устанавливать в серый.
- Добавить реквизит формы общее количество и ссумировать количество товаров в документе кроме отмененных строк. пересчет при изменениях количества цены и флага Отменен
- Добавить реквизит формы Сумма документа и как итог суммы в таблице товары кроме отмененных строк. пересчет при изменениях количества цены и флага Отменен
- Добавить проверку заполнения (при проведении) чтобы сумма по документу была равной итогу по строкам Графика оплат.
- Игнорировать флаг "ИспользованиеВЗаказах" при выборе номенклатуры.
- Результат и изменения ниже: