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

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

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

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

LordWizard

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

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

aleks-lit

Цитата: LordWizard от 06 сен 2013, 16:48
а по пользователям если отсеивать еще? собрать их в какие-то группы. и потом по группам отзапросить вдобавок к периоду :D хм. А это кстати идея - отобрать по ответственному!!
не пойдет. как потом это разобрать по датам?

LordWizard

А почему бы пользователей не собирать в группы и делать отчет по группам пользователей?
Правильно ведите учет или пишите программы и вам воздастся!...

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

aleks-lit

мож так будет понятнее...отчет
Добавлено: 16 сен 2013, 13:56


Цитата: LordWizard от 16 сен 2013, 11:28
А почему бы пользователей не собирать в группы и делать отчет по группам пользователей?
выложил отчет полностью

так должен выглядеть отчет картинка

Добавлено: 17 сен 2013, 16:45


ау-у
Добавлено: 17 сен 2013, 17:30


ну хоть кто-нибудь...

Добавлено: 17 сен 2013, 21:34


НИФИГА!!!
Эстонская фамилия -Обломайтис, блин....

...чё б еще попробовать? Есть идеи?

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


ЧасОтсчета = константы.НачалоСуток.Получить() ;
Запрос.УстановитьПараметр("ЧасОтсчета", ЧасОтсчета );
Запрос.УстановитьПараметр("НачДата", НачДата );
Запрос.УстановитьПараметр("КонДата", КонДата );
Запрос.УстановитьПараметр("Организация", Организация);
Запрос.УстановитьПараметр("Номенклатура", Номенклатура);
Добавлено: 18 сен 2013, 04:22


Сделал так:


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



по крайней мере количество сходится, но теперь итог по дню выскакивает после каждой записи

ВыборкаПериод = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"Регистратор");
Пока ВыборкаПериод.Следующий() Цикл
фл=0;ИтогПодработкиДень=0;
ВыборкаКонтрагент = ВыборкаПериод.Выбрать();
Пока ВыборкаКонтрагент.Следующий() Цикл

НомерСтроки = НомерСтроки + 1;
ОбластьДетальныхЗаписей.Параметры.КоличествоСтр = НомерСтроки;
ОбластьДетальныхЗаписей.Параметры.ДатаДок = Формат(ВыборкаПериод.Регистратор,"ДФ=dd.MM.yy");
ОбластьДетальныхЗаписей.Параметры.Контрагент = ВыборкаКонтрагент.Владелец;

//при попадании подработки, дублируем только остаток
Если (ВыборкаКонтрагент.КодОперации = Перечисления.КодыОпераций.СнижениеВлажности) Тогда

ОбластьДетальныхЗаписей.Параметры.Влажность = "";
ОбластьДетальныхЗаписей.Параметры.Сорность = "";
ОбластьДетальныхЗаписей.Параметры.КоличествоРасход = "";
ОбластьДетальныхЗаписей.Параметры.КоличествоПриход = "";
ОбластьДетальныхЗаписей.Параметры.ПриходВлажностьЦП = "";
ОбластьДетальныхЗаписей.Параметры.РасходВлажностьЦП = "";
ОбластьДетальныхЗаписей.Параметры.ПриходСорностьЦП = "";
ОбластьДетальныхЗаписей.Параметры.РасходСорностьЦП = "";
ОбластьДетальныхЗаписей.Параметры.Остаток = НачОстаток;
ОбластьДетальныхЗаписей.Параметры.Подработка = "подр: влажность "+ВыборкаКонтрагент.КоличествоРасход;

ИтогПодработкиДень = ИтогПодработкиДень+ВыборкаКонтрагент.КоличествоРасход;

Иначе

//Анализы рассчитаем % влажности и сорности, исходя из данных центнеро-процентов
Если ВыборкаКонтрагент.КоличествоПриход>0 Тогда//Приход
ОбластьДетальныхЗаписей.Параметры.Влажность = Окр(ВыборкаКонтрагент.ВлажностьПриход/ВыборкаКонтрагент.КоличествоПриход*100,2);
ОбластьДетальныхЗаписей.Параметры.Сорность = Окр(ВыборкаКонтрагент.СорностьПриход/ВыборкаКонтрагент.КоличествоПриход*100,2);
Иначе//Расход
ОбластьДетальныхЗаписей.Параметры.Влажность = Окр(ВыборкаКонтрагент.ВлажностьРасход/ВыборкаКонтрагент.КоличествоРасход*100,2);
ОбластьДетальныхЗаписей.Параметры.Сорность = Окр(ВыборкаКонтрагент.СорностьРасход/ВыборкаКонтрагент.КоличествоРасход*100,2);
КонецЕсли;

//Масса
ОбластьДетальныхЗаписей.Параметры.КоличествоРасход = ВыборкаКонтрагент.КоличествоРасход;
ОбластьДетальныхЗаписей.Параметры.КоличествоПриход = ВыборкаКонтрагент.КоличествоПриход;

//ЦП
ОбластьДетальныхЗаписей.Параметры.ПриходВлажностьЦП = ВыборкаКонтрагент.ВлажностьПриход;
ОбластьДетальныхЗаписей.Параметры.РасходВлажностьЦП = ВыборкаКонтрагент.ВлажностьРасход;
ОбластьДетальныхЗаписей.Параметры.ПриходСорностьЦП = ВыборкаКонтрагент.СорностьПриход;
ОбластьДетальныхЗаписей.Параметры.РасходСорностьЦП = ВыборкаКонтрагент.СорностьРасход;

//Нач. остаток
НачОстаток = НачОстаток + ВыборкаКонтрагент.КоличествоПриход - ВыборкаКонтрагент.КоличествоРасход;
//заполним комменты по операциям или очищаем прошлое значение подработки
Если (ВыборкаКонтрагент.КодОперации = Перечисления.КодыОпераций.СнижениеСорности)Тогда
ОбластьДетальныхЗаписей.Параметры.Подработка = "подр: сорность";
ИначеЕсли (ВыборкаКонтрагент.КодОперации = Перечисления.КодыОпераций.Аспирация) Тогда
ОбластьДетальныхЗаписей.Параметры.Подработка = "подр: аспирация";
Иначе
ОбластьДетальныхЗаписей.Параметры.Подработка = "";
КонецЕсли;
КонецЕсли;

//Нач. остаток
ОбластьДетальныхЗаписей.Параметры.Остаток = НачОстаток;

ТабДок.Вывести(ОбластьДетальныхЗаписей);

//Флаг вывода итогов за день
фл=1


КонецЦикла;
Если фл=1 Тогда
ОбластьДетальныхЗаписейДень.Параметры.ИтогоЗаДень = "ИТОГО за "+Формат(ВыборкаПериод.регистратор,"ДФ=dd.MM.yy");

//итог количество день
ОбластьДетальныхЗаписейДень.Параметры.КоличествоПриход = ВыборкаПериод.КоличествоПриход;
ОбластьДетальныхЗаписейДень.Параметры.КоличествоРасход = ВыборкаПериод.КоличествоРасход-ИтогПодработкиДень;//минус подработка по влажности
..........



как мне флаг(красным) заключить в оператор "ЕСЛИ"?

Yura063

Gunner, вам уже сказал как!

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



ну и так далее!
Помогли, отблагодари!

aleks-lit

Цитата: Yura063 от 19 сен 2013, 10:17
Gunner, вам уже сказал как!

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



ну и так далее!

датакогда по регистру дата берется из поля НачДата с точностью до часа
щас мне надо

https://forum-baza.ru/index.php?topic=31758.new#new

Теги:

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

Рейтинг@Mail.ru

Поиск