Имя: Пароль:
1C
1С v8
Зацикливание программы при создание кнопок в цикле
0 IoannVic
 
17.10.14
19:22
Имеется список рекомендаций с типом "СписокЗначений" обхожу его в цикле Для каждого ... Цикл, в теле которого вызываю процедуру по созданию кпопки в этот момент зацикливается 1с. Вся эта приблуда вызывается из события при активизации строки. Если в теле указать любую другую процедуру все норм (тестил на сообщить). Подскажите в чем дело, пожалуйста
Код
&НаКлиенте
Процедура СписокПриАктивизацииСтроки(Элемент)
    
    ТекПартнер = Элементы.Список.ТекущиеДанные.Ссылка;
    УстановитьРекомендацииПоПартнеру(ТекПартнер);
    
КонецПроцедуры

Процедура УстановитьРекомендацииПоПартнеру(Партнер)
    
    ЗаполненостьКлиента = Партнеры.РасссчитатьПроцентЗаполненостиКлиента(Партнер);    
    ПроцентЗаполнености = ЗаполненостьКлиента.ПроцентЗаполнености;
    Для каждого Рекомендация из ЗаполненостьКлиента.РекомендацииКЗаполнению Цикл
        СоздатьРекомендациюГипперссылку(Рекомендация.Значение);
    КонецЦикла;    
КонецПроцедуры    

&НаСервере
Процедура СоздатьРекомендациюГипперссылку(НаименованиеРекомендации)
    
    КМД = ЭтаФорма.Команды.Добавить(НаименованиеРекомендации);
    КМД.Заголовок = НаименованиеРекомендации;
    Если НаименованиеРекомендации = "Банковский счет" тогда
        КМД.Действие = "ПолучитьФормуБанковскийСчетПоРекомендации";
    ИначеЕсли НаименованиеРекомендации = "Договор" тогда
        КМД.Действие = "ПолучитьФормуДоговораПартнеровПоРекомендации";
    ИначеЕсли НаименованиеРекомендации = "Контактное лицо" тогда
        КМД.Действие = "ПолучитьФормуКонтактныеЛицаПоРекомендации";
    ИначеЕсли НаименованиеРекомендации = "Контактная информация" тогда
        КМД.Действие = "ПолучитьФормуКонтактныеИнформацияПоРекомендации";
    Иначе
        КМД.Действие = "ПолучитьФормуПартнеровПоРекомендации";
    КонецЕсли;
    ЭлементГиперссылкаРекомендация = ЭтаФорма.Элементы.Добавить("Команда"+НаименованиеРекомендации, Тип("КнопкаФормы"), ЭтаФорма.Элементы.ГруппаРекомендацииКЗаполнению);
    ЭлементГиперссылкаРекомендация.Вид = ВидКнопкиФормы.Гиперссылка;
    ЭлементГиперссылкаРекомендация.Отображение = ОтображениеКнопки.Текст;
    ЭлементГиперссылкаРекомендация.КнопкаПоУмолчанию = Истина;
    ЭлементГиперссылкаРекомендация.АктивизироватьПоУмолчанию = Истина;
    ЭлементГиперссылкаРекомендация.ИмяКоманды = НаименованиеРекомендации;
    
КонецПроцедуры
1 mikecool
 
17.10.14
19:28
ты что то меняешь в строке, что автоматом вызывает событие обновления строки, ваш кеп
2 IoannVic
 
17.10.14
19:30
(1) Но я же не меняю ничего в строке)
3 Fragster
 
гуру
17.10.14
20:19
обновление формы в УФ вызывает событие активизации строки, такие дела...
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший