1С 8.2 обычные формы. Печать документа Заявка
При попытке печатать ругается:{Документ.ЗаявкаАбонента.Форма.ФормаДокумента.Форма(179)}: Значение не является значением объектного типа (Параметры) ОбластьТалон.Параметры.ЛицевойСчет = ЛицевойСчет.Номер;
При этом в режиме отладки если перевести курсор на строку значение показывает. Что не так?
Если Служба = Справочники.Службы.НайтиПоНаименованию("Учет") тогда
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ЗаявкаАбонентаВидыРабот.ВидРаботы
|ИЗ
| Документ.ЗаявкаАбонента.ВидыРабот КАК ЗаявкаАбонентаВидыРабот
|ГДЕ
| ЗаявкаАбонентаВидыРабот.Ссылка = &Ссылка";
Запрос.УстановитьПараметр("Ссылка", Ссылка);
Таб = Новый ТабличныйДокумент;
Таб.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_Талон";
Макет = ПолучитьОбщийМакет("Учет");
Виды = Запрос.Выполнить().Выбрать();
ОбластьТалон = Макет.ПолучитьОбласть("Данные");
ОбластьТалон.Параметры.ЛицевойСчет = ЛицевойСчет.Номер;
ОбластьТалон.Параметры.Номер = Номер;
ОбластьТалон.Параметры.ДатаВизита = ДатаВизита;
ОбластьТалон.Параметры.НаселенныйПункт =НаселенныйПункт.НаименованиеНаселенногоПунка;
ОбластьТалон.Параметры.Район = Район.Наименование;
ОбластьТалон.Параметры.Улица = Улица.Наименование;
ОбластьТалон.Параметры.Дом = Дом.Наименование;
ОбластьТалон.Параметры.НомерКвартиры = ЛицевойСчет.Квартира;
ОбластьТалон.Параметры.Абонент = ЛицевойСчет.Квартиросъемщик;
ОбластьТалон.Параметры.КонтактныйТелефон = КонтактныйТелефон;
ОбластьТалон.Параметры.ДополнительныйТелефон=ДополнительныйТелефон;
Таб.Вывести(ОбластьТалон);
Пока Виды.Следующий() Цикл
ОбластьТалон = Макет.ПолучитьОбласть("ВидыРабот");
ОбластьТалон.Параметры.Виды = Виды;
Таб.Вывести(ОбластьТалон);
КонецЦикла;
ОбластьТалон = Макет.ПолучитьОбласть("Подвал");
ОбластьТалон.Параметры.Примечание =Примечание;
Таб.Вывести(ОбластьТалон);
Таб.Показать();
ПоказатьПри попытке печатать ругается:{Документ.ЗаявкаАбонента.Форма.ФормаДокумента.Форма(179)}: Значение не является значением объектного типа (Параметры) ОбластьТалон.Параметры.ЛицевойСчет = ЛицевойСчет.Номер;
При этом в режиме отладки если перевести курсор на строку значение показывает. Что не так?
По теме из базы знаний
- Печать налоговой накладной и приложения 2 из регламентированной отчетности для Украины
- Печать договоров с приложением
- Печать макета MS Word в любом документе с помощью БСП
- Печать трех цен в ценнике (или на этикетке)
- Печать непроведенных документов для УТ, КА, ERP. Настройка печати по пользователям, документам и печатным формам
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(5) JaroslavBayev, да не - это естественно.
забыл сказать - в Табло надо вывести переменные - ОбластьТалон, ОбластьТалон.Параметры, ЛицевойСчет, ЛицевойСчет.Номер (ну и др. - можно). И снова с галочкой запустить.
после остановки - посмотреть в табло - что там в переменных.
забыл сказать - в Табло надо вывести переменные - ОбластьТалон, ОбластьТалон.Параметры, ЛицевойСчет, ЛицевойСчет.Номер (ну и др. - можно). И снова с галочкой запустить.
после остановки - посмотреть в табло - что там в переменных.
(7) foxey, да эта же обработка, но переделанная под печать из списка идет на ура:
Процедура ОсновныеДействияФормыОсновныеДействияФормыВыполнить(Кнопка)
Если Служба = Справочники.Службы.НайтиПоНаименованию("Учет") тогда
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ЗаявкаАбонентаВидыРабот.ВидРаботы
|ИЗ
| Документ.ЗаявкаАбонента.ВидыРабот КАК ЗаявкаАбонентаВидыРабот
|ГДЕ
| ЗаявкаАбонентаВидыРабот.Ссылка = &Документ";
Таб = Новый ТабличныйДокумент;
Таб.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_Талон";
Макет = ПолучитьОбщийМакет("Учет");
КоличествоТалонов=0;
Для каждого Строка из Таблица Цикл
Если Строка.Печать = Истина тогда
КоличествоТалонов =КоличествоТалонов+1;
Запрос.УстановитьПараметр("Документ", Строка.Документ);
Виды = Запрос.Выполнить().Выбрать();
ОбластьТалон = Макет.ПолучитьОбласть("Данные");
ОбластьТалон.Параметры.ЛицевойСчет = Строка.ЛицевойСчет;
ОбластьТалон.Параметры.Номер = Строка.Номер;
ОбластьТалон.Параметры.ДатаВизита = Строка.ДатаВизита;
ОбластьТалон.Параметры.НаселенныйПункт =Строка.НаселенныйПункт;
ОбластьТалон.Параметры.Район = Строка.Район;
ОбластьТалон.Параметры.Улица = Строка.Улица;
ОбластьТалон.Параметры.Дом = Строка.Дом;
ОбластьТалон.Параметры.НомерКвартиры = Строка.НомерКвартиры;
ОбластьТалон.Параметры.Абонент = Строка.Абонент;
ОбластьТалон.Параметры.КонтактныйТелефон = Строка.КонтактныйТелефон;
ОбластьТалон.Параметры.ДополнительныйТелефон= Строка.ДополнительныйТелефон;
Таб.Вывести(ОбластьТалон);
Пока Виды.Следующий() Цикл
ОбластьТалон = Макет.ПолучитьОбласть("ВидыРабот");
ОбластьТалон.Параметры.Виды = Виды;
Таб.Вывести(ОбластьТалон);
КонецЦикла;
ОбластьТалон = Макет.ПолучитьОбласть("Подвал");
ОбластьТалон.Параметры.Примечание = Строка.Примечание;
Таб.Вывести(ОбластьТалон);
Если КоличествоТалонов = 2 тогда
Таб.ВывестиГоризонтальныйРазделительСтраниц();
КоличествоТалонов =0;
КонецЕсли;
//Таб.ОтображатьСетку = Ложь;
//Таб.ОтображатьЗаголовки = Ложь;
КонецЕсли;
КонецЦикла;
Таб.Показать();
Показать
ОбластьТалон.Параметры.Дом = Дом.Наименование;
ОбластьТалон.Параметры.НомерКвартиры = ЛицевойСчет.Квартира;
А ничего, что Дом берется из одного источника, а квартира - из другого? Нет ли путаницы и с номером лицевого счета?
Все сам же и разобрался,я неправильно обращался к реквизитам документа, сам дурак...
Правильно так:
Правильно так:
Процедура ПечатьНажатие(Элемент)Экспорт
Если Служба = Справочники.Службы.НайтиПоНаименованию("Учет") тогда
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ЗаявкаАбонентаВидыРабот.ВидРаботы как Виды
|ИЗ
| Документ.ЗаявкаАбонента.ВидыРабот КАК ЗаявкаАбонентаВидыРабот
|ГДЕ
| ЗаявкаАбонентаВидыРабот.Ссылка = &Документ";
Таб = Новый ТабличныйДокумент;
Таб.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_Талон";
Макет = ПолучитьОбщийМакет("Учет");
Запрос.УстановитьПараметр("Документ", ЭтаФорма.ДокументОбъект.Ссылка);
Виды = Запрос.Выполнить().Выбрать();
ОбластьТалон = Макет.ПолучитьОбласть("Данные");
ОбластьТалон.Параметры.ЛицевойСчет = ЭтаФорма.ЛС;
ОбластьТалон.Параметры.Номер = ЭтаФорма.ДокументОбъект.Номер;
ОбластьТалон.Параметры.ДатаВизита =ЭтаФорма.ДокументОбъект.ДатаВизита ;
ОбластьТалон.Параметры.НаселенныйПункт =ЭтаФорма.ДокументОбъект.НаселенныйПункт;
ОбластьТалон.Параметры.Район = ЭтаФорма.ДокументОбъект.Район;
ОбластьТалон.Параметры.Улица = ЭтаФорма.ДокументОбъект.Улица;
ОбластьТалон.Параметры.Дом = ЭтаФорма.ДокументОбъект.Дом;
ОбластьТалон.Параметры.НомерКвартиры = ЭтаФорма.ДокументОбъект.ЛицевойСчет.Квартира;
ОбластьТалон.Параметры.Абонент = ЭтаФорма.ДокументОбъект.Абонент;
ОбластьТалон.Параметры.КонтактныйТелефон = ЭтаФорма.ДокументОбъект.КонтактныйТелефон;
ОбластьТалон.Параметры.ДополнительныйТелефон= ЭтаФорма.ДокументОбъект.ДополнительныйТелефон;
Таб.Вывести(ОбластьТалон);
Пока Виды.Следующий() Цикл
ОбластьТалон = Макет.ПолучитьОбласть("ВидыРабот");
ОбластьТалон.Параметры.Виды = Виды.Виды;
Таб.Вывести(ОбластьТалон);
КонецЦикла;
ОбластьТалон = Макет.ПолучитьОбласть("Подвал");
ОбластьТалон.Параметры.Примечание =ЭтаФорма.ДокументОбъект.Примечание;
Таб.Вывести(ОбластьТалон);
Таб.Показать();
Иначе
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ЗаявкаАбонентаВидыРабот.ВидРаботы как Виды,
| ЗаявкаАбонентаВидыРабот.ТипРабот как Работы,
| ЗаявкаАбонентаВидыРабот.ТипОборудования как Оборуд,
| ЗаявкаАбонентаВидыРабот.Материал как Материал
|ИЗ
| Документ.ЗаявкаАбонента.ВидыРабот КАК ЗаявкаАбонентаВидыРабот
|ГДЕ
| ЗаявкаАбонентаВидыРабот.Ссылка = &Документ";
Таб = Новый ТабличныйДокумент;
Таб.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_Талон";
Макет = ПолучитьОбщийМакет("Талон");
Запрос.УстановитьПараметр("Документ", ЭтаФорма.ДокументОбъект.Ссылка);
Виды = Запрос.Выполнить().Выбрать();
ОбластьТалон = Макет.ПолучитьОбласть("Данные");
ОбластьТалон.Параметры.ЛицевойСчет = ЭтаФорма.ЛС;
ОбластьТалон.Параметры.Номер = ЭтаФорма.ДокументОбъект.Номер;
ОбластьТалон.Параметры.ДатаВизита =ЭтаФорма.ДокументОбъект.ДатаВизита ;
ОбластьТалон.Параметры.НаселенныйПункт =ЭтаФорма.ДокументОбъект.НаселенныйПункт;
ОбластьТалон.Параметры.Район = ЭтаФорма.ДокументОбъект.Район;
ОбластьТалон.Параметры.Улица = ЭтаФорма.ДокументОбъект.Улица;
ОбластьТалон.Параметры.Дом = ЭтаФорма.ДокументОбъект.Дом;
ОбластьТалон.Параметры.НомерКвартиры = ЭтаФорма.ДокументОбъект.ЛицевойСчет.Квартира;
ОбластьТалон.Параметры.Абонент = ЭтаФорма.ДокументОбъект.Абонент;
ОбластьТалон.Параметры.КонтактныйТелефон = ЭтаФорма.ДокументОбъект.КонтактныйТелефон;
ОбластьТалон.Параметры.ДополнительныйТелефон= ЭтаФорма.ДокументОбъект.ДополнительныйТелефон;
Таб.Вывести(ОбластьТалон);
Пока Виды.Следующий() Цикл
ОбластьТалон = Макет.ПолучитьОбласть("ВидыРабот");
ОбластьТалон.Параметры.ТипРаб=Виды.Работы;
ОбластьТалон.Параметры.ТипОб=Виды.Оборуд;
ОбластьТалон.Параметры.Вид=Виды.Виды;
ОбластьТалон.Параметры.Материал=Виды.Материал;
Таб.Вывести(ОбластьТалон);
КонецЦикла;
ОбластьТалон = Макет.ПолучитьОбласть("Подвал");
ОбластьТалон.Параметры.Примечание = ЭтаФорма.ДокументОбъект.Примечание;
Таб.Вывести(ОбластьТалон);
Таб.Показать();
КонецЕсли;
КонецПроцедуры
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот