|
Не выводит отчет | ☑ | ||
---|---|---|---|---|
0
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 = Результат.Количество; ТабДок.Вывести(ОбластьМакета); КонецЕсли; КонецЦикла; Возврат ТабДок; ТабДок.ТолькоПросмотр=Истина; КонецФункции |
|||
1
rapashocker
20.03.19
✎
15:08
|
Вывести надо за текущий месяц и предыдущие 6
|
|||
2
hhhh
20.03.19
✎
15:11
|
(1) ну началопериода и конецпериода перепутал
|
|||
3
rapashocker
20.03.19
✎
15:19
|
А по точнее? Сначала конец выбирать а потом начало ? или как это
|
|||
4
Greeen
20.03.19
✎
15:20
|
(3), холодно
место причины начинается на букву З (в совокупности с подсказкой в (2)) |
|||
5
rapashocker
20.03.19
✎
15:38
|
ЭлектронныйДокументВходящийДокументыОснования.Ссылка.Дата МЕЖДУ &НачалоПериода И &КонецПериода";
В этой строке? сначало начало потом конец? |
|||
6
rapashocker
20.03.19
✎
15:39
|
ой сначала конец потом начало?
|
|||
7
sqr4
20.03.19
✎
15:40
|
Запрос.УстановитьПараметр("КонецПериода",ДобавитьМесяц(ТекущаяДата(),-6));
|
|||
8
sqr4
20.03.19
✎
15:41
|
(3) как раз в точку, так пойдет меня начало с концом местами и будет тебе счастье)
|
|||
9
rapashocker
20.03.19
✎
15:46
|
Странно как это все повлияет на вывод данных))
|
|||
10
pasha_d
20.03.19
✎
15:52
|
Может стОит местами поменять?
Возврат ТабДок; ТабДок.ТолькоПросмотр=Истина; |
|||
11
hhhh
20.03.19
✎
15:53
|
(9) сейчас в вашем периоде нет ни одного дня. Поэтому отчет пустой. Если вы добавите туда дни, то может что-то появится, то есть на вывод данных точно повлияет.
|
|||
12
sqr4
20.03.19
✎
15:57
|
(9) ну да 01.06.2019 - начало периода.
Потом такой херак 01.06.2019 - 6мес - Конец периода Ага, механизм то рабочий, ошибок при компиляции не обнаружено. |
|||
13
rapashocker
20.03.19
✎
16:05
|
То есть переписать цикл придется?
Или добавить еще месяца в запрос? |
|||
14
rapashocker
20.03.19
✎
16:07
|
местами я поменял и ничего не изменилось
|
|||
15
sqr4
20.03.19
✎
16:13
|
(14) 01.06.2019 - дата начала
01.06.2019 - 6 мес = 01.01.2016 - Дата Окончания С такими параметрами ничего не отберет. ОбластьМакета.Параметры.ТекущийМесяц - тут тип Строка НачалоМесяца(ТекущаяДата()) - тут тип дата Они никогда не будут равны Правильность запросов и прочей херни не проверял |
|||
16
sqr4
20.03.19
✎
16:13
|
Садись кол, вообще не готов, даже книжку не открывал.
|
|||
17
rapashocker
20.03.19
✎
16:28
|
Я новичок)) Не подскажите как это правильнее всего реализовать? Я так понимаю нужны еще параметры))
|
|||
18
rapashocker
20.03.19
✎
16:28
|
или более правильно их ввести
|
|||
19
hhhh
20.03.19
✎
16:34
|
(18) единственно правильное - это когда начало периода меньше конца периода.
А по жизни, не в 1с, ты тоже так периоды фигачишь? Начало периода, например, 31 марта, а конец периода 1 марта? Или всё-таки начало периода 1 марта ставишь? |
|||
20
sqr4
20.03.19
✎
16:34
|
(17) задача не по вам, объективно не хватает знаний.
самое простое это заменить условие цикла на подобное НачалоМесяца(ДобавитьМесяц(ТекущаяДата(),-1)) = НачалоМесяца(Результат.Дата) Глянул запрос, а там просто мрак, используйте консоль запросов - прям в гугле наберите и скачайте обработку и добейтесь правильного запроса |
|||
21
rapashocker
20.03.19
✎
16:44
|
А как мне даты по параметрам раскидать, когда результат пишется в (Результат.Дата)
|
|||
22
hhhh
20.03.19
✎
16:47
|
(21) вот здесь ты даты раскидываешь по параметрам
Запрос.УстановитьПараметр("НачалоПериода",НачалоМесяца(ТекущаяДата())); Запрос.УстановитьПараметр("КонецПериода",ДобавитьМесяц(ТекущаяДата(),-6)); раскидай по-другому |
|||
23
rapashocker
20.03.19
✎
16:48
|
я про параметры макета
|
|||
24
rapashocker
20.03.19
✎
16:48
|
как результат вывести в параметр макета
|
|||
25
sqr4
20.03.19
✎
16:48
|
||||
26
sqr4
20.03.19
✎
16:48
|
(24) Выводить также, условие меняется
|
|||
27
rapashocker
21.03.19
✎
18:45
|
сделал, как вы вчера сказали,выдает ошибку Преобразование в тип дата не может быть выполнено, проверил точкой останова что у меня в моих параметрах, вроде все верно, код теперь такой, код параметров и цикла
Запрос.УстановитьПараметр("КонецПериода",НачалоДня(НачалоМесяца(ТекущаяДата()))); Запрос.УстановитьПараметр("НачалоПериода",НачалоДня(НачалоМесяца(ДобавитьМесяц(ТекущаяДата(),-30)))); Результат=Запрос.Выполнить().Выбрать(); Пока Результат.Следующий() Цикл Если НачалоМесяца(Результат.Дата) = НачалоМесяца(ТекущаяДата()) Тогда областьмакета.Параметры.Тип = Результат.типдокумента; областьмакета.Параметры.Количество = Результат.Количество; ИначеЕсли НачалоМесяца(Результат.Дата) = ДобавитьМесяц(ТекущаяДата(),-1) Тогда областьмакета.Параметры.Тип = Результат.типдокумента; областьмакета.Параметры.Количество1 = Результат.Количество; ИначеЕсли НачалоМесяца(Результат.Дата) = ДобавитьМесяц(ТекущаяДата(),-2) Тогда областьмакета.Параметры.Тип = Результат.типдокумента; областьмакета.Параметры.Количество2 = Результат.Количество; ИначеЕсли НачалоМесяца(Результат.Дата) = ДобавитьМесяц(ТекущаяДата(),-3) Тогда областьмакета.Параметры.Тип = Результат.типдокумента; областьмакета.Параметры.Количество3 = Результат.Количество; ИначеЕсли НачалоМесяца(Результат.Дата) = ДобавитьМесяц(ТекущаяДата(),-4) Тогда областьмакета.Параметры.Тип = Результат.типдокумента; областьмакета.Параметры.Количество4 = Результат.Количество; ИначеЕсли НачалоМесяца(Результат.Дата) = ДобавитьМесяц(ТекущаяДата(),-5) Тогда областьмакета.Параметры.Тип = Результат.типдокумента; областьмакета.Параметры.Количество5 = Результат.Количество; ИначеЕсли НачалоМесяца(Результат.Дата) = ДобавитьМесяц(ТекущаяДата(),-6) Тогда областьмакета.Параметры.Тип = Результат.типдокумента; областьмакета.Параметры.Количество6 = Результат.Количество; ТабДок.Вывести(ОбластьМакета); КонецЕсли; КонецЦикла; Возврат ТабДок; КонецФункции |
|||
28
rapashocker
21.03.19
✎
18:46
|
Ошибка приходится на данную строку Если НачалоМесяца(Результат.Дата) = НачалоМесяца(ТекущаяДата()) Тогда
|
|||
29
rapashocker
21.03.19
✎
18:46
|
думаю и на последующие такого же типа так же будут ругаться
|
|||
30
hhhh
21.03.19
✎
19:06
|
(28) посмотрите отладчиком, точку останова поставить на этой строчке и посмотреть Результат.Дата.
А запрос такой же как указан здесь? |
|||
31
kuka66
21.03.19
✎
19:57
|
ничего не понятно
|
|||
32
rapashocker
22.03.19
✎
10:28
|
запрос другой
|
|||
33
rapashocker
22.03.19
✎
10:29
|
результат.дата тип Null
|
|||
34
rapashocker
22.03.19
✎
10:34
|
Запрос=Новый Запрос;
Запрос.Текст="ВЫБРАТЬ | КОЛИЧЕСТВО(РАЗЛИЧНЫЕ СчетФактураПолученныйДокументыОснования.Ссылка) КАК количество, | СчетФактураПолученныйДокументыОснования.Ссылка.Дата КАК Дата, | СчетФактураПолученныйДокументыОснования.Ссылка КАК типдокумента |ИЗ | Документ.СчетФактураПолученный.ДокументыОснования КАК СчетФактураПолученныйДокументыОснования |ГДЕ | СчетФактураПолученныйДокументыОснования.Ссылка.Дата МЕЖДУ &НачалоПериода И &КонецПериода | |СГРУППИРОВАТЬ ПО | СчетФактураПолученныйДокументыОснования.Ссылка.Дата, | СчетФактураПолученныйДокументыОснования.Ссылка |ИТОГИ | КОЛИЧЕСТВО(РАЗЛИЧНЫЕ количество) |ПО | ОБЩИЕ |АВТОУПОРЯДОЧИВАНИЕ"; |
|||
35
rapashocker
22.03.19
✎
10:34
|
запрос вот такой
|
|||
36
rapashocker
22.03.19
✎
10:34
|
запрос рабочий и параметры указаны верно, выдают то что надо, проверял точкой останова
|
|||
37
sqr4
22.03.19
✎
10:36
|
Итоги отключи
|
|||
38
rapashocker
22.03.19
✎
10:41
|
отключи и итоги и автоупорядочивание, ошибки нет но и отчета нет))
|
|||
39
rapashocker
22.03.19
✎
10:43
|
а Результат.Дата равен -30 месяцам, просто данные в ИБ есть только за этот промежуток, то бишь 14\07\2017
|
|||
40
rapashocker
22.03.19
✎
10:43
|
на сервере еще дата очень говняная
|
|||
41
rapashocker
22.03.19
✎
10:43
|
она по Американскому стилю идет, и считает с 12 дня вообще, но думаю это мелочи
|
|||
42
sqr4
22.03.19
✎
10:49
|
я ничего не понял)
|
|||
43
rapashocker
22.03.19
✎
10:50
|
Результат.Дата сейчас дает значение 01.07.2017
|
|||
44
rapashocker
22.03.19
✎
10:54
|
как я подозреваю то это не то, так как НачалоМесяца(ТекущаяДата()) = 01.09.2019 тому самому значению что мне нужно
|
|||
45
edem911
22.03.19
✎
10:56
|
(0)ох и намудрил... Тебе нужно вывести количество электронных документов по месяцам?
|
|||
46
rapashocker
22.03.19
✎
10:57
|
ну в теории да и соответственно их ссылки в поле тип документов
|
|||
47
rapashocker
22.03.19
✎
10:59
|
запрос с счетами фактуры, делаю из-за того, что ЭДО нет в моей базе, а предоставить доступ к реальным данным никто не хочет, приходится так писать
|
|||
48
edem911
22.03.19
✎
11:03
|
(46) Вот вывод чисто запросом, а вообще сделай через отчет через скд и все будет красиво
|
|||
49
rapashocker
22.03.19
✎
11:14
|
яерез скд против все сильно
|
|||
50
rapashocker
22.03.19
✎
11:14
|
через*
|
|||
51
edem911
22.03.19
✎
11:17
|
(49) Ну тогда формируй табдок ручками, логику понял?
|
|||
52
rapashocker
22.03.19
✎
13:29
|
логику понял, но я сделал по своему
|
|||
53
rapashocker
22.03.19
✎
13:41
|
и представьте себе где ошибка))
|
|||
54
rapashocker
22.03.19
✎
13:41
|
мой запрос вывелся
|
|||
55
rapashocker
22.03.19
✎
13:41
|
ошибка в том что я область не правильно обозначил
|
|||
56
rapashocker
22.03.19
✎
13:41
|
область с данными
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |