Ошибка в коде

1. LOTR 20.03.19 12:26 Сейчас в теме
Привет всем, написат обработку которая будет считать количество по месяцам и выводить в макет, но столкнулся с ошибкой.

Пока не понимаю в чем проблема, помогите пожалуйста.
По теме из базы знаний
Найденные решения
6. YannikAlx 43 20.03.19 12:38 Сейчас в теме
Нету у вас в макете ТекущийМесяц , а вы пытаетесь ему что-то присвоить...
8. Xershi 1484 20.03.19 12:43 Сейчас в теме
ОбластьМакета вы переназначали 3 раза.
Если у вас и есть параметр, то он наверно не в каждой из этих областей!
11. singlych 20.03.19 15:08 Сейчас в теме
(9) в цикле по выборке у вас в ОбластьМакета область "Данные". А там нет параметра ТекущийМесяц.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. LOTR 20.03.19 12:26 Сейчас в теме
&НаКлиенте
Процедура НайтиДокумент(Команда)
ПоискДокумента().Показать();
КонецПроцедуры


&НаСервере
Функция ПоискДокумента() Экспорт
//Получить Макет
ТабДок=Новый ТабличныйДокумент;
ОтчетОбъект=РеквизитФормыВзначение("Объект");
Макет=ОтчетОбъект.ПолучитьМакет("Макет");
ОбластьМакета=Макет.ПолучитьОбласть("Шапка");
ТабДок.Вывести(ОбластьМакета);
ОбластьМакета=Макет.ПолучитьОбласть("ШапкаТаблицы");
ОбластьМакета.Параметры.ТекущийМесяц =  Формат(ТекущаяДата(),"ДФ='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");
Тз.Колонки.Добавить("Количество2");
Тз.Колонки.Добавить("Количество3");
Тз.Колонки.Добавить("Количество4");
Тз.Колонки.Добавить("Количество5");
Тз.Колонки.Добавить("Количество6");

Пока Результат.Следующий() Цикл 
    Если НачалоМесяца(ОбластьМакета.Параметры.ТекущийМесяц) = НачалоМесяца(ТекущаяДата()) Тогда
        НС = ТЗ.Добавить();
        НС.Тип = ТипЗнч(Результат.типдокумента);
        НС.Количество = ТипЗнч(Результат.Количество);
		ИначеЕсли НачалоМесяца(ОбластьМакета.Параметры.Месяц1) = НачалоМесяца(ДобавитьМесяц(ТекущаяДата(),-1)) Тогда 
		НС = ТЗ.Добавить(); 
		НС.Тип = ТипЗнч(Результат.типдокумента);
		НС.Количество1=ТипЗнч(Результат.Количество);
	    ИначеЕсли  НачалоМесяца(ОбластьМакета.Параметры.Месяц2) = НачалоМесяца(ДобавитьМесяц(ТекущаяДата(),-2)) Тогда 
		НС = ТЗ.Добавить(); 
		НС.Тип = ТипЗнч(Результат.типдокумента);
		НС.Количество2=ТипЗнч(Результат.Количество);
		ИначеЕсли НачалоМесяца(ОбластьМакета.Параметры.Месяц3) = НачалоМесяца(ДобавитьМесяц(ТекущаяДата(),-3)) Тогда 
        НС = ТЗ.Добавить(); 
		НС.Тип = ТипЗнч(Результат.типдокумента);
		НС.Количество3=ТипЗнч(Результат.Количество);
	    ИначеЕсли НачалоМесяца(ОбластьМакета.Параметры.Месяц4) = НачалоМесяца(ДобавитьМесяц(ТекущаяДата(),-4)) Тогда
		НС = ТЗ.Добавить(); 
		НС.Тип = ТипЗнч(Результат.типдокумента);
		НС.Количество4=ТипЗнч(Результат.Количество);
	    ИначеЕсли НачалоМесяца(ОбластьМакета.Параметры.Месяц5) = НачалоМесяца(ДобавитьМесяц(ТекущаяДата(),-5)) Тогда
		НС = ТЗ.Добавить(); 
		НС.Тип = ТипЗнч(Результат.типдокумента);
		НС.Количество5=ТипЗнч(Результат.Количество);
	    ИначеЕсли НачалоМесяца(ОбластьМакета.Параметры.Месяц6) = НачалоМесяца(ДобавитьМесяц(ТекущаяДата(),-6)) Тогда
		НС = ТЗ.Добавить(); 
		НС.Тип = ТипЗнч(Результат.типдокумента);
		НС.Количество6=ТипЗнч(Результат.Количество);
    КонецЕсли;
КонецЦикла;

ТЗ.Свернуть("Тип","Количество,Количество1,Количество2,Количество3,Количество4,Количество5,Количество6");

Для каждого Строка Из ТЗ Цикл
    ОбластьМакета.Параметры.Заполнить(Строка); 
    ТабДок.Вывести(ОбластьМакета); 
КонецЦикла;
Возврат ТабДок;
КонецФункции
Показать
3. arsen_botashev 20.03.19 12:28 Сейчас в теме
4. LOTR 20.03.19 12:31 Сейчас в теме
Поле Объекта не обнаружена(ТекущийМесяц)
5. arsen_botashev 20.03.19 12:36 Сейчас в теме
(4)проверьте правильно ли вы написали параметр в макете.
6. YannikAlx 43 20.03.19 12:38 Сейчас в теме
Нету у вас в макете ТекущийМесяц , а вы пытаетесь ему что-то присвоить...
7. LOTR 20.03.19 12:40 Сейчас в теме
Есть у меня в макете данный параметр, в том и дело
8. Xershi 1484 20.03.19 12:43 Сейчас в теме
ОбластьМакета вы переназначали 3 раза.
Если у вас и есть параметр, то он наверно не в каждой из этих областей!
9. LOTR 20.03.19 12:48 Сейчас в теме
вот мой макет, прост опока не понятно как связать месяцы с подсчетом количества документов
Прикрепленные файлы:
11. singlych 20.03.19 15:08 Сейчас в теме
(9) в цикле по выборке у вас в ОбластьМакета область "Данные". А там нет параметра ТекущийМесяц.
12. LOTR 20.03.19 15:12 Сейчас в теме
(11)всмысле я выборку не туда впихнул?
14. singlych 20.03.19 15:14 Сейчас в теме
(12) в смысле разберись, где какая область макета должна быть
13. LOTR 20.03.19 15:14 Сейчас в теме
(11)Поясните, я может не правильно понял
16. singlych 20.03.19 15:16 Сейчас в теме
(13) Ты считаешь, что у тебя в ОбластьМакета область "Шапка", а там на самом деле "Данные".
17. LOTR 20.03.19 15:19 Сейчас в теме
(16)в ШапкеТаблице в этой области мои параметры месяца
18. LOTR 20.03.19 15:19 Сейчас в теме
(16)я ведь получил ее, затем использовал
19. singlych 20.03.19 15:21 Сейчас в теме
(18) между этими двумя действиями ты успел получить другую область
20. LOTR 20.03.19 15:27 Сейчас в теме
(19)все равно не пойму как последовательность областей может повлиять на все это
21. singlych 20.03.19 15:30 Сейчас в теме
(20)
А = 0;
А = 1;
Сообщить(А);

что напишет этот код?
22. LOTR 20.03.19 15:58 Сейчас в теме
23. singlych 20.03.19 16:20 Сейчас в теме
(22)
Напиши обработку, выполни, посмотри, выполни в отладке, остановись в каждом шаге, посмотри что находится в А, подумай.
Потом возвращайся к своим областям.
24. LOTR 20.03.19 17:28 Сейчас в теме
(23)Спасибо конечно за гуру совет, но я больше всего думаю что это проблема с периодами, но ни как не с областями
10. LOTR 20.03.19 12:50 Сейчас в теме
сейчас в запросе я обозначил между датами Начало и КонецПериода, вывел только данные ТипДокумента, все остальное пустое
15. LOTR 20.03.19 15:16 Сейчас в теме
в ШапкеТаблице в этой области мои параметры месяца
25. Bukaska 140 22.03.19 14:41 Сейчас в теме
ОбластьМакета=Макет.ПолучитьОбласть("Данные");
ТабДок.Вывести(ОбластьМакета);


Последняя строка лишняя. Или я совсем нуль.

В моем понятии получили область, сделали нужные данные, вывели данные в макет и так далее. По очереди каждую область макета.
А вы получили область данных, таб док вывести(). А далее даете запрос. Для какой области? По ходу для этой же. Вот после запроса вывод данных в макет будет как-то более правильным.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот