При оформлении заказов клиентам в программе 1С:Управление торговлей 11 пользователи часто сталкиваются с тем, что стандартного наименования номенклатуры недостаточно для детализации оказываемых услуг. В табличной части документов существует специальное поле «Содержание», которое позволяет вписать произвольный текст для каждой строки, и именно этот текст в дальнейшем попадает в печатные формы счета на оплату или акта. Однако по умолчанию это поле часто оказывается заблокированным для редактирования.
В данной статье мы подробно разберем, почему так происходит, как настроить систему стандартными средствами и что делать, если вам необходимо активировать это поле для обычных услуг или даже товаров.
Для начала проанализируем внутреннюю логику конфигурации. В системе 1С:Управление торговлей 11 существует жесткое разделение типов номенклатуры. Поле «Содержание» программно предназначено в первую очередь для типа номенклатуры Работа. Разберем причины этого разделения:
Если вы используете тип Услуга, система блокирует колонку «Содержание», считая ее избыточной. Чтобы изменить это поведение без программирования, необходимо правильно настроить Вид номенклатуры.
Рассмотрим пошагово, какие настройки в справочнике необходимо проверить и изменить, чтобы колонка стала доступной для ввода текста:
Работа. Если указано Услуга, поле «Содержание» в документах будет недоступно.Акт выполненных работ. Если оставить Реализация товаров и услуг, система может продолжать блокировать поле содержания в некоторых версиях конфигурации.Выясним одну критическую особенность: если вы изменили настройки у уже существующего Вида номенклатуры, эти изменения не всегда автоматически «подхватываются» карточками товаров, которые были созданы ранее. Более того, даже если карточка обновилась, в уже созданном Заказе клиента изменения не вступят в силу мгновенно.
Проанализируем алгоритм действий для исправления ситуации в текущих документах:
Работа.Условного оформления формы документа, который управляет доступностью полей в момент выбора позиции.Посмотрим на пример работы системы с печатными формами. Логика типового кода 1С при формировании «Счета на оплату» или «Акта выполненных работ» работает по следующему приоритету:
1. Проверяется заполнение поля «Содержание» в строке документа.
2. Если поле заполнено, то в колонку «Наименование» печатной формы подставляется текст из содержания.
3. Если поле пустое, подставляется «Наименование для печати» из основной карточки номенклатуры.
Таким образом, использование этого поля избавляет вас от необходимости плодить сотни похожих карточек номенклатуры в справочнике только ради того, чтобы изменить одну строчку в счете для клиента.
Бывают ситуации, когда бизнес-процесс требует использования именно типа Услуга, но поле «Содержание» все равно жизненно необходимо. В этом случае мы можем прибегнуть к программной доработке. Доступность этого поля регулируется на сервере.
Проанализируем, где именно в коде это происходит. Основная логика сосредоточена в серверных модулях номенклатуры, в процедурах типа УстановитьУсловноеОформлениеСодержания. Система проверяет соответствие типа номенклатуры и варианта оформления продажи. Чтобы снять это ограничение, создадим расширение и перехватим данную процедуру.
Пример логики, которую можно реализовать в расширении (общий модуль НоменклатураСервер):
&Вместо("УстановитьУсловноеОформлениеСодержания")
Процедура Расш1_УстановитьУсловноеОформлениеСодержания(Форма)
// Мы можем либо вызвать стандартную процедуру, а затем дополнить её,
// либо полностью переопределить правила оформления.
ЭлементОформления = Форма.УсловноеОформление.Элементы.Добавить();
// Снимаем ограничение "Только просмотр" для поля Содержание
ЭлементОформления.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Ложь);
// Определяем поле, к которому применяется оформление
ПолеОформления = ЭлементОформления.Поля.Элементы.Добавить();
ПолеОформления.Поле = Новый ПолеКомпоновкиДанных("Объект.Товары.Содержание");
// Убираем все условия, чтобы поле было доступно всегда
// (или настраиваем свои условия по необходимости)
КонецПроцедуры
Такой подход позволит писать произвольный текст в счете, не меняя глобальные настройки учета в системе. Это особенно полезно, если вы не хотите переводить все услуги в категорию работ, чтобы не усложнять складской и производственный учет. Для управления доступностью полей без написания собственного кода подойдёт расширение для настройки видимости и доступности реквизитов документов.
Разберем типичную техническую проблему: при попытке загрузить готовое расширение для открытия поля содержания, система может выдать ошибку, связанную с несоответствием свойств языка (например, Язык.Русский). Это происходит из-за того, что в расширение ошибочно попал объект метаданных «Язык» из основной конфигурации.
Чтобы исправить это, разверните дерево объектов расширения, найдите раздел Общие -> Языки и удалите оттуда русский язык. Расширение автоматически начнет использовать язык основной конфигурации, и ошибка исчезнет.
Если вы не хотите менять типы номенклатуры и не имеете возможности установить расширение, рассмотрим дополнительные варианты:
Подводя итог, наиболее правильным и «чистым» способом с точки зрения методологии 1С является перевод услуг, требующих детализации, в тип Работа с вариантом оформления Акт выполненных работ. Это полностью открывает штатный функционал поля «Содержание» и гарантирует корректное отображение данных во всей цепочке документов от заказа до акта.