8.х Ошибка скуэжль при запросе.

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем desintegrer, 29 май 2013.

  1. TopicStarter Overlay
    desintegrer
    Offline

    desintegrer Опытный в 1С

    Регистрация:
    11 май 2011
    Сообщения:
    377
    Симпатии:
    0
    Баллы:
    26
    Здравствуйте.

    Выполняю запрос в обработке - данные запрос получает но в процессе появляется такая ошибка

    Ошибка при выполнении операции над данными:
    Microsoft SQL Server Native Client 10.0: Добавление значения в столбец "datetime" привело к переполнению.
    HRESULT=80040E07, SQLSrvr: SQLSTATE=22007, state=1, Severity=10, native=517, line=1


    Хотелось бы понять что это и как сделать чтобы ошибки не было ?
  2. Неназываемый
    Offline

    Неназываемый Опытный в 1С Команда форума

    Регистрация:
    2 фев 2007
    Сообщения:
    507
    Симпатии:
    7
    Баллы:
    29
    Запрос в студию
  3. TopicStarter Overlay
    desintegrer
    Offline

    desintegrer Опытный в 1С

    Регистрация:
    11 май 2011
    Сообщения:
    377
    Симпатии:
    0
    Баллы:
    26
    Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ
    | ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.Контрагент КАК Контрагент,
    | ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДоговорКонтрагента КАК ДоговорКонтрагента,
    | ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.СуммаВзаиморасчетовОстаток,
    | ПОДСТРОКА(ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом.АдресДоставки, 0, 200) КАК АдресДоставки,
    | ВЫБОР
    | КОГДА РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом.Дата, ДЕНЬ, ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности), &Дата, ДЕНЬ) > 0
    | И ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.СуммаВзаиморасчетовОстаток > 0
    | ТОГДА ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.СуммаВзаиморасчетовОстаток
    | ИНАЧЕ 0
    | КОНЕЦ КАК СуммаПросрочки
    |ИЗ
    | РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Остатки(&Дата, ) КАК ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки
    |ГДЕ
    | ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДоговорКонтрагента = &ДоговорКонтрагента
    | И ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.Контрагент = &Контрагент
    | И ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом.АдресДоставки ПОДОБНО &АдресДоставки";
    Запрос.УстановитьПараметр("Дата", ТекущаяДата());
    Запрос.УстановитьПараметр("Контрагент", тчНакладные.Контрагент);
    Запрос.УстановитьПараметр("ДоговорКонтрагента", тчНакладные.Договор);
    Запрос.УстановитьПараметр("АдресДоставки", тчНакладные.АдресДоставки);

    ..из чужих постов я понял что видимо какое то поле пустое и с ним совершаются операциии.
    ..хотелось бы уточнить что такое разностьДАт ?
  4. Draco
    Online

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.638
    Симпатии:
    948
    Баллы:
    204
    РАЗНОСТЬДАТ - это каогда из одной даты надо вычесть другую, например получить количекство дней между датами.
    А у вас у скульной базы стоит смещение на 2000?
  5. TopicStarter Overlay
    desintegrer
    Offline

    desintegrer Опытный в 1С

    Регистрация:
    11 май 2011
    Сообщения:
    377
    Симпатии:
    0
    Баллы:
    26
    А у вас у скульной базы стоит смещение на 2000?

    - я не знаю..... а это важно , на что это влияет ?
  6. Draco
    Online

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.638
    Симпатии:
    948
    Баллы:
    204
    Напрямую влиет. Наберите поиском в инет 1С смещенеи дат 2000 и почитайте. а по вашему вопросу Вот


    Microsoft OLE DB Provider for SQL Server: Adding a value to a 'datetime' column caused overflow. HRESULT=80040E07, SQLSrvr: Error state=1, Severity=
    1. Если убрать конструкцию с использованием ДОБАВИТЬКДАТЕ
    2. ПРИ РАЗВЕРТЫВАНИИ БАЗЫ ВЫБИРАЙТЕ СМЕЩЕНИЕ ДАТ - 2000!



    UPDATE _Document296
    SET _Document296._Date_Time = DATEADD(SECOND,32400,_Document296._Date_Time)
    WHERE DATEADD(DAY, DATEPART(DAY, _Document296._Date_Time) - 1, DATEADD(MONTH, DATEPART(MONTH, _Document296._Date_Time) - 1, DATEADD(YEAR, DATEPART(YEAR, _Document296._Date_Time) - 2000, {ts '2000-01-01 00:00:00'}))) = _Document296._Date_Time

    GO

    UPDATE _Document296
    SET _Document296._Date_Time = DATEADD(SECOND,-53999,_Document296._Date_Time)
    WHERE DATEADD(DAY, DATEPART(DAY, _Document296._Date_Time) - 1, DATEADD(MONTH, DATEPART(MONTH, _Document296._Date_Time) - 1, DATEADD(YEAR, DATEPART(YEAR, _Document296._Date_Time) - 2000, {ts '2000-01-01 23:59:59'}))) = _Document296._Date_Time

    GO
  7. TopicStarter Overlay
    desintegrer
    Offline

    desintegrer Опытный в 1С

    Регистрация:
    11 май 2011
    Сообщения:
    377
    Симпатии:
    0
    Баллы:
    26
    спасибо - информативно .

Поделиться этой страницей