При необходимости расширить стандартную функциональность типовых конфигураций 1С, например, добавить дополнительный столбец в табличную часть Товары документа Реализация товаров и услуг, разработчики часто сталкиваются с вопросом выбора архитектурного подхода. Давайте разберем, как сделать это максимально грамотно, чтобы обеспечить производительность системы и простоту последующих обновлений.
Это наиболее предпочтительный и «чистый» способ, если данные должны быть неразрывно связаны со строкой документа. Платформа 1С позволяет добавлять новые реквизиты в существующие объекты метаданных непосредственно внутри расширения.
Преимущества:
LEFT JOIN) с другими таблицами.СтрокаТабличнойЧасти.ВашРеквизит), что упрощает написание отчетов и печатных форм.Как это реализовать:
ПриСозданииНаСервере выполните следующий код:
// Пример программного добавления колонки
ЭлементКолонки = Элементы.Добавить("ВашНовыйРеквизит", Тип("ПолеФормы"), Элементы.Товары);
ЭлементКолонки.Вид = ВидПоляФормы.ПолеВвода;
ЭлементКолонки.ПутьКДанным = "Объект.Товары.ВашНовыйРеквизит";
Если вы хотите избежать внесения изменений в структуру объекта (например, чтобы максимально упростить процесс обновления основной конфигурации), можно использовать независимый РегистрСведений.
Когда стоит выбирать этот метод:
Особенности реализации:
Для реализации этого метода вам потребуется создать РегистрСведений с измерениями ДокументСсылка и НомерСтроки. Однако будьте готовы к тому, что:
ПриЗаписи) и очистку регистра при удалении строк.Чтобы обновление конфигурации в будущем проходило как можно более гладко, придерживайтесь следующих рекомендаций:
Элементы.Добавить. Это гарантирует, что при обновлении типовой формы расширение не будет конфликтовать с изменениями, внесенными вендором.Разберем ситуацию: если столбец должен отображать остатки или себестоимость, которые постоянно меняются, их лучше получать «на лету» в ПриПолученииДанных табличного поля, а не хранить в базе. Если же ваша цель — именно ввод и сохранение пользовательских данных, смело добавляйте реквизит в расширении.
Проанализировав все варианты, мы приходим к выводу, что добавление реквизита в табличную часть через расширение — самый эффективный способ с точки зрения затрат ресурсов и простоты поддержки кода в долгосрочной перспективе. Для решения этой задачи без программирования можно использовать инструмент для настройки дополнительных реквизитов табличных частей в пользовательском режиме.