|
СКД | ☑ | ||
---|---|---|---|---|
0
DeMi4
30.11.11
✎
11:24
|
Можно ли данный запрос реализовать в СКД
Запрос=СоздатьОбъект("Запрос"); ТекстЗапроса="//{{ЗАПРОС(ОстаткиТоваров) |ПЕРИОД С ДатаНачала По ДатаКонец; |Товар=Регистр.ТоварыКассы.ТоварКассы; |ТипДвижения=Регистр.ТоварыКассы.ТипДвиженияТовара; |ОС=Регистр.ТоварыКассы.ОС; |Группировка ОС Все ВошедшиеВЗапрос; |Группировка ТипДвижения; |Сум=Регистр.ТоварыКассы.Сумма; |Функция ПриходСум=Приход(Сум); |Функция РасходСум=Расход(Сум); |Функция Нач=НачОст(Сум); |Функция Кон=КонОст(Сум); |Условие(Товар=ВыбТовар); |";//}}ЗАПРОС Если Запрос.Выполнить(ТекстЗапроса)=0 тогда Возврат; КонецЕсли; Таб=Создатьобъект("Таблица"); Таб.ИсходнаяТаблица("Таблица"); Если СРазбивкой=0 Тогда заголовок="сводный по узлу с "+ДатаНачала+" по "+ДатаКонец; Иначе заголовок="с разбивкой по ОС с "+ДатаНачала+" по "+ДатаКонец; КонецЕсли; Таб.ВывестиСекцию("Шапка"); // для итогов по типам движений спИтого=СоздатьОбъект("СписокЗначений"); Для Инд=1 По 6 Цикл спИтого.ДобавитьЗначение(0); КонецЦикла; // основная часть Пока Запрос.Группировка("ОС")=1 Цикл // цикл по ОС ос_наим=Запрос.ОС.Наименование; н_ост=Запрос.Нач; спИтого.УстановитьЗначение(1,спИтого.ПолучитьЗначение(1)+н_ост); к_ост=Запрос.Кон; спИтого.УстановитьЗначение(6,спИтого.ПолучитьЗначение(6)+к_ост); пост=0; прод=0; возв=0; спис=0; // типы движения Пока Запрос.Группировка("ТипДвижения")<>0 Цикл Если Запрос.ТипДвижения=Перечисление.ТипДвиженияТовара.Поступило Тогда пост=Запрос.ПриходСум; спИтого.УстановитьЗначение(2,спИтого.ПолучитьЗначение(2)+пост); КонецЕсли; Если Запрос.ТипДвижения=Перечисление.ТипДвиженияТовара.Продано Тогда прод=Запрос.РасходСум; спИтого.УстановитьЗначение(3,спИтого.ПолучитьЗначение(3)+прод); КонецЕсли; Если Запрос.ТипДвижения=Перечисление.ТипДвиженияТовара.Возвращено Тогда возв=Запрос.РасходСум; спИтого.УстановитьЗначение(4,спИтого.ПолучитьЗначение(4)+возв); КонецЕсли; Если Запрос.ТипДвижения=Перечисление.ТипДвиженияТовара.Списано Тогда спис=Запрос.РасходСум; спИтого.УстановитьЗначение(5,спИтого.ПолучитьЗначение(5)+спис); КонецЕсли; КонецЦикла; // выводим секцию ОС Если СРазбивкой=1 Тогда Таб.ВывестиСекцию("Строка"); КонецЕсли; КонецЦикла; // итог по узлу ос_наим="ПО УЗЛУ В ЦЕЛОМ"; н_ост=спИтого.ПолучитьЗначение(1); пост =спИтого.ПолучитьЗначение(2); прод =спИтого.ПолучитьЗначение(3); возв =спИтого.ПолучитьЗначение(4); спис =спИтого.ПолучитьЗначение(5); к_ост=спИтого.ПолучитьЗначение(6); Таб.ВывестиСекцию("Строка"); Таб.ВывестиСекцию("Подвал"); Таб.ТолькоПросмотр(1); Таб.ПараметрыСтраницы(2); Таб.Опции(0, 0, 5, 0, "ОпцииСтдТов"); Таб.Показать("Отчет по движению товаров."); |
|||
1
Wobland
30.11.11
✎
11:29
|
а почему бы и нет, Ватсон?
|
|||
2
Wobland
30.11.11
✎
11:29
|
Груви, он не умеет давать имена темам!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |