Имя: Пароль:
1C
1С v8
Подскажите по управляемым формам
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
этот вопрос закрыт
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший