Новая колонка в 1С: где и чем её добавлять
Содержание
Колонка в списке документов, в отчёте и в печатной форме добавляется по-разному. Пользователь справится сам только с первыми двумя случаями: список и отчёт настраиваются через форму, без конфигуратора. Макет печатной формы и программная колонка требуют режима «Конфигуратор» или расширения.
Сначала определите, где именно нужна колонка. От этого зависит весь путь: у списка своя настройка, у отчёта своя, у табличного документа в макете своя. Ниже — все варианты для 1С 8.3 с интерфейсом «Такси», от самого простого к самому трудоёмкому.
С чего начать: какой у вас случай
Правило простое: чем ближе колонка к «экрану», тем проще её добавить. Выберите строку, которая совпадает с вашей задачей.
| Где нужна колонка | Как добавить | Нужен ли Конфигуратор |
|---|---|---|
| Список (журнал документов, справочник) | Настройка формы в режиме 1С:Предприятие | Нет |
| Отчёт | Изменение варианта отчёта, выбранные поля | Нет |
| Макет печатной формы | Редактор табличного документа | Да |
| Таблица на форме (табличная часть) | Изменение формы или код | Да |
| Динамический список с новым полем | Запрос списка + элемент формы | Да или расширение |
| Типовая конфигурация на поддержке | Расширение конфигурации | Да |
Колонка в списке документов и справочников
Это самый частый запрос. Список — это динамический список, и набор колонок в нём заранее ограничен. Но обычно нужная колонка уже есть, просто скрыта.
Порядок действий в режиме «1С:Предприятие»:
- Откройте список: например, «Реализация товаров и услуг» или справочник «Контрагенты».
- Нажмите меню «Ещё» в командной панели списка.
- Выберите команду, которая открывает изменение формы. В разных релизах она называется «Изменить форму…».
- В открывшемся окне найдите список элементов формы и перечень доступных полей.
- Отметьте нужное поле галочкой или перетащите его в нужное место таблицы.
- Нажмите «ОК». Колонка появится сразу.
Если нужного поля нет в перечне, значит, его нет в запросе списка. Простым нажатием кнопок его не добавить: нужен код или расширение, см. ниже.
Несколько практических советов:
- 📌 Порядок колонок меняется перетаскиванием заголовка прямо в списке.
- 📌 Ширину колонки можно потянуть за границу заголовка. Она запоминается в пользовательских настройках.
- 📌 Скрыть колонку можно там же, в окне изменения формы, сняв галочку.
- 📌 Для списка с отбором и группировкой есть отдельная команда настройки списка: она управляет отбором, сортировкой и оформлением, а не составом колонок.
Настройка формы сохраняется для вашего пользователя. Коллеги увидят свою раскладку. Чтобы колонка появилась у всех, её добавляют разработчики в саму конфигурацию или в расширение.
Что делать, если поле не отображается
Бывает, что поле есть в перечне, но после добавления колонка пустая. Причины обычно такие:
- 🔹 поле заполняется только у части документов, и в вашей выборке оно действительно пустое;
- 🔹 колонка выводит ссылку на объект, а вы ждали число или дату: посмотрите, какое именно поле выбрано;
- 🔹 включён отбор, который скрыл все строки с этим значением.
Колонка в отчёте
В отчётах на основе системы компоновки данных (так сделано большинство типовых отчётов) колонки называются «выбранные поля». Добавляются они так:
- Сформируйте отчёт хотя бы один раз, чтобы увидеть исходный набор колонок.
- Нажмите кнопку «Настройка» в командной панели отчёта. Если она называется иначе, ищите команду «Изменить вариант…» в меню «Ещё».
- Перейдите на закладку выбора полей.
- Нажмите «Добавить» и выберите поле из дерева доступных. Для вложенных реквизитов раскройте ссылку и выберите нужное значение внутри.
- Подвиньте поле стрелками на нужную позицию.
- Нажмите «Закрыть и сформировать».
Если после этого вам нужна та же раскладка завтра, сохраните вариант отчёта под своим именем. Тогда настройка не пропадёт при следующем открытии.
Не меняйте типовой вариант отчёта, если не уверены. Сохраняйте копию под новым именем: так вы сможете вернуться к исходному набору колонок.
Тонкость отчётов: у числовых колонок часто задан тип итога — сумма, среднее, количество. Для новой колонки с процентом или ценой сумма по группе бессмысленна. В настройках колонки (закладка с группировкой и итогами) задайте нужный способ.
Колонка в табличном документе: макеты и печатные формы
В макете печатной формы колонка — это не поле данных, а столбец сетки. Вы вставляете его и размечаете области.
Открывать макет приходится в Конфигураторе: найдите нужный объект в дереве конфигурации, раскройте «Макеты» и откройте нужный двойным щелчком. Для внешних печатных форм используется отдельная обработка.
Вставка столбца
- Щёлкните по номеру колонки в заголовке сетки: колонка выделится целиком.
- В меню «Таблица» найдите раздел «Колонки» и выберите «Добавить» (в конец) или «Вставить» (перед выделенной).
- Задайте ширину колонки: потяните границу мышью или откройте свойства колонки.
- Заполните шапку: текст ячейки или параметр в угловых скобках.
Параметры и области
Колонка в печатной форме мало что даёт, пока в неё не попадают данные. Для этого:
- 🔸 в ячейке пишется имя параметра, а свойство заполнения задаёт «Параметр»;
- 🔸 в модуле объекта параметру присваивается значение перед выводом области;
- 🔸 если колонка относится к строке таблицы, она должна входить в именованную область «Строка» (или как называется ваша область).
Если вставить колонку внутрь именованной области, область расширится сама. А вот колонка снаружи области в вывод не попадёт: данные в неё не пойдут. Это самая частая причина «пустой» новой колонки в печатной форме.
Макет типовой конфигурации на поддержке менять напрямую нежелательно: при обновлении правка потеряется или вызовет конфликт. Безопаснее скопировать макет в расширение либо сделать отдельную печатную форму.
Ещё один практический момент — ширина листа. Добавили колонку в уже заполненную по ширине форму? Область печати выйдет за границы страницы. Уменьшите ширину соседних колонок или смените ориентацию страницы на альбомную.
Колонка в табличной части и таблице на форме
Табличная часть — это таблица реквизитов самого документа. Добавить колонку здесь можно двумя способами: в конфигураторе, через структуру объекта, или программно, если таблица на форме — это таблица значений.
В конфигураторе:
- Откройте объект, например документ.
- Раскройте табличную часть и добавьте реквизит с нужным типом.
- Откройте форму документа и перетащите новый реквизит в таблицу на форме.
- Обновите конфигурацию базы данных. Это изменит структуру хранения.
Реквизит в типовой конфигурации на поддержке лучше добавлять через расширение, а не прямой правкой. Иначе обновление платформенных релизов превратится в сверку каждый раз.
Программное создание колонок
Программно колонку добавляют в таблицу значений на форме. Пример: у вас есть реквизит формы Результат типа «Таблица значений», и нужно добавить колонку Комментарий. Код выполняется на сервере в обработчике ПриСозданииНаСервере:
&НаСервере
Процедура ДобавитьКолонкуКомментарий()
ДобавляемыеРеквизиты = Новый Массив;
ДобавляемыеРеквизиты.Добавить(
Новый РеквизитФормы("Комментарий", Новый ОписаниеТипов("Строка"), "Результат"));
ИзменитьРеквизиты(ДобавляемыеРеквизиты);
НовоеПоле = Элементы.Добавить("РезультатКомментарий", Тип("ПолеФормы"), Элементы.Результат);
НовоеПоле.Вид = ВидПоляФормы.ПолеВвода;
НовоеПоле.ПутьКДанным = "Результат.Комментарий";
НовоеПоле.Заголовок = "Комментарий";
КонецПроцедуры
Что делает код: сначала описывает новую колонку и привязывает её к таблице Результат, потом создаёт реквизит командой ИзменитьРеквизиты, после этого добавляет на форму визуальное поле и связывает его с данными.
Три важных нюанса:
- 🔹 имя элемента на форме должно быть уникальным, поэтому оно составное:
РезультатКомментарий; - 🔹
ИзменитьРеквизитыпересоздаёт форму, поэтому значения реквизитов, заполненные до вызова, не сохраняются; сохраните их заранее; - 🔹 если таблица на форме связана с объектом, а не с реквизитом формы, этот способ не подойдёт: структуру объекта так не поменять.
Динамический список
В динамическом списке состав полей определяется запросом. Чтобы появилась новая колонка, поле должно быть в тексте запроса списка. Дальше на форме добавляется поле с путём к данным вида Список.НовоеПоле. Если список использует произвольный запрос, правка запроса выполняется в свойствах динамического списка в Конфигураторе.
Менять запрос в рабочей конфигурации стоит только в расширении. После правки перезапустите клиента: форма кешируется, и без перезапуска изменение может не появиться.
Расширение конфигурации: колонка без правки типовой
Расширения появились в платформе 8.3.6. Если ваша платформа новее, а конфигурация на поддержке, это самый безопасный путь. Обновления поставщика не затрут вашу колонку.
Порядок такой:
- В Конфигураторе откройте «Конфигурация → Расширения конфигурации » и создайте новое расширение либо откройте существующее.
- Заимствуйте нужный объект или форму: в окне расширения добавьте их из основной конфигурации.
- Для новой колонки добавьте реквизит в заимствованный объект, если это данные документа или справочника.
- Откройте заимствованную форму и перетащите реквизит в нужную таблицу.
- Выполните «Обновить конфигурацию базы данных», затем сохраните расширение и загрузите его в информационную базу.
| Способ | Плюсы | Минусы |
|---|---|---|
| Правка типовой формы | Быстро | Теряется при обновлении, мешает поддержке |
| Расширение | Переживает обновления | Нужно выполнить загрузку расширения |
| Настройка пользователем | Не нужен Конфигуратор | Видна только вам |
Загрузка файла расширения .cfe и обновление конфигурации
базы данных — два разных шага. Забыв второй, вы получите ошибку при обращении к новому реквизиту.
Колонка не появляется: кэш форм и другие причины
Вы всё сделали, а колонки нет. Это бывает чаще, чем хотелось бы. Проверьте в таком порядке:
- 🔹 Перезапуск клиента. Закройте сеанс 1С и откройте заново. Часть изменений форм применяется только при следующем запуске.
- 🔹 Настройки пользователя. Ваша раскладка колонок могла сохраниться со старого времени. В окне изменения формы есть команда возврата к стандартным настройкам: она сбросит ваши личные правки.
- 🔹 Права. Пользователь без прав на просмотр реквизита не увидит колонку, даже если она добавлена.
- 🔹 Роль и интерфейс. Некоторые поля отображаются только при включённых функциональных опциях.
- 🔹 Расширение не загружено. Проверьте в списке расширений, что оно подключено и активно.
Очистка кеша клиентских файлов закрывает все открытые окна 1С на вашем компьютере. Делайте это только после сохранения всех документов.
Если ничего не помогло, попробуйте открыть список под пользователем с полными правами в тестовой копии базы. Так вы отличите проблему прав от проблемы формы.
Типичные ошибки при добавлении полей
- ❌ Колонка добавлена в макет, но данных нет. Параметр не заполнен в модуле или колонка оказалась вне именованной области.
- ❌ Поле «серое» и не редактируется. Колонка привязана к вычисляемому полю запроса: правка в списке не сохраняется.
- ❌ Ошибка «Поле объекта не обнаружено». Реквизит не создан или структура базы не обновлена.
- ❌ Колонка пропала после обновления релиза. Её добавили прямой правкой типовой формы, а не расширением.
- ❌ Дублируются строки в отчёте. Добавленное поле — из табличной части, и каждая строка размножилась на количество строк таблицы.
Последний пункт особенно коварен. Когда вы добавляете в отчёт поле из табличной части документа, отчёт начинает выводить строку на каждую запись таблицы. Итоги по документам при этом разрастаются. Проверьте сумму до и после добавления колонки.