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

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

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

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

Формирование отчета под разными пользователями. Нет прав доступа к полю отчёта.
Добрый день! Как может быть такая штука - захожу под одним пользователем, запускаю отчёт, всё...

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

Формирование отчета
У меня есть БД, с данными о студентах, также и о его родителях. Когда я вывожу данные на печать то...

Формирование отчета
Всем здравствуйте, подскажите, пожалуйста, как сформировать в отчете 1с 8.3 количество единиц...

11
umkmowm181538
0 / 0 / 0
Регистрация: 24.12.2008
Сообщений: 1,399
20.07.2009, 23:04 2
Выложите код отчета.
0
stoff
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) ничего не отнимается.
пробовал убрать группировки по регистратору у меня нечего не выводит
tomot
0 / 0 / 0
Регистрация: 02.03.2007
Сообщений: 272
21.07.2009, 09:18 4
Вам надо структуру регистра менять, так как уникальность записи в этом случае задается 3мя измерениями : банк, транспортер, вид семян. Если оставить банк и вид семян, а транспортер ввести в качестве реквизита - то регистр будет "работать" так, как вам нужно, т.е. делать приход-расход без учета транспортера.
0
stoff
21.07.2009, 09:29 5
сделал как вы написали, у меня теперь в макете отчета кроме даты больше ничего не выводится
tomot
0 / 0 / 0
Регистрация: 02.03.2007
Сообщений: 272
21.07.2009, 09:43 6
перепроведите все документы - первое, из условий уберите "ГДЕ ОборотнаяВедомость.Транспортер=&ПТранспортер " в запросе. Вы структуру поменяли, а условия отбора - нет.
0
stoff
21.07.2009, 10:20 7
а сможете поисправлять в самом коде который я выслал, а то всякими способами пробую но ничего не выводит
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
21.07.2009, 11:56 9
а сам код программы?
tomot
0 / 0 / 0
Регистрация: 02.03.2007
Сообщений: 272
21.07.2009, 12:22 10
а все остальное безызмено. дело то в запросе и в кусочке его дополнения.
0
stoff
23.07.2009, 14:13 11
теперь пишет кучу ошибок и инфу в отчете не выводит
tomot
0 / 0 / 0
Регистрация: 02.03.2007
Сообщений: 272
23.07.2009, 15:01 12
флаг=0; разкоментируйте.

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

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

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

Формирование отчёта
Добрый день, есть форма из которой надо вывести некоторые данные, всё вроде работало но сейчас...

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

Формирование отчета
Добрый день! Люди добрые подскажите кто чем может. У меня есть 2 вопроса. Есть БД Access, в...

Формирование отчёта
Скажите, столкнулся с проблемой, нужно сделать отчёт, На форме отчёта нужно выбрать из таблицы...


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

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

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