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