1с добавитькдате неверные параметры
Неверные параметры в запросе
Вот та строчка на которой ошибка
| ДОБАВИТЬКДАТЕ(ВремТаб.СрокГ, СЕКУНДА, ВремТаб.НачИстекЛиСрок) КАК ИстекЛиСрок
Вот весь запрос
«ВЫБРАТЬ
| ПартииОстатки.ДокПартии.Ссылка КАК ДокПартииСсылка,
| ПартииОстатки.Склад КАК Склад,
| ПартииОстатки.Номенклатура КАК Номенклатура,
| ПартииОстатки.ДатаИзготовления КАК ДатаИзготовления,
| ПартииОстатки.СрокГодностиОстаток КАК СрокГодностиОстаток,
| ПартииОстатки.КоличествоОстаток КАК КоличествоОстаток,
| ПартииОстатки.ЦенаЗакупкиОстаток КАК ЦенаЗакупкиОстаток,
| ПартииОстатки.СуммаОстаток КАК СуммаОстаток,
| РАЗНОСТЬДАТ(ПартииОстатки.ДатаИзготовления, &ТекД, СЕКУНДА) КАК НачИстекЛиСрок,
| ПартииОстатки.Номенклатура.СрокГодности * &ДеньВСекундах КАК СрокГ
|ПОМЕСТИТЬ ВремТаб
|ИЗ
| РегистрНакопления.Партии.Остатки КАК ПартииОстатки
|ГДЕ
| ПартииОстатки.Склад = &ВыбСклад
| И ПартииОстатки.Номенклатура В(&СписокТоваров)
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ВремТаб.ДокПартииСсылка КАК ДокПартииСсылка,
| ВремТаб.Склад КАК Склад,
| ВремТаб.Номенклатура КАК Номенклатура,
| ВремТаб.ДатаИзготовления КАК ДатаИзготовления,
| ВремТаб.СрокГодностиОстаток КАК СрокГодностиОстаток,
| ВремТаб.КоличествоОстаток КАК КоличествоОстаток,
| ВремТаб.ЦенаЗакупкиОстаток КАК ЦенаЗакупкиОстаток,
| ВремТаб.СуммаОстаток КАК СуммаОстаток,
| ВремТаб.НачИстекЛиСрок КАК НачИстекЛиСрок,
| ВремТаб.СрокГ КАК СрокГ,
| ДОБАВИТЬКДАТЕ(ВремТаб.СрокГ, СЕКУНДА, ВремТаб.НачИстекЛиСрок) КАК ИстекЛиСрок
|ИЗ
| ВремТаб КАК ВремТаб»;
ДобавитьКДате в запросе не работает! 1С 8.2
kgn Вопрос-ответ Отзывов (7) 
Помогите почему-то после ДобавитьКДате ….ДатаОплатыПоДоговору —пустая!См.ниже…..
ВЫБОР КОГДА ИсточникДанных.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности=0
ТОГДА ИсточникДанных.Регистратор.Дата
ИНАЧЕ
ДОБАВИТЬКДАТЕ(ВЫРАЗИТЬ(ИсточникДанных.Регистратор.Дата КАК ДАТА), ДЕНЬ, ВЫРАЗИТЬ(ИсточникДанных.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности КАК ЧИСЛО))
КОНЕЦ КАК ДатаОплатыПоДоговору
// А вот так все проходит! (когда число 15 ставим конкретное)
ДОБАВИТЬКДАТЕ(ВЫРАЗИТЬ(ИсточникДанных.Регистратор.Дата КАК ДАТА), ДЕНЬ, 15) КАК ДатаОплатыПоДоговору








7 Коммент.
Что-то конкретное сказать не могу. Возможно, что функция выразить отрабатывает некорректно, поэтому попробуйте с помощью запроса вывести именно это значение.
Также есть вероятность на наличие NULL в запросе. В общем – надо копать глубже
В запросе в универсальном отчете
1 способ все хорошо (добавл 15) все работает.
|ДОБАВИТЬКДАТЕ(ВЫРАЗИТЬ(ИсточникДанных.Регистратор.Дата КАК ДАТА), ДЕНЬ, 15) КАК ДатаН
4 способ (выдает ошибку Несовместимые типы “ВЫБОР” ДОБАВИТЬКДАТЕ(<> ВЫБОР ….
| ВЫБОР
| КОГДА (ИсточникДанных.Регистратор.Дата = ДАТАВРЕМЯ(1,1,1))
| ТОГДА @НачПериода
| ИНАЧЕ ИсточникДанных.Регистратор.Дата
| КОНЕЦ, ДЕНЬ, ЕСТЬNULL(ИсточникДанных.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности, 0)) КАК ДатаН
4 способ заменила @НачДата и опять пусто
| ВЫБОР
| КОГДА (ИсточникДанных.Регистратор.Дата = ДАТАВРЕМЯ(1,1,1))
| ТОГДА ДАТА(@НачПериода)
| ИНАЧЕ ИсточникДанных.Регистратор.Дата
| КОНЕЦ, ДЕНЬ, ЕСТЬNULL(ИсточникДанных.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности, 0)) КАК ДатаН
ДобавитьКДате в запросе 1С
ДобавитьКДате в запросе 1С
Функция ДобавитьКДате позволяет произвести выборку данных, за период отталкиваясь от одного значения даты на определенное количество единиц времени.
В синтаксисе языка аналог — функция ДобавитьМесяц, для остальных значений даты расчет всегда производится посекундно: Дата1 = Дата2+24*3600*7.
В запросе же добавить период к значению можно гораздо гибче используя всего одну функцию.
Синтаксис функции
Начальная дата может быть:
Не хватает только функции ТекущаяДата() в запросе
Единицы времени:
Секунда, Минута, Час, День, Неделя, Декада, Месяц,Квартал, Полугодие, Год
Сдвиг
Приводит к вычислению Сдвиг*ЕдиницаВремени
Положительное число — увеличение периода
Отрицательно — уменьшение периода
Примеры запросов
Запрос, получающий дату на месяц раньше 01.10.2016
На 3 месяца позже:
На 30 календарных дней раньше
12 часов дня
Выбрать
ДобавитьКДате(ДатаВремя(2016,10,1),Секунда,12*3600), ДобавитьКДате(ДатаВремя(2016,10,1),ЧАС,12)
Особенность ДОБАВИТЬКДАТЕ
Возможно использовать значения другой таблицы для указания сдвига
Например, если есть таблица которая содержит номера часов:
Выбрать 1 как Номер
То ее можно соединить с календарем и для каждой даты получить дату со временем, использовав вот такую конструкцию:
ДобавитьКДате(_КалендарьГрафиков.Дата,ЧАС,Часы.Номер) как ДатаСоВременем
Реклама — самая интересная и самая трудная форма современной литературы.
ДобавитьКДате в запросе 1С 8.2 в универсальном отчете
Много раз поднимался вопрос по этому поводу.Но у меня ничего не выходит.Пишу отчет на базе универсального.К Дате надо прибавить кол-во дней и получить другую дату.
ИсточникДанных.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности КАК ДопустимоеЧислоДнейЗадолженности,
ИсточникДанных.Регистратор.Дата КАК РегистраторДата,
ВЫБОР КОГДА ИсточникДанных.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности=0
ТОГДА ИсточникДанных.Регистратор.Дата
ИНАЧЕ
ДОБАВИТЬКДАТЕ(ВЫРАЗИТЬ(ИсточникДанных.Регистратор.Дата КАК ДАТА),ДЕНЬ,
Зачем такие сложности с использованием ВЫБОРа :
.
ВЫБОР КОГДА ИсточникДанных.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности=0
ТОГДА ИсточникДанных.Регистратор.Дата
ИНАЧЕ
ДОБАВИТЬКДАТЕ(ВЫРАЗИТЬ(ИсточникДанных.Регистратор.Дата КАК ДАТА),ДЕНЬ,
Дате надо прибавить кол-во дней и получить другую дату.
КолДней= 3;
КолДнейДобавить = КолДней*24*60*60;
Сообщить(ТекущаяДата()+КолДнейДобавить);
Ну вот как то так можете попробовать у меня работает.
Количество дней можно из запроса взять ил на форме вводить на что фантазии хватит ))
Все получилось! Спасибо огромное!Вот так.
ВЫБОР
| КОГДА (ИсточникДанных.Регистратор.Дата = ДАТАВРЕМЯ(1,1,1))
| ТОГДА ДАТА(@НачПериода)
| ИНАЧЕ ИсточникДанных.Регистратор.Дата
| КОНЕЦ, ДЕНЬ, ЕСТЬNULL(ИсточникДанных.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности, 0)) КАК ДатаН
(17) Caspers,
(24) kgn2011, так и не понял что Вы хотите получить?
Вам надо запрос на «дата + х» или Вам нужен результат где дата заменена на «дата + х»?
В первом случае Вы хотите вытащить часть данных на «дата», а часть на «дата + х», во втором Вы получаете данные на «дата» но в отчете отображаете «дата+х».
Вам первый или второй вариант?
В запросе в универсальном отчете
1 способ все хорошо (добавл 15) все работает.
|ДОБАВИТЬКДАТЕ(ВЫРАЗИТЬ(ИсточникДанных.Регистратор.Дата КАК ДАТА), ДЕНЬ, 15 ) КАК ДатаН
где @НачПериода это в Универсальном отчете в диалоге поле ввода где задаем диапазон НачПериода и КонПериода
СКД меняет текст запроса
Всем привет. Делаю отчет, который берет данные из регистра продаж. Запрос сделал, проверил в косоли запросов, данные выводятся корректно.
Вот сам текст запроса.
ИНДЕКСИРОВАТЬ ПО
Контрагент
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ПродажиОбороты.Контрагент.Родитель КАК ГоловнойКонтрагент,
ПродажиОбороты.Номенклатура.НоменклатурнаяГруппа КАК ТМ,
ПродажиОбороты.Период КАК Период,
ПродажиОбороты.КоличествоОборот,
ПродажиОбороты.СтоимостьОборот,
«Старый» КАК НовыйСтарыйКонтрагент,
ВЫБОР
КОГДА ПродажиОбороты.Подразделение В (&МассивДивизионов)
ТОГДА ПродажиОбороты.Подразделение
КОНЕЦ КАК Дивизион,
ВЫБОР
КОГДА ПродажиОбороты.Подразделение В (&МассивРегионов)
ТОГДА ПродажиОбороты.Подразделение
КОНЕЦ КАК Регион
ПОМЕСТИТЬ ВТ_ИтоговыеДанные
ИЗ
РегистрНакопления.Продажи.Обороты(
&НачалоПериода,
&КонецПериода,
Месяц,
Контрагент В
(ВЫБРАТЬ
ВТ_Контрагенты.Контрагент
ИЗ
ВТ_Контрагенты КАК ВТ_Контрагенты)) КАК ПродажиОбороты
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВТ_ИтоговыеДанные.ГоловнойКонтрагент КАК ГоловнойКонтрагент,
ВТ_ИтоговыеДанные.ТМ КАК ТМ,
ВТ_ИтоговыеДанные.Период,
СУММА(ВТ_ИтоговыеДанные.КоличествоОборот) КАК КоличествоОборот,
СУММА(ВТ_ИтоговыеДанные.СтоимостьОборот) КАК СтоимостьОборот,
ВТ_ИтоговыеДанные.НовыйСтарыйКонтрагент,
ВТ_ИтоговыеДанные.Дивизион,
ВТ_ИтоговыеДанные.Регион
ИЗ
ВТ_ИтоговыеДанные КАК ВТ_ИтоговыеДанные
<ГДЕ
(ВТ_ИтоговыеДанные.Дивизион = &Дивизон) КАК Поле2>
СГРУППИРОВАТЬ ПО
ВТ_ИтоговыеДанные.ГоловнойКонтрагент,
ВТ_ИтоговыеДанные.ТМ,
ВТ_ИтоговыеДанные.Период,
ВТ_ИтоговыеДанные.НовыйСтарыйКонтрагент,
ВТ_ИтоговыеДанные.Дивизион,
ВТ_ИтоговыеДанные.Регион
[1C]
В СКД каверкаются параметры в первой временной таблице.
ИНДЕКСИРОВАТЬ ПО
Контрагент
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ПродажиОбороты.Контрагент.Родитель КАК ГоловнойКонтрагент,
ПродажиОбороты.Номенклатура.НоменклатурнаяГруппа КАК ТМ,
ПродажиОбороты.Период КАК Период,
ПродажиОбороты.КоличествоОборот КАК КоличествоОборот,
«Старый» КАК НовыйСтарыйКонтрагент,
ВЫБОР
КОГДА ПродажиОбороты.Подразделение В (&МассивДивизионов)
ТОГДА ПродажиОбороты.Подразделение
КОНЕЦ КАК Дивизион,
ВЫБОР
КОГДА ПродажиОбороты.Подразделение В (&МассивРегионов)
ТОГДА ПродажиОбороты.Подразделение
КОНЕЦ КАК Регион
ПОМЕСТИТЬ ВТ_ИтоговыеДанные
ИЗ
РегистрНакопления.Продажи.Обороты(
&П,
&П2,
Месяц,
Контрагент В
(ВЫБРАТЬ
ВТ_Контрагенты.Контрагент
ИЗ
ВТ_Контрагенты КАК ВТ_Контрагенты)) КАК ПродажиОбороты
ОБЪЕДИНИТЬ ВСЕ
. [1C]
Она подставляет туда те же параметры, что и во вторую, а это неверно, т.к. в первой параметры рассчетные. Соответственно данные выводятся в отчете неверно.
Что делать в этой ситуации кто-нибудь знает?
Отчет в СКД получил через консоль отчетов.

