Последняя версия DataExpress 3 beta от 15 ноября 2020 года.

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



Объявление:

Если вам понравилась программа и вы ее интенсивно используете - замолвите словечко о ней на вашем сайте (блоге, форуме, твитере, краской на подъезде, ютуб-канале и т.д.) с активной (по-возможности) ссылкой на сайт программы/форум. Тем самым вы можете внести небольшой вклад в seo-карму проекта в виде входящих ссылок.
Спасибо! Администрация :)


>> Обсудить <<


Внимание! Кража данных


Баг в SetField

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

Баг в SetField

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

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

Upd:

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

// [Флажок]
block(
  setfield(replace('Датабля','бля',''),Date)
)

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

Баг в SetField

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

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

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

Баг в SetField

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

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

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

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

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

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

Способ, описанный выше - позволяет так же выйти из зацикливания.

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

Баг в SetField

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

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

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

Баг в SetField

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

В первом случае все работает, если убрать из даты и времени "значение по-умолчанию". Иначе вылетает при попытке добавить запись. Но даже если предположить, что выражение некорректно - вылетать-то зачем..? Где Красный Пятачок..?
Во втором случае msgbox перестает циклить, если поделить борщ пополам: 'Да'+'та'. То есть - само по себе выражение - корректно, но стоит в text в суе попасть какому-то "неправильному" слову и выходит вислер...

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

Баг в SetField

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

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


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