Добавляем колонки в списках, отчётах и печатных формах 1С

· 9 мин

Содержание

Чтобы добавить столбец в журнал документов или список справочника, Конфигуратор не нужен: откройте список, нажмите Ещё → Изменить форму, найдите в дереве таблицу «Список» и поставьте галочки у нужных колонок. Настройка сохранится только для вашего пользователя. Если нужной колонки в дереве нет — её добавляют кнопкой «Добавить поля », а поле из связанного справочника (например, ИНН контрагента ) — через точку.

Сложнее, когда столбец нужен в отчёте, в печатной форме или когда реквизита вообще нет в конфигурации. Тогда в ход идут настройки варианта на СКД, расширение конфигурации и произвольный запрос динамического списка. Ниже — все рабочие способы добавить столбцы в 1С 8.3 (интерфейс «Такси»): от правки формы за минуту до изменения метаданных.

Способ зависит от того, где нужна колонка, есть ли поле в базе и должны ли видеть столбец все пользователи. Сводка — в таблице.

СпособГде работаетНужен КонфигураторВидно всем
«Изменить форму»списки, журналынетнет (по пользователю)
Настройки варианта отчётаотчёты на СКДнетда, если сохранить общий вариант
Поле в схеме компоновкиотчётыдада
Расширение конфигурацииформы, реквизитыдада
Правка макетапечатные формыдада
Произвольный запросдинамические спискидада

Если коротко: показать скрытый реквизит — дело одной минуты в пользовательском режиме; добавить поле, которого нет в базе, — уже правка метаданных. Какой способ взять в конкретном случае, подскажет дерево решений.

Где и какой столбец нужно добавить?

Столбцы в списке справочника и журнала через «Изменить форму»

Это основной сценарий — показать в списке уже существующий реквизит. Порядок действий в «Такси»:

  1. Откройте нужный список (справочник, журнал документов, регистр).
  2. В командной панели нажмите Ещё → Изменить форму.
  3. В левом дереве раскройте элемент таблицы (обычно он называется «Список»).
  4. Галочками включите колонки, которые нужно показать, и снимите лишние.
  5. Стрелками «Вверх»/«Вниз» задайте порядок столбцов, при необходимости — ширину в свойствах справа.
  6. Нажмите «ОК».

Если нужного реквизита в дереве нет, он доступен, но не выведен по умолчанию. Выделите таблицу «Список», нажмите кнопку «Добавить поля» и отметьте поля из предложенного набора. Через точку от ссылочного поля доступны реквизиты связанного объекта: например, у колонки «Контрагент» можно раскрыть Контрагент.ИНН, Контрагент.Телефон и вывести их отдельными столбцами.

Настройка формы хранится по каждому пользователю отдельно. Если нужно, чтобы колонку видели все, одной правкой формы не обойтись — потребуется изменение самой формы в Конфигураторе или расширении.

Чтобы вернуть всё как было: Ещё → Изменить форму → Ещё → Установить стандартные настройки. Это сбрасывает именно вашу настройку формы, данные не трогает.

Колонки в отчёте через настройки варианта

Отчёты в 1С 8.3 почти все построены на системе компоновки данных (СКД). Поэтому добавить столбец в отчёт можно прямо в пользовательском режиме, без Конфигуратора, — если нужное поле уже есть в схеме.

  1. Сформируйте отчёт и нажмите кнопку «Настройки» (или Ещё → Изменить вариант отчёта).
  2. Переключитесь в расширенный вид настроек, если открылся упрощённый.
  3. На вкладке «Поля» нажмите «Добавить» и выберите поле из списка доступных.
  4. Для таблиц укажите, куда добавить поле — в строки, колонки или ресурсы.
  5. Закройте настройки и переформируйте отчёт кнопкой «Сформировать».

Доступные поля — это всё, что разработчик включил в схему компоновки. Если в списке доступных полей нужного реквизита нет (например, вы хотите вывести дополнительный реквизит номенклатуры, которого в схеме не предусмотрели), — пользовательскими настройками его не достать. Такое поле добавляют в схему компоновки в Конфигураторе.

Сохранённый вариант отчёта тоже привязан к пользователю. Чтобы вариант с новой колонкой был доступен всем, сохраните его как общий вариант отчёта (кнопка «Варианты отчёта → Сохранить вариант») с настройкой доступа — если конфигурация это позволяет.

Новое поле в схеме компоновки данных

Когда реквизит в базе есть, но в доступных полях отчёта его нет, поле добавляют в схему компоновки данных (СКД) через Конфигуратор.

  1. В Конфигураторе найдите отчёт, откройте его основную схему компоновки данных.
  2. На вкладке «Наборы данных» добавьте поле в запрос набора (допишите его в текст запроса и обновите состав полей кнопкой «Заполнить» или вручную в таблице полей).
  3. Убедитесь, что поле отмечено в колонках «Поле», «Путь», «Заголовок».
  4. При необходимости задайте роль поля — измерение, ресурс или реквизит — на соответствующих вкладках.
  5. Сохраните конфигурацию и обновите конфигурацию базы данных (Конфигурация → Обновить конфигурацию базы данных, F7).

После этого поле появится в доступных на вкладке «Поля» в пользовательском режиме — дальше его выводят как в предыдущем разделе.

Пара моментов, на которых спотыкаются чаще всего. Заголовок колонки задаётся не в запросе, а в свойстве поля «Заголовок» — если его не заполнить, в шапке отчёта окажется техническое имя поля латиницей или с подчёркиваниями. А чтобы поле можно было ставить в ресурсы (считать итог), в запросе набора данных у него должен быть подходящий тип и для него нужно описать выражение ресурса на вкладке «Ресурсы».

Правки основной конфигурации снимают её с поддержки, если конфигурация типовая, и усложняют обновления. Для типовых решений (Бухгалтерия, ЗУП, Управление торговлей) добавлять поля лучше через расширение — см. следующий раздел.

Реквизит и колонка через расширение конфигурации

Если реквизита в базе нет вовсе, а колонку всё равно надо показать, его добавляют. В типовой конфигурации — только расширением, чтобы не ломать поддержку. Механизм расширений работает начиная с платформы 8.3.6.

Общий порядок:

  1. В Конфигураторе создайте расширение: Конфигурация → Расширения конфигурации → Добавить.
  2. Заимствуйте нужный объект (например, справочник «Номенклатура»): правой кнопкой по объекту в основной конфигурации → добавить в расширение.
  3. В расширении добавьте объекту собственный реквизит нужного типа.
  4. Заимствуйте форму списка, перетащите новый реквизит в состав таблицы «Список» — появится колонка.
  5. Сохраните расширение.

Загрузка готового файла расширения .cfe и обновление структуры базы — два разных шага:

  • Конфигурация → Расширения конфигурации → Загрузить конфигурацию из файла — подключает .cfe.
  • После этого выполните Обновить конфигурацию базы данных (F7) — только тогда новый реквизит появится в таблицах.

Расширение переживает обновление типовой конфигурации: вы обновляете основную конфигурацию как обычно, а добавленный реквизит и колонка остаются. Иногда после крупного обновления расширение нужно проверить на совместимость — если изменилась заимствованная форма.

Столбец в печатной форме: правка макета

Печатные формы в 1С — это макеты табличного документа. Колонка в печатной форме — это столбец в табличном документе-макете, поэтому её добавляют правкой макета, а не настройкой формы списка.

  1. В Конфигураторе откройте нужный документ или обработку, найдите его макет печатной формы.
  2. В табличном документе выделите столбец, рядом с которым нужна новая колонка, правой кнопкой — вставьте колонку (или раздвиньте границы существующей области).
  3. В новую ячейку области-строки впишите параметр и в свойствах ячейки задайте «Заполнение → Параметр».
  4. В модуле, который формирует печать, заполните этот параметр значением (ОбластьСтроки.Параметры.ИмяПараметра = ...).
  5. Проверьте, что новая колонка попадает в вывод для каждой строки таблицы.

Для типовой печатной формы правьте не оригинальный макет, а его копию в расширении: заимствуйте макет, измените копию — оригинал останется нетронутым. Так новая колонка не потеряется при обновлении.

Если печатная форма внешняя (подключается как дополнительная обработка), столбец добавляют в самой внешней обработке — через Администрирование → Печатные формы, отчёты и обработки, затем правят её макет в Конфигураторе или в режиме внешней обработки.

Произвольный запрос динамического списка

Списки в формах — это динамические списки. Если нужно вывести колонку с полем, которого в основной таблице нет (итог, поле из другой таблицы, вычисление), включают произвольный запрос.

  1. В Конфигураторе откройте форму, выделите реквизит формы — динамический список.
  2. В свойствах включите флаг «Произвольный запрос».
  3. Откройте «Настройка списка» → «Запрос» и впишите текст запроса, добавив нужные поля в секцию ВЫБРАТЬ.
  4. Обновите состав полей динамического списка.
  5. Перетащите новое поле в таблицу формы — появится колонка.

Пример — добавить в список заказов колонку с суммой документа из табличной части:

ВЫБРАТЬ
    ЗаказКлиента.Ссылка КАК Ссылка,
    ЗаказКлиента.Номер КАК Номер,
    ЗаказКлиента.Дата КАК Дата,
    ЗаказКлиента.Контрагент КАК Контрагент,
    ЗаказКлиента.СуммаДокумента КАК СуммаДокумента
ИЗ
    Документ.ЗаказКлиента КАК ЗаказКлиента

Произвольный запрос с соединениями по большим таблицам замедляет открытие списка: платформа выполняет его при каждом обновлении. Выбирайте только нужные поля и не тяните тяжёлые вычисления в список — для аналитики используйте отчёт.

Поля из основного пути (Поле.Ссылка.Реквизит) в простом динамическом списке доступны и без произвольного запроса — через «Добавить поля» в «Изменить форму». Произвольный запрос нужен, когда без СОЕДИНЕНИЕ, СГРУППИРОВАТЬ ПО или вычисляемого поля не обойтись.

Почему столбец не появляется — частые ошибки

Колонку добавили, а её не видно — обычно причина одна из этих:

  • 🔴 Колонка есть, но ушла за границу экрана. Проверьте горизонтальную прокрутку таблицы и ширину соседних столбцов — узкое поле могло «схлопнуться».
  • 🔴 Галочку сняли, а не поставили. В «Изменить форму» видимость колонки — это именно флажок у элемента таблицы, а не выделение строки в дереве.
  • 🔴 Реквизит добавили в расширение, но не обновили базу. После загрузки .cfe нужен отдельный шаг Обновить конфигурацию базы данных (F7) — без него поля в таблицах нет.
  • 🔴 Поле отчёта добавили, но оно пустое. В СКД поле может быть в схеме, но не заполняться для части строк — проверьте условия в наборе данных и соединения.
  • 🔴 Настройка сбросилась после обновления. Пользовательские настройки формы иногда слетают при смене версии формы в обновлении — настройку придётся повторить или оформить колонку в расширении, чтобы её видели все.
  • 🔴 Правили не ту форму. У объекта бывает несколько форм (основная форма списка, форма выбора). Убедитесь, что меняете ту, которая открывается в вашем сценарии.

Отдельная частая ситуация — правки не сохраняются в типовой базе на поддержке. Если конфигурация на полной поддержке без возможности изменения, прямые правки форм заблокированы. Выход — расширение: оно не снимает основную конфигурацию с поддержки.

Можно ли добавить столбец в список без Конфигуратора?
Да, если реквизит уже есть в конфигурации. Откройте Ещё → Изменить форму, раскройте таблицу «Список» и включите колонку галочкой. Поле из связанного объекта добавляется кнопкой «Добавить поля» через точку от ссылки.
Почему добавленная колонка видна только мне?
Настройка формы хранится по каждому пользователю отдельно. Чтобы колонку видели все, нужно менять саму форму — в Конфигураторе или через расширение конфигурации, а не пользовательской настройкой.
Как вернуть стандартный вид списка после экспериментов?
Ещё → Изменить форму → Ещё → Установить стандартные настройки. Сбрасывается ваша настройка формы, сами данные не затрагиваются.
Нужно поле, которого нет в базе. Как добавить столбец?
Сначала добавьте реквизит — в типовой конфигурации только через расширение (платформа 8.3.6 и новее), затем выведите его на форму и обновите конфигурацию базы данных.
Чем добавление колонки в отчёт отличается от списка?
В отчёте колонки задаются в настройках варианта на вкладке «Поля» из доступных полей схемы компоновки. Если поля нет среди доступных, его сначала добавляют в схему в Конфигураторе, а не правкой формы.