Как в 1С:Управление торговлей 11 в заказе клиента указать содержание услуги или работы

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

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

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

Различие между «Услугой» и «Работой» в логике 1С

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

  1. Услуга — в понимании разработчиков 1С, это некая стандартная позиция, которая не имеет материального результата и детализации в конкретном заказе. Предполагается, что описание услуги уже заложено в ее наименовании.
  2. Работа — предполагает наличие результата и может требовать специфического описания того, что именно было сделано для конкретного клиента. Поэтому для работ поле содержания открыто по умолчанию.

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

Настройка вида номенклатуры для активации поля «Содержание»

Рассмотрим пошагово, какие настройки в справочнике необходимо проверить и изменить, чтобы колонка стала доступной для ввода текста:

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

Важный нюанс при изменении существующих позиций

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

Проанализируем алгоритм действий для исправления ситуации в текущих документах:

  1. Зайдите в карточку номенклатуры и убедитесь, что тип изменился на Работа.
  2. Откройте Заказ клиента, где поле «Содержание» недоступно.
  3. Обязательно перевыберите строку: удалите позицию и добавьте её заново из справочника. Это необходимо для того, чтобы сработал механизм Условного оформления формы документа, который управляет доступностью полей в момент выбора позиции.

Как содержание выводится в печатные формы

Посмотрим на пример работы системы с печатными формами. Логика типового кода 1С при формировании «Счета на оплату» или «Акта выполненных работ» работает по следующему приоритету:

1. Проверяется заполнение поля «Содержание» в строке документа.
2. Если поле заполнено, то в колонку «Наименование» печатной формы подставляется текст из содержания.
3. Если поле пустое, подставляется «Наименование для печати» из основной карточки номенклатуры.

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

Решение для программистов: использование расширения

Бывают ситуации, когда бизнес-процесс требует использования именно типа Услуга, но поле «Содержание» все равно жизненно необходимо. В этом случае мы можем прибегнуть к программной доработке. Доступность этого поля регулируется на сервере.

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

Пример логики, которую можно реализовать в расширении (общий модуль НоменклатураСервер):


&Вместо("УстановитьУсловноеОформлениеСодержания")
Процедура Расш1_УстановитьУсловноеОформлениеСодержания(Форма)
    // Мы можем либо вызвать стандартную процедуру, а затем дополнить её,
    // либо полностью переопределить правила оформления.
    
    ЭлементОформления = Форма.УсловноеОформление.Элементы.Добавить();
    
    // Снимаем ограничение "Только просмотр" для поля Содержание
    ЭлементОформления.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Ложь);
    
    // Определяем поле, к которому применяется оформление
    ПолеОформления = ЭлементОформления.Поля.Элементы.Добавить();
    ПолеОформления.Поле = Новый ПолеКомпоновкиДанных("Объект.Товары.Содержание");
    
    // Убираем все условия, чтобы поле было доступно всегда
    // (или настраиваем свои условия по необходимости)
КонецПроцедуры

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

Устранение ошибок при использовании расширений

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

Чтобы исправить это, разверните дерево объектов расширения, найдите раздел Общие -> Языки и удалите оттуда русский язык. Расширение автоматически начнет использовать язык основной конфигурации, и ошибка исчезнет.

Альтернативные методы без программирования

Если вы не хотите менять типы номенклатуры и не имеете возможности установить расширение, рассмотрим дополнительные варианты:

  1. Использование Характеристик. Можно включить характеристики для услуг и в наименовании характеристики указывать детализацию. Однако это неудобно, так как справочник характеристик будет быстро расти.
  2. Дополнительные сведения. Можно создать дополнительное сведение для строк документа «Заказ клиента». Но стоит помнить, что оно не попадет в стандартную печатную форму счета без редактирования макета.
  3. Наименование для печати. Вы можете временно изменять поле «Наименование для печати» в самой карточке номенклатуры. Но это крайне рискованно, так как изменение отразится на всех пользователях, работающих с этой позицией в данный момент.

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

← На главную