Как добавить колонку с артикулом номенклатуры в форму списка в 1С

Программист 1С v8.3 (Обычные формы) Управленческий учет Торговля и дистрибуция
← На главную

Часто при работе с каталогом товаров возникает необходимость видеть не только наименование номенклатуры, но и её уникальный идентификатор — Артикул — непосредственно в общем списке. Несмотря на то, что сам реквизит в справочнике может существовать, он не всегда отображается на форме по умолчанию. В этой статье мы подробно разберем, как вывести артикул в форму списка, учитывая особенности различных типов интерфейсов платформы 1С:Предприятие 8.3, на примере конфигурации «ДАЛИОН: АвтоБизнес».

Разберем ситуацию: почему колонка не отображается автоматически

Когда мы добавляем новый реквизит в объект метаданных (справочник), платформа не «знает» автоматически, в какое именно место на форме его нужно поместить. Форма списка — это отдельный объект, который требует настройки. В зависимости от того, используется ли в вашей программе старый тип интерфейса (Обычные формы) или современный (Управляемые формы), методика решения будет существенно различаться. Проанализируем каждый из этих вариантов.

Вариант 1: Настройка в пользовательском режиме (Управляемые формы)

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

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

Вариант 2: Работа в Конфигураторе для обычных форм

В конфигурациях типа «ДАЛИОН: АвтоБизнес» редакции 1.3 чаще используются обычные формы. Здесь нам придется поработать в визуальном редакторе форм. Пройдем по шагам:

  1. В дереве метаданных найдем справочник Номенклатура и откроем его формы.
  2. Выберем форму списка, которую необходимо отредактировать.
  3. На самой форме найдем основной элемент управления — ТабличноеПоле, в котором отображаются данные.
  4. Нажмем на него правой кнопкой мыши и выберем пункт «Разместить недостающие колонки». Если в справочнике реквизит уже есть, система предложит добавить его автоматически.
  5. Если автоматическое добавление не подходит, откроем контекстное меню табличного поля и выберем «Свойства».
  6. Перейдем на вкладку «Колонки» и добавим новую строку.
  7. В поле Данные (Data) необходимо указать путь к данным. Для обычного реквизита объекта это будет просто Артикул. Если поле связано с выборкой, система предложит выбрать его из списка доступных полей.

Вариант 3: Настройка динамического списка через запрос

В управляемых формах за отображение данных отвечает объект ДинамическийСписок. Иногда реквизита «Артикул» просто нет в наборе данных этого списка, даже если он есть в справочнике. Проанализируем, как это исправить:

Рассмотрим подробнее работу с запросом динамического списка:

  1. В Конфигураторе откроем форму списка и выберем основной реквизит формы Список.
  2. В палитре свойств найдем строку «Настройка списка» и нажмем «Открыть».
  3. Если установлен флаг «Произвольный запрос», нам нужно отредактировать текст запроса.
  4. Нажмем «Конструктор запроса» и на вкладке «Поля» перетащим поле Артикул из таблицы справочника в список выбранных полей.

Примерно так будет выглядеть фрагмент запроса:


ВЫБРАТЬ
    СправочникНоменклатура.Ссылка,
    СправочникНоменклатура.Код,
    СправочникНоменклатура.Наименование,
    СправочникНоменклатура.Артикул
ИЗ
    Справочник.Номенклатура КАК СправочникНоменклатура

После изменения запроса поле станет доступным для размещения на форме, как было описано в первом варианте.

Вариант 4: Программный вывод данных (Событие ПриВыводеСтроки)

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

Для табличного поля в обычных формах существует событие ПриВыводеСтроки. Посмотрим на пример кода:


Процедура СписокПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
    // Проверяем, что данные строки доступны
    Если ДанныеСтроки <> Неопределено Тогда
        // Заполняем текст в колонке "Артикул" данными из объекта
        ОформлениеСтроки.Ячейки.Артикул.УстановитьТекст(ДанныеСтроки.Ссылка.Артикул);
    КонецЕсли;
КонецПроцедуры

Этот метод гарантирует, что в каждой строке списка будет отображено актуальное значение, даже если динамическое считывание данных через свойства колонки дает сбои.

Вариант 5: Использование расширений конфигурации

Поскольку платформа 8.3.11 и выше (как в рассматриваемом случае) поддерживает механизм расширений, крайне рекомендуется вносить изменения именно через них. Это позволит вам сохранить основную конфигурацию на поддержке и избежать сложностей при обновлениях от разработчика «ДАЛИОН».

Проанализируем алгоритм работы с расширением:

  1. Создадим новое расширение (меню Конфигурация — Расширения конфигурации).
  2. Добавим в расширение справочник Номенклатура и нужную форму списка.
  3. Выполним добавление колонки в форму внутри расширения любым из вышеописанных способов.

Важные рекомендации

При добавлении колонки всегда обращайте внимание на производительность. Вывод большого количества колонок с данными, требующими дополнительных обращений к базе данных (через точку от Ссылка в обычных формах), может замедлить прокрутку списка. Старайтесь использовать прямой выбор данных через реквизиты динамического списка или индексированные поля.

Также стоит проверить системные настройки самой программы «ДАЛИОН». Перейдите в меню «Сервис» — «Параметры учета». Иногда разработчики предусматривают специальную опцию «Выводить артикул в документах и справочниках», активация которой автоматически включает видимость нужных колонок во всей системе без вмешательства в код.

← На главную