AXForum  
Вернуться   AXForum > Microsoft Dynamics NAV > NAV: Программирование
NAV
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 20.01.2010, 09:30   #1  
Wooldoor_Sockbat is offline
Wooldoor_Sockbat
Участник
 
69 / 10 (1) +
Регистрация: 10.11.2008
Доброе утро. При создании книги продаж (Финансы-->Налоговый учет-->Отчеты-->Журналы НДС) выдает следующую ошибку:
Код:
---------------------------
Microsoft Business Solutions-Navision
---------------------------
Операционная система возвратила ошибку (131):

Попытка поместить указатель на файл перед началом файла.
Хотя за предыдущие кварталы отчет работал нормально.
Объект: Report 12456 - Create VAT Sales Ledger.
Может кто-нибудь сталкивался с этим?
Старый 20.01.2010, 10:53   #2  
del_negrozzz is offline
del_negrozzz
Участник
 
35 / 10 (1) +
Регистрация: 11.07.2007
Доброе!
Насколько я помню и если не ошибаюсь
эта ошибка вам говорит, что темповый файл (C:\Documents and Settings\%User Profile%\Local Settings\Temp\), в котором NAV хранит промежуточные данные для своих нужд, превысил размер в 2Gb (видимо указатель на файл имеет тип данных например *int (32 бита со знаком)).
Обычно к таким последствиям приводят долгоиграющие ресурсоемкие задания.
Чтобы проверить это, Вы можете запустить задание и отслеживать изменения в размерах темпового файла.

Что с этим делать?
необходимо разбивать задачу на подзадачи, таким образом чтобы накопившиеся данные коммитились еще до того, как размер файла подкачки превысит критический объем
Старый 20.01.2010, 11:20   #3  
Wooldoor_Sockbat is offline
Wooldoor_Sockbat
Участник
 
69 / 10 (1) +
Регистрация: 10.11.2008
Цитата:
Сообщение от del_negrozzz Посмотреть сообщение
Доброе!
Насколько я помню и если не ошибаюсь
эта ошибка вам говорит, что темповый файл (C:\Documents and Settings\%User Profile%\Local Settings\Temp\), в котором NAV хранит промежуточные данные для своих нужд, превысил размер в 2Gb (видимо указатель на файл имеет тип данных например *int (32 бита со знаком)).
Обычно к таким последствиям приводят долгоиграющие ресурсоемкие задания.
Чтобы проверить это, Вы можете запустить задание и отслеживать изменения в размерах темпового файла.

Что с этим делать?
необходимо разбивать задачу на подзадачи, таким образом чтобы накопившиеся данные коммитились еще до того, как размер файла подкачки превысит критический объем
Спасибо за ответ, скорее всего проблема действительно в этом.
Так как отчет стандартный, может быть у кого-нибудь готовые рецепты?
Старый 20.01.2010, 11:35   #4  
del_negrozzz is offline
del_negrozzz
Участник
 
35 / 10 (1) +
Регистрация: 11.07.2007
Решение может быть, как програмным:
- После обработки какого-то количества строк вызывать COMMIT
так и организационным:
- Запускать задание не по всей таблице сразу, а разбить VAT Ledger на куски и поочередно обрабатывать их заданием (если это конечно позволяет логика задания)
Старый 20.01.2010, 15:04   #5  
Wooldoor_Sockbat is offline
Wooldoor_Sockbat
Участник
 
69 / 10 (1) +
Регистрация: 10.11.2008
Цитата:
Сообщение от del_negrozzz Посмотреть сообщение
Решение может быть, как програмным:
- После обработки какого-то количества строк вызывать COMMIT
так и организационным:
- Запускать задание не по всей таблице сразу, а разбить VAT Ledger на куски и поочередно обрабатывать их заданием (если это конечно позволяет логика задания)
Логика задания, к сожалению, не позволяет разбить на отдельные части и коммиты меня не спасли, там много CREATETOTALS, может быть они столько памяти отъедают?
Старый 21.01.2010, 15:04   #6  
Wooldoor_Sockbat is offline
Wooldoor_Sockbat
Участник
 
69 / 10 (1) +
Регистрация: 10.11.2008
Неужели никто не сталкивался с данной проблемой? Как можно переделать данный отчет чтобы он не отъедал много виртуальной памяти (темповые файлы)?
Заранее, спасибо.
Старый 26.11.2012, 17:07   #7  
Andywar is offline
Andywar
Участник
 
2 / 10 (1) +
Регистрация: 01.11.2005
Цитата:
Сообщение от Wooldoor_Sockbat Посмотреть сообщение
Неужели никто не сталкивался с данной проблемой? Как можно переделать данный отчет чтобы он не отъедал много виртуальной памяти (темповые файлы)?
Заранее, спасибо.
Столкнулся с аналогичной проблемой. Расскажу на всякий случай свое решение.
Сохранение записей во временной таблице увеличивает размер временного файла. В своем отчете я сохранял результаты вычислений во временной таблице "Line Number Buffer".
В таблице много полей, а по факту пользовался 10 процентами. В результате, при работе отчета файл с временной таблицей разрастался до 2GB и вываливалась ошибка 131.

РЕШЕНИЕ
Сделал отдельную табличку, только с нужными мне полями. И её запользовал как временную. Временный файл стал разрастаться значительно медленнее. Ошибка была устранена.
 


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 12:03.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.