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