Как принудительно отобразить колонку Себестоимость в документе Требование-накладная в 1С 8.3

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

В типовых решениях «1С:Бухгалтерия 8.3» программная логика часто скрывает определенные поля в зависимости от настроек учетной политики. Одной из самых частых проблем является скрытие колонки Себестоимость (или Сумма) в документе «Требование-накладная» (или «Расход материалов»), если в настройках выбран способ оценки запасов «По средней». В этой статье мы подробно разберем, как обойти это ограничение и заставить форму отображать нужные данные.

Анализ причин скрытия колонки

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

  1. Программное изменение видимости в коде. В процедурах ПриСозданииНаСервере или ПриЧтенииНаСервере часто вызываются общие модули, которые скрывают колонки на основании параметров учета.
  2. Условное оформление. Как отметил автор темы, в коде могут присутствовать строки, добавляющие поля в оформляемые поля компоновки данных. Например:

КомпоновкаДанныхКлиентСервер.ДобавитьОформляемоеПоле(ЭлементУО.Поля, "МатериалыСебестоимость");

Даже если закомментировать эти строки, колонка может не появиться из-за наличия других ограничителей.

Способ 1. Работа с функциональными опциями

Разберем одну из самых глубоких причин — связь элемента формы с Функциональными опциями. В 1С:Бухгалтерии отображение суммовых показателей часто завязано на опции, проверяющие способ списания ТМЦ.

Чтобы разорвать эту связь, выполним следующие действия:

Способ 2. Очистка пользовательских настроек формы

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

Рассмотрим, как сбросить эти настройки:

  1. Запустим программу в режиме «Предприятие».
  2. Откроем документ «Требование-накладная».
  3. Нажмем кнопку Еще — Изменить форму.
  4. В открывшемся окне нажмем Еще — Установить стандартные настройки.

Это действие принудительно обновит форму до состояния, заданного в актуальной версии конфигурации.

Способ 3. «Метод замещения» элемента (Практическое решение)

Проанализируем интересное решение, к которому пришел автор темы. Иногда в метаданных формы накапливаются неявные связи или ошибки кэширования, которые мешают отображению конкретного элемента. Если колонка МатериалыСебестоимость упорно не хочет показываться, а колонка МатериалыКоличество работает корректно, можно применить «хитрость» с копированием свойств.

Разберем по шагам:

  1. Удалим проблемный элемент формы МатериалыСебестоимость (предварительно запомнив его путь к данным).
  2. Скопируем работающий элемент (например, МатериалыКоличество) в ту же таблицу.
  3. У нового (скопированного) элемента изменим Имя на МатериалыСебестоимость.
  4. В свойстве ПутьКДанным укажем реквизит табличной части, отвечающий за себестоимость: Объект.Материалы.Себестоимость.

Важный момент: при таком копировании новый элемент наследует настройки видимости и доступности от «работающего» соседа, игнорируя старые проблемные настройки, которые могли быть жестко прописаны для старого имени элемента.

Нюансы проведения документа

Выясним критически важную деталь: просто вывести колонку на экран недостаточно для того, чтобы данные из нее попали в учет. В типовой «Бухгалтерии предприятия» при способе списания «По средней» алгоритм проведения игнорирует заполненную сумму в документе. Он рассчитывает её автоматически по формуле: (СуммаОстатка / КолОстатка) * КолСписываемое.

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

Пример логики в коде (условно):


Для Каждого СтрокаТЧ Из Объект.Материалы Цикл
    Движение = Проводки.Добавить();
    Движение.Сумма = ?(СтрокаТЧ.Себестоимость <> 0, СтрокаТЧ.Себестоимость, РассчитаннаяПоСреднейСумма);
    // Остальные реквизиты проводки...
КонецЦикла;

Заключение

Мы рассмотрели комплексный подход к решению проблемы отображения колонок. Помните, что в управляемых формах 1С 8.3 видимость — это совокупность свойств элемента, функциональных опций, программного кода и пользовательских настроек. Использование метода пересоздания элемента (копирования работающего) является эффективным «быстрым» решением, когда стандартный поиск причины затягивается.

← На главную