![]() |
#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). |
|
|