Медитация над доступностью поля на правку
В одной конфигурации столкнулся с тем, что поле не редактируется. И доступность у него указана и только просмотр. И у родителей все правильно. А не редактируется. Долго размышлял, в чем дело.
А потом внезапно осенило:
ДобавитьКолонку("ТабличноеПолеПотребность_ВсегоРасход", "Расход", Тип("ПолеФормы"), ГруппаКолонок, "ТабличноеПолеПотребность.ВсегоРасход", ВидПоляФормы.ПолеНадписи, 10);
Увидел, что добавляется поле надписи, а не ввода!
Поправил в расширении:
&НаСервере &Вместо("ДобавитьКолонку") Функция AQUA_ДобавитьКолонку(Имя, Заголовок, ТипЭлемента, Родитель, ПутьКДанным, ВидПоля, Ширина) Если Имя = "ТабличноеПолеПотребность_ВсегоПотребность" Или Найти(Имя, "ТабличноеПолеПотребность_п_") = 1 Тогда ВидПоляНов = ВидПоляФормы.ПолеВвода; Иначе ВидПоляНов = ВидПоля; КонецЕсли; Результат = ПродолжитьВызов(Имя, Заголовок, ТипЭлемента, Родитель, ПутьКДанным, ВидПоляНов, Ширина); Возврат Результат; КонецФункции
Как говорится, на всякого мудреца довольно простоты!




Не там поправил. Не надо изменять общие алгоритмы ради частных случаев
почему не надо? Если так надежнее. можно еще и стек анализировать для надежности.
когда 1с доработает механизмы расширений, чтобы можно было более точечно вмешиваться или разобьет типовой код на мелкие процедурки, тогда да.
а пока эффективнее так.
Ты пишешь, что надёжнее и эффективнее. Почему?
надежнее в плане поддержки обновлений. Вот поэтому эффективнее.
Разумнее изменить вид поля
я именно это и делаю. что вы имеете ввиду?
rzd абсолютно прав. А уровень решения задачи = джун.
может у вас найдутся аргументы «правоты», а то как-то малосодержательно.
Если рассматривать задачку с точки зрения обновления типовых, то предложенный вариант удобнее для обновления — его реже придётся править…
да, из этого и исхожу. Я крайне занят и не очень нравится при обновлениях ловить потребность тройного сравнения в «Контроль и изменении», поэтому пишу обычно (если можно) директиву «вместо» с вызовом типового кода и добавлением своего функционала.
Идея неплоха. Возьму на вооружение…