Почему в документе Оказание услуги появляется лишняя колонка Стоимость и как ее убрать

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

При изучении основ разработки в системе 1С:Предприятие 8 по учебному пособию Максима Радченко многие начинающие разработчики сталкиваются с неожиданным поведением интерфейса на 12-м занятии. Суть проблемы заключается в том, что в табличной части документа ОказаниеУслуги рядом со стандартными полями Количество, Цена и Сумма внезапно появляется колонка Стоимость. Это вызывает путаницу, так как в интерфейсе, описанном в книге на данный момент, этого поля быть не должно.

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

Разберем причины появления колонки Стоимость

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

  1. Связь с регистрами: На 12-м занятии начинается работа с Планом счетов и Регистром бухгалтерии. В этот момент разработчик настраивает движения документа ОказаниеУслуги по новым регистрам. Если в процессе настройки регистра накопления (например, «Продажи» или «ОстаткиМатериалов») или регистра бухгалтерии был добавлен ресурс Стоимость, система может автоматически предложить добавить соответствующий реквизит в документ для хранения этих данных.
  2. Автоматическая генерация формы: Платформа 1С:Предприятие обладает механизмом автоматического обновления форм. Если вы ранее создали форму документа с помощью конструктора, а затем добавили новый реквизит в табличную часть ПереченьНоменклатуры в дереве метаданных, при следующем открытии или обновлении формы конструктор может «вытянуть» новое поле на экран.
  3. Путаница в терминологии: Важно различать понятия Сумма и Стоимость. В контексте учебника Радченко:
    • Сумма — это выручка (Цена × Количество), которую платит клиент.
    • Стоимость — это себестоимость товара или материала, которая списывается со склада в рамках бухгалтерских проводок.

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

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

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

Выполним следующие шаги:

  1. Перейдем в Конфигуратор и найдем в дереве метаданных документ ОказаниеУслуги.
  2. Развернем ветку Формы и откроем ФормаДокумента.
  3. В верхней левой части редактора формы (дерево элементов формы) найдем группу, соответствующую вашей табличной части (обычно это СписокНоменклатуры или ПереченьНоменклатуры).
  4. Внутри списка колонок найдем элемент ПереченьНоменклатурыСтоимость (имя может немного отличаться).
  5. Нажмем клавишу Del или выберем пункт Удалить в контекстном меню. Это действие удалит колонку только с визуального интерфейса, при этом сам реквизит в данных документа останется доступным для программного обращения.

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

Способ 2: Проверка структуры табличной части в метаданных

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

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

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

Способ 3: Разделение табличных частей для товаров и услуг

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

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

Проверим код в модуле документа, который отвечает за расчет. Часто при заполнении цен используется подобная логика:


&НаСервере
Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
    // Пример программного расчета, где может фигурировать стоимость
    Для Каждого СтрокаТЧ Из ТекущийОбъект.ПереченьНоменклатуры Цикл
        // Если поле Стоимость создано ошибочно, оно может заполняться здесь
        // СтрокаТЧ.Стоимость = СтрокаТЧ.Количество * СтрокаТЧ.Цена; 
    КонецЦикла;
КонецПроцедуры

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

Рекомендации по работе с конструктором форм

Чтобы в будущем избежать появления «лишних» элементов, проанализируем правила работы с конструктором. Когда вы создаете форму «с нуля», 1С предлагает выбрать реквизиты, которые будут на ней отображаться. Однако при ручном добавлении реквизитов в объект метаданных после того, как форма уже была создана, автоматического добавления на форму не происходит, пока вы не воспользуетесь командой Разместить на форме или не перетащите реквизит из правой панели редактора формы (закладка Реквизиты) в левую (закладка Элементы).

Рассмотрим ситуацию, когда поле появилось «само собой». Это случается, если вы использовали стандартную команду Установить стандартные настройки в контекстном меню формы в конфигураторе. Система сбрасывает все ваши ручные правки и выводит на экран все реквизиты, существующие в объекте на данный момент.

Подведем итог: Для исправления отображения в 12-м занятии Радченко вам необходимо:

  1. Проверить, не является ли поле Стоимость результатом вашей ошибки при создании реквизитов табличной части.
  2. Если реквизит нужен для расчетов в регистрах бухгалтерии, просто удалите его визуальное представление из списка элементов ФормаДокумента.
  3. Убедиться, что вы строго следуете инструкции книги в части разделения номенклатуры на товары и услуги, так как для услуг колонка стоимости в большинстве случаев не имеет смысла.

Таким образом, мы выяснили, что лишняя колонка — это не технический сбой, а следствие гибкости платформы 1С:Предприятие 8, которая старается синхронизировать структуру данных с пользовательским интерфейсом. Внимательное управление составом элементов формы позволит вам всегда держать интерфейс приложения в чистоте и порядке.

← На главную