30.10.2012, 16:52 | #1 |
Участник
|
Доброго дня!
Дано. Форма, созданная на основе временной таблицы, использующей структуру 5700 Stockkeeping Unit Форма имеет вид - параметры (фильтры по дате, складу, поставщику, а так же галочка - скрывать или показывать записи с нулевым количеством) и табличная часть. При нажитии на галку (параметр на форме) - скрываются нулевые записи. При выключении галки - показываются все записи. И вот тут начинается страшное: при тыке в табличную часть выходит следующая ошибка "Единица хранения нельзя изменить в этой форме." Хотя по сути дела галочка - это либо установка фильтра по полю "Количество", либо снятие. Понимаю, что тут какая-то ерунда мелкая, но время на эту ошибку уже убито |
|
30.10.2012, 17:36 | #2 |
Участник
|
Такая ошибка обычно возникает, если у вас не хватает прав на изменение. Есть подозрение, что форма у вас открыта на редактирование. Без тыкания по галке такая ошибка возникает?
|
|
30.10.2012, 21:28 | #3 |
Участник
|
CurrForm.UPDATE(FALSE) стоит на OnAfterValidate в триггере простановки галочки? Он нужен там.
|
|
31.10.2012, 14:24 | #4 |
Участник
|
Можно попробовать после кнопки обновления сделать что то вроде
IF FINDFIRST THEN; xRec.COPY(Rec);
__________________
Want to believe... |
|
31.10.2012, 15:12 | #5 |
Участник
|
В триггере OnValidate Поля "простановки галочки" навесьте на таблицу Фильтры выбора таблицы, а
в триггере OnAfterValidate этого же поля пусть будет только CurrForm.UPDATE, без FАLSE. |
|
31.10.2012, 23:18 | #6 |
Участник
|
Цитата:
Сообщение от Lapunder
При нажитии на галку (параметр на форме) - скрываются нулевые записи. При выключении галки - показываются все записи. И вот тут начинается страшное: при тыке в табличную часть выходит следующая ошибка
"Единица хранения нельзя изменить в этой форме." Хотя по сути дела галочка - это либо установка фильтра по полю "Количество", либо снятие. - в property всей формы в строке в TableBoxID стоит что-нибудь? - в property всей формы: что стоит в ModifyAllowed? - табличная часть: Editable = No ? В общем копайте в эту сторону |
|
31.10.2012, 23:29 | #7 |
Участник
|
|
|
01.11.2012, 16:14 | #8 |
Участник
|
Скорее всего при навешивании фильтра срабатывает валидейт какого-то поля в табл.5700.
Ничего страшного не будет, если вы снабдите свою форму косвенными правами на табл.5700 (в свойствах формы свойство Permissions). |
|
02.11.2012, 12:23 | #9 |
Участник
|
Цитата:
Я лично такой фичи в НАВе не знаю. Цитата:
И в чём всё же по Вашему разница между CurrForm.UPDATE и CurrForm.UPDATE(FALSE) ? |
|
02.11.2012, 12:53 | #10 |
Участник
|
|
|
02.11.2012, 16:44 | #11 |
Участник
|
Цитата:
т.к. обхожу всегда известным трюком: фильтрую не с SETRANGE a с SETFILTER. И вылетает эта ошибка только потому, что номер товара входит в перв. ключ таблицы "Bin Content". Если наложить фильтр, например, на несуществующий "Warehouse Class Code", то ошибка не вылетает. Если наложить фильтр на несуществующий товар XYZ по подобию SETFILTER например с PIPE, т.е. XYZ|XYZ, то и в этом случае ошибка не вылетает. Опять же: всё это не имеет никакого отношения к проблематике с формой у Lapunder'a, он просто фильтрует (временную!) т. 5700 на записи без нулевого кол-ва (очевидно decimal поле Inventory не входящее в перв. ключ!) и форма пробует сразу внести какие-то изменения (во временнную!) т. 5700, чего по не должно быть и при этом ругается. |
|
13.11.2012, 12:37 | #12 |
Участник
|
|
|