Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Только чтение для отдельной ячейки в ТЧ документа
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование управляемых форм 1С 8.2
Constantus
Приветствую, Форумчане!
1с8.3.6, УФ, самописная, БСП

Имеется документ "Заказ", ТЧ "Оформление", один из реквизитов "Цена"

Требуется, чтобы при определенных условиях эта ячейка цены была доступна или "только для чтения"

Условия доступности для редактирования:
1. (текущие данные строки)
Если ТекущиеДанные.ТипДанных = ПредопределенноеЗначение("Перечисление.ТипыДанныхОформления.П1") Или
        ТекущиеДанные.ТипДанных = ПредопределенноеЗначение("Перечисление.ТипыДанныхОформления.П2") Тогда

КонецЕсли;


2. Если доступна роль "ГлавныйНачальник"
3. Если подразделение имеет статус "Центр" (из шапки документа)

Подскажите как правильно и где прописать выполнение условий для данной ячейки?

Перепробовал несколько вариантов:
1. ПриАктивацииСтроки - грузит базу длительным расчетом
2. Перед началом изменения - блокирует всю строку для редактирования
3. Условное форматирование - смог прописать только условия №1

Как правильно организовать возможность или невозможность редактирования ячейки "Цена" при выполнении условий?


mut
Constantus @ Сегодня, 19:13 необходимо зарегистрироваться для просмотра ссылки ,
доступна роль или нет, статус подразделения, это можно определить при создании формы на сервере и поставить флажок (реквизит формы)
значения для сравнения - там-же - установить в дополнительные реквизиты на форме
ну и по совокупности уже проверять при активации строки
Petre
QUOTE (mut @ 08.04.19, 19:01) необходимо зарегистрироваться для просмотра ссылки
ну и по совокупности уже проверять при активации строки

Удобнее - в условном оформлении формы, раз уж УФ.
Constantus
Попробовал активацию Ячейки

Процедура УсопшиеИОформлениеПриАктивизацииЯчейки(Элемент)
    // Вставить содержимое обработчика.
       //Если Элемент.ТекущаяКолонка.Имя = "Цена" Тогда
  //      Сообщить(Элемент);
    //КонецЕсли;
    
//    колонка - элементы.Список.ТекущийЭлемент.Имя;
//строка - элементы.список.текущиеданные;
    
КонецПроцедуры


Как применять этот "Элемент"? Т.е. обратиться к его свойствам и т.д.?

Элемент.ТекущаяКолонка.Имя = "Цена"


говорит, что нет такого "текущаяКолонка"

Идея в чем: чтобы когда тыкается в колонку с именем "Цена", то тогда идет проверка на всякое и ставится "Только чтение" на эту ячейку...

Подскажите как такое реализовать и как вообще работать с этим чудом "При активации Ячейки/Поля"?
pablo
Можно не привязываться к элементу, а проверять напрямую элементы формы
&НаКлиенте
Процедура ОбработкиПриАктивизацииЯчейки(Элемент)
    Если Элементы.Обработки.ТекущиеДанные<>Неопределено тогда
        Элементы.Обработки.ПодчиненныеЭлементы.ОбработкиПредставлениеНить.ТолькоПросмотр=не Элементы.Обработки.ТекущиеДанные.РедактироватьНить;


Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.