При разработке в типовых решениях, таких как 1С:Бухгалтерия предприятия 3.0, перед программистом часто встает дилемма: добавить новый объект (например, документ АрендаПомещений) непосредственно в основную конфигурацию или воспользоваться механизмом расширений. Оба подхода имеют право на жизнь, но выбор зависит от требований к стабильности, обновляемости базы и сложности интеграции с типовым функционалом. В этой статье мы подробно разберем все нюансы, проанализируем технические последствия и выработаем оптимальный алгоритм действий.
Этот метод считается классическим. Несмотря на появление расширений, многие разработчики предпочитают хранить структуру данных в основной конфигурации. Рассмотрим, как это реализовать правильно, не превращая процесс обновления в «ад».
Порядок действий:
АрендаПомещений. Поскольку мы добавили его в корень, он будет считаться «нашим» объектом и никак не пересечется с объектами фирмы «1С» при обновлении.Преимущества этого подхода:
Нюансы обновления: Многие опасаются, что «снятие с замка» усложнит жизнь. Однако, если вы добавили новый объект и не меняли типовые, то при сравнении и объединении ваш документ просто будет висеть в списке «новые объекты», а типовые будут обновляться автоматически. Платформа 8.3 отлично справляется с трехсторонним объединением в таких случаях.
Современный подход предполагает использование расширений для минимального воздействия на основную конфигурацию. Это позволяет оставить основную базу полностью «на замке».
Почему это может быть удобно:
Обновление проходит быстрее, так как не требуется анализировать изменения в структуре основной конфигурации. Администратор или бухгалтер может обновить базу одной кнопкой, не привлекая программиста для контроля объединения метаданных.
Критические ограничения и риски расширений:
8.3.10, вы физически не сможете создать новый документ в расширении. Всегда проверяйте это свойство в корне конфигурации перед началом работ.DCOM или сложных обходов. Конструктор запросов в основной конфигурации просто «не знает» о существовании документа в расширении.Проанализируем стратегию, которую часто применяют на крупных внедрениях. Она сочетает надежность основной конфигурации и гибкость расширений.
Суть метода:
АрендаПомещений и все необходимые реквизиты (Организация, Контрагент, Сумма, Договор). Это гарантирует, что данные будут храниться надежно.Этот подход позволяет минимизировать изменения в основной конфигурации (только структура данных), но при этом использовать все преимущества расширений для разработки интерфейса и бизнес-логики. При обновлении вам нужно будет лишь убедиться, что структура реквизитов не конфликтует с новыми типами данных поставщика.
Любой документ в 1С:Бухгалтерия должен выглядеть как родной. Для этого его нужно подключить к подсистемам БСП. Разберем, как это сделать программно.
Например, чтобы ваш документ появился в подсистеме печати или версионирования, часто требуется добавить его в соответствующие Определяемые типы. Если вы используете расширение, вы можете «заимствовать» определяемый тип и добавить туда свой документ.
Рассмотрим пример кода в модуле менеджера документа для регистрации в подсистеме печати:
Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.МенеджерПечати = "Документ.АрендаПомещений";
КомандаПечати.Идентификатор = "АктПриемаПередачи";
КомандаПечати.Представление = НСтр("ru = 'Акт приема-передачи (аренда)'");
КомандаПечати.ПроверкаПроведенности = Истина;
КонецПроцедуры
Если документ создан в расширении, убедитесь, что вы вызвали обновление вспомогательных данных БСП. Обычно это делается через запуск обработчика Справочники.ИдентификаторыОбъектовМетаданных.ОбновитьДанные() или через параметр запуска /С ЗапуститьОбновлениеИнформационнойБазы.
Выясним причину, по которой для РИБ расширения подходят плохо. В распределенных информационных базах конфигурация синхронизируется между узлами. Расширения также могут передаваться, но работа с данными внутри расширений в РИБ часто сопровождается ошибками синхронизации. Если документ АрендаПомещений должен создаваться в филиале и мигрировать в центральный офис, единственный правильный путь — добавление его в основную конфигурацию и включение в состав плана обмена.
Проанализировав ситуацию, мы можем дать следующие советы:
Таким образом, создание нового документа в основной конфигурации — это не «откат в прошлое», а осознанный выбор в пользу надежности и прозрачности архитектуры, особенно в таких нагруженных и часто обновляемых решениях, как 1С:Бухгалтерия 3.0.