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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 06.07.2018, 10:22   #1  
Stitch_MS is offline
Stitch_MS
Участник
Аватар для Stitch_MS
Соотечественники
 
396 / 478 (16) +++++++
Регистрация: 27.02.2006
Адрес: Дания
Клиент обычный, попробовал поменять код 1033 (Английский) на 1030 (Датский), не помогло.
Создал новую таблицу HelloWorld, с двумя полями "Period Start" и "Period End", вручную забил несколько значений и попробовал аналогичный код на этой таблице, всё работает.

Написал новый код, копирующий значения из этой магической таблицы Date в HelloWorld, падает на пятом по счету вызову HelloWorld.INSERT, с ошибкой типа "Значение 03-01-0001 не может быть записано в поле Period Start таблицы HelloWorld, т.к. значение или слишком длинное, или недействительное".

Что это вообще за виртуальная таблица Date (не могу найти ее в базе)? Когда она заполняется этими недействительными значениями?

OnRun()
HelloWorld.RESET;
HelloWorld.DELETEALL;

Date.RESET;
Date.SETRANGE("Period Type",Date."Period Type":ate);
IF Date.FINDSET THEN BEGIN
REPEAT
HelloWorld."Period Start" := Date."Period Start";
HelloWorld."Period End" := Date."Period End";
HelloWorld.INSERT;
UNTIL (Date.NEXT = 0)
END;
Старый 06.07.2018, 11:21   #2  
BuzCom is offline
BuzCom
Участник
 
59 / 17 (1) ++
Регистрация: 10.08.2017
Похоже, у вас действительно проблема с региональными настройками. Я сейчас проверил ваш код на своей системе - все норма. 31 июля. Какой результат у вас выдает функция CALCDATE ? Попробуйте вместо setrange использовать setfilter.

Таблица Date - это вечный календарь. Его не надо заполнять. Он сам по себе существует. Создайте форму для этой таблицы со всеми колонками и посмотрите на нее, поиграйте с фильтрами, чтобы увидеть результат их работы. Там все просто.

PS. И проверьте региональные настройки на сервере, на котором стоит NAV. Я ранее уже описывал странность работы функции DT2DATE с датой. Там независимо от настроек нав использовались настройки винды.

Последний раз редактировалось BuzCom; 06.07.2018 в 11:28.
Старый 06.07.2018, 11:24   #3  
Captain is offline
Captain
Участник
Лучший по профессии 2017
 
300 / 81 (3) ++++
Регистрация: 28.02.2003
Что это вообще за виртуальная таблица Date (не могу найти ее в базе)? Когда она заполняется этими недействительными значениями?
Она Виртуальная и храниться в памяти.
Как её посмотреть - создайте Page и выберите её как источник данных (2000000007). Далее используя мастер выведите все поля в список. Откроете страницу и увидите формат даты в явном виде.
__________________
---------------------------------------------------------------------------------------------
"Собрать стадо из баранов легко, трудно собрать стадо из кошек" Профессор Сергей Капица
За это сообщение автора поблагодарили: Stitch_MS (1).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Не только у нас "веселье" с переводом или Due date = Shipment Date? RedFox NAV: Прочие вопросы 0 04.12.2008 15:58
Код из Отчета в кодеюнит by_HT NAV: Программирование 8 01.10.2008 15:10

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

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

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