Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Помилка: Номер року в літералі типу 'Дата' перевищує 3999
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.3
Gorus
Для інформації, може комусь допоможе.

Після оновлення конфігурації BAS Бухгалтерія КОРП в документах "Відпустка" та "Звільнення" при заповнені стала генеруватись помилка "Номер року в літералі типу 'Дата' перевищує 3999". Причому лише в клієнт-серверному варіанті, у файловому - все добре. Причина виявилась в некоректному виконанні запиту спільного модуля УчетСреднегоЗаработка. Проблема виникає при розрахунку поля:
КОНЕЦПЕРИОДА(ДОБАВИТЬКДАТЕ(Начисления.ДатаНачалаБазовогоПериода, МЕСЯЦ, Начисления.КоличествоМесяцев - 1), МЕСЯЦ) КАК ДатаОкончанияПериода

При цьому, якщо Начисления.ДатаНачалаБазовогоПериода - пуста дата, і Начисления.КоличествоМесяцев = 0, то розраховується не пойми що, яке потім в отладчику виглядає як "30.11.0001 0:00:00". Але сам запит - виконується без помилок, проте при використанні отриманих значень в інших запитах - генерується дана помилка.

P.S. Якщо в когось також дана помилка виникає - можу поділитись розширенням для даної конфігурації, що її виправляє.
AnryMc
Gorus @ Вчера, 17:36 необходимо зарегистрироваться для просмотра ссылки ,
Из справки:
Цитата
Литерал типа ДАТА
Литерал типа ДАТА записывается в виде:
ДАТАВРЕМЯ ( <Целое число>, <Целое число>,
<Целое число>[, <Целое число>,
<Целое число>, <Целое число>] )
Значения типа дата задаются с помощью ключевого слова ДАТАВРЕМЯ, после которого в скобках последовательно указываются год, месяц, день, час, минута, секунда. Последние три указывать необязательно.
Максимальная дата которую возможно задать при помощи литерала ДАТАВРЕМЯ – 31.12.3999 23:59:59.


Вы пишите
Цитата
При цьому, якщо Начисления.ДатаНачалаБазовогоПериода - пуста дата

Пустая дата - это 01.01.0001 или Null или Неопределено?
dmik
Gorus, Добрий день. Gorus,

Такаж маємо помилку: Номер року в літералі типу 'Дата' перевищує 3999 , в конфігурації BAS Бухгалтерія КОРП 2.1.20.3

Чи могли Ви поділитись розширенням для вирішення даної проблеми.

Дякую.
Gorus
dmik @ Сегодня, 18:08 необходимо зарегистрироваться для просмотра ссылки ,
Переслав.

AnryMc @ 12.08.22, 10:04 необходимо зарегистрироваться для просмотра ссылки ,
Пуста дата - це 01.01.0001, тобто '00010101'
AnryMc

Цитата(Gorus @ 15.08.22, 18:30) необходимо зарегистрироваться для просмотра ссылки
Пуста дата - це 01.01.0001, тобто '00010101'


У Вас из МИНИМАЛЬНОГО значения '00010101' вычитается месяц месяц - результат выходит за разрешенный диапазон и выдается сообщение о его превышении, все нормально...
Это как деление на 0 (ноль) - результат = бесконечность...

Единственный выход я вижу в проверке на "0" (т.е. '00010101') перед выполнением кода...
Gorus
AnryMc @ Сегодня, 9:25 необходимо зарегистрироваться для просмотра ссылки ,
Зверніть увагу: у файловому варіанті даний код виконується без помилок. У клієнт-серверному - генерується помилка.
Ймовірно, що SQL сервер опрацьовує цей запит коректно, просто отримане значення виходить за межі можливого діапазону значень в 1С. Але не зважаючи на це - 1С при цьому все одно опрацьовує результат запиту, хоча й дані там не відповідають обмеженню типа "Дата". А от при подальшій спробі використати отримані дані - генерується помилка, типу 1Ска зненацька "побачила" що дані в змінній некоректні.
Тобто має місце різний алгоритм поводження з даними у файловому і клієнт-серверному варіантах, чого по ідеї бути не повинно - всі відмінності у типах мали б опрацьовуватись платформою автоматично. Ймовірно, що це може бути поправлено в наступних релізах (або, можливо, і вже поправлено, бо у мене це виникло на релізі 8.3.16.1814 з сервером PostgreSQL, а на інших - не перевіряв).
BigWig
Gorus, Добрий день, п.Gorus

яким чином мож було би отримати розширення? та сама ситуація.
Дякую!
Gorus
BigWig @ Сегодня, 12:43 необходимо зарегистрироваться для просмотра ссылки ,
Доброго дня. Переслав.
RedCat77
Цитата(Gorus @ 11.08.22, 17:36) необходимо зарегистрироваться для просмотра ссылки
Для інформації, може комусь допомож

І мені надішліть
Завчасно дякую
koral@ukr.net
Gorus
RedCat77 @ Сегодня, 14:40 необходимо зарегистрироваться для просмотра ссылки ,
Надіслав.
Gazulo
Gorus @ Вчера, 14:47 необходимо зарегистрироваться для просмотра ссылки ,
Добрий день, киньте і мені. nazar_budivskiy@ukr.net. Дякую.
Gorus
Gazulo @ Сегодня, 14:39 необходимо зарегистрироваться для просмотра ссылки ,
Відправив.
RFerdinandes
Gorus @ 11.08.22, 16:36 необходимо зарегистрироваться для просмотра ссылки ,
Доброго дня. При переході на PostgreSQL в мене теж з'явилася ця помилка. Скиньте і мені, будь ласка. r.ferdinandes@gmail.com
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.