Форум программистов, компьютерный форум, киберфорум
Наши страницы
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.90/106: Рейтинг темы: голосов - 106, средняя оценка - 4.90
stoff
0 / 0 / 0
Регистрация: 17.07.2009
Сообщений: 8
1

формирование отчета в 1С 8.0

20.07.2009, 15:24. Просмотров 19212. Ответов 11
Метки нет (Все метки)

с нуля разработал конфигуратор (1С Предприятие 8 ) суть заключается в чем, есть элеватор семян по нему надо производить движения семян, сейчас у меня стоит загвоздка по формированию отчета, у меня не суммируются и не отнимаются значения по определенной позиции, подскажите что делать (делал обыкновенный запрос все нормально выводится, а когда делаю сложный отчет выводится все по отдельности)
При необходимости могу выслать файл конфигуратор и базу.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.07.2009, 15:24
Ответы с готовыми решениями:

Формирование отчета
Подскажите, как сделать формирование отчета, если он выполнен без использования схемы компоновки...

Формирование отчета
Здравствуйте! Никак не могу разобраться. Я создал отчет с нуля. Мне нужно при выборе элемента...

Формирование отчета
Здравствуйте! Помогите переправить отчет пожалйста. Есть отчет Движение Товаров, он выводит...

Формирование отчета в самописной конфигурации
В начале немного о конфигурации - приведу скриншоты объектов конигурации. Справочники...

Формирование отчета, захватывает лишние строки
Доброго времени суток, Прошу помочь разобраться с формированием запроса - пытаюсь разобраться,...

11
umkmowm181538
0 / 0 / 0
Регистрация: 24.12.2008
Сообщений: 1,399
20.07.2009, 23:04 2
Выложите код отчета.
0
stoff
0 / 0 / 0
Регистрация: 17.07.2009
Сообщений: 8
21.07.2009, 09:11 3
код отчета:
Процедура КнопкаСформироватьНажатие(Кнопка)
// Вставить содержимое обработчика.
Запрос = новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| ОборотнаяВедомостьОстаткиИОбороты.Транспортер КАК Транспортер,
| ОборотнаяВедомостьОстаткиИОбороты.Банки КАК Банки,
| ОборотнаяВедомостьОстаткиИОбороты.ВидСемян КАК ВидСемян,
| ОборотнаяВедомостьОстаткиИОбороты.Регистратор КАК Регистратор,
| СУММА(ОборотнаяВедомостьОстаткиИОбороты.СуммаНачальныйОстаток) КАК НачОст,
| СУММА(ОборотнаяВедомостьОстаткиИОбороты.СуммаПриход) КАК Приход,
| СУММА(ОборотнаяВедомостьОстаткиИОбороты.СуммаРасход) КАК Расход,
| СУММА(ОборотнаяВедомостьОстаткиИОбороты.СуммаКонечныйОстаток) КАК КонОст
|ИЗ
| РегистрНакопления.ОборотнаяВедомость.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Регистратор, ДвиженияИГраницыПериода, ) КАК ОборотнаяВедомостьОстаткиИОбороты";
Флаг1=0;
если не ВыбТранспортер.Пустая() тогда
Запрос.Текст=Запрос.Текст+"ГДЕ ОборотнаяВедомость.Транспортер=&ПТранспортер ";
Флаг=1;
конецЕсли;
Если не ВыбБанки.Пустая() тогда
Если флаг1=0 тогда
Запрос.Текст=Запрос.Текст+"ГДЕ ОборотнаяВедомость.Банки=&ПБанки ";
Флаг1=1;
иначе
Запрос.Текст=Запрос.Текст+"И ОборотнаяВедомость.Банки=&ПБанки ";
конецесли;
конецесли;
если ПечБанки тогда
Если флаг1=0 тогда
Запрос.Текст=Запрос.Текст+"ГДЕ ОборотнаяВедомость.Банки.ВыводПриПечати ";
Иначе
Запрос.Текст=Запрос.Текст+"И ОборотнаяВедомость.Банки.ВыводПриПечати";
конецесли;
конецесли;
Запрос.Текст=Запрос.Текст+" СГРУППИРОВАТЬ ПО
| ОборотнаяВедомостьОстаткиИОбороты.Транспортер,
| ОборотнаяВедомостьОстаткиИОбороты.Банки,
| ОборотнаяВедомостьОстаткиИОбороты.ВидСемян,
| ОборотнаяВедомостьОстаткиИОбороты.Регистратор
|
|УПОРЯДОЧИТЬ ПО
| Транспортер,
| Банки,
| ВидСемян,
| Регистратор
|ИТОГИ
| СУММА(НачОст),
| СУММА(Приход),
| СУММА(Расход),
| СУММА(КонОст)
|ПО
| Транспортер,
| Банки,
| ВидСемян,
| Регистратор
|АВТОУПОРЯДОЧИВАНИЕ";
Запрос.УстановитьПараметр("НачалоПериода", НачПериода);
Запрос.УстановитьПараметр("КонецПериода", КонПериода);
Если не ВыбТранспортер.Пустая() тогда
Запрос.УстановитьПараметр("ПТранспортер", ВыбТранспортер);
конецесли;
Если не ВыбБанки.Пустая() тогда
Запрос.УстановитьПараметр("ПБанки", ВыбБанки);
конецесли;
Результат=Запрос.Выполнить();
Выборка=Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
темп = новый ТабличныйДокумент;
ТабДок=ПолучитьМакет("Макет");
ОбластьПериод=ТабДок.ПолучитьОбласть("Период");
ОбластьПериод.Параметры.Период=" Период с "+НачПериода+" по "+КонПериода;
Темп.Вывести(ОбластьПериод);
ОбластьШапка=ТабДок.ПолучитьОбласть("Шапка");
Темп.Вывести(ОбластьШапка);
Пока Выборка.Следующий() цикл
ОбластьТранспортер=ТабДок.ПолучитьОбласть("Транспортер");
ОбластьТранспортер.Параметры.Транспортер="Транспортер "+Выборка.Транспортер;
Темп.Вывести(ОбластьТранспортер);
ВыборкаБанки=Выборка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока выборкаБанки.Следующий() цикл
ФлагБанки=0;
ВыборкаВидСемян=ВыборкаБанки.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока выборкаВидСемян.Следующий() цикл
если выборкаВидСемян.ВидСемян.Пустая() тогда
продолжить
конецесли;
Если ФлагБанки=0 тогда
ОбластьБанки=ТабДок.ПолучитьОбласть("Банки");
ОбластьБанки.Параметры.Банки="Банки " + ВыборкаБанки.Банки;
Темп.Вывести(ОбластьБанки);
ФлагБанки=1;
конецесли;
ОбластьВидСемян=ТабДок.ПолучитьОбласть("ВидСемян");
ОбластьВидСемян.Параметры.ВидСемян=ВыборкаВидСемян.ВидСемян;
Если ВыборкаВидСемян.НачОст>0 тогда
ОбластьВидСемян.Параметры.НачальныйОстатокПриход=ВыборкаВидСемян.НачОст;
иначе
ОбластьВидСемян.Параметры.НачальныйОстатокРасход=-ВыборкаВидСемян.НачОст
конецесли;
Темп.Вывести(ОбластьВидСемян);
ВыборкаРегистратор=ВыборкаВидСемян.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам
);
Пока ВыборкаРегистратор.Следующий() цикл
Если ВыборкаРегистратор.Регистратор<>Неопределено тогда
ОбластьРегистратор=ТабДок.ПолучитьОбласть("Регистратор");
Если ВыборкаРегистратор.Приход>0 тогда
ОбластьРегистратор.Параметры.Контрагент=ВыборкаРегистратор.Регистратор;
конецесли;
Если ВыборкаРегистратор.Расход>0 тогда
ОбластьРегистратор.Параметры.Контрагент=ВыборкаРегистратор.Регистратор;
конецесли;
ОбластьРегистратор.Параметры.Приход=ВыборкаРегистратор.Приход;
ОбластьРегистратор.Параметры.Расход=ВыборкаРегистратор.Расход;
ОбластьРегистратор.Параметры.Дата=ВыборкаРегистратор.Регистратор.дата;
Темп.Вывести(ОбластьРегистратор);
конецесли;
конеццикла;
ОбластьИтогоВидСемян=ТабДок.ПолучитьОбласть("ИтогоВидСемян");
Если ВыборкаВидСемян.КонОст>0 тогда
ОбластьИтогоВидСемян.Параметры.КонечныйОстатокПриход=ВыборкаВидСемян.КонОст;
Иначе
ОбластьИтогоВидСемян.Параметры.КонечныйОстатокРасход=-ВыборкаВидСемян.КонОст
конецесли;
Темп.Вывести(ОбластьИтогоВидСемян);
конеццикла;
конеццикла;
конеццикла;
ТабФорма=Отчеты.ОтчетПоСеменам.ПолучитьФорму("ФормаТаблицы");
ТабФорма.Открыть();
ТабФорма.ЭлементыФормы.Результат.Вывести(Темп);
конецпроцедуры

Процедура ВыбПериодНажатие(Элемент)
НастройкаПериода = Новый НастройкаПериода;
НастройкаПериода.УстановитьПериод(НачПериода, ?(КонПериода=0001-01-01, КонПериода, КонецДня(КонПериода)));
НастройкаПериода.РедактироватьКакИнтервал = Истина;
НастройкаПериода.РедактироватьКакПериод = Истина;
НастройкаПериода.ВариантНастройки = ВариантНастройкиПериода.Период;
Если НастройкаПериода.Редактировать() Тогда
НачПериода = НастройкаПериода.ПолучитьДатуНачала();
КонПериода = НастройкаПериода.ПолучитьДатуОкончания();
КонецЕсли;
КонецПроцедуры

а тут сама проблема:
само дело в чем, когда составляю складской документ выбираю отдельно процедуру (загрузка или отгрузка), вид семян которую мы используем, дальше транспортер (то по чем происходит загрузка или отгрузка в банки) и сама банка где хранится семена, банка одна и таже тока изменяются транспортреры (загружаем в банку по одному транспортеру или же выгружаем из банки по другому транспортеру).
когда ставлю загрузку по транспортеру (например 12) и банку (111) и вид семян (подсолнух) делаю проводку в отчете создается позиция, когда делаю отгрузку по транспортеру (12) и банку (111) и вид семян (подсолнух) то происходит отнимание и в ИтогоВидСемян отобразается остаток, но когда ставлю отгрузку по транспортеру (14) и банку (111) и вид семян (подсолнух) то происходит создание другой позиции в отчете где из банки (111) ничего не отнимается.
пробовал убрать группировки по регистратору у меня нечего не выводит
0
tomot
0 / 0 / 0
Регистрация: 02.03.2007
Сообщений: 272
21.07.2009, 09:18 4
Вам надо структуру регистра менять, так как уникальность записи в этом случае задается 3мя измерениями : банк, транспортер, вид семян. Если оставить банк и вид семян, а транспортер ввести в качестве реквизита - то регистр будет "работать" так, как вам нужно, т.е. делать приход-расход без учета транспортера.
0
21.07.2009, 09:18
stoff
0 / 0 / 0
Регистрация: 17.07.2009
Сообщений: 8
21.07.2009, 09:29 5
сделал как вы написали, у меня теперь в макете отчета кроме даты больше ничего не выводится
0
tomot
0 / 0 / 0
Регистрация: 02.03.2007
Сообщений: 272
21.07.2009, 09:43 6
перепроведите все документы - первое, из условий уберите "ГДЕ ОборотнаяВедомость.Транспортер=&ПТранспортер " в запросе. Вы структуру поменяли, а условия отбора - нет.
0
stoff
0 / 0 / 0
Регистрация: 17.07.2009
Сообщений: 8
21.07.2009, 10:20 7
а сможете поисправлять в самом коде который я выслал, а то всякими способами пробую но ничего не выводит
0
tomot
0 / 0 / 0
Регистрация: 02.03.2007
Сообщений: 272
21.07.2009, 10:45 8
Запрос.Текст = "ВЫБРАТЬ
| ОборотнаяВедомостьОстаткиИОбороты.Транспортер КАК Транспортер,
| ОборотнаяВедомостьОстаткиИОбороты.Банки КАК Банки,
| ОборотнаяВедомостьОстаткиИОбороты.ВидСемян КАК ВидСемян,
| ОборотнаяВедомостьОстаткиИОбороты.Регистратор КАК Регистратор,
| СУММА(ОборотнаяВедомостьОстаткиИОбороты.СуммаНачальныйОстаток) КАК НачОст,
| СУММА(ОборотнаяВедомостьОстаткиИОбороты.СуммаПриход) КАК Приход,
| СУММА(ОборотнаяВедомостьОстаткиИОбороты.СуммаРасход) КАК Расход,
| СУММА(ОборотнаяВедомостьОстаткиИОбороты.СуммаКонечныйОстаток) КАК КонОст
|ИЗ
| РегистрНакопления.ОборотнаяВедомость.ОстаткиИОбороты(&НачалоПериода, &КонецПериода,, ДвиженияИГраницыПериода, ) КАК ОборотнаяВедомостьОстаткиИОбороты";
//Флаг1=0;
//если не ВыбТранспортер.Пустая() тогда
//Запрос.Текст=Запрос.Текст+"ГДЕ ОборотнаяВедомость.Транспортер=&ПТранспортер ";
//Флаг=1;
//конецЕсли;
Если не ВыбБанки.Пустая() тогда
Если флаг1=0 тогда
Запрос.Текст=Запрос.Текст+"ГДЕ ОборотнаяВедомость.Банки=&ПБанки ";
Флаг1=1;
иначе
Запрос.Текст=Запрос.Текст+"И ОборотнаяВедомость.Банки=&ПБанки ";
конецесли;
конецесли;
если ПечБанки тогда
Если флаг1=0 тогда
Запрос.Текст=Запрос.Текст+"ГДЕ ОборотнаяВедомость.Банки.ВыводПриПечати ";
Иначе
Запрос.Текст=Запрос.Текст+"И ОборотнаяВедомость.Банки.ВыводПриПечати";
конецесли;
конецесли;
Запрос.Текст=Запрос.Текст+" СГРУППИРОВАТЬ ПО
| ОборотнаяВедомостьОстаткиИОбороты.Транспортер,
| ОборотнаяВедомостьОстаткиИОбороты.Банки,
| ОборотнаяВедомостьОстаткиИОбороты.ВидСемян,
| ОборотнаяВедомостьОстаткиИОбороты.Регистратор
|
|УПОРЯДОЧИТЬ ПО
| Транспортер,
| Банки,
| ВидСемян,
| Регистратор
|ИТОГИ
| СУММА(НачОст),
| СУММА(Приход),
| СУММА(Расход),
| СУММА(КонОст)
|ПО
| Транспортер,
| Банки,
| ВидСемян,
| Регистратор
|АВТОУПОРЯДОЧИВАНИЕ";

вот както так,я думаю
0
stoff
0 / 0 / 0
Регистрация: 17.07.2009
Сообщений: 8
21.07.2009, 11:56 9
а сам код программы?
0
tomot
0 / 0 / 0
Регистрация: 02.03.2007
Сообщений: 272
21.07.2009, 12:22 10
а все остальное безызмено. дело то в запросе и в кусочке его дополнения.
0
stoff
0 / 0 / 0
Регистрация: 17.07.2009
Сообщений: 8
23.07.2009, 14:13 11
теперь пишет кучу ошибок и инфу в отчете не выводит
0
tomot
0 / 0 / 0
Регистрация: 02.03.2007
Сообщений: 272
23.07.2009, 15:01 12
флаг=0; разкоментируйте.

Ошибки какого характера? запрос выполняется? отладчиком пользоваться умеете? на каком этапе возникает ошибка?

Переменные все определены?
0
23.07.2009, 15:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.07.2009, 15:01

Проблема при формирование отчета в Рознице
Есть док. (рис.1), при формирование отчета др. сумма (рис.2), а при расшифровке ... не понятно от...

1C 8.1 Редактирование отчета созданного с помощью универсального отчета
Создал отчет с помощью универсального отчета, все работает, не получается сделать его &quot;красивым&quot;...

Формирование отчета СКД
Формирую отчет на СКД. В результате запроса получаем покупателя...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru