Печать документа.

1. JaroslavBayev 07.10.14 10:31 Сейчас в теме
1С 8.2 обычные формы. Печать документа Заявка
Если Служба = Справочники.Службы.НайтиПоНаименованию("Учет") тогда
			Запрос = Новый Запрос;
	Запрос.Текст =
	"ВЫБРАТЬ
	|	ЗаявкаАбонентаВидыРабот.ВидРаботы
	|ИЗ
	|	Документ.ЗаявкаАбонента.ВидыРабот КАК ЗаявкаАбонентаВидыРабот
	|ГДЕ
	|	ЗаявкаАбонентаВидыРабот.Ссылка = &Ссылка";
	Запрос.УстановитьПараметр("Ссылка", Ссылка);
		Таб = Новый ТабличныйДокумент;
	Таб.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_Талон";
	Макет = ПолучитьОбщийМакет("Учет");
			Виды = Запрос.Выполнить().Выбрать();
			
			ОбластьТалон = Макет.ПолучитьОбласть("Данные");
			
			ОбластьТалон.Параметры.ЛицевойСчет  = ЛицевойСчет.Номер;
			ОбластьТалон.Параметры.Номер = Номер;
			ОбластьТалон.Параметры.ДатаВизита = ДатаВизита;
			ОбластьТалон.Параметры.НаселенныйПункт =НаселенныйПункт.НаименованиеНаселенногоПунка;
			ОбластьТалон.Параметры.Район = Район.Наименование;
			ОбластьТалон.Параметры.Улица = Улица.Наименование;
			ОбластьТалон.Параметры.Дом = Дом.Наименование;
			ОбластьТалон.Параметры.НомерКвартиры = ЛицевойСчет.Квартира;
			ОбластьТалон.Параметры.Абонент = ЛицевойСчет.Квартиросъемщик;
			ОбластьТалон.Параметры.КонтактныйТелефон = КонтактныйТелефон;
			ОбластьТалон.Параметры.ДополнительныйТелефон=ДополнительныйТелефон;
			Таб.Вывести(ОбластьТалон);
			Пока Виды.Следующий() Цикл
				ОбластьТалон = Макет.ПолучитьОбласть("ВидыРабот");
				ОбластьТалон.Параметры.Виды = Виды;
				Таб.Вывести(ОбластьТалон);
			КонецЦикла;	
			ОбластьТалон = Макет.ПолучитьОбласть("Подвал");
			ОбластьТалон.Параметры.Примечание =Примечание;
			Таб.Вывести(ОбластьТалон);			
	Таб.Показать();	
Показать

При попытке печатать ругается:{Документ.ЗаявкаАбонента.Форма.ФормаДокумента.Форма(179)}: Значение не является значением объектного типа (Параметры) ОбластьТалон.Параметры.ЛицевойСчет = ЛицевойСчет.Номер;
При этом в режиме отладки если перевести курсор на строку значение показывает. Что не так?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Salavat 13 07.10.14 10:33 Сейчас в теме
(1) JaroslavBayev, галочка "останавливаться на ошибке" - поможет.
5. JaroslavBayev 07.10.14 11:07 Сейчас в теме
(2) Salavat, помогает: останавливаемся на строке: ОбластьТалон.Параметры.ЛицевойСчет = ЛицевойСчет.Номер;
16. Salavat 13 07.10.14 12:10 Сейчас в теме
(5) JaroslavBayev, да не - это естественно.
забыл сказать - в Табло надо вывести переменные - ОбластьТалон, ОбластьТалон.Параметры, ЛицевойСчет, ЛицевойСчет.Номер (ну и др. - можно). И снова с галочкой запустить.
после остановки - посмотреть в табло - что там в переменных.
3. Boneman 298 07.10.14 10:38 Сейчас в теме
(1) JaroslavBayev, значение есть в переменной.
А в самом макете, в области "Данные" - есть параметр ЛицевойСчет ?
6. JaroslavBayev 07.10.14 11:09 Сейчас в теме
(3) Boneman, в том-то и дело, что есть.
8. AlexInqMetal 77 07.10.14 11:12 Сейчас в теме
(6) JaroslavBayev, скиньте скрин макета
4. AlexInqMetal 77 07.10.14 10:42 Сейчас в теме
Не может найти область "Данные", орфографическая ошибка наверно
7. foxey 4 07.10.14 11:10 Сейчас в теме
В самом макете есть параметр "Лицевой счет"?
9. JaroslavBayev 07.10.14 11:13 Сейчас в теме
(7) foxey, да эта же обработка, но переделанная под печать из списка идет на ура:
Процедура ОсновныеДействияФормыОсновныеДействияФормыВыполнить(Кнопка)
			Если Служба = Справочники.Службы.НайтиПоНаименованию("Учет") тогда
			Запрос = Новый Запрос;
	Запрос.Текст =
	"ВЫБРАТЬ
	|	ЗаявкаАбонентаВидыРабот.ВидРаботы
	|ИЗ
	|	Документ.ЗаявкаАбонента.ВидыРабот КАК ЗаявкаАбонентаВидыРабот
	|ГДЕ
	|	ЗаявкаАбонентаВидыРабот.Ссылка = &Документ";
	Таб = Новый ТабличныйДокумент;
	Таб.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_Талон";
	Макет = ПолучитьОбщийМакет("Учет");
	КоличествоТалонов=0;
	Для каждого Строка из Таблица Цикл
		Если Строка.Печать = Истина тогда
			КоличествоТалонов =КоличествоТалонов+1;
			Запрос.УстановитьПараметр("Документ", Строка.Документ);
			Виды = Запрос.Выполнить().Выбрать();
			
			ОбластьТалон = Макет.ПолучитьОбласть("Данные");
			
			ОбластьТалон.Параметры.ЛицевойСчет  = Строка.ЛицевойСчет;
			ОбластьТалон.Параметры.Номер = Строка.Номер;
			ОбластьТалон.Параметры.ДатаВизита = Строка.ДатаВизита;
			ОбластьТалон.Параметры.НаселенныйПункт =Строка.НаселенныйПункт;
			ОбластьТалон.Параметры.Район = Строка.Район;
			ОбластьТалон.Параметры.Улица = Строка.Улица;
			ОбластьТалон.Параметры.Дом = Строка.Дом;
			ОбластьТалон.Параметры.НомерКвартиры = Строка.НомерКвартиры;
			ОбластьТалон.Параметры.Абонент = Строка.Абонент;
			ОбластьТалон.Параметры.КонтактныйТелефон = Строка.КонтактныйТелефон;
			ОбластьТалон.Параметры.ДополнительныйТелефон= Строка.ДополнительныйТелефон;
			Таб.Вывести(ОбластьТалон);
			Пока Виды.Следующий() Цикл
				ОбластьТалон = Макет.ПолучитьОбласть("ВидыРабот");
				ОбластьТалон.Параметры.Виды = Виды;
				Таб.Вывести(ОбластьТалон);
			КонецЦикла;	
			ОбластьТалон = Макет.ПолучитьОбласть("Подвал");
			ОбластьТалон.Параметры.Примечание = Строка.Примечание;
			Таб.Вывести(ОбластьТалон);
			Если КоличествоТалонов = 2 тогда
				Таб.ВывестиГоризонтальныйРазделительСтраниц();
				КоличествоТалонов =0;
			КонецЕсли;
			//Таб.ОтображатьСетку = Ложь;
			//Таб.ОтображатьЗаголовки = Ложь;
		КонецЕсли;
		КонецЦикла;	
	Таб.Показать();	
Показать
10. foxey 4 07.10.14 11:14 Сейчас в теме
            ОбластьТалон.Параметры.Дом = Дом.Наименование;
            ОбластьТалон.Параметры.НомерКвартиры = ЛицевойСчет.Квартира;

А ничего, что Дом берется из одного источника, а квартира - из другого? Нет ли путаницы и с номером лицевого счета?
12. JaroslavBayev 07.10.14 11:24 Сейчас в теме
(10) foxey, не может быть путаницы. т.к. справочник ЛицевойСчет из которого берется и счет и квартира принадлежит справочнику Дома.
11. JaroslavBayev 07.10.14 11:16 Сейчас в теме
Собственно сам макет.
Прикрепленные файлы:
13. AlexInqMetal 77 07.10.14 11:26 Сейчас в теме
(11) JaroslavBayev, на скрине секций макета не видно. Код из (9) и (1) работает с одним и тем же макетом без изменений?
14. JaroslavBayev 07.10.14 11:28 Сейчас в теме
(13) AlexInqMetal, да, с одним и тем же.
15. JaroslavBayev 07.10.14 11:30 Сейчас в теме
(14) JaroslavBayev,
Прикрепленные файлы:
17. JaroslavBayev 07.10.14 12:48 Сейчас в теме
ОбластьТалон выдает неопределенно, хотя в обработке так же...
18. JaroslavBayev 07.10.14 13:03 Сейчас в теме
А вот если так кидать в Табло то получается еще интереснее: ОбластьТалон = Макет.ПолучитьОбласть("Данные") Ложь Булево
Причем в обоих обработках.
19. JaroslavBayev 07.10.14 14:29 Сейчас в теме
Все сам же и разобрался,я неправильно обращался к реквизитам документа, сам дурак...
Правильно так:
Процедура ПечатьНажатие(Элемент)Экспорт
		Если Служба = Справочники.Службы.НайтиПоНаименованию("Учет")    тогда
			Запрос = Новый Запрос;
	Запрос.Текст =
	"ВЫБРАТЬ
	|	ЗаявкаАбонентаВидыРабот.ВидРаботы как Виды
	|ИЗ
	|	Документ.ЗаявкаАбонента.ВидыРабот КАК ЗаявкаАбонентаВидыРабот
	|ГДЕ
	|	ЗаявкаАбонентаВидыРабот.Ссылка = &Документ";
	Таб = Новый ТабличныйДокумент;
	Таб.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_Талон";
	Макет = ПолучитьОбщийМакет("Учет");
	Запрос.УстановитьПараметр("Документ", ЭтаФорма.ДокументОбъект.Ссылка);
			Виды = Запрос.Выполнить().Выбрать();
			
			ОбластьТалон = Макет.ПолучитьОбласть("Данные");
			
			ОбластьТалон.Параметры.ЛицевойСчет  = ЭтаФорма.ЛС;
			ОбластьТалон.Параметры.Номер = ЭтаФорма.ДокументОбъект.Номер;
			ОбластьТалон.Параметры.ДатаВизита =ЭтаФорма.ДокументОбъект.ДатаВизита ;
			ОбластьТалон.Параметры.НаселенныйПункт =ЭтаФорма.ДокументОбъект.НаселенныйПункт;
			ОбластьТалон.Параметры.Район = ЭтаФорма.ДокументОбъект.Район;
			ОбластьТалон.Параметры.Улица = ЭтаФорма.ДокументОбъект.Улица;
			ОбластьТалон.Параметры.Дом = ЭтаФорма.ДокументОбъект.Дом;
			ОбластьТалон.Параметры.НомерКвартиры = ЭтаФорма.ДокументОбъект.ЛицевойСчет.Квартира;
			ОбластьТалон.Параметры.Абонент = ЭтаФорма.ДокументОбъект.Абонент;
			ОбластьТалон.Параметры.КонтактныйТелефон = ЭтаФорма.ДокументОбъект.КонтактныйТелефон;
			ОбластьТалон.Параметры.ДополнительныйТелефон= ЭтаФорма.ДокументОбъект.ДополнительныйТелефон;
			Таб.Вывести(ОбластьТалон);
			Пока Виды.Следующий() Цикл
				ОбластьТалон = Макет.ПолучитьОбласть("ВидыРабот");
				ОбластьТалон.Параметры.Виды = Виды.Виды;
				Таб.Вывести(ОбластьТалон);
			КонецЦикла;	
			ОбластьТалон = Макет.ПолучитьОбласть("Подвал");
			ОбластьТалон.Параметры.Примечание =ЭтаФорма.ДокументОбъект.Примечание;
			Таб.Вывести(ОбластьТалон);
				Таб.Показать();	
	Иначе 	
	Запрос = Новый Запрос;
	Запрос.Текст =
	"ВЫБРАТЬ
	|	ЗаявкаАбонентаВидыРабот.ВидРаботы как Виды,
	|	ЗаявкаАбонентаВидыРабот.ТипРабот как Работы,
	|	ЗаявкаАбонентаВидыРабот.ТипОборудования как Оборуд,
	|	ЗаявкаАбонентаВидыРабот.Материал как Материал
	|ИЗ
	|	Документ.ЗаявкаАбонента.ВидыРабот КАК ЗаявкаАбонентаВидыРабот
	|ГДЕ
	|	ЗаявкаАбонентаВидыРабот.Ссылка = &Документ";
	Таб = Новый ТабличныйДокумент;
	Таб.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_Талон";
	Макет = ПолучитьОбщийМакет("Талон");
				Запрос.УстановитьПараметр("Документ", ЭтаФорма.ДокументОбъект.Ссылка);
			Виды = Запрос.Выполнить().Выбрать();
			
			ОбластьТалон = Макет.ПолучитьОбласть("Данные");

			ОбластьТалон.Параметры.ЛицевойСчет  = ЭтаФорма.ЛС;
			ОбластьТалон.Параметры.Номер = ЭтаФорма.ДокументОбъект.Номер;
			ОбластьТалон.Параметры.ДатаВизита =ЭтаФорма.ДокументОбъект.ДатаВизита ;
			ОбластьТалон.Параметры.НаселенныйПункт =ЭтаФорма.ДокументОбъект.НаселенныйПункт;
			ОбластьТалон.Параметры.Район = ЭтаФорма.ДокументОбъект.Район;
			ОбластьТалон.Параметры.Улица = ЭтаФорма.ДокументОбъект.Улица;
			ОбластьТалон.Параметры.Дом = ЭтаФорма.ДокументОбъект.Дом;
			ОбластьТалон.Параметры.НомерКвартиры = ЭтаФорма.ДокументОбъект.ЛицевойСчет.Квартира;
			ОбластьТалон.Параметры.Абонент = ЭтаФорма.ДокументОбъект.Абонент;
			ОбластьТалон.Параметры.КонтактныйТелефон = ЭтаФорма.ДокументОбъект.КонтактныйТелефон;
			ОбластьТалон.Параметры.ДополнительныйТелефон= ЭтаФорма.ДокументОбъект.ДополнительныйТелефон;
			Таб.Вывести(ОбластьТалон);
			Пока Виды.Следующий() Цикл
				ОбластьТалон = Макет.ПолучитьОбласть("ВидыРабот");
				ОбластьТалон.Параметры.ТипРаб=Виды.Работы;
				ОбластьТалон.Параметры.ТипОб=Виды.Оборуд;
				ОбластьТалон.Параметры.Вид=Виды.Виды;
				ОбластьТалон.Параметры.Материал=Виды.Материал;
				Таб.Вывести(ОбластьТалон);
			КонецЦикла;	
			ОбластьТалон = Макет.ПолучитьОбласть("Подвал");
			ОбластьТалон.Параметры.Примечание = ЭтаФорма.ДокументОбъект.Примечание;
			Таб.Вывести(ОбластьТалон);
				Таб.Показать();
	КонецЕсли;

	КонецПроцедуры




Показать
20. foxey 4 08.10.14 11:46 Сейчас в теме
Ну вот... Все-таки с источником данных путаница и произошла.
Оставьте свое сообщение

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