helpf.pro
Регистрация

v7: Отчет

Ermak
26.11.2012 16:02Прочитано: 3895
Добавил в отчет Номенклатура, но почему то выдает только одно значение со справочника Номенклатура, а у меня добавлены два значения. Подскажите, что не так?

Код 1C v 7.x
 //*******************************************
// Процедура генерации запроса Сформировать.
//


Процедура Сформировать()
Перем Запрос, ТекстЗапроса, Таб;
Перем коОс, БкоБ, коБ, Ко, коН;

//Создание объекта типа Запрос

Запрос=СоздатьОбъект("Запрос");
ТекстЗапроса="
|Период с ВыбНачПериода по ВыбКонПериода;
|Количество=Регистр.ОстаткиТМЦ.Количество;
|КоличествоБ=Регистр.ОстаткиТМЦ.КоличествоБ;
|Вес = Регистр.Продажи.Количество;
|ТипСклада = Регистр.ОстаткиТМЦ.Склад.ТипСклада;
|Номенклатура = Регистр.ОстаткиТМЦ.Номенклатура;
|Функция НачОстОс = НачОст(Количество) когда(ТипСклада = Перечисление.ВидыБазХранения.Основная);
|Функция БНачОстБ = НачОст(КоличествоБ) когда(ТипСклада = Перечисление.ВидыБазХранения.Баллоны);
|Функция НачОстБ = НачОст(Количество) когда(ТипСклада = Перечисление.ВидыБазХранения.Баллоны);
|Функция НачОст = НачОст(Количество);
|Функция НачОстН = НачОст(Количество) когда(ТипСклада = Перечисление.ВидыБазХранения.Остатки);

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

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

Пока Запрос.Группировка(1) = 1 Цикл
// Заполнение полей Движение
Таб.ВывестиСекцию("Движение");
Пока Запрос.Группировка(2) = 1 Цикл
// Заполнение полей Контрагент
Если ПустоеЗначение(Запрос.Контрагент) = 0 тогда
Таб.ВывестиСекцию("Контрагент");
КонецЕсли;
КонецЦикла;
КонецЦикла;
Таб.ВывестиСекцию("ОстКон");
// Вывод заполненной формы
Таб.ТолькоПросмотр(1);
Таб.Показать("Сформировать", "");
КонецПроцедуры
Yandex
Возможно, вас также заинтересует
Реклама на портале
Ermak
27.11.2012 10:36Ответ № 1
*03
ivan232
27.11.2012 13:15Ответ № 2
для чего тебе первый запрос? он все равно не выводится(на те же переменные создаешь новый запрос) и группировки в нем нет.
что есть и что должно быть в итоге? не понятен вопрос.
E_Migachev
27.11.2012 13:17Ответ № 3
(0) Ermak, выводит одно где? и где добавлено 2?
Ermak
27.11.2012 14:02Ответ № 4
Добавил в запрос Номенклатуру

Код 1C v 7.x
 |Номенклатура = Регистр.Продажи.Номенклатура;


Чтобы в печатной форме выводила тоже, но в Справочнике Номенклатура у меня два значение, а почему то в печатной форме отчета выводится только одно значение а других нет, почему? *09
E_Migachev
27.11.2012 21:46Ответ № 5
а продали сколько номенклатур? ты же их берешь не из справочника, а из продаж
Ermak
27.11.2012 23:05Ответ № 6
в том то и дело что например, продали Платьев = 1000 , Кофт = 700, сейчас он выводит что продали Платьев = 1000 и общее 1700, а сколько Кофт продали не выдает, вот мне не понятно почему?
ad82117
28.11.2012 10:17Ответ № 7
во-первых, второй запрос назови "запрос2". не надо указывать одноименные переменные. во-вторых, сделай группировку по номенклатуре
Ermak
28.11.2012 11:26Ответ № 8
хорошо, подскажите как
ad82117
28.11.2012 13:35Ответ № 9
что подсказать? как сделать группировку?
во втором запросе добавь
Код 1C v 7.x
 
|Группировка Движение;
|Группировка Контрагент без групп;
|Группировка Номенклатура
|"//}}ЗАПРОС


а вообще что здесь написано в процедуре?
что пытаешься сделать?
зачем вообще первый запрос нужен? если он никуда не выходит и замещается вторым запросом?

и маленький бонус ко всему этому. сразу после "Запрос.выполнить(ТекстЗапроса)" не поленитесь и посмотрите как отработал запрос:
ТЗ = создатьОбъект("ТаблицаЗначений");
Запрос.Выгрузить(ТЗ);
ТЗ.ВыбратьСтроку();

Изменено 28.11.12 13:36:36
ivan232
28.11.2012 14:01Ответ № 10
так же не забудь в цикле прописать обработку данной группировки:
Код 1C v 7.x
 
Пока Запрос.Группировка(3) = 1 Цикл
Таб.ВывестиСекцию("Номенклатура");
КонецЦикла;
ad82117
28.11.2012 14:20Ответ № 11
(10) ivan232, точняк, спасибо, забыл совсем, код у (8) Ermak, какой-то бредовый
Ermak
28.11.2012 15:38Ответ № 12
Добавил группировку вообще не выводит Наименование Номенклатуры, а только значение ее
ad82117
28.11.2012 16:33Ответ № 13
а что показывает ТЗ.выбратьСтроку(), есть там что-нить? запрос переименовали? вообще удалите первый запрос. удалите все функции из запроса. оставьте только выборку. уберите "вес" из второго запроса, т.к. дублируется с "количество"
[c7]
Процедура сформировать()
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса = "
|Период с ВыбНачПериода по ВыбКонПериода;
|Номенклатура = Регистр.Продажи.Номенклатура;
|Движение = Регистр.Продажи.Движение;
|Количество = Регистр.Продажи.Количество;
|КоличествоБ = Регистр.Продажи.КоличествоБ;
|Контрагент = Регистр.Продажи.ТекущийДокумент.РеализацияАвтоцистерны.Контрагент, Регистр.Продажи.ТекущийДокумент.РеализацияБаллоны.Контрагент, Регистр.Продажи.ТекущийДокумент.ПриходОстатков.Контрагент, Регистр.Продажи.ТекущийДокумент.ПоступлениеТМЦ.Контрагент, Регистр.Продажи.ТекущийДокумент.НаАГЗС.Контрагент, Регистр.Продажи.ТекущийДокумент.РеализацияСобственныеНужды.Контрагент;
|ТипСклада = Регистр.Продажи.Склад.ТипСклада;
|Группировка Движение;
|Группировка Контрагент без групп;
|Группировка Номенклатура;";
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;
ТЗ = создатьОбъект("Таблицазначений");
Запрос.Выгрузить(ТЗ);
ТЗ.ВыбратьСтроку();
Конецпроцедуры

что сейчас покажет ТЗ?

ещё есть обработка "RegPrint.ert" - скачайте в инете и посмотрите вообще есть ли что-то и заполнены все графы регистра

и скрины того, что получилось в студию и что хочется увидеть
Изменено 28.11.12 16:34:54
Ermak
28.11.2012 17:07Ответ № 14
У меня выводит в печатную форму
ad82117
28.11.2012 17:10Ответ № 15
как это выводит в печатную форму? а перед печатной формой никакого окна не появляется? "RegPrint.ert" скачали?
Ermak
28.11.2012 17:24Ответ № 16
Значение выдала пустые

На рис-1 title работает без номенклатуры

На рис-2 title то что я хочу увидеть. Залил и Залил2 это номенклатура.
Ermak
28.11.2012 17:38Ответ № 17
Вот сам отчет Скачивать файлы может только зарегистрированный пользователь!
ad82117
28.11.2012 17:41Ответ № 18
а секция "номенклатура" у вас есть на макете? скинте сюда обработку
Ermak
28.11.2012 22:36Ответ № 19
Я же скинул , вот тут (17) Ermak,
ivan232
29.11.2012 08:03Ответ № 20
Попробуй этот отчет Скачивать файлы может только зарегистрированный пользователь!
Изменено 29.11.12 08:05:07
Ermak
29.11.2012 08:43Ответ № 21
Спасибо большое все получилось как надо!!!
Ermak
29.11.2012 08:44Ответ № 22
Вопрос закрыт!
ad82117
29.11.2012 10:43Ответ № 23
(19) Ermak, ну, а в чём проблема-то была? уж не поленитесь, отпишитесь
Ermak
29.11.2012 16:40Ответ № 24
Вы мне скинули отчет он работает как надо, спасибо. Еще один отчет ошибка тоже самая, не выводит только одну номенклатуру, интересно что есть группировка а почему тогда не выводит все значения не понятно. Скачивать файлы может только зарегистрированный пользователь!
ivan232
29.11.2012 18:35Ответ № 25
там одна группировка - "день"
добавь еще одну группировку и вывод группировки на печать.
в чем ошибка, то заключается?
Ermak
29.11.2012 21:59Ответ № 26
Не понимаю какую добавить еще группировку? В секцию "День" входит номенклатура, зачем тогда группировку делать если она уже и так сделана? Ошибка заключаться как и в предыдущем отчете, не выводит все номенклатуры.
Ermak
30.11.2012 12:46Ответ № 27
С этим я разобрался спасибо.
Ermak
30.11.2012 12:53Ответ № 28
Делаю тут другой отчет не могу понять в чем дело, вот отчет Скачивать файлы может только зарегистрированный пользователь!

На печать выводит так
title

а нужно чтобы он выдавал

Газ = 32241
Газ по займу = 24542

как это сделать!
Ermak
03.12.2012 09:42Ответ № 29
*08
Ermak
03.12.2012 15:08Ответ № 30
Подскажите почему Номенклатура не выводится, уже всю голову сломал *11 Скачивать файлы может только зарегистрированный пользователь!
Подсказка: Для выделения Кода используйте (в редакторе).
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.