Имя: Пароль:
1C
1С v8
активизация ячейки
0 kelebro63
 
19.11.12
21:48
есть обработка с табличным полем на форме. каждые 15 сек таблица обновляется запросом из справочника. при активизации какой либо ячейки из определенной колонки, появляется выпадающее меню. Проблема в том, что каждые 15 секунд появляется выпадающее меню, что не так? вот код
Процедура ПриОткрытии()
  // СпособОтображенияОкна
   ЭлементыФормы.Заказы.ЦветФонаЧередованияСтрок = WEBЦвета.Бежевый;
   ЭлементыФормы.Заказы.ЧередованиеЦветовСтрок = Истина;
   ЭлементыФормы.Заказы.ВертикальныеЛинии = Ложь;
   ЭлементыФормы.Заказы.ГоризонтальныеЛинии = Ложь;
   //ЭлементыФормы.Заказы.ОформлениеСтроки.ячейки.высота=44;
           
   Запрос_к_базе();
   ПодключитьОбработчикОжидания("Запрос_к_базе", 15);
   //ЭлементыФормы.Заказы.ТекущаяКолонка = ЭлементыФормы.Заказы.Колонки.Код;
КонецПроцедуры

Процедура Запрос_к_базе()
//{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
   // Данный фрагмент построен конструктором.
   // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

   Запрос = Новый Запрос;
   Запрос.Текст =
       "ВЫБРАТЬ
       |    Кухня.Ссылка,
       |    Кухня.ВерсияДанных,
       |    Кухня.ПометкаУдаления,
       |    Кухня.Предопределенный,
       |    Кухня.Код,
       |    Кухня.Наименование,
       |    Кухня.Блюдо,
       |    Кухня.Количество,
       |    Кухня.Норматив,
       |    Кухня.Статус_приготовления
       |ИЗ
       |    Справочник.Кухня КАК Кухня";

   Результат = Запрос.Выполнить();
   
   //Результат.Выгрузить().ВыбратьСтроку();
   ТаблицаРезультатов = Результат.Выгрузить();
   //ТаблицаРезультатов.ВыбратьСтроку();
   ВыборкаДетальныеЗаписи = Результат.Выбрать();

   Заказы.Загрузить(ТаблицаРезультатов);
   
   //Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
   //    // Вставить обработку выборки ВыборкаДетальныеЗаписи
   //КонецЦикла;

   //}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
   
   //ПодключитьОбработчикОжидания
   //приначалеработысистемы


КонецПроцедуры

Процедура ЗаказыПриАктивизацииЯчейки(Элемент)
   // Вставить содержимое обработчика.
                      предупреждение("сработала активизация");
   Если (Элементыформы.Заказы.ТекущаяКолонка.Имя = "Кнопка_готово")
       Тогда
           сообщить("при выборе ячейки работает!");
           СпВыб = Новый СписокЗначений;
           СпВыб.Добавить("Готово");
           СпВыб.Добавить("Отказ");
           ВыбЭл = ВыбратьИзМеню(СпВыб);
           
           Если (ВыбЭл<>НЕОПРЕДЕЛЕНО)
               Тогда
                   Обл=Элементыформы.Заказы.ТекущаяСтрока;
                   сообщить(обл.Код);
                   Обл.Кнопка_готово = ВыбЭл;
   
                   Спр_кухня = Справочники.Кухня.НайтиПоКоду(обл.Код);
                   сообщить(Спр_кухня);
                   Спр_кухня.ПолучитьОбъект().Удалить();
                   Док_ГотовоеБлюдо= документы.ГотовоеБлюдо.СоздатьДокумент();
                   Док_ГотовоеБлюдо.Блюдо=обл.Блюдо;
                   Док_ГотовоеБлюдо.Количество=обл.Количество;
                   Док_ГотовоеБлюдо.Статус=обл.Кнопка_готово;
                   Док_ГотовоеБлюдо.Записать(РежимЗаписиДокумента.Проведение,РежимПроведенияДокумента.оперативный);    
           КонецЕсли;
       КонецЕсли;
       
КонецПроцедуры
1 kosts
 
19.11.12
22:05
Заново формируешь таблицу, вот активизация и срабатывает...
2 kelebro63
 
19.11.12
22:08
(1) как исправить?
3 mih_io
 
19.11.12
22:12
(2) можешь глобальной переменной в модуле перед загрузкой присвоить значение истина, во время активизации смотреть, если истина, сделать её ложь и не отрабатывать стандартную процедуру активизации. Если ложь (след. ручная активизации), отрабатывать процедуру.
4 kelebro63
 
19.11.12
22:28
(3)Благодарю))) работает!)
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший