1С 8, регистр накоплений, последняя секунда
27.05.2009
15:24
#1
1С 8.1 (8.1.13.41).
Регистр накопления, вид регистра Остатки.
Измерение Клиент, ресурс Сумма, реквизитов нет.
Ситуация:
10.01.2009 23:59:59, приход, клиент А, 100 руб.
Запрос:
ВЫБРАТЬ
ДСОстатки.Клиент
ИЗ
РегистрНакопления.ДС.Остатки(&НаДату) КАК ДСОстатки
ГДЕ
BI_ДСОстатки.Клиент = &Клиент
Результаты выполения запроса:
НаДату 10.01.2009 23:59:59 = 0
НаДату 11.01.2009 00:00:00 = 100
_______________________________________
Приход был последней секундой 10 янв., но 1С считает что приход был уже 11 янв. Как изменить запрос чтобы получить правильные результаты.
Очевидные решения вроде вычитания 1 секунды при проведении документа (если дата документа равна концу дня) или прибавление 1 секунды при построении запроса просьба не предлагать, ибо логически это неверно.
Регистр накопления, вид регистра Остатки.
Измерение Клиент, ресурс Сумма, реквизитов нет.
Ситуация:
10.01.2009 23:59:59, приход, клиент А, 100 руб.
Запрос:
ВЫБРАТЬ
ДСОстатки.Клиент
ИЗ
РегистрНакопления.ДС.Остатки(&НаДату) КАК ДСОстатки
ГДЕ
BI_ДСОстатки.Клиент = &Клиент
Результаты выполения запроса:
НаДату 10.01.2009 23:59:59 = 0
НаДату 11.01.2009 00:00:00 = 100
_______________________________________
Приход
Очевидные решения вроде вычитания 1 секунды при проведении документа (если дата документа равна концу дня) или прибавление 1 секунды при построении запроса просьба не предлагать, ибо логически это неверно.
27.05.2009
15:48
#3
Так и делаю. Нужная дата - 10 января, т.к. нужны остатки на конец 10 января. Получаю 0, хотя ожидал получить 100.
28.05.2009
01:56
#4
"Запрос.УстановитьПараметр("НаДату", новый Граница(КонецДня(НужнаяДата),ВидГраницы.Включая));"
29.10.2010
07:54
#6
"Здравствуйте, возникла проблема при использовании границ в параметрах запроса.
Помогите, пожалуйста!
1С версия 8.2
В построителе запроса использую следующую конструкцию:
Построитель.Параметры.Вставить("начПериода", Новый Граница(НачалоДня(НачПериода), ВидГраницы.Включая));
Во время исполнения возникает ошибка:
*************************
{Форма.Форма.Форма(276)}: Ошибка при получении значения атрибута контекста (Результат)
Результат = Построитель.Результат;
по причине:
по причине:
{(150, 56)}: Неверные параметры в операции сравнения. Нельзя сравнивать поля
неограниченной длины и поля несовместимых типов.
И ПродажиОбороты2.Регистратор.ДокументОснование.Дата <>>>= &начПериода
*************************
Т.о. 1с не дает сравнивать в запросе построителя дату с границей.
Пробовала в запросе использовать конструкцию ....Дата МЕЖДУ <граница1> <граница2>, при выполнении 1с выдает ту же самую ошибку.
"
Помогите, пожалуйста!
1С версия 8.2
В построителе запроса использую следующую конструкцию:
Построитель.Параметры.Вставить("начПериода", Новый Граница(НачалоДня(НачПериода), ВидГраницы.Включая));
Во время исполнения возникает ошибка:
*************************
{Форма.Форма.Форма(276)}: Ошибка при получении значения атрибута контекста (Результат)
Результат = Построитель.Результат;
по причине:
по причине:
{(150, 56)}: Неверные параметры в операции сравнения. Нельзя сравнивать поля
неограниченной длины и поля несовместимых типов.
И ПродажиОбороты2.Регистратор.ДокументОснование.Дата <>>>= &начПериода
*************************
Т.о. 1с не дает сравнивать в запросе построителя дату с границей.
Пробовала в запросе использовать конструкцию ....Дата МЕЖДУ <граница1> <граница2>, при выполнении 1с выдает ту же самую ошибку.
"
29.10.2010
09:51
#8
А как тогда в запросе сравнить дату документа с границей? какую переменную где завести?
В выборку должны попасть документы, принадлежащие интервалу включая границу интервала.
В выборку должны попасть документы, принадлежащие интервалу включая границу интервала.
29.10.2010
09:58
#10
Кажется я поняла как,
надо в запросе писать в условии:
СчетФактура.Дата >= &начДата И СчетФактура.Дата <= &конДата
где параметры начДата и конДата - простые даты, а не границы
Запрос был тестовый:
ВЫБРАТЬ
СчетФактура.Ссылка
ИЗ
Документ.СчетФактура КАК СчетФактура
ГДЕ
СчетФактура.Дата МЕЖДУ &дата1 И &дата2
надо в запросе писать в условии:
СчетФактура.Дата >= &начДата И СчетФактура.Дата <= &конДата
где параметры начДата и конДата - простые даты, а не границы
Запрос был тестовый:
ВЫБРАТЬ
СчетФактура.Ссылка
ИЗ
Документ.СчетФактура КАК СчетФактура
ГДЕ
СчетФактура.Дата МЕЖДУ &дата1 И &дата2
Читают тему
(гостей: 1)