При работе в программе 1С:Управление торговлей (редакция 11.3) менеджеры часто сталкиваются с необходимостью видеть артикул номенклатуры непосредственно в момент подбора или анализа позиций в документе Заказ клиента. По умолчанию эта колонка может быть скрыта, а ее ручная настройка каждым пользователем через меню «Изменить форму» отнимает много времени. Более того, при появлении новых сотрудников администратору приходится повторять эту процедуру заново.
В этой статье мы подробно разберем, как решить эту задачу один раз и для всех пользователей системы, включая тех, кто будет зарегистрирован в базе данных в будущем. Мы проанализируем три основных метода: административный (через режим «Предприятие»), доработку формы в конфигураторе и использование программного кода.
Если ваша база находится на замке (на поддержке без возможности изменения) и вы не хотите снимать ее с поддержки или использовать расширения, наиболее оптимальным решением будет административное копирование настроек внешнего вида формы. Чтобы автоматизировать этот процесс для будущих сотрудников, мы применим методику «пользователя-шаблона».
Рассмотрим по шагам, как настроить этот процесс:
НСИ и администрирование — Настройка пользователей и прав — Пользователи. Создайте нового технического пользователя с именем, например, ШаблонНастроек.ШаблонНастроек. Откройте любой существующий документ Заказ клиента или создайте новый.Еще и выберите пункт Изменить форму. В открывшемся дереве элементов найдите группу Товары (это и есть табличная часть документа). Раскройте ее, найдите поле Номенклатура, установите на него курсор и найдите внутри поле Артикул. Установите напротив него флажок активности. Нажмите Применить и ОК. Убедитесь, что колонка появилась в табличной части. Завершите сеанс работы.НСИ и администрирование — Настройка пользователей и прав — Персональные настройки пользователей — Копирование настроек.ШаблонНастроек. Нажмите кнопку Скопировать.Что делать с новыми пользователями? При создании нового сотрудника в системе администратору достаточно зайти в форму копирования настроек и за 10 секунд скопировать интерфейс от пользователя ШаблонНастроек новому коллеге. Это исключает необходимость заходить под учетной записью сотрудника и настраивать форму вручную.
Если конфигурация вашей информационной базы уже открыта для редактирования, самым надежным способом будет добавление реквизита на форму через Конфигуратор. В этом случае колонка артикула жестко прописывается в структуре интерфейса и гарантированно отображается у 100% пользователей (как старых, так и новых) сразу после обновления базы данных без выполнения дополнительных административных действий.
Проанализируем алгоритм выполнения этой доработки:
Конфигуратор.Документы, разверните ее и найдите документ ЗаказКлиента.Формы и откройте основную форму документа (обычно она называется ФормаДокумента или ФормаДокументаУправляемая).Товары, который представляет собой табличную часть.Реквизиты. Раскройте объект Объект, найдите внутри табличную часть Товары, разверните реквизит Номенклатура и найдите подчиненное поле Артикул.Артикул и перетащите его в левую часть экрана — в дерево элементов формы, поместив внутрь таблицы Товары (лучше всего расположить его сразу после поля Номенклатура).Объект.Товары.Номенклатура.Артикул.F7) и обновите базу данных.После выполнения этих шагов каждый раз, когда любой пользователь будет открывать форму заказа клиента, платформа автоматически будет подтягивать артикул из карточки номенклатуры и выводить его на экран.
Если вы хотите избежать изменения типовой конфигурации, чтобы не усложнять процесс последующих обновлений 1С, лучшим решением будет использование механизма расширений. Мы можем программно добавить отображение артикула в событии создания формы на сервере.
Для реализации этого метода выполните следующие действия:
Конфигурация — Расширения конфигурации и создайте новое расширение (например, с именем ВыводАртикулаВЗаказе).ЗаказКлиента и его форму ФормаДокумента.ПриСозданииНаСервере. Нам потребуется дописать процедуру-перехватчик с аннотацией &После.Приведем пример программного кода, который динамически создает колонку артикула на форме при ее инициализации для любого пользователя:
&После("ПриСозданииНаСервере")
Процедура Расш1_ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// Проверим, не была ли колонка уже добавлена ранее разработчиками
Если Элементы.Найти("ТоварыНоменклатураАртикул") = Неопределено Тогда
// Создаем новый элемент формы типа ПолеФормы внутри таблицы Товары
НоваяКолонка = Элементы.Добавить("ТоварыНоменклатураАртикул", Тип("ПолеФормы"), Элементы.Товары);
// Задаем вид поля - Поле ввода (текстовое поле только для чтения)
НоваяКолонка.Вид = ВидПоляФормы.ПолеВвода;
// Прописываем путь к данным через реквизит табличной части Номенклатура
НоваяКолонка.ПутьКДанным = "Объект.Товары.Номенклатура.Артикул";
// Задаем понятный заголовок и настраиваем ширину
НоваяКолонка.Заголовок = "Артикул";
НоваяКолонка.Ширина = 15;
// Запрещаем редактирование поля прямо в таблице, так как артикул берется из справочника
НоваяКолонка.ТолькоПросмотр = Истина;
// Перемещаем созданную колонку в начало таблицы, поближе к наименованию товара
Элементы.Переместить(НоваяКолонка, Элементы.Товары, Элементы.ТоварыНоменклатура);
КонецЕсли;
КонецПроцедуры
Использование этого кода гарантирует, что при открытии документа система сама проверит структуру элементов и динамически отрисует нужную колонку. При этом сама типовая конфигурация останется полностью на замке и будет без проблем обновляться в автоматическом режиме.
Часто вывод артикула на экран в интерфейсе программы требуется менеджерам для того, чтобы сверять данные перед печатью документов клиенту (Счета на оплату, Расходной накладной). Если ваша конечная цель состоит в том, чтобы артикул выводился именно на бумаге или в PDF-файле документа, то писать код или менять формы в конфигураторе не требуется.
В программе 1С:Управление торговлей 11.3 предусмотрена глобальная константа для управления этим поведением:
НСИ и администрирование — Продажи.Печать документов.Дополнительная колонка печатных форм.Эта настройка применяется мгновенно для всей информационной базы и начинает действовать для всех пользователей (как существующих, так и созданных в будущем). При печати Заказа клиента или Счета на оплату колонка с артикулом будет выводиться автоматически.