Вариант доработки Бухгалтерии предприятия
Достаточно часто при доработке БП возникает необходимость добавления однотипных реквизитов или табличных частей в большое количество типовых документов конфигурации. Сразу же возникает вопрос, а что с дальнейшей поддержкой? Каких временных и человеческих ресурсов будет требовать обновление конфигурации? Можно ли каким-либо образом минимизировать изменения, вносимые в типовые документы?
- Описание
- Подробнее
Описание
Предположим, что нам необходимо организовать проведение первичных документов по дополнительному регистру бухгалтерии в соответствии с таблицей распределения, задаваемой в каждом документе. При стандартном подходе нам необходимо в каждый документ добавить табличную часть и прописать обработку записи в регистр. При ближайшем рассмотрении оказывается, что нам необходимо изменить 67 документов. Как подумаешь, что при проведении обновления придется сравнивать 67 раз возможные изменения реквизитов, форм документов и их модулей, вся бодрость духа куда-то пропадает. Как этого избежать? Нам помогут «Советы» 🙂
Очень хочется при открытии документа программно добавить на форму документа кнопку по нажатию которой будет открываться таблица в которую будем заносить наше распределение. Обработку записи в регистр вынесем в процедуру общего модуля (нами добавленного!), вызывать процедуру будем по подписке на событие ОбработкаПроведения.
Дабы не добавлять ТЧ в каждый документ, организуем справочник «РаспределениеОбъектов». Создаем у этого справочника ТЧ с требуемой структурой таблицы распределения, добавляем реквизит «Документ» в котором будем хранить ссылку на документ владелец. Рисуем форму элемента, которую будем вызывать для заполнения таблицы распределения. Как же нам вызвать эту форму?
Перед открытием любого документа происходит вызов процедуры общего модуля РаботаСДиалогами.УстановитьПодменюСоветы(ЭлементыФормы.ДействияФормы, «ИмяДокумента»); добавляем в процедуру строку вызова нашей процедуры, в которой будет прописан обработчик добавления кнопки на форму документа.
Процедура УстановитьПодменюСоветы(КоманднаяПанель, ПараметрОтбора = «ВсеСоветы») Экспорт
……………….
// начало изменения атт
ОбъектыУправленческогоУчета.ПриОткрытииФормыУпрУчет(КоманднаяПанель);
// конец изменения атт
КонецПроцедуры // УстановитьПодменюСоветы()
Таким образом, путем добавления 1 строки, мы фактически организовали подписку на событие ПриОткрытии. Этот способ не единственный по приведенным ссылкам можно посмотреть еще несколько прекрасных вариантов
http://www.infostart.ru/projects/4288
Теперь нам необходимо добавить кнопку с обработчиком вызывающим форму элемента справочника. Проще всего добавить в модуль свою процедуру, но повторюсь, очень не хочется изменять модуль формы документа. Будем пробовать пользоваться существующими процедурами.
Для правильной отработки алгоритма нам необходимы две вещи:
- распознать нажатие именно нашей кнопки;