Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Не выводит отчет

Не выводит отчет
Я
   rapashocker
 
20.03.19 - 15:08
Привет всем,написал отчет где по периоду буду выводить количество ссылок на документ и сами типы документов в макет, реальных данных у меня нет, но он совсем не выводит месяца,выдает пустой отчет фактически
Помогите пожалуйста понять в чем проблема, не исключено что в логике написания.
&НаКлиенте
Процедура НайтиДокумент(Команда)
ПоискДокумента().Показать();
КонецПроцедуры


&НаСервере
Функция ПоискДокумента() Экспорт
//Получить Макет
ТабДок=Новый ТабличныйДокумент;
ОтчетОбъект=РеквизитФормыВзначение("Объект");
Макет=ОтчетОбъект.ПолучитьМакет("Макет");
ОбластьМакета=Макет.ПолучитьОбласть("Шапка");
ТабДок.Вывести(ОбластьМакета);
ОбластьМакета=Макет.ПолучитьОбласть("ШапкаТаблицы");
ОбластьМакета.Параметры.ТекущийМесяц =  Формат(ТекущаяДата(),"ДФ='MMMM yyyy'");
ОбластьМакета.Параметры.Месяц1 =  Формат(ДобавитьМесяц(ТекущаяДата(),-1),"ДФ='MMMM yyyy'");
ОбластьМакета.Параметры.Месяц2 =  Формат(ДобавитьМесяц(ТекущаяДата(),-2),"ДФ='MMMM yyyy'");
ОбластьМакета.Параметры.Месяц3 =  Формат(ДобавитьМесяц(ТекущаяДата(),-3),"ДФ='MMMM yyyy'");
ОбластьМакета.Параметры.Месяц4 =  Формат(ДобавитьМесяц(ТекущаяДата(),-4),"ДФ='MMMM yyyy'");
ОбластьМакета.Параметры.Месяц5 =  Формат(ДобавитьМесяц(ТекущаяДата(),-5),"ДФ='MMMM yyyy'");
ОбластьМакета.Параметры.Месяц6 =  Формат(ДобавитьМесяц(ТекущаяДата(),-6),"ДФ='MMMM yyyy'");
ТабДок.Вывести(ОбластьМакета);
ОбластьМакета=Макет.ПолучитьОбласть("Данные");
ТабДок.Вывести(ОбластьМакета);
Запрос=Новый Запрос;
Запрос.Текст="ВЫБРАТЬ
             |    ЭлектронныйДокументВходящийДокументыОснования.Ссылка КАК типдокумента,
             |    ЭлектронныйДокументВходящийДокументыОснования.Ссылка.Дата КАК Дата,
             |    ВложенныйЗапрос.Ссылка.ДокументыОснования.(
             |        КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ДокументОснование) КАК СсылкаДокументОснование
             |    ) КАК Количество
             |ИЗ
             |    Документ.ЭлектронныйДокументВходящий.ДокументыОснования КАК ЭлектронныйДокументВходящийДокументыОснования,
             |    (ВЫБРАТЬ
             |        ЭлектронныйДокументВходящийДокументыОснования.Ссылка КАК Ссылка
             |    ИЗ
             |        Документ.ЭлектронныйДокументВходящий.ДокументыОснования КАК ЭлектронныйДокументВходящийДокументыОснования) КАК ВложенныйЗапрос
             |ГДЕ
             |    ЭлектронныйДокументВходящийДокументыОснования.Ссылка.Дата МЕЖДУ &НачалоПериода И &КонецПериода";




Запрос.УстановитьПараметр("НачалоПериода",НачалоМесяца(ТекущаяДата()));
Запрос.УстановитьПараметр("КонецПериода",ДобавитьМесяц(ТекущаяДата(),-6));

Результат=Запрос.Выполнить().Выбрать();

Пока Результат.Следующий() Цикл
    Если ОбластьМакета.Параметры.ТекущийМесяц = НачалоМесяца(ТекущаяДата()) Тогда
        областьмакета.Параметры.Тип = Результат.типдокумента;
        областьмакета.Параметры.Количество = Результат.Количество;
        ИначеЕсли ОбластьМакета.Параметры.Месяц1 = ДобавитьМесяц(ТекущаяДата(),-1) Тогда
        областьмакета.Параметры.Тип = Результат.типдокумента;
        областьмакета.Параметры.Количество1 = Результат.Количество;
        ИначеЕсли  ОбластьМакета.Параметры.Месяц2 = ДобавитьМесяц(ТекущаяДата(),-2) Тогда
        областьмакета.Параметры.Тип = Результат.типдокумента;
        областьмакета.Параметры.Количество2 = Результат.Количество;
        ИначеЕсли ОбластьМакета.Параметры.Месяц3 = ДобавитьМесяц(ТекущаяДата(),-3) Тогда
        областьмакета.Параметры.Тип = Результат.типдокумента;
        областьмакета.Параметры.Количество3 = Результат.Количество;
        ИначеЕсли ОбластьМакета.Параметры.Месяц4 = ДобавитьМесяц(ТекущаяДата(),-4) Тогда
        областьмакета.Параметры.Тип = Результат.типдокумента;
        областьмакета.Параметры.Количество4 = Результат.Количество;
        ИначеЕсли ОбластьМакета.Параметры.Месяц5 = ДобавитьМесяц(ТекущаяДата(),-5) Тогда
        областьмакета.Параметры.Тип = Результат.типдокумента;
        областьмакета.Параметры.Количество5 = Результат.Количество;
        ИначеЕсли ОбластьМакета.Параметры.Месяц6 = ДобавитьМесяц(ТекущаяДата(),-6) Тогда
        областьмакета.Параметры.Тип = Результат.типдокумента;
        областьмакета.Параметры.Количество6 = Результат.Количество;
        ТабДок.Вывести(ОбластьМакета);
    КонецЕсли;
КонецЦикла;
Возврат ТабДок;
ТабДок.ТолькоПросмотр=Истина;
КонецФункции
 
 
   rapashocker
 
1 - 20.03.19 - 15:08
Вывести надо за текущий месяц и предыдущие 6
   hhhh
 
2 - 20.03.19 - 15:11
(1) ну началопериода и конецпериода перепутал
   rapashocker
 
3 - 20.03.19 - 15:19
А по точнее? Сначала конец выбирать а потом начало ?  или как это
   Greeen
 
4 - 20.03.19 - 15:20
(3), холодно
место причины начинается на букву З (в совокупности с подсказкой в (2))
   rapashocker
 
5 - 20.03.19 - 15:38
ЭлектронныйДокументВходящийДокументыОснования.Ссылка.Дата МЕЖДУ &НачалоПериода И &КонецПериода"; 

В этой строке? сначало начало потом конец?
   rapashocker
 
6 - 20.03.19 - 15:39
ой сначала конец потом начало?
   sqr4
 
7 - 20.03.19 - 15:40
Запрос.УстановитьПараметр("КонецПериода",ДобавитьМесяц(ТекущаяДата(),-6));
   sqr4
 
8 - 20.03.19 - 15:41
(3) как раз в точку, так пойдет меня начало с концом местами и будет тебе счастье)
   rapashocker
 
9 - 20.03.19 - 15:46
Странно как это все повлияет на вывод данных))
   pasha_d
 
10 - 20.03.19 - 15:52
Может стОит местами поменять?
Возврат ТабДок; 
ТабДок.ТолькоПросмотр=Истина;
   hhhh
 
11 - 20.03.19 - 15:53
(9) сейчас в вашем периоде нет ни одного дня. Поэтому отчет пустой. Если вы добавите туда дни, то может что-то появится, то есть на вывод данных точно повлияет.
   sqr4
 
12 - 20.03.19 - 15:57
(9) ну да 01.06.2019 - начало периода.
Потом такой херак
01.06.2019 - 6мес - Конец периода
Ага, механизм то рабочий, ошибок при компиляции не обнаружено.
   rapashocker
 
13 - 20.03.19 - 16:05
То есть переписать цикл придется?
Или добавить еще месяца в запрос?
   rapashocker
 
14 - 20.03.19 - 16:07
местами я поменял и ничего не изменилось
   sqr4
 
15 - 20.03.19 - 16:13
(14) 01.06.2019 - дата начала
01.06.2019 - 6 мес = 01.01.2016 - Дата Окончания 
С такими параметрами ничего не отберет.

ОбластьМакета.Параметры.ТекущийМесяц - тут тип Строка
НачалоМесяца(ТекущаяДата())  - тут тип дата
Они никогда не будут равны
Правильность запросов и прочей херни не проверял
   sqr4
 
16 - 20.03.19 - 16:13
Садись кол, вообще не готов, даже книжку не открывал.
   rapashocker
 
17 - 20.03.19 - 16:28
Я новичок)) Не подскажите как это правильнее всего реализовать? Я так понимаю нужны еще параметры))
   rapashocker
 
18 - 20.03.19 - 16:28
или более правильно их ввести
   hhhh
 
19 - 20.03.19 - 16:34
(18) единственно правильное - это когда начало периода меньше конца периода.

А по жизни, не в 1с, ты тоже так периоды фигачишь? Начало периода, например, 31 марта, а конец периода 1 марта? Или всё-таки начало периода 1 марта ставишь?
   sqr4
 
20 - 20.03.19 - 16:34
(17) задача не по вам, объективно не хватает знаний.
самое простое это заменить условие цикла на подобное
НачалоМесяца(ДобавитьМесяц(ТекущаяДата(),-1)) = НачалоМесяца(Результат.Дата)

Глянул запрос, а там просто мрак, используйте консоль запросов - прям в гугле наберите и скачайте обработку и добейтесь правильного запроса
   rapashocker
 
21 - 20.03.19 - 16:44
А как мне даты по параметрам раскидать, когда результат пишется в (Результат.Дата)
   hhhh
 
22 - 20.03.19 - 16:47
(21) вот здесь ты даты раскидываешь по параметрам
Запрос.УстановитьПараметр("НачалоПериода",НачалоМесяца(ТекущаяДата()));
Запрос.УстановитьПараметр("КонецПериода",ДобавитьМесяц(ТекущаяДата(),-6)); 

раскидай по-другому
   rapashocker
 
23 - 20.03.19 - 16:48
я про параметры макета
   rapashocker
 
24 - 20.03.19 - 16:48
как результат вывести в параметр макета
   sqr4
 
25 - 20.03.19 - 16:48
   sqr4
 
26 - 20.03.19 - 16:48
(24) Выводить также, условие меняется
   rapashocker
 
27 - 21.03.19 - 18:45
сделал, как вы вчера сказали,выдает ошибку Преобразование в тип дата не может быть выполнено, проверил точкой останова что у меня в моих параметрах, вроде все верно, код теперь такой, код параметров и цикла
Запрос.УстановитьПараметр("КонецПериода",НачалоДня(НачалоМесяца(ТекущаяДата()))); 
Запрос.УстановитьПараметр("НачалоПериода",НачалоДня(НачалоМесяца(ДобавитьМесяц(ТекущаяДата(),-30)))); 
Результат=Запрос.Выполнить().Выбрать();

Пока Результат.Следующий() Цикл 
    Если НачалоМесяца(Результат.Дата) = НачалоМесяца(ТекущаяДата()) Тогда
        областьмакета.Параметры.Тип = Результат.типдокумента;
        областьмакета.Параметры.Количество = Результат.Количество;
        ИначеЕсли НачалоМесяца(Результат.Дата) = ДобавитьМесяц(ТекущаяДата(),-1) Тогда 
        областьмакета.Параметры.Тип = Результат.типдокумента;
        областьмакета.Параметры.Количество1 = Результат.Количество;
        ИначеЕсли  НачалоМесяца(Результат.Дата) = ДобавитьМесяц(ТекущаяДата(),-2) Тогда 
        областьмакета.Параметры.Тип = Результат.типдокумента;
        областьмакета.Параметры.Количество2 = Результат.Количество;
        ИначеЕсли НачалоМесяца(Результат.Дата) = ДобавитьМесяц(ТекущаяДата(),-3) Тогда 
        областьмакета.Параметры.Тип = Результат.типдокумента;
        областьмакета.Параметры.Количество3 = Результат.Количество;
        ИначеЕсли НачалоМесяца(Результат.Дата) = ДобавитьМесяц(ТекущаяДата(),-4) Тогда
        областьмакета.Параметры.Тип = Результат.типдокумента;
        областьмакета.Параметры.Количество4 = Результат.Количество;
        ИначеЕсли НачалоМесяца(Результат.Дата) = ДобавитьМесяц(ТекущаяДата(),-5) Тогда
        областьмакета.Параметры.Тип = Результат.типдокумента;
        областьмакета.Параметры.Количество5 = Результат.Количество;
        ИначеЕсли НачалоМесяца(Результат.Дата) = ДобавитьМесяц(ТекущаяДата(),-6) Тогда
        областьмакета.Параметры.Тип = Результат.типдокумента;
        областьмакета.Параметры.Количество6 = Результат.Количество;
        ТабДок.Вывести(ОбластьМакета);
    КонецЕсли;
КонецЦикла;
Возврат ТабДок;
КонецФункции
   rapashocker
 
28 - 21.03.19 - 18:46
Ошибка приходится на данную строку  Если НачалоМесяца(Результат.Дата) = НачалоМесяца(ТекущаяДата()) Тогда
   rapashocker
 
29 - 21.03.19 - 18:46
думаю и на последующие такого же типа так же будут ругаться
   hhhh
 
30 - 21.03.19 - 19:06
(28) посмотрите отладчиком, точку останова поставить на этой строчке и посмотреть Результат.Дата.

А запрос такой же как указан здесь?
 
 Рекламное место пустует
   kuka66
 
31 - 21.03.19 - 19:57
ничего не понятно
   rapashocker
 
32 - 22.03.19 - 10:28
запрос другой
   rapashocker
 
33 - 22.03.19 - 10:29
результат.дата тип Null
   rapashocker
 
34 - 22.03.19 - 10:34
Запрос=Новый Запрос;
Запрос.Текст="ВЫБРАТЬ
             |    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ СчетФактураПолученныйДокументыОснования.Ссылка) КАК количество,
             |    СчетФактураПолученныйДокументыОснования.Ссылка.Дата КАК Дата,
             |    СчетФактураПолученныйДокументыОснования.Ссылка КАК типдокумента
             |ИЗ
             |    Документ.СчетФактураПолученный.ДокументыОснования КАК СчетФактураПолученныйДокументыОснования
             |ГДЕ
             |    СчетФактураПолученныйДокументыОснования.Ссылка.Дата МЕЖДУ &НачалоПериода И &КонецПериода
             |
             |СГРУППИРОВАТЬ ПО
             |    СчетФактураПолученныйДокументыОснования.Ссылка.Дата,
             |    СчетФактураПолученныйДокументыОснования.Ссылка
             |ИТОГИ
             |    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ количество)
             |ПО
             |    ОБЩИЕ
             |АВТОУПОРЯДОЧИВАНИЕ";
   rapashocker
 
35 - 22.03.19 - 10:34
запрос вот такой
   rapashocker
 
36 - 22.03.19 - 10:34
запрос рабочий и параметры указаны верно, выдают то что надо, проверял точкой останова
   sqr4
 
37 - 22.03.19 - 10:36
Итоги отключи
   rapashocker
 
38 - 22.03.19 - 10:41
отключи и итоги и автоупорядочивание, ошибки нет но и отчета нет))
   rapashocker
 
39 - 22.03.19 - 10:43
а Результат.Дата равен -30 месяцам, просто данные в ИБ есть только за этот промежуток, то бишь 14\07\2017
   rapashocker
 
40 - 22.03.19 - 10:43
на сервере еще дата очень говняная
   rapashocker
 
41 - 22.03.19 - 10:43
она по Американскому стилю идет, и считает с 12 дня вообще, но думаю это мелочи
   sqr4
 
42 - 22.03.19 - 10:49
я ничего не понял)
   rapashocker
 
43 - 22.03.19 - 10:50
Результат.Дата сейчас дает значение 01.07.2017
   rapashocker
 
44 - 22.03.19 - 10:54
как я подозреваю то это не то, так как НачалоМесяца(ТекущаяДата()) = 01.09.2019 тому самому значению что мне нужно
   edem911
 
45 - 22.03.19 - 10:56
(0)ох и намудрил... Тебе нужно вывести количество электронных документов по месяцам?
   rapashocker
 
46 - 22.03.19 - 10:57
ну в теории да и соответственно их ссылки в поле тип документов
   rapashocker
 
47 - 22.03.19 - 10:59
запрос с счетами фактуры, делаю из-за того, что ЭДО нет в моей базе, а предоставить доступ к реальным данным никто не хочет, приходится так писать
   edem911
 
48 - 22.03.19 - 11:03
(46) Вот вывод чисто запросом, а вообще сделай через отчет через скд и все будет красиво
ВЫБРАТЬ
    ЭлектронныйДокументВходящий.Ссылка КАК Ссылка,
    МЕСЯЦ(ЭлектронныйДокументВходящий.Дата) КАК Месяц,
    1 КАК Количество
ПОМЕСТИТЬ ЭД
ИЗ
    Документ.ЭлектронныйДокументВходящий КАК ЭлектронныйДокументВходящий
ГДЕ
    ЭлектронныйДокументВходящий.Дата МЕЖДУ &Начало И &Конец
;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ
    ЭД.Месяц КАК Месяц,
    ЭД.Количество КАК Количество,
    ЭД.Ссылка КАК Ссылка
ИЗ
    ЭД КАК ЭД
ИТОГИ
    СУММА(Количество)
ПО
    Месяц

   rapashocker
 
49 - 22.03.19 - 11:14
яерез скд против все сильно
   rapashocker
 
50 - 22.03.19 - 11:14
через*
   edem911
 
51 - 22.03.19 - 11:17
(49) Ну тогда формируй табдок ручками, логику понял?
   rapashocker
 
52 - 22.03.19 - 13:29
логику понял, но я сделал по своему
   rapashocker
 
53 - 22.03.19 - 13:41
и представьте себе где ошибка))
   rapashocker
 
54 - 22.03.19 - 13:41
мой запрос вывелся
   rapashocker
 
55 - 22.03.19 - 13:41
ошибка в том что я область не правильно обозначил
   rapashocker
 
56 - 22.03.19 - 13:41
область с данными


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.