Последняя версия DataExpress 2021.02.22

Изображение Скачать | Изображение Что нового?

Баг в SetField

Здесь содержаться темы из данного форума, потерявшие свою актуальность ввиду того, что ошибка (баг) программы устранён разработчиком или данное поведение программы не являлось ошибкой и не требует вмешательства разработчика.
Аватара пользователя
Develop-Soft
Сообщения: 1964
Зарегистрирован: 05 мар 2019, 18:09
Благодарил (а): 124 раза
Поблагодарили: 553 раза
Контактная информация:

Баг в SetField

Сообщение Develop-Soft » 10 окт 2019, 10:38

Выдает "Stack overflow" в КП или просто тихий вылет:
setfield.zip
(46.36 КБ) 72 скачивания

Upd:

Код: Выделить всё

// [Флажок]
block(
  setfield(replace('Датабля','бля',''),Date)
)
DataExpress v.3 beta 15.11.2020
Вопросы по проектам, разработанным в более поздних версиях (2021.01.18 и 2021.02.22) в ЛС не рассматриваю даже за деньги.

Аватара пользователя
admin
Разработчик
Сообщения: 5521
Зарегистрирован: 14 мар 2016, 11:32
Откуда: Ленинградская
Благодарил (а): 51 раз
Поблагодарили: 427 раз

Баг в SetField

Сообщение admin » 10 окт 2019, 19:39

В комментариях же [дата], поэтому и зацикливание. Это не баг.

Аватара пользователя
Develop-Soft
Сообщения: 1964
Зарегистрирован: 05 мар 2019, 18:09
Благодарил (а): 124 раза
Поблагодарили: 553 раза
Контактная информация:

Баг в SetField

Сообщение Develop-Soft » 10 окт 2019, 20:24

Вылет случился тут:
ФПК-КЛИМАТ.zip
(796.65 КБ) 67 скачиваний

Заявка -> История -> Штамп времени -> Выражение

admin писал(а):В комментариях же [дата], поэтому и зацикливание. Это не баг.
Вот без комментариев:

Код: Выделить всё

// [Флажок]
block(
  msgbox('',text('Сегодня: [Дата]')),
  setfield('Дата',Date)
)             

Способ, описанный выше - позволяет так же выйти из зацикливания.
DataExpress v.3 beta 15.11.2020
Вопросы по проектам, разработанным в более поздних версиях (2021.01.18 и 2021.02.22) в ЛС не рассматриваю даже за деньги.

Аватара пользователя
admin
Разработчик
Сообщения: 5521
Зарегистрирован: 14 мар 2016, 11:32
Откуда: Ленинградская
Благодарил (а): 51 раз
Поблагодарили: 427 раз

Баг в SetField

Сообщение admin » 10 окт 2019, 21:19

Какая разница. В выражении есть [дата]. Выражение в поле "Штамп времени" меняет поле "Дата". Изменяется поле "Дата", вызывая пересчет поля "Штамп времени" и так по кругу. Это обычное зацикливание. Нельзя так выражения писать.

Аватара пользователя
Develop-Soft
Сообщения: 1964
Зарегистрирован: 05 мар 2019, 18:09
Благодарил (а): 124 раза
Поблагодарили: 553 раза
Контактная информация:

Баг в SetField

Сообщение Develop-Soft » 10 окт 2019, 21:36

В первом случае все работает, если убрать из даты и времени "значение по-умолчанию". Иначе вылетает при попытке добавить запись. Но даже если предположить, что выражение некорректно - вылетать-то зачем..? Где Красный Пятачок..?
Во втором случае msgbox перестает циклить, если поделить борщ пополам: 'Да'+'та'. То есть - само по себе выражение - корректно, но стоит в text в суе попасть какому-то "неправильному" слову и выходит вислер...
DataExpress v.3 beta 15.11.2020
Вопросы по проектам, разработанным в более поздних версиях (2021.01.18 и 2021.02.22) в ЛС не рассматриваю даже за деньги.

Аватара пользователя
admin
Разработчик
Сообщения: 5521
Зарегистрирован: 14 мар 2016, 11:32
Откуда: Ленинградская
Благодарил (а): 51 раз
Поблагодарили: 427 раз

Баг в SetField

Сообщение admin » 10 окт 2019, 21:57

Вообщем-то баг не в setfield, а в том, что "редактор выражений" не увидел потенциальное зацикливание. Но он это и не может увидеть, т. к. setfield - это функция, а не поле. Кроме setfield, еще можно понапридумывать кучу функций, меняющих поле. Надо какую-то защиту от зацикливания в реал-тайме придумывать.


Вернуться в «РЕШЕНО: Закрытые вопросы.»