Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 20:54

есть запрос. нужно изменить период выборки на +7 часов

Автор aleks-lit, 06 сен 2013, 13:19

0 Пользователей и 1 гость просматривают эту тему.

aleks-lit

 есть запрос. нужно изменить период выборки на +7 часов

Функция ЗапросРезультат(ТабДок) Экспорт


//{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

    Макет = ПолучитьМакет("Макет");

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

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

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



Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| ОстаткиОбороты.Период КАК Период,
| ОстаткиОбороты.Владелец КАК Владелец,
| ОстаткиОбороты.КоличествоПриход КАК КоличествоПриход,
| ОстаткиОбороты.КоличествоРасход КАК КоличествоРасход,
| ОстаткиОбороты.ВлажностьПриход КАК ВлажностьПриход,
| ОстаткиОбороты.ВлажностьРасход КАК ВлажностьРасход,
| ОстаткиОбороты.СорностьПриход КАК СорностьПриход,
| ОстаткиОбороты.СорностьРасход КАК СорностьРасход,
| ОстаткиОбороты.КодОперации
|ИЗ
| РегистрНакопления.Остатки.ОстаткиИОбороты(&НачДата, &КонДата, День, , ) КАК ОстаткиОбороты
|ГДЕ
| ОстаткиОбороты.Организация = &Организация
| И ОстаткиОбороты.Владелец = &Владелец
| И ОстаткиОбороты.Номенклатура = &Номенклатура
| И ОстаткиОбороты.Партия = &Партия
| И ОстаткиОбороты.Склад = &Склад
| И ОстаткиОбороты.ГодУрожая = &ГодУрожая
| И НЕ ОстаткиОбороты.КодОперации В (&КодОперации)
|
|УПОРЯДОЧИТЬ ПО
| Период,
| Владелец,
| КоличествоПриход УБЫВ,
| КоличествоРасход,
| ОстаткиОбороты.ВлажностьПриход,
| ОстаткиОбороты.ВлажностьРасход,
| ОстаткиОбороты.СорностьПриход,
| ОстаткиОбороты.СорностьРасход
|ИТОГИ
| СУММА(КоличествоПриход),
| СУММА(КоличествоРасход),
| СУММА(ВлажностьПриход),
| СУММА(ВлажностьРасход),
| СУММА(СорностьПриход),
| СУММА(СорностьРасход)
|ПО
| Период";

НачДата = НачДата1+Час(Константы.НачалоСуток.Получить())*3600+Минута(Константы.НачалоСуток.Получить())*60-86400;//прошлый день с начала суток
КонДата = КонДата1+Час(Константы.НачалоСуток.Получить())*3600+Минута(Константы.НачалоСуток.Получить())*60;//сегодня с начало суток
   //
   // НачДата = Формат (НачДата1, )  ;
   // КонДата = Формат (КонДата1, )   ;

Запрос.УстановитьПараметр("НачДата", НачДата );
Запрос.УстановитьПараметр("КонДата", КонДата );
Запрос.УстановитьПараметр("Организация", Организация);
Запрос.УстановитьПараметр("Номенклатура", Номенклатура);

ЗапросОстаток.УстановитьПараметр("НачДата", НачДата);
ЗапросОстаток.УстановитьПараметр("Организация", Организация);
ЗапросОстаток.УстановитьПараметр("Номенклатура", Номенклатура);

ЗапросОстатокСНачЗавоза.УстановитьПараметр("КонДата", КонДата);
ЗапросОстатокСНачЗавоза.УстановитьПараметр("Организация", Организация);
ЗапросОстатокСНачЗавоза.УстановитьПараметр("Номенклатура", Номенклатура);

ЗапросОстатокСНачЗавозаВлажность.УстановитьПараметр("КонДата", КонДата);
ЗапросОстатокСНачЗавозаВлажность.УстановитьПараметр("Организация", Организация);
ЗапросОстатокСНачЗавозаВлажность.УстановитьПараметр("Номенклатура", Номенклатура);

/////////////////КОДЫ ОПЕРАЦИЙ///////////////////////////////////////////////////////////////
СписокКодовОпераций = Новый СписокЗначений;
СписокКодовОпераций.Добавить(Перечисления.КодыОпераций.Перемещение);

Запрос.УстановитьПараметр("КодОперации", СписокКодовОпераций);
ЗапросОстаток.УстановитьПараметр("КодОперации", СписокКодовОпераций);

СписокКодовОперацийБезПодработкиВлажности = Новый СписокЗначений;
СписокКодовОперацийБезПодработкиВлажности.Добавить(Перечисления.КодыОпераций.Перемещение);
СписокКодовОперацийБезПодработкиВлажности.Добавить(Перечисления.КодыОпераций.СнижениеВлажности);
ЗапросОстатокСНачЗавоза.УстановитьПараметр("КодОперации", СписокКодовОперацийБезПодработкиВлажности);

СписокКодовОперацийТолькоПоВлажности = Новый СписокЗначений;
СписокКодовОперацийТолькоПоВлажности.Добавить(Перечисления.КодыОпераций.СнижениеВлажности);
ЗапросОстатокСНачЗавозаВлажность.УстановитьПараметр("КодОперации", СписокКодовОперацийТолькоПоВлажности);
/////////////////////////////////////////////////////////////////////////////////////////////



LordWizard

Измеряется и регистрируется время в 8-ке по секундам - соответственно  добавь к дате "+ 7*60*60".
Правильно ведите учет или пишите программы и вам воздастся!...

(Кстати - кнопочку Сказать Спасибо - никто не отменял)

aleks-lit


LordWizard

что это ты понаписал в НачДата и КонДата???

Добавлено: 06 сен 2013, 13:37


НачалоДня() или КонецДня() не слышал о таких процедурах? и зачем выделять часы и тут же их добавлять???
Сдвинуть на 7 часов просто:

ДатаДок1 = НачалоДня(Док.Дата) + 7*60*60;
Или
Док.ДатаДок = Док.ДатаДок + 7*60*60;
Правильно ведите учет или пишите программы и вам воздастся!...

(Кстати - кнопочку Сказать Спасибо - никто не отменял)

aleks-lit

НачДата и КонДата это поля ввода типа "дд.мм.гггг чч:мм:сс"
и там сразу забито время, но отбор из регистра идет с полуночи до полуночи
Цитата: LordWizard от 06 сен 2013, 13:33
что это ты понаписал в НачДата и КонДата???

не обращай внимания этоя уже пробовал по-разному...

вот изначальный код:
Функция ЗапросРезультат(ТабДок) Экспорт
   
   
   //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
   // Данный фрагмент построен конструктором.
   // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
   
      Макет = ПолучитьМакет("Макет");
   
   ЗапросОстатокСНачЗавоза = Новый Запрос;
   ЗапросОстатокСНачЗавоза.Текст =
   "ВЫБРАТЬ
   |   ОстаткиОстаткиИОбороты.КоличествоПриход,
   |   ОстаткиОстаткиИОбороты.КоличествоРасход,
   |   ОстаткиОстаткиИОбороты.ВлажностьПриход,
   |   ОстаткиОстаткиИОбороты.ВлажностьРасход,
   |   ОстаткиОстаткиИОбороты.СорностьПриход,
   |   ОстаткиОстаткиИОбороты.СорностьРасход
   |ИЗ
   |   РегистрНакопления.Остатки.ОстаткиИОбороты(, &КонДата, , , ) КАК ОстаткиОстаткиИОбороты
   |ГДЕ
   |   ОстаткиОстаткиИОбороты.Организация = &Организация
   |   И ОстаткиОстаткиИОбороты.Владелец = &Владелец
   |   И ОстаткиОстаткиИОбороты.Номенклатура = &Номенклатура
   |   И ОстаткиОстаткиИОбороты.Склад = &Склад
   |   И ОстаткиОстаткиИОбороты.ГодУрожая = &ГодУрожая
   |   И ОстаткиОстаткиИОбороты.Партия = &Партия
   |   И НЕ ОстаткиОстаткиИОбороты.КодОперации В (&КодОперации)";
   
   ЗапросОстатокСНачЗавозаВлажность = Новый Запрос;
   ЗапросОстатокСНачЗавозаВлажность.Текст =
   "ВЫБРАТЬ
   |   ОстаткиОстаткиИОбороты.КоличествоРасход   
   |ИЗ
   |   РегистрНакопления.Остатки.ОстаткиИОбороты(, &КонДата, , , ) КАК ОстаткиОстаткиИОбороты
   |ГДЕ
   |   ОстаткиОстаткиИОбороты.Организация = &Организация
   |   И ОстаткиОстаткиИОбороты.Владелец = &Владелец
   |   И ОстаткиОстаткиИОбороты.Номенклатура = &Номенклатура
   |   И ОстаткиОстаткиИОбороты.Партия = &Партия
   |   И ОстаткиОстаткиИОбороты.Склад = &Склад
   |   И ОстаткиОстаткиИОбороты.ГодУрожая = &ГодУрожая
   |   И ОстаткиОстаткиИОбороты.КодОперации В (&КодОперации)";
   
   ЗапросОстаток = Новый Запрос;
   ЗапросОстаток.Текст =
   "ВЫБРАТЬ РАЗЛИЧНЫЕ
   |   ОстаткиОстаткиИОбороты.КоличествоНачальныйОстаток КАК КоличествоНачальныйОстаток
   |ИЗ
   |   РегистрНакопления.Остатки.ОстаткиИОбороты(
   |         &НачДата,
   |         &НачДата) КАК ОстаткиОстаткиИОбороты
   |ГДЕ
   |   ОстаткиОстаткиИОбороты.Организация = &Организация
   |   И ОстаткиОстаткиИОбороты.Владелец = &Владелец
   |   И ОстаткиОстаткиИОбороты.Номенклатура = &Номенклатура
   |   И ОстаткиОстаткиИОбороты.Партия = &Партия
   |   И ОстаткиОстаткиИОбороты.Склад = &Склад
   |   И ОстаткиОстаткиИОбороты.ГодУрожая = &ГодУрожая
   |   И Не ОстаткиОстаткиИОбороты.КодОперации В (&КодОперации)
   |
   |УПОРЯДОЧИТЬ ПО
   |   КоличествоНачальныйОстаток";
   
   
   
   Запрос = Новый Запрос;
   Запрос.Текст =
   "ВЫБРАТЬ РАЗЛИЧНЫЕ
   |   ОстаткиОбороты.Период КАК Период,
   |   ОстаткиОбороты.Владелец КАК Владелец,
   |   ОстаткиОбороты.КоличествоПриход КАК КоличествоПриход,
   |   ОстаткиОбороты.КоличествоРасход КАК КоличествоРасход,
   |   ОстаткиОбороты.ВлажностьПриход КАК ВлажностьПриход,
   |   ОстаткиОбороты.ВлажностьРасход КАК ВлажностьРасход,
   |   ОстаткиОбороты.СорностьПриход КАК СорностьПриход,
   |   ОстаткиОбороты.СорностьРасход КАК СорностьРасход,
   |   ОстаткиОбороты.КодОперации
   |ИЗ
   |   РегистрНакопления.Остатки.ОстаткиИОбороты(&НачДата, &КонДата, День, , ) КАК ОстаткиОбороты
   |ГДЕ
   |   ОстаткиОбороты.Организация = &Организация
   |   И ОстаткиОбороты.Владелец = &Владелец
   |   И ОстаткиОбороты.Номенклатура = &Номенклатура
   |   И ОстаткиОбороты.Партия = &Партия
   |   И ОстаткиОбороты.Склад = &Склад
   |   И ОстаткиОбороты.ГодУрожая = &ГодУрожая
   |   И НЕ ОстаткиОбороты.КодОперации В (&КодОперации)
   |
   |УПОРЯДОЧИТЬ ПО
   |   Период,
   |   Владелец,
   |   КоличествоПриход УБЫВ,
   |   КоличествоРасход,
   |   ОстаткиОбороты.ВлажностьПриход,
   |   ОстаткиОбороты.ВлажностьРасход,
   |   ОстаткиОбороты.СорностьПриход,
   |   ОстаткиОбороты.СорностьРасход
   |ИТОГИ
   |   СУММА(КоличествоПриход),
   |   СУММА(КоличествоРасход),
   |   СУММА(ВлажностьПриход),
   |   СУММА(ВлажностьРасход),
   |   СУММА(СорностьПриход),
   |   СУММА(СорностьРасход)
   |ПО
   |   Период";
   
     
   Запрос.УстановитьПараметр("НачДата", НачДата );
   Запрос.УстановитьПараметр("КонДата", КонДата );
   Запрос.УстановитьПараметр("Организация", Организация);
   Запрос.УстановитьПараметр("Номенклатура", Номенклатура);
   
   ЗапросОстаток.УстановитьПараметр("НачДата", НачДата);
   ЗапросОстаток.УстановитьПараметр("Организация", Организация);
   ЗапросОстаток.УстановитьПараметр("Номенклатура", Номенклатура);
   
   ЗапросОстатокСНачЗавоза.УстановитьПараметр("КонДата", КонДата);
   ЗапросОстатокСНачЗавоза.УстановитьПараметр("Организация", Организация);
   ЗапросОстатокСНачЗавоза.УстановитьПараметр("Номенклатура", Номенклатура);
   
   ЗапросОстатокСНачЗавозаВлажность.УстановитьПараметр("КонДата", КонДата);
   ЗапросОстатокСНачЗавозаВлажность.УстановитьПараметр("Организация", Организация);
   ЗапросОстатокСНачЗавозаВлажность.УстановитьПараметр("Номенклатура", Номенклатура);
   
   /////////////////КОДЫ ОПЕРАЦИЙ///////////////////////////////////////////////////////////////
   СписокКодовОпераций = Новый СписокЗначений;
   СписокКодовОпераций.Добавить(Перечисления.КодыОпераций.Перемещение);
   
   Запрос.УстановитьПараметр("КодОперации", СписокКодовОпераций);
   ЗапросОстаток.УстановитьПараметр("КодОперации", СписокКодовОпераций);
   
   СписокКодовОперацийБезПодработкиВлажности = Новый СписокЗначений;
   СписокКодовОперацийБезПодработкиВлажности.Добавить(Перечисления.КодыОпераций.Перемещение);
   СписокКодовОперацийБезПодработкиВлажности.Добавить(Перечисления.КодыОпераций.СнижениеВлажности);
   ЗапросОстатокСНачЗавоза.УстановитьПараметр("КодОперации", СписокКодовОперацийБезПодработкиВлажности);
   
   СписокКодовОперацийТолькоПоВлажности = Новый СписокЗначений;
   СписокКодовОперацийТолькоПоВлажности.Добавить(Перечисления.КодыОпераций.СнижениеВлажности);
   ЗапросОстатокСНачЗавозаВлажность.УстановитьПараметр("КодОперации", СписокКодовОперацийТолькоПоВлажности);
   /////////////////////////////////////////////////////////////////////////////////////////////
   



LordWizard

Ты там что - коноплю выращиваешь???Тут точно без косяка не разобраться! А зачем тебе смещать то на 7 часов  что ты хочешь сместить?? :xfbnsdfb:
Правильно ведите учет или пишите программы и вам воздастся!...

(Кстати - кнопочку Сказать Спасибо - никто не отменял)

Gunner


aleks-lit

Цитата: LordWizard от 06 сен 2013, 14:55
Ты там что - коноплю выращиваешь???Тут точно без косяка не разобраться! А зачем тебе смещать то на 7 часов  что ты хочешь сместить?? :xfbnsdfb:

сутки рабочие с 7-ми до 7-ми утра. и отчетность по этим сменам

LordWizard

аааа! тогда понятно =) ато сидишь и думаешь - зачем все это! =)) Только один момент - пользователь! Он может перед самой сменой, точнее в конце смены это сделать. Например: Смена пользователя закончилась и он уходя в 07.01 Провел документ. Тут как быть?
Правильно ведите учет или пишите программы и вам воздастся!...

(Кстати - кнопочку Сказать Спасибо - никто не отменял)

aleks-lit

Цитата: Gunner от 06 сен 2013, 15:10
Используй выражение ДобавитьКДате
я пробовал, но видимо что-то не так делал. подскажи куда вставить, ДобавитьКДате(НачДата, час, 7) или вместо НачДата надо Период?:dfbsdfbsdf:
я до изучения языка запросов еще не добрался. и если я довольно неплохо читаю код, и даже в управляемых формах дело сдвинулось, то в запросах я не в зуб ногой.
Добавлено: 06 сен 2013, 16:07


Цитата: LordWizard от 06 сен 2013, 16:02
аааа! тогда понятно =) ато сидишь и думаешь - зачем все это! =)) Только один момент - пользователь! Он может перед самой сменой, точнее в конце смены это сделать. Например: Смена пользователя закончилась и он уходя в 07.01 Провел документ. Тут как быть?
бухи перепроведут 5- 10 мин не страшно, просто время фиксируется и перепроводить документы на 7 часов назад нельзя да и довольно много их.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск