Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
21 ноя 2024, 23:38

Доступность Дополнительного реквизита

Автор ЕвгенийЗерно, 26 июл 2024, 09:20

0 Пользователей и 1 гость просматривают эту тему.

ЕвгенийЗерно

Добрый день! Подскажите, как  сделать недоступным дополнительный реквизит в ФормеЭлемента справочника Номенклатура.

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

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




Конфигурация:  1с8.3 БП

antoneus

А элемент формы точно называется "ИнвНомер"? Вроде элементы для дополнительных реквизитов генерятся динамически и у них всякие лютые имена вроде "ДополнительныйРеквизитЗначение_BA5AEC48x6C86x11ECxA297x0CC47A137931_CBCBDF08x4B1Cx11EFx9875x3CECEF590A59".

ЕвгенийЗерно

antoneus, Элементы.ИнвентарныйНомер_b3f46e538d944d92a99884125c1c914d.Доступность  = Ложь;//Не работает

Тоже не работает, этот номер присвоен в режиме предприятия в пункте "Для разработчиков", динамическую генерацию, как поймать тогда? Разве нельзя обратиться к форме из ДополнительныеРеквизитыИСведения и доступность выключить?

antoneus

Не работает молча или ошибку выдает?
Имена элементов хранятся в также динамически создаваемом реквизите формы с именем типа Свойства_ОписаниеДополнительныхРеквизитов. Попробуйте поставить точку останова на окончании процедуры ПриОткрытии и посмотреть что там в ЭтотОбъект.
Еще доступностью можно из пользовательского режима рулить по всяким условиям. Он по какому-то условию должен быть недоступен?

LexaK

ЕвгенийЗерно, можно по другому сделать!
пусть пишут в инвентарный номер (ИН) все что хотят,
а в процедуре ПередЗаписью (модуль документа)
из ссылки получаете старое значение ИН (если оно не пустое) и если оно отличается от текущего заменяете его!
т.о.
кто бы что не изменял, при открытии формы документа будет показан старый/первоначальный ИН.
если помогло нажмите: Спасибо!

ЕвгенийЗерно

antoneus, Пишет: Поле объекта не обнаружено (ИнвНомер)
{СрокиОплатыСчетов Справочник.Номенклатура.Форма.ФормаЭлемента.Форма(9)}:Элементы.ИнвНомер.Доступность  = Ложь;//Не работает

[ОшибкаВоВремяВыполненияВстроенногоЯзыка, ОшибкаИспользованияВстроенногоЯзыка]

Про ЭтотОбъект не понял, у меня нет такого. До точки останова не доходит, выдает ошибку выше.

ЕвгенийЗерно

LexaK, Печально будет, если его действительно менять надо. Для начала бы научится Доступность = ложь сделать для дополнительного реквизита, а потом уж попробую условие с правом сделать, чтоб истина только для него была. Проблема на начальном уровне получается. Доступность = ложь не срабатывает для дополнительных реквизитов, так как толком не могу к нему обратиться для данной формы. Кто знает как обратиться к дополнительному реквизиту в справочнике и сделать его недоступным?

antoneus

Цитата: ЕвгенийЗерно от 29 июл 2024, 16:31Кто знает как обратиться к дополнительному реквизиту в справочнике и сделать его недоступным?
Да я, я знаю)

Цитата: ЕвгенийЗерно от 29 июл 2024, 16:25Про ЭтотОбъект не понял, у меня нет такого


ЭтотОбъект (он же - ЭтаФорма) есть, просто он скромный) Это существующая такая переменная, в которой сидит форма клиентского приложения. Поставьте точку останова на выходе из процедуры ПриОткрытии, откройте "Вычислить выражение" и напишите ЭтотОбъект. Чтобы дошло до точки останова, закомментируйте уже свое Элементы.ИнвНомер, неправильное оно. И ловить надо именно выход из ПриОткрытии - там создаются все эти навороты для работы с дополнительными реквизитами.

LexaK

ЕвгенийЗерно, толко сейчас обратил внимание, что речь идет о привязке ИН к Номенклатуре!
обычно заводят ОДНУ номенклатуру
Например Монитор ЛГ, потом закупают их в размере 10 шт
Вопрос: как вы планируете повесит 10 ИН на ОДИН элемент справочника?
если помогло нажмите: Спасибо!

antoneus

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

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск