Отчет по рознице помогите

1. led 28 28.12.06 19:10 Сейчас в теме
сделал отчет. Проблема в накладной расходной например 3 товара, у меня в отчете появляется только первый товар, суммы, кол-во за три товара, в чем проблема помогите. ЛИСТИНГ:

//*******************************************
// Процедура генерации запроса Сформировать.
//
Процедура Сформировать()
Перем Запрос, ТекстЗапроса, Таб;
//Создание объекта типа Запрос
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Период с ВыбНачПериода по ВыбКонПериода;
|ОбрабатыватьДокументы все;
|Обрабатывать НеПомеченныеНаУдаление;
|РеализацияРозница = Документ.РеализацияРозница.ТекущийДокумент;
|Контрагент = Документ.РеализацияРозница.Контрагент;
|Скидка = Документ.РеализацияРозница.Скидка;
|ВидОперации = Документ.РеализацияРозница.ВидОперации;
|Цена = Документ.РеализацияРозница.Цена;
|Сумма = Документ.РеализацияРозница.Сумма;
|ВремяДок = Документ.РеализацияРозница.ВремяДок;
|Количество = Документ.РеализацияРозница.Количество;
|Наименование = Документ.РеализацияРозница.Номенклатура.Наименование;
|Артикул = Документ.РеализацияРозница.Номенклатура.Артикул;
|Функция КоличествоСумма = Сумма(Количество);
|Функция ЦенаСумма = Сумма(Цена);
|Функция СуммаСумма = Сумма(Сумма);
|Группировка РеализацияРозница упорядочить по РеализацияРозница.ДатаДок, РеализацияРозница.ВидОперации, РеализацияРозница.Контрагент, РеализацияРозница.Номенклатура.Наименование, РеализацияРозница.Скидка, РеализацияРозница.Номенклатура.Артикул, КоличествоСумма, ЦенаСумма, СуммаСумма;
|"//}}ЗАПРОС
;
// Если ошибка в запросе, то выход из процедуры
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;

// Подготовка к заполнению выходных форм данными запроса
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Сформировать");
// Заполнение полей "Заголовок"
Таб.ВывестиСекцию("Заголовок");
Состояние("Заполнение выходной таблицы...");
Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
Пока Запрос.Группировка(1) = 1 Цикл
// Заполнение полей РеализацияРозница
Таб.ВывестиСекцию("РеализацияРозница");
КонецЦикла;
// Заполнение полей "Итого"
Таб.ВывестиСекцию("Итого");
// Вывод заполненной формы
Таб.ТолькоПросмотр(1);
Таб.Показать("Сформировать", "");
КонецПроцедуры
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. led 28 28.12.06 20:04 Сейчас в теме
Что - то опять не то делаю.Гляньте плиз...
//*******************************************
// Процедура генерации запроса Сформировать.
//
Процедура Сформировать()
Перем Запрос, ТекстЗапроса, Таб;
//Создание объекта типа Запрос
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Период с ВыбНачПериода по ВыбКонПериода;
|ОбрабатыватьДокументы все;
|Обрабатывать НеПомеченныеНаУдаление;
|РеализацияРозница = Документ.РеализацияРозница.ТекущийДокумент;
|Контрагент = Документ.РеализацияРозница.Контрагент;
|Скидка = Документ.РеализацияРозница.Скидка;
|ВидОперации = Документ.РеализацияРозница.ВидОперации;
|Цена = Документ.РеализацияРозница.Цена;
|Сумма = Документ.РеализацияРозница.Сумма;
|ВремяДок = Документ.РеализацияРозница.ВремяДок;
// добавил строку номенкул
|Номенклатура = Документ.РеализацияРозница.Номенклатура;
|Количество = Документ.РеализацияРозница.Количество;
|Наименование = Документ.РеализацияРозница.Номенклатура.Наименование;
|Артикул = Документ.РеализацияРозница.Номенклатура.Артикул;
|Функция КоличествоСумма = Сумма(Количество);
|Функция ЦенаСумма = Сумма(Цена);
|Функция СуммаСумма = Сумма(Сумма);
// |Группировка РеализацияРозница.Номенклатура упорядочить по РеализацияРозница.Номенклатура.Наименование;
|Группировка РеализацияРозница упорядочить по РеализацияРозница.ДатаДок, РеализацияРозница.ВидОперации, РеализацияРозница.Контрагент, РеализацияРозница.Номенклатура.Наименование, РеализацияРозница.Скидка, РеализацияРозница.Номенклатура.Артикул, КоличествоСумма, ЦенаСумма, СуммаСумма;
|Группировка Номенклатура упорядочить по Номенклатура.Наименование;
|"//}}ЗАПРОС
;
// Если ошибка в запросе, то выход из процедуры
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;

// Подготовка к заполнению выходных форм данными запроса
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Сформировать");
// Заполнение полей "Заголовок"
Таб.ВывестиСекцию("Заголовок");
Состояние("Заполнение выходной таблицы...");
Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
Пока Запрос.Группировка(1) = 1 Цикл
// Пока Запрос.Группировка(2) = 1 Цикл
// Заполнение полей РеализацияРозница
Таб.ВывестиСекцию("РеализацияРозница");
КонецЦикла;
// добавил
Пока Запрос.Группировка(2) = 1 Цикл
Таб.ВывестиСекцию("Номенклатура");
КонецЦикла;
// Заполнение полей "Итого"
Таб.ВывестиСекцию("Итого");
// Вывод заполненной формы
Таб.ТолькоПросмотр(1);
Таб.Показать("Сформировать", "");
КонецПроцедуры
5. vladko 29.12.06 07:51 Сейчас в теме
Мне кажется, что и такое подробное упорядочивание ни к чему.... :-/
И ещё, здесь правильно сказали, что нужна группировка по документу и по строкам документа
Результаты обходить надо через
Пока Запрос.Группировка(1) = 1 Цикл
Пока Запрос.Группировка(2) = 1 Цикл
...
КонецЦикла;
КонецЦикла;
6. led 28 29.12.06 21:11 Сейчас в теме
Спасибо за советы сейчас выводит номенклатуру, НО ...
Номенкулатура выводится:итог по фирме товара|название группы товара|а затем только сам товар, первые две строчки лишние, одна из них добавляется с помощью второй групировки

//*******************************************
// Процедура генерации запроса Сформировать.
//
Процедура Сформировать()
Перем Запрос, ТекстЗапроса, Таб;
//Создание объекта типа Запрос
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Период с ВыбНачПериода по ВыбКонПериода;
|РеализацияРозница = Документ.РеализацияРозница.ТекущийДокумент;
|Контрагент = Документ.РеализацияРозница.Контрагент;
|Процент = Документ.РеализацияРозница.Скидка.Процент;
|Номенклатура = Документ.РеализацияРозница.Номенклатура;
|Количество = Документ.РеализацияРозница.Количество;
|Цена = Документ.РеализацияРозница.Цена;
|Сумма = Документ.РеализацияРозница.Сумма;
|Функция КоличествоСумма = Сумма(Количество);
|Функция СуммаСумма = Сумма(Сумма);
|Группировка РеализацияРозница упорядочить по РеализацияРозница.ДатаДок, РеализацияРозница.Контрагент, РеализацияРозница.Скидка;
|Группировка Номенклатура упорядочить по Номенклатура.Наименование, Номенклатура.Артикул, КоличествоСумма, СуммаСумма;
|"//}}ЗАПРОС
;
// Если ошибка в запросе, то выход из процедуры
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;

// Подготовка к заполнению выходных форм данными запроса
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Сформировать");
// Заполнение полей "Заголовок"
Таб.ВывестиСекцию("Заголовок");
Состояние("Заполнение выходной таблицы...");
Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
Пока Запрос.Группировка(1) = 1 Цикл
// Заполнение полей РеализацияРозница
Таб.ВывестиСекцию("РеализацияРозница");
Пока Запрос.Группировка(2) = 1 Цикл
// Заполнение полей Номенклатура
Таб.ВывестиСекцию("Номенклатура");
КонецЦикла;
КонецЦикла;
// Заполнение полей "Итого"
Таб.ВывестиСекцию("Итого");
// Вывод заполненной формы
Таб.ТолькоПросмотр(1);
Таб.Показать("Сформировать", "");
КонецПроцедуры
10. led 28 03.01.07 12:47 Сейчас в теме
Вообщем пробовал сделать по регистрам Документ (Document) - позволяет детализацию до документа;
СтрокаДокумента (DocumentLine) - позволяет детализацию до строки документа; не получаеться у меня ...(немогу понять как переменные описать, и как таблицу линовать?) Сделал я таки по своему всё выводиться ОК(одну лишнюю строку в таблице просто убрал :)). Теперь надо добавить Возврат от покупателя, вроде бы сделал всё как и раньше, ощибок на синтаксис нет, а на выводе не отображается по Возврату НИЧЕГО, в чем причина не могу понять (в таблице секции прописал)? Листинг:
//*******************************************
// Процедура генерации запроса Сформировать.
//
Процедура Сформировать()
Перем Запрос, ТекстЗапроса, Таб;
//Создание объекта типа Запрос
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Период с ВыбНачПериода по ВыбКонПериода;
|Количество1 = Регистр.ОстаткиТМЦ.Количество;
|ЦенаПрод = Регистр.ОстаткиТМЦ.ЦенаПрод;
|Функция КоличествоНачОст = НачОст(Количество1);
|Функция КоличествоКонОст = КонОст(Количество1);
|Функция ЦенаПродСумма = Сумма(ЦенаПрод);
|РеализацияРозница = Документ.РеализацияРозница.ТекущийДокумент;
|Контрагент = Документ.РеализацияРозница.Контрагент;
|Процент = Документ.РеализацияРозница.Скидка.Процент;
|Номенклатура = Документ.РеализацияРозница.Номенклатура;
|Количество = Документ.РеализацияРозница.Количество;
|Цена = Документ.РеализацияРозница.Цена;
|Сумма = Документ.РеализацияРозница.Сумма;
// возврат
|ВозвратОтПокупателя = Документ.ВозвратОтПокупателя.ТекущийДокумент;
|КонтрагентВ = Документ.ВозвратОтПокупателя.Контрагент;
|ПроцентВ = Документ.ВозвратОтПокупателя.Скидка.Процент;
|НоменклатураВ = Документ.ВозвратОтПокупателя.Номенклатура;
// |АртикулВ = Документ.ВозвратОтПокупателя.Номенклатура.Артикул;
|КоличествоВ = Документ.ВозвратОтПокупателя.Количество;
|ЦенаВ = Документ.ВозвратОтПокупателя.Цена;
|СуммаВ = Документ.ВозвратОтПокупателя.Сумма;
|Функция КоличествоВСумма = Сумма(КоличествоВ);
|Функция СуммаВСумма = Сумма(СуммаВ);
|Функция ЦенаВСумма = Сумма(ЦенаВ);

// конец возврата
|Функция ЦенаСумма = Сумма(Цена);
|Функция КоличествоСумма = Сумма(Количество);
|Функция СуммаСумма = Сумма(Сумма);
|Группировка РеализацияРозница без групп упорядочить по РеализацияРозница.ДатаДок, РеализацияРозница.Контрагент, РеализацияРозница.Скидка,ЦенаСумма;
|Группировка Номенклатура без групп упорядочить по Номенклатура.Наименование, Номенклатура.Артикул,КоличествоСумма, СуммаСумма;
// возврат
|Группировка ВозвратОтПокупателя упорядочить по ВозвратОтПокупателя.ДатаДок, ВозвратОтПокупателя.Контрагент, ВозвратОтПокупателя.Скидка без групп;
|Группировка НоменклатураВ упорядочить по НоменклатураВ.Наименование, НоменклатураВ.Артикул, КоличествоВСумма, ЦенаВСумма, СуммаВСумма без групп;
// конец группировки возврата
|"//}}ЗАПРОС
;
// Если ошибка в запросе, то выход из процедуры
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;

// Подготовка к заполнению выходных форм данными запроса
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Сформировать");
// Заполнение полей "Заголовок"
Таб.ВывестиСекцию("Заголовок");
Состояние("Заполнение выходной таблицы...");
Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
Пока Запрос.Группировка(1) = 1 Цикл
// Пока Запрос.Группировка(2) = 1 Цикл
// Заполнение полей РеализацияРозница
Таб.ВывестиСекцию("РеализацияРозница");
Пока Запрос.Группировка(2) = 1 Цикл
// Заполнение полей Номенклатура
Таб.ВывестиСекцию("Номенклатура");

// возврат
Пока Запрос.Группировка(3) = 1 Цикл
Таб.ВывестиСекцию("ВозвратОтПокупателя");
Пока Запрос.Группировка(4) = 1 Цикл
Таб.ВывестиСекцию("НоменклатураВ");
КонецЦикла;
КонецЦикла;
// возврат
КонецЦикла;
КонецЦикла;
// Заполнение полей "Итого"
Таб.ВывестиСекцию("Итого");
Таб.ВывестиСекцию("Итого1");
// Вывод заполненной формы
Таб.ТолькоПросмотр(1);
Таб.Показать("Сформировать", "");
КонецПроцедуры

12. led 28 04.01.07 10:57 Сейчас в теме
Попробовал воспользоваься запросом выше, любезно предоставленный Poppy. Задача такова: сделать отчет продаж в котором столбцы
ДатаДок/ВремяДок/ВидОперации/Контрагент/Артикул/Номенклатура­/Цена/Скидка/Кол-во/Сумма и итоги.(ВидОперации : РелизацияРозница и ВозвратОтПокупателя. Приход не включать.)

После редактирования выше запроса что неполучилось:
1)время документа неверное показывает (00:00:19)у всех одинаковое!
2)ВидОперации по продаже показывает, по ВозвратуОтПокупателя пустая строка?
3)Одна лишняя строка остается кот. показывает итоги по документу (получается группировкой по документу).
4)Надо кол-во и Сумму по возвратуОтПокупателя как-то со знаком минус сделать, а то Итоги неверные получаются.
Листинг:

Процедура Сформировать()
Перем Запрос, ТекстЗапроса, Таб;
//Создание объекта типа Запрос
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Период с ВыбНачПериода по ВыбКонПериода;
|Обрабатывать НеПомеченныеНаУдаление;
// выводятся остатки
|Количество1 = Регистр.ОстаткиТМЦ.Количество;
|Функция КоличествоНачОст = НачОст(Количество1);
|Функция КоличествоКонОст = КонОст(Количество1);
//
|ТекущийДокумент = Документ.РеализацияРозница.ТекущийДокумент, Документ.ВозвратОтПокупателя.ТекущийДокумент;
|Номенклатура = Документ.РеализацияРозница.Номенклатура, Документ.ВозвратОтПокупателя.Номенклатура;
|Количество = Документ.РеализацияРозница.Количество,Документ.ВозвратОтПокупателя.Количество;
|Цена = Документ.РеализацияРозница.Цена,Документ.ВозвратОтПокупателя.Цена;
|Сумма = Документ.РеализацияРозница.Сумма,Документ.ВозвратОтПокупателя.Сумма;
//|КоличествоВ = Документ.ВозвратОтПокупателя.Количество;
//|ЦенаВ = Документ.ВозвратОтПокупателя.Цена;
//|СуммаВ = Документ.ВозвратОтПокупателя.Сумма;
//|Функция КоличествоВСумма = Сумма(КоличествоВ);
//|Функция СуммаВСумма = Сумма(СуммаВ);
//|Функция ЦенаВСумма = Сумма(ЦенаВ);
|Функция ЦенаСумма = Сумма(Цена);
|Функция КоличествоСумма = Сумма(Количество);
|Функция СуммаСумма = Сумма(Сумма);
|Группировка ТекущийДокумент упорядочить по ТекущийДокумент.ДатаДок,ТекущийДокумент.ВремяДок,ТекущийДокумент.КодОперации, ТекущийДокумент.Контрагент.Наименование, ТекущийДокумент.Скидка;
|Группировка Номенклатура упорядочить по Номенклатура.Артикул,Номенклатура.Наименование без групп;
|"//}}ЗАПРОС
;
// Если ошибка в запросе, то выход из процедуры
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;

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




16. vladko 06.01.07 17:35 Сейчас в теме
led Написал:
-------------------------------------------------------
> После редактирования выше запроса что
> неполучилось:
> 1)время документа неверное показывает (00:00:19)у
> всех одинаковое!
Должно быть правильное :-/ Или попробуй воспользоваться методом для документа ПолучитьВремя();

> 2)ВидОперации по продаже показывает, по
> ВозвратуОтПокупателя пустая строка?
Посмотри в отладчике значение у документа реквизита КодОперации при возврате.

> 3)Одна лишняя строка остается кот. показывает
> итоги по документу (получается группировкой по
> документу).
Ну так не выводи её раз лишняя и всё, т.е. убери строку
Таб.ВывестиСекцию("ТекущийДокумент");
или выводи её только при первом обходе этой группировки(установив счётчик обхода)

> 4)Надо кол-во и Сумму по возвратуОтПокупателя
> как-то со знаком минус сделать, а то Итоги
> неверные получаются.
Если перебираешь суммы по документам реализации и возврата, в модуле так и пропиши:

Сумма=Запрос.СуммаСумма;
Если Запрос.ТекущийДокумент.Вид()="ВозвратОтПокупателя" тогда
Сумма=-Запрос.СуммаСумма ;
КонецЕсли;
И в таблице исправь Запрос.СуммаСумма на Сумма

А итоги считай уже вручную,
СуммаИтого=СуммаИтого+Сумма;
т.е.
СуммаИтого=0;
Пока Запрос.Группировка(1) = 1 Цикл
Пока Запрос.Группировка(2) = 1 Цикл
Сумма=Запрос.СуммаСумма;
Если Запрос.ТекущийДокумент.Вид()="ВозвратОтПокупателя" тогда
Сумма=-Запрос.СуммаСумма ;
КонецЕсли;
СуммаИтого=СуммаИтого+Сумма;
Таб.ВывестиСекцию("Номенклатура");
КонецЦикла;
КонецЦикла;

> // выводятся остатки
> |Количество1 = Регистр.ОстаткиТМЦ.Количество;
> |Функция КоличествоНачОст = НачОст(Количество1);
> |Функция КоличествоКонОст = КонОст(Количество1);
А это тебе зачем?
20. poppy 08.01.07 15:22 Сейчас в теме
Vladko Написал:
> > 4)Надо кол-во и Сумму по
> возвратуОтПокупателя
> > как-то со знаком минус сделать, а то Итоги
> > неверные получаются.
> Если перебираешь суммы по документам реализации и
> возврата, в модуле так и пропиши:
>
> А итоги считай уже вручную,
> СуммаИтого=СуммаИтого+Сумма;
> т.е.
> СуммаИтого=0;
> Пока Запрос.Группировка(1) = 1 Цикл
> Пока Запрос.Группировка(2) = 1 Цикл
> Сумма=Запрос.СуммаСумма;
> Если
> Запрос.ТекущийДокумент.Вид()="ВозвратОтПокупателя"
> тогда
> Сумма=-Запрос.СуммаСумма ;
> КонецЕсли;
> СуммаИтого=СуммаИтого+Сумма;
> Таб.ВывестиСекцию("Номенклатура");
> КонецЦикла;
> КонецЦикла;
>
Зачем так сложно? Ведь в первоначальном запросе было две переменных: СуммаСумма - продажи, СуммаВСумма - возвраты.

Соответсвенно СуммаИтого = Запрос.СуммаСумма - Запрос.СуммаВСумма
2. poppy 28.12.06 19:25 Сейчас в теме
У тебя группировка только по документу, поэтому ты получаешь одну строку на документ.

Добавь группировку по номенклатуре и будет тебе счастье.
4. CheBurator 3122 28.12.06 22:48 Сейчас в теме
Группировка Документ;
Группировка СтрокаДокумента;
..
читаем ЖКК
..
особенно втыкнуло
|Функция ЦенаСумма = Сумма(Цена);
..
юзай запрос по регистру - и будет счастье.
и кардинальный вопрос: какой смысл брать в выборку и проведенные и непроведенные доки? галиматья получится..
7. CheBurator 3122 29.12.06 22:20 Сейчас в теме
Группировка <?> Упорядочить по ;
Синтаксис:
Группировка <ИмяГруппировки>|<ПредопредГруппировка> [Упорядочить по <КонкретизацГруппировки>, ...][Без Упорядочивания][Без Групп][Все [ВошедшиеВЗапрос]];
Англоязычный синоним:
Group <ИмяГруппировки>|<ПредопредГруппировка> [Order By КонкретизацГруппировки, ...][Without Groups][All [IncludedInQuery]];
Назначение:
Установить порядок выборки информации.
Параметры:
<ИмяГруппировки> - имя внутренней переменной, задающей группировку;
<ПредопредГруппировка> - ключевое слово одной из встроенных группировок;
<КонкретизацГруппировки> - конкретизация переменной <ИмяГруппировки>, задающая порядок групп.
Ключевые слова:
Упорядочить по - параметры, следующие за данным ключевым словом, определяют упорядочивание строк в группировке.
Без Упорядочивания - необязательное добавочное ключевое слово, которое преследует цель уменьшения времени формирования запроса, при условии, что ни упорядочивание, ни значения упорядочивания при использовании данного запроса не нужны.
!!!! внимание !!!!
Без Групп - группы справочника не выводятся в запрос (для группировки по справочнику);
!!!! конец вниманию !!!
Все - в запрос выводятся все значения, и нулевые тоже (используется для группировок по справочникам и временных группировок).
ВошедшиеВЗапрос - уточняет предыдущее ключевое слово 'Все'. Использование данного слова подразумевает, что в каждую строку запроса будут включены значения данных (в том числе нулевые), для которых есть ненулевое значение хотя бы в одной строке запроса.
Замечание:
Предопределенные группировки:
Документ (Document) - позволяет детализацию до документа;
СтрокаДокумента (DocumentLine) - позволяет детализацию до строки документа;
ПериодЖурнала (JournalPeriod) - группировка по времени ввода записи журнала расчетов или по времени ее действия.
Группировки по дате:
День (Day);
Неделя (Week);
Месяц (Month);
Квартал (Quarter);
Год (Year).
Подробнее см. в документации, глава ''Язык Генерации Запросов''
8. CheBurator 3122 29.12.06 22:22 Сейчас в теме
вопрос: а откуда у тебя в документе в качестве номенклатуры используется группа?
9. vladko 02.01.07 14:36 Сейчас в теме
led:
|Группировка Номенклатура упорядочить по Номенклатура.Наименование, Номенклатура.Артикул, КоличествоСумма, СуммаСумма БЕЗ ГРУПП;
тогда и не будут выводиться группы номенклатуры
Сhe Burashka:
>вопрос: а откуда у тебя в документе в качестве номенклатуры
>используется группа?
У него и не используются группы, ведь если не сказать в запросе, что без групп, то всегда группы номенклатуры будут выводиться :-/
11. poppy 03.01.07 16:36 Сейчас в теме
О ужас...

Попробуй такой текст запроса:

Код
ТекстЗапроса = 
"//{{ЗАПРОС(Сформировать) 
|Период с ВыбНачПериода по ВыбКонПериода; 
|ТекущийДокумент = Документ.РеализацияРозница.ТекущийДокумент, Документ.ВозвратОтПокупателя.ТекущийДокумент; 
|Номенклатура = Документ.РеализацияРозница.Номенклатура, Документ.ВозвратОтПокупателя.Номенклатура; 
|Количество = Документ.РеализацияРозница.Количество; 
|Цена = Документ.РеализацияРозница.Цена; 
|Сумма = Документ.РеализацияРозница.Сумма; 
|КоличествоВ = Документ.ВозвратОтПокупателя.Количество; 
|ЦенаВ = Документ.ВозвратОтПокупателя.Цена; 
|СуммаВ = Документ.ВозвратОтПокупателя.Сумма; 
|Функция КоличествоВСумма = Сумма(КоличествоВ); 
|Функция СуммаВСумма = Сумма(СуммаВ); 
|Функция ЦенаВСумма = Сумма(ЦенаВ); 
|Функция ЦенаСумма = Сумма(Цена); 
|Функция КоличествоСумма = Сумма(Количество); 
|Функция СуммаСумма = Сумма(Сумма); 
|Группировка ТекущийДокумент; 
|Группировка Номенклатура без групп; 
|"//}}ЗАПРОС 
;
Показать полностью


Хотелось бы получить общую постановку задачу. ИМХО код очень кривой и не понятно в какую сторону его править.
13. O-Planet 6434 04.01.07 16:38 Сейчас в теме
Ну, блин! У меня вот не хватает наглости ТАК писать программы, чтобы выкладывать периодически код по 100 строк и просить разобраться. Может, стоило бы? Только у меня коды обычно от 500 строк :)
14. led 28 04.01.07 17:50 Сейчас в теме
Во первых 60 строк, во вторых я в 1с первый раз в жизни залез 22 декабря 06г. пытался сделать отчет с помощью конструктора отчетов, не получилось, я залез в интернет начал искать что-нибудь похожее, но не нашел. Тогда я пошел к знакомому он работает администратором по 1с, я объяснил ему задачу,он сказал через два дня будет готово, наступило 28 декабря, звоню ему он говорит что он сделал, но не доконца и больше не сможет мне помочь, тогда я понял что помощи ждать не от кого и вечером я наткнулся на этот форум и решил написать от безнадёги( см. проблемы в первом моем послании), я думал врят ли кто ответит, НО нашлись добрые люди, спасибо ИМ. Да пишу ТАК коряво, но пытаюсь Сам что-то понять, чтобы потом было не коряво. В университете изучал Фортран, бейсик, Ассемблер. А с базами данных никогда не сталкивался. Но я всё равно сделаю отчёт, чисто из-за принципа. А код отчета для профи простятский ИМХО, и грех не помочь начинающему. А Форум для того и создан чтобы люди общались и делились своими проблемами и успехами.
15. poppy 05.01.07 01:11 Сейчас в теме
led Написал:
-------------------------------------------------------
> Во первых 60 строк,

Да..., led, посмешил.

2O-Planet. Спасибо за поддержку.
17. CheBurator 3122 06.01.07 17:48 Сейчас в теме
подход получения итогов по документам - неверный.
будут траблы. потом.. попозже..
18. led 28 07.01.07 14:02 Сейчас в теме
Большое Спасибо Vladko за советы! Последнюю проблемму решил итоги работают, вопреки опасениям Che BuraShka, проверял надежно. Проблему 3) допер сам, просто не вывожу :).
Что осталось:
1)Проблема с правильным временем. Группировка по ТекущийДокумент.ВремяДок выводит какое-то странное время 00:00:19.
Метод ПолучитьВремя(), попытки его вставить (как пример из книги по описанию языка) одна ругань. Куда его вставлять?
2) КодОперации если пишешь первым РеализацияРозница,то
>|ТекущийДокумент = Документ.РеализацияРозница.ТекущийДокумент, Документ.ВозвратОтПокупателя.ТекущийДокумент;
Код Операции выводится только по РеализацияРозница, по возврату пустая строка
Если пишешь первым ВозвратОтПокупателя, то
>|ТекущийДокумент = Документ.ВозвратОтПокупателя.ТекущийДокумент, Документ.РеализацияРозница.ТекущийДокумент;
Код Операции выводится только по ВозвратОтПокупателя, по РеализацияРозница пустая строка.
Другие способы вывода я не нашел...
Посоветуйте что-нибудь...

// выводятся остатки
> |Количество1 = Регистр.ОстаткиТМЦ.Количество;
> |Функция КоличествоНачОст = НачОст(Количество1);
> |Функция КоличествоКонОст = КонОст(Количество1);
>А это тебе зачем?
А это я вывожу отдельно остатки товара на складе на начПериода и на КонецПериода в таблицу.

19. O-Planet 6434 07.01.07 20:36 Сейчас в теме
> Проблема с правильным временем. Группировка по ТекущийДокумент.ВремяДок
Я использую группировку по позиции документа.
21. vladko 08.01.07 15:38 Сейчас в теме
led Написал:
-------------------------------------------------------
> Большое Спасибо Vladko за советы! Последнюю
> проблемму решил итоги работают, вопреки опасениям
> Che BuraShka, проверял надежно. Проблему 3) допер
> сам, просто не вывожу .
> Что осталось:
> 1)Проблема с правильным временем. Группировка по
> ТекущийДокумент.ВремяДок выводит какое-то странное
> время 00:00:19.
> Метод ПолучитьВремя(), попытки его вставить (как
> пример из книги по описанию языка) одна ругань.
> Куда его вставлять?
Попробуй:
Док=СоздатьОбъект("Документ");
Часы=0;Минуты=0;Сек=0;
Док.НайтиДокумент(Запрос.ТекущийДокумент);//не обязательно
Док.ПолучитьВремя(Часы,Минуты,Сек);
Сообщить("У "+Док.ТекущийДокумент()+" время "+Часы+":"+Минуты+":"+Сек); //для проверки срабатывания метода
> 2) КодОперации если пишешь первым
...
> Другие способы вывода я не нашел...
> Посоветуйте что-нибудь...
Попробуй Код операции вывести как:
Запрос.ТекущийДокумент.КодОперации;
22. poppy 08.01.07 17:34 Сейчас в теме
Vladko Написал:
-------------------------------------------------------
> Попробуй:
> Док=СоздатьОбъект("Документ");
> Часы=0;Минуты=0;Сек=0;
> Док.НайтиДокумент(Запрос.ТекущийДокумент);//не
> обязательно
> Док.ПолучитьВремя(Часы,Минуты,Сек);
> Сообщить("У "+Док.ТекущийДокумент()+" время
> "+Часы+":"+Минуты+":"+Сек); //для проверки
> срабатывания метода

Код
ВремяДок = Запрос.ТекущийДокумент.ПолучитьВремя();
Показать полностью


Не получится?
23. poppy 08.01.07 18:32 Сейчас в теме
led Написал:
-------------------------------------------------------
> // выводятся остатки
> > |Количество1 = Регистр.ОстаткиТМЦ.Количество;
> > |Функция КоличествоНачОст = НачОст(Количество1);
> > |Функция КоличествоКонОст = КонОст(Количество1);
> >А это тебе зачем?
> А это я вывожу отдельно остатки товара на складе на начПериода и на КонецПериода в таблицу.
>

Из-за этой части текста запроса у тебя проблема #3. Ты, led, вероятно взрослый чел, раз там мужественно преодолеваешь сложности, которые сам себе создаешь.

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


24. led 28 08.01.07 18:58 Сейчас в теме
УУУУРРРРААААА заработало... :) ВСЕМ СПАСИБО ОГРОМНОЕ.
А теперь цифры...
Первое место получает Poppy!!! 6 сообщений и ПЕРВЫЙ откликнулся на помощь(объяктивная составляющая), 4 из них мне по настоящему помогли, КПД считаем в уме :) (субъективная сост-щая).
Второе место VLADKO 4 сообщения, 2 (субъективно) из них очень мне помогли СПАСИБО!
Третье Che Burachka 4 сообщения, молодец!! не бросишь друга в беде, одно из них мне здорово помогло(субективная).
Четвертое O-Planet, 2 сообщения спасибо, судя по имени Програмист планетарного масштаба, очень краток и по делу.....(субъективно)
Считаю Заседание , т.е. тема закрыта. Большое спасибо ВСЕМ :)
25. O-Planet 6434 09.01.07 02:38 Сейчас в теме
Ё!!! А подарки где? Выложил бы прикрепленным файлом то, что получилось, хоть посмотрел бы кто...
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот