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