Как включить видимость колонки "Код строки" в документе "Приобретение товаров и услуг" в 1С:УТ 11?

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

В практике доработки конфигураций на базе "1С:Управление торговлей 11" (а также ERP и КА) разработчики часто сталкиваются с необходимостью отобразить скрытые по умолчанию служебные колонки. Одной из таких колонок является Код строки в табличной части "Товары" документа ПриобретениеТоваровУслуг. Эта колонка критически важна для связки строк поступления со строками заказа поставщику.

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

Суть проблемы: код написан, но колонка не видна

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

Пример кода, который часто пытаются использовать:


&НаСервере
&После("ПриСозданииНаСервере")
Процедура Расш_ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    // Попытка включить видимость программно
    Элементы.ТоварыКодСтроки.Видимость = Истина;
КонецПроцедуры

При отладке можно заметить интересный факт: если поставить точку останова сразу после присвоения, свойство Видимость действительно принимает значение Истина. Однако, запустив предприятие, пользователь по-прежнему не видит эту колонку в табличной части. Почему так происходит?

Причина 1: Иерархия применения настроек формы

Чтобы понять, почему код не сработал, нам нужно углубиться в механизм работы управляемых форм в платформе 1С:Предприятие 8.3. Итоговая видимость элемента формы определяется не только тем, что написано в конфигураторе или в коде модуля формы.

Платформа формирует внешний вид формы, проходя через несколько этапов (в упрощенном виде):

  1. Свойства в Конфигураторе: Базовые настройки элемента.
  2. Событие "ПриСозданииНаСервере": Отрабатывает код разработчика (в том числе наш пример выше).
  3. Функциональные опции: Платформа проверяет, включены ли соответствующие настройки учета (например, "Использовать заказы поставщикам"). Если опция выключена, связанные с ней элементы скрываются, игнорируя код.
  4. Пользовательские настройки: Это самый последний и "сильный" этап. Если пользователь (или администратор) ранее сохранил настройки формы (через "Изменить форму"), или если существуют настройки по умолчанию для данной формы, платформа применит их поверх всего, что было сделано ранее.

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

Решение проблемы через пользовательский интерфейс

Поскольку проблема кроется в приоритете пользовательских настроек, наиболее правильным и простым решением является включение колонки через стандартный механизм настройки формы в режиме "1С:Предприятие". Это не требует доработки кода и сохраняется для пользователя. Для расширения состава отображаемых данных и элементов интерфейса без изменения конфигурации можно использовать инструмент для добавления реквизитов и элементов на управляемые формы без кодирования.

Разберем по шагам, как это сделать:

  1. Откройте документ ПриобретениеТоваровУслуг.
  2. В правом верхнем углу формы нажмите кнопку Еще (или кнопку с тремя точками).
  3. В выпадающем меню выберите пункт Изменить форму....
  4. В открывшемся окне настройки формы раскройте дерево элементов слева. Нам нужно найти группу, отвечающую за табличную часть. Путь обычно выглядит так:
    Группа Страницы -> Страница Товары -> Таблица Товары (или просто "Товары").
  5. Внутри группы колонок таблицы ищите поле, которое может называться Код строки или находиться в подгруппе Заказ поставщику.
  6. Установите галочку напротив этого поля.
  7. Нажмите ОК (или "Применить").

После этих действий колонка появится в табличной части. Если вам нужно применить эту настройку для всех пользователей, администратор может использовать функцию "Копирование настроек" в разделе "Администрирование".

Причина 2: Функциональные опции и "Заказы поставщикам"

Еще одним важным фактором является настройка самой программы. Колонка КодСтроки в УТ 11, КА и ERP — это не просто порядковый номер (как НомерСтроки). Это технический идентификатор связи строки накладной со строкой ЗаказаПоставщику.

Поэтому, если в базе данных отключено использование заказов поставщикам, данная колонка может быть скрыта системой на уровне функциональных опций, так как она теряет смысл.

Проверьте настройки:

  1. Перейдите в раздел НСИ и администрирование -> Закупки.
  2. Убедитесь, что установлена галочка Заказы поставщикам.

Если заказы не используются, колонка КодСтроки не будет заполняться и её отображение не имеет практического смысла.

Техническая справка: Зачем нужен "Код строки"?

Разберем подробнее назначение этого поля, чтобы понимать, зачем мы вообще боролись за его видимость.

В старых версиях 1С связь между заказом и накладной часто строилась просто на основании номенклатуры или порядка строк. В современных конфигурациях (УТ 11, ERP) механизм более строгий. Когда вы создаете ПриобретениеТоваровУслуг на основании ЗаказаПоставщику, система копирует товары и присваивает каждой строке уникальный КодСтроки из заказа.

Для чего это используется:

Именно поэтому при отладке проблем с закрытием заказов поставщикам консультанты и программисты первым делом включают видимость поля КодСтроки, чтобы убедиться, что связь между документами не нарушена.

Вывод

Если ваш программный код Элементы.Имя.Видимость = Истина не работает в управляемых формах:

  1. Не спешите переписывать код или искать ошибки в синтаксисе.
  2. В первую очередь проверьте настройки формы в режиме "Предприятие" (Еще -> Изменить форму).
  3. Проверьте функциональные опции, влияющие на видимость реквизита.

В 99% случаев проблема решается простой установкой галочки в пользовательских настройках, что является наиболее корректным методом работы с интерфейсом 1С.

← На главную