8.х darg&drop

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем cucumber, 4 окт 2009.

  1. TopicStarter Overlay
    cucumber
    Offline

    cucumber

    Регистрация:
    25 авг 2009
    Сообщения:
    19
    Симпатии:
    0
    Баллы:
    1
    На форме есть поле табличного документа. Для некоторых из его областей нужно разрешить перетаскивание в определенные области этого же документа, при этом остальные области должны оставаться недоступным для редактирования текста и перетаскивания. Как это можно реализовать?
    Если устанавливаю для поля табличного документа ТолькоПросмотр, а для областей, в которые разрешено перетаскивание свойство Защита=Ложь, то ничего не перетаскивается, хотя текст в них вводиться. Изменение свойства Защита у того поля, кот. подлежит перетаскиванию вроде ни на что не влияет... Опять же, если ТолькоПросмотр у всего поля табличного документа не устанавливать, области защитить нельзя...
    Если сформулировать кратко: как часть областей защитить и при этом оставить возможность выполнять с другими перетаскивание?
    Объясните пожалуйста, как решить проблему! :unsure:
  2. TopicStarter Overlay
    cucumber
    Offline

    cucumber

    Регистрация:
    25 авг 2009
    Сообщения:
    19
    Симпатии:
    0
    Баллы:
    1
    Пока нашлось только одно решение:

    Код:
    Процедура ПолеТабличногоДокументаВыбор(Элемент, Область, СтандартнаяОбработка)
    Область.Защита = Истина;
    КонецПроцедуры
    Процедура ПолеРедакторРасписанияПриАктивизацииОбласти(Элемент)
    ТекстТекОбл = Элемент.ТекущаяОбласть.Текст;	
    КонецПроцедуры
    Процедура ПолеРедакторРасписанияПриИзмененииСодержимогоОбласти(Элемент, Область)
    Область.Текст = ТекстТекОбл; 
    КонецПроцедуры
    
    
    При этом флаг ТолькоПросмотр у поля табличного документа снят.

    Появился еще вопросик... Наверно опять никто не ответи, но на всякий слчай:
    Как определить из какой области осуществляется перетаскивание? А то перетаскиваемая область превращатся в новый табличный документ... никак не получить старый адрес этой области?
  3. TopicStarter Overlay
    cucumber
    Offline

    cucumber

    Регистрация:
    25 авг 2009
    Сообщения:
    19
    Симпатии:
    0
    Баллы:
    1
    Ну вот опять ответ сам вроде нашелся:

    Код:
    Процедура ПолеРедакторРасписанияПеретаскивание(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка, Область)
    ПеремещаемаяОбласть = Элемент.ТекущаяОбласть;
    КонецПроцедуры
    
    
  4. TopicStarter Overlay
    cucumber
    Offline

    cucumber

    Регистрация:
    25 авг 2009
    Сообщения:
    19
    Симпатии:
    0
    Баллы:
    1
    Кто-нить знает, как сделать так, чтобы вместо выделения области начиналось ее перетаскивание? А то таскать за край не оч. удобно

Поделиться этой страницей