|
Подскажите по управляемым формам | ☑ | ||
---|---|---|---|---|
0
Невский Александр
18.03.12
✎
09:03
|
Есть обработка на управляемых форма, переносил ее с обычных форм
В ней есть Таблица. В этой таблице в обработчике перед началом изменения выполняется следующее: ТекущиеДанные = Элементы.ТаблицаЗагружаемыхРеквизитов.ТекущиеДанные; РежимЗагрузкиИскать = ТекущиеДанные.РежимЗагрузки = "Искать"; СписокВыбора = ПолучитьСписокИменПредставленийФорма(ТекущиеДанные.НомерКолонки); Элементы.ТаблицаЗагружаемыхРеквизитов.ПодчиненныеЭлементы.ТаблицаЗагружаемыхРеквизитовГруппа1.ПодчиненныеЭлементы.ТаблицаЗагружаемыхРеквизитовГруппа2.ПодчиненныеЭлементы.ИскатьПо.СписокВыбора.ЗагрузитьЗначения(СписокВыбора.ВыгрузитьЗначения()); Элементы.ТаблицаЗагружаемыхРеквизитов.ПодчиненныеЭлементы.ТаблицаЗагружаемыхРеквизитовГруппа1.ПодчиненныеЭлементы.ТаблицаЗагружаемыхРеквизитовГруппа2.ПодчиненныеЭлементы.ИскатьПо.ТолькоПросмотр = СписокВыбора.Количество() = 0 или Не РежимЗагрузкиИскать; СписокВыбора = ПолучитьСписокИменПредставленийФорма(ТекущиеДанные.НомерКолонки, "СвязиПоВладельцу"); Если Не ПустаяСтрока(ТекущиеДанные.СвязьПоВладельцу) И СписокВыбора.НайтиПоЗначению(ТекущиеДанные.СвязьПоВладельцу) = Неопределено Тогда СписокВыбора.Вставить(0,ТекущиеДанные.СвязьПоВладельцу,ТекущиеДанные.СвязьПоВладельцу); КонецЕсли; Элементы.ТаблицаЗагружаемыхРеквизитов.ПодчиненныеЭлементы.ТаблицаЗагружаемыхРеквизитовГруппа1.ПодчиненныеЭлементы.ТаблицаЗагружаемыхРеквизитовГруппа2.ПодчиненныеЭлементы.СвязьПоВладельцу.СписокВыбора.ЗагрузитьЗначения(СписокВыбора.ВыгрузитьЗначения()); Элементы.ТаблицаЗагружаемыхРеквизитов.ПодчиненныеЭлементы.ТаблицаЗагружаемыхРеквизитовГруппа1.ПодчиненныеЭлементы.ТаблицаЗагружаемыхРеквизитовГруппа2.ПодчиненныеЭлементы.СвязьПоВладельцу.ТолькоПросмотр = СписокВыбора.Количество() = 0 или Не РежимЗагрузкиИскать; СписокВыбора = ПолучитьСписокИменПредставленийФорма(ТекущиеДанные.НомерКолонки, "СвязиПоТипу"); Если Не ПустаяСтрока(ТекущиеДанные.СвязьПоТипу) И СписокВыбора.НайтиПоЗначению(ТекущиеДанные.СвязьПоТипу) = Неопределено Тогда СписокВыбора.Вставить(0,ТекущиеДанные.СвязьПоТипу,ТекущиеДанные.СвязьПоТипу); КонецЕсли; Элементы.ТаблицаЗагружаемыхРеквизитов.ПодчиненныеЭлементы.ТаблицаЗагружаемыхРеквизитовГруппа1.ПодчиненныеЭлементы.ТаблицаЗагружаемыхРеквизитовГруппа2.ПодчиненныеЭлементы.СвязьПоТипу.СписокВыбора.ЗагрузитьЗначения(СписокВыбора.ВыгрузитьЗначения()); Элементы.ТаблицаЗагружаемыхРеквизитов.ПодчиненныеЭлементы.ТаблицаЗагружаемыхРеквизитовГруппа1.ПодчиненныеЭлементы.ТаблицаЗагружаемыхРеквизитовГруппа2.ПодчиненныеЭлементы.СвязьПоТипу.ТолькоПросмотр = СписокВыбора.Количество() = 0 или Не РежимЗагрузкиИскать; Элементы.ТаблицаЗагружаемыхРеквизитов.ПодчиненныеЭлементы.ЗначениеПоУмолчанию.КнопкаВыбора = Не ТипЗНЧ(ТекущиеДанные.ЗначениеПоУмолчанию) = Тип("Строка"); Из-за этого блока - когда я редактирую таблицу в форме обработки, я не сразу получаю доступ к ячейке, а со 2 или с 3-его раза, сначала выполняются непонятные запросы к серверу, и только потом доступ. Не пойму в чем причина? Как сделать так - чтобы сразу получать доступ? Может перенести этот блок в другое событие? |
|||
1
Невский Александр
18.03.12
✎
09:44
|
Переписал следующим образом
|
|||
2
Невский Александр
18.03.12
✎
09:44
|
ТекущиеДанные = Элементы.ТаблицаЗагружаемыхРеквизитов.ТекущиеДанные;
РежимЗагрузкиИскать = ТекущиеДанные.РежимЗагрузки = "Искать"; // СписокВыбора = ПолучитьСписокИменПредставлений_1(ТекущиеДанные.НомерКолонки); Элементы.ТаблицаЗагружаемыхРеквизитов.ПодчиненныеЭлементы.ТаблицаЗагружаемыхРеквизитовГруппа1.ПодчиненныеЭлементы.ТаблицаЗагружаемыхРеквизитовГруппа2.ПодчиненныеЭлементы.ИскатьПо.СписокВыбора.ЗагрузитьЗначения(СписокВыбора.ВыгрузитьЗначения()); //Элементы.ИскатьПо.ТолькоПросмотр = СписокВыбора.Количество() = 0 или Не РежимЗагрузкиИскать; //// СписокВыбора2 = ПолучитьСписокСвязейПоВладельцу_1(ТекущиеДанные.НомерКолонки); Если Не ПустаяСтрока(ТекущиеДанные.СвязьПоВладельцу) И СписокВыбора.НайтиПоЗначению(ТекущиеДанные.СвязьПоВладельцу) = Неопределено Тогда СписокВыбора2.Вставить(0,ТекущиеДанные.СвязьПоВладельцу,ТекущиеДанные.СвязьПоВладельцу); КонецЕсли; Элементы.ТаблицаЗагружаемыхРеквизитов.ПодчиненныеЭлементы.ТаблицаЗагружаемыхРеквизитовГруппа1.ПодчиненныеЭлементы.ТаблицаЗагружаемыхРеквизитовГруппа2.ПодчиненныеЭлементы.СвязьПоВладельцу.СписокВыбора.ЗагрузитьЗначения(СписокВыбора2.ВыгрузитьЗначения()); //Элементы.ТаблицаЗагружаемыхРеквизитов.ПодчиненныеЭлементы.ТаблицаЗагружаемыхРеквизитовГруппа1.ПодчиненныеЭлементы.ТаблицаЗагружаемыхРеквизитовГруппа2.ПодчиненныеЭлементы.СвязьПоВладельцу.ТолькоПросмотр = СписокВыбора2.Количество() = 0 или Не РежимЗагрузкиИскать; // СписокВыбора3 = ПолучитьСписокСвязейПоТипу_1(ТекущиеДанные.НомерКолонки); Если Не ПустаяСтрока(ТекущиеДанные.СвязьПоТипу) И СписокВыбора.НайтиПоЗначению(ТекущиеДанные.СвязьПоТипу) = Неопределено Тогда СписокВыбора3.Вставить(0,ТекущиеДанные.СвязьПоТипу,ТекущиеДанные.СвязьПоТипу); КонецЕсли; Элементы.ТаблицаЗагружаемыхРеквизитов.ПодчиненныеЭлементы.ТаблицаЗагружаемыхРеквизитовГруппа1.ПодчиненныеЭлементы.ТаблицаЗагружаемыхРеквизитовГруппа2.ПодчиненныеЭлементы.СвязьПоТипу.СписокВыбора.ЗагрузитьЗначения(СписокВыбора3.ВыгрузитьЗначения()); Элементы.ТаблицаЗагружаемыхРеквизитов.ПодчиненныеЭлементы.ТаблицаЗагружаемыхРеквизитовГруппа1.ПодчиненныеЭлементы.ТаблицаЗагружаемыхРеквизитовГруппа2.ПодчиненныеЭлементы.СвязьПоТипу.ТолькоПросмотр = СписокВыбора3.Количество() = 0 или Не РежимЗагрузкиИскать; // Элементы.ТаблицаЗагружаемыхРеквизитов.ПодчиненныеЭлементы.ЗначениеПоУмолчанию.КнопкаВыбора = Не ТипЗНЧ(ТекущиеДанные.ЗначениеПоУмолчанию) = Тип("Строка"); // |
|||
3
Невский Александр
18.03.12
✎
09:46
|
ну вот почему-то когда раскомментирую ТолькоПросмотр - также со 2-ого или с 3-его раза дает
Подскажите - с чем это связано? И как лучше тогда сделать - не отключать Только просмотр, а проверять при редактировании этого поля - если условие выполняется, то не давать редактировать? |
|||
4
Невский Александр
18.03.12
✎
11:27
|
этот вопрос закрыт
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |