Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0
Почему такая фишка не работает?
ДОБАВИТЬКДАТЕ(&НачалоМесяцаОтчет, ГОД, -1)
По факту к дате ничего не добавляется, или нельзя использовать отрицательное значение? Мне собственно нужно от параметра-даты получить такую же дату в прошлом году, может это как-то по другому можно?
СКД, 1с 8,2, упр.
Личные бесплатные консультации не даю, для этого есть форум!
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0
Цитата(Batchir @ 14.05.12, 14:35)
logist может что-то недоговариваете?
А что я могу не договаривать? У меня в базе один документ в текущем месяце, а в отчет выходит так:
ВЫБРАТЬ ПродажиМесяцОтчета.Контрагент, СУММА(ПродажиМесяцОтчета.СуммаМесяцОтчета) КАК СуммаМесяцОтчета, СУММА(ПродажиМесяцПрошлогоГода.СуммаМесяцПрошлогоГода) КАК СуммаМесяцПрошлогоГода, СУММА(ПродажиПрошлыйКвартал.СуммаСреднийМесяцПрошлогоКвартала) КАК СуммаСреднийМесяцПрошлогоКвартала ИЗ (ВЫБРАТЬ ПродажиОбороты.СуммаОборот КАК СуммаМесяцОтчета, ПродажиОбороты.Контрагент КАК Контрагент ИЗ РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, , ) КАК ПродажиОбороты) КАК ПродажиМесяцОтчета ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ПродажиОбороты.Контрагент КАК Контрагент, ВЫБОР КОГДА ЕСТЬNULL(ПродажиОбороты.СуммаОборот, 0) <> 0 ТОГДА ВЫРАЗИТЬ(СРЕДНЕЕ(ПродажиОбороты.СуммаОборот) КАК ЧИСЛО(15, 2)) ИНАЧЕ 0 КОНЕЦ КАК СуммаСреднийМесяцПрошлогоКвартала ИЗ РегистрНакопления.Продажи.Обороты(ДОБАВИТЬКДАТЕ(&НачалоПериода, КВАРТАЛ, -1), ДОБАВИТЬКДАТЕ(&КонецПериода, КВАРТАЛ, -1), Квартал, ) КАК ПродажиОбороты
СГРУППИРОВАТЬ ПО ПродажиОбороты.Контрагент, ПродажиОбороты.СуммаОборот) КАК ПродажиПрошлыйКвартал ПО ПродажиМесяцОтчета.Контрагент = ПродажиПрошлыйКвартал.Контрагент ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ПродажиОбороты.Контрагент КАК Контрагент, ПродажиОбороты.СуммаОборот КАК СуммаМесяцПрошлогоГода ИЗ РегистрНакопления.Продажи.Обороты(ДОБАВИТЬКДАТЕ(&НачалоПериода, ГОД, -1), ДОБАВИТЬКДАТЕ(&КонецПериода, ГОД, -1), , ) КАК ПродажиОбороты) КАК ПродажиМесяцПрошлогоГода ПО ПродажиМесяцОтчета.Контрагент = ПродажиМесяцПрошлогоГода.Контрагент
СГРУППИРОВАТЬ ПО ПродажиМесяцОтчета.Контрагент
Личные бесплатные консультации не даю, для этого есть форум!
Группа: Команда
Сообщений: 3568
Из: Киев
Спасибо сказали: 1427 раз
Рейтинг: 0
logist Попробуйте всё таки в запросе ДОБАВИТЬКДАТЕ(&НачалоПериода, КВАРТАЛ, -1) заменить на &НачалоПериодаКВАРТАЛ ДОБАВИТЬКДАТЕ(&КонецПериода, КВАРТАЛ, -1) заменить на &КонецПериодаКВАРТАЛ ДОБАВИТЬКДАТЕ(&НачалоПериода, ГОД, -1) заменить на &НачалоПериодаГОД ДОБАВИТЬКДАТЕ(&КонецПериода, ГОД, -1) заменить на &КонецПериодаГОД
А на закладке параметров СКД установить эти параметры как НачалоПериодаГОД с выражением ДобавитьКДате(&НачалоПериода,"Год",-1) КонецПериодаГОД с выражением ДобавитьКДате(&КонецПериода,"Год",-1) НачалоПериодаКВАРТАЛ с выражением ДобавитьКДате(&НачалоПериода,"КВАРТАЛ",-1) КонецПериодаКВАРТАЛ с выражением ДобавитьКДате(&КонецПериода,"КВАРТАЛ",-1)
И поставить флаг ограничения доступа (по идее должен стать автоматом по умолчанию) что бы не были доступны эти параметры в пользовательском режиме.
Сообщение отредактировал Batchir - 14.05.12, 14:46
Группа: Команда (модераторы)
Сообщений: 1116
Из: Одесса-Луганск
Спасибо сказали: 192 раз
Рейтинг: 0
Цитата
Что это изменит?
После заморочек с nested loops, я привык разбивать большие запросы на последовательность мелких. Так проще проверять запрос по частям на предмет, где косяки появляются.
Правильно поставленный вопрос содержит до 90% ответа.
Группа: Основатель
Сообщений: 13955
Из: Киев
Спасибо сказали: 4520 раз
Рейтинг: 3642.8
Цитата(Batchir @ 14.05.12, 15:43)
А на закладке параметров СКД установить эти параметры как
Для чистоты эксперимента я бы эти параметры установил сначала просто руками и убедился бы, что так точно работает и проблема именно в этом, а не в каких-то других настройках СКД.
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0
Цитата(Vofka @ 14.05.12, 15:48)
Для чистоты эксперимента я бы эти параметры установил сначала просто руками и убедился бы, что так точно работает
Чистота эксперимента уже была проделана, параметры указал вручную - эксперимент провален. Так что указание этих параметров на вкладке СКД не дает результата. Похоже стандартные параметры НачалоПериода и КонецПериода передаются в параметры запроса в любом случае, игнорируюя установленные в самом запросе. Но так же не должно быть, должно же быть какое-то решение...
Личные бесплатные консультации не даю, для этого есть форум!
Группа: Команда
Сообщений: 3568
Из: Киев
Спасибо сказали: 1427 раз
Рейтинг: 0
Да, СКД вещь темная, что внутри твориться хз. Может тогда действительно попробовать как pablo предложил - побить на пакеты?
О мысль появилась. А можно ведь в консоле СКД посмотреть что за конечный запрос идет к БД. Ведь тот запрос что составлен конструктором может отличаться от того который СКД реально посылает к БД. Может анализ конечного запроса откроет глаза?
Сообщение отредактировал Batchir - 14.05.12, 15:06
текст запроса - это текст. соответственно выражения не обязаны выполнятся. надо пробовать выделять выражения одинарными ковычками. либо сразу вычислить дату и поместить в параметр.
кстати, в полях данная конструкция работает. а в самом обращении к регистру - нет.
я помню где-то подобное делал - выделял выражения фигурными скобками.
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0
Цитата(Acid @ 14.05.12, 17:03)
либо сразу вычислить дату и поместить в параметр.
Ну я переместил вычисление в параметры, и в каждый период регистра теперь передаю свой параметр, но это ничего не изменило. Везде идет только стандартные начало и конец.
Проблема оказалась мне не совсем понятной, для названия поля стандартного периода (тот что показывается пользователю) я использовал "Период", что и оказалось ошибкой. После переименования его всё пошло как надо. Вкладка параметров у меня выглядит так:
ну и в самом запросе указаны эти параметры.
Сообщение отредактировал logist - 14.05.12, 16:45
Личные бесплатные консультации не даю, для этого есть форум!
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!