|
|
#1 |
|
Участник
|
Здравствуйте, может кто нибудь знает? Валится клиент на строке кода:
X++: transCreditSet.remove(transRecId); AX 4.0
__________________
Лучше сделать и жалеть, чем жалеть что не сделал |
|
|
|
|
#2 |
|
Участник
|
Возможно тип значения в методе remove() и тип значений множества (Set(Types _type)) не совпадает, либо transRecId имеет слишком большое/малое(отрицательное) значение, которое выходит за диапазон указанного при инициализации множества типа данных.
__________________
С уважением, Александр. |
|
|
|
|
#3 |
|
Участник
|
Типы и значения совпадают.
__________________
Лучше сделать и жалеть, чем жалеть что не сделал |
|
|
|
|
#4 |
|
северный Будда
|
transRecId удаляемый вообще есть в сете? Может, вы пытаетесь удалить то, чего нет?
__________________
С уважением, Вячеслав |
|
|
|
|
#5 |
|
Участник
|
есть
__________________
Лучше сделать и жалеть, чем жалеть что не сделал |
|
|
|
|
#6 |
|
Участник
|
в любом случае метод remove() должен выполняться, т.к. он возвращает true или false в зависимости от наличия удаляемого элемента.
Какой тип у вашего множества?
__________________
С уважением, Александр. |
|
|
|
|
#7 |
|
Участник
|
тип RecId
__________________
Лучше сделать и жалеть, чем жалеть что не сделал |
|
|
|
|
#8 |
|
Участник
|
Я имею ввиду его инициализацию:
X++: Set set = new Set(Types:: );
__________________
С уважением, Александр. Последний раз редактировалось samolalex; 02.11.2010 в 11:19. |
|
|
|
|
#9 |
|
Участник
|
Цитата:
X++: transCreditSet = new Set(typeId2Type(typeid(recId)));
__________________
Лучше сделать и жалеть, чем жалеть что не сделал |
|
|
|
|
#10 |
|
северный Будда
|
Несовпадение типов валило бы ещё на этапе заполнения сета
__________________
С уважением, Вячеслав |
|
|
|
| За это сообщение автора поблагодарили: kornix (1), samolalex (1). | |
|
|
#11 |
|
Участник
|
Я сделал поправку в сообщении, список поддерживаемых множеством типов видны через Types::
Попробуйте types::Integer - базовый тип для RecId
__________________
С уважением, Александр. Последний раз редактировалось samolalex; 02.11.2010 в 11:23. |
|
|
|
|
#12 |
|
MCP
|
Не уверен, но попробуйте удалить файлы *.aoc в папке %user%\AppData\Local\Application data
Такой подход обсуждался тут, но клиент падал при другой операции. В папке с приложением \Appl\<Имя приложения> попробуйте удалить файлы *.ali *.aoi *.alt *.ahi *.khi *.udb *.add *.adi P.S. Надеюсь приложение тестовое или разработческое?
|
|
|
|
|
#13 |
|
Участник
|
Цитата:
Сообщение от kornix
Не уверен, но попробуйте удалить файлы *.aoc в папке %user%\AppData\Local\Application data
Такой подход обсуждался тут, но клиент падал при другой операции. В папке с приложением \Appl\<Имя приложения> попробуйте удалить файлы *.ali *.aoi *.alt *.ahi *.khi *.udb *.add *.adi P.S. Надеюсь приложение тестовое или разработческое? ![]()
__________________
Лучше сделать и жалеть, чем жалеть что не сделал |
|
|
|
|
#14 |
|
MCP
|
|
|
|
|
| За это сообщение автора поблагодарили: samolalex (1). | |
|
|
#15 |
|
Участник
|
А вы пробовали просмотреть содержимое множества через
info(transCreditSet.toString()); И какое значение содержится в transRecId в момент удаления, ради опытного интереса
__________________
С уважением, Александр. |
|
|
|
|
#16 |
|
Участник
|
Хорошая идея, также можно попробовать почистить кэш...
__________________
С уважением, Александр. |
|
|
|
| За это сообщение автора поблагодарили: kornix (1). | |
|
|
#17 |
|
Moderator
|
Небольшая поправка: в 4ке и выше для RecId используется Types::Int64.
__________________
Андрей. |
|
|
|
| За это сообщение автора поблагодарили: kornix (3), samolalex (1). | |
|
|
|