Не так давно перед нами поставили задачу: для каждого документа в конфигурации "бухгалтерия предприятия 2.0" необходимо добавить некий реквизит "Х". C первого взгляда задача не очень сложна, но изменять каждый документ конфигурации как то не сильно хотелось по следующим причинам:
- В бухгалтерии более ста видов документов.
- Т.к. Эта конфигурация нуждается в регулярном и своевременном обновлении, то стоит задача внести минимум изменений!
Семерошники бы сразу сказали: "Не страшно! Добавим общий реквизит!", на что программист восьмерошник ответил бы " увы коллега, это невозможно, в восьмерке нет этого объекта метаданных".
Есть один вариант довольно универсален: можно использовать свойства объектов. Этот вариант был отсечен в силу специфики конкретно этой задачи.
Но выход все же есть!
В середине лета вышла новая редакция платформы 1С предприятие 8.2.14... В этой редакции представлено множество нововведений, такие как: работа с внешними источниками данных, эволюционировавшая система компоновки данных, доработанный механизм сравнения и объединения конфигураций.
Среди всего множества новшеств новой платформы числится также "общий реквизит". К слову: он отнюдь не ограничен функционалом который имелся в семерке, на его основе разработан довольно сложный и мощный механизм "разделения" (подробнее можно ознакомиться в документации, доступной на сайте http://v8.1c.ru/buhv8/".
Итак приступим
1. Первое, что я сделал, добавил общий реквизит, установив для него следующие состав и свойства:
Свойство "автоиспользование" установим в значение "Использовать"
Для документов в составе определим "автоматически".
3. Программно вынес на каждую форму реквизит:
Причем тут есть небольшая хитрость, которая облегчает жизнь: код по добавлению общего реквизита на форму я вынес в общий модуль в функцию "установка заголовка формы" эта процедура вызывается практически для всех документов, этим самым я свел к минимуму вносимые изменения! Теперь при обновлении при сравнении и объединении конфигураций ни один из моих документов не подсветиться измененным и каждое такое обновление будет проще, быстрее и дешевле для наших клиентов .