Имя: Пароль:
1C
1С v8
Как в периоде временной таблицы указать условие
0 megabax
 
14.02.18
13:33
Добрый день.
Коллеги позарез нужно в период временной таблицы засунуть условие, так как необходимо получить обороты за период с начала года по месяц, предшествующий дате, если это не январь, иначе надо получить обороты только за первое января. подскажите, пожалуйста, как это сделать?
Делаю так:
ВЫБОР КОГДА МЕСЯЦ(&Дата)=1 ТОГДА НАЧАЛОПЕРИОДА(&Дата, МЕСЯЦ) ИНАЧЕ  КОНЕЦПЕРИОДА(ДОБАВИТЬКДАТЕ(&Дата, МЕСЯЦ, -1), МЕСЯЦ) КОНЕЦ
1С меня посылает
делаю так
МАКСИМУМ(НАЧАЛОПЕРИОДА(&Дата, ГОД), КОНЕЦПЕРИОДА(ДОБАВИТЬКДАТЕ(&Дата, МЕСЯЦ, -1), МЕСЯЦ))
тоже посылает. подскажите плз, как быть?
1 hhhh
 
14.02.18
13:35
как-то так

&ДатаНачалаПериода, &ДатаОкончанияПериода
2 Timon1405
 
14.02.18
13:35
//Запрос кроме первого января
где
выбор когда &Условие тогда истина иначе ложь конец
Объединить все
//Запрос первого января
где
выбор когда &Условие тогда ложь иначе истина конец
3 megabax
 
14.02.18
13:41
(2) С объединить не получается. Если это январь то выражение КОНЕЦПЕРИОДА(ДОБАВИТЬКДАТЕ(&Дата, МЕСЯЦ, -1), МЕСЯЦ), которое является концом периода, меньше начала периода и 1С меня посылает.Точно также она будет посылать, если я сделаю объединение запросов, где будет один запроса с таким выражением.
4 КВА
 
14.02.18
13:49
В первом ответе, все верно. Определи даты в параметры за которые тебе нужно получить обороты. А потом суй их в запрос..
5 1Сергей
 
14.02.18
13:50
Под временной таблицей понимается виртуальная, да?
6 megabax
 
14.02.18
13:51
(4) проблема в том, что текст запроса формируется в модуле менеджера документов в процедуре ТекстОтраженияВРеглУчете() - короче, это формирование регламентных проводок в ЕРП.
7 megabax
 
14.02.18
13:51
(5) Нет, это именно виртуальная таблица. Обороты регистра бухии хозрасчетный.
8 1Сергей
 
14.02.18
13:52
(7) :)
9 1Сергей
 
14.02.18
13:57
Правильный ответ в (1)
Ошибка? Это не ошибка, это системная функция.