Внешняя печатная форма бгу 2 (Путевой лист легкового автомобиля)
1С:Бухгалтерия государственного учреждения
Платформа 1С v8.3
Государственные, бюджетные структуры
Бюджетный учет
Внешний отчет (ert,erf)
Подскажите как добавить Дату Рождения Водителя во внешнюю печатную форму:
Функция ПечатьПутевогоЛиста(МассивОбъектов, ОбъектыПечати)
ТабличныйДокумент = Новый ТабличныйДокумент;
ТабличныйДокумент.ИмяПараметровПечати = "ПараметрыПечати_ПутевойЛист3";
Макет = ПолучитьМакет("ПФ_MXL_Форма0345001_ДР");
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ПутевойЛист3.Ссылка КАК Ссылка,
| ПутевойЛист3.Номер КАК НомерПутевогоЛиста,
| ПутевойЛист3.Дата КАК ДатаПутевогоЛиста,
| ПутевойЛист3.СерияПутевогоЛиста КАК СерияПутевогоЛиста,
| ПутевойЛист3.Организация КАК Организация,
| ВЫРАЗИТЬ(ПутевойЛист3.Организация КАК Справочник.Организации).ОГРН КАК ОГРН,
| ВЫРАЗИТЬ(ПутевойЛист3.Организация КАК Справочник.Организации).НаименованиеСокращенное КАК СокращенноеНаименованиеОрганизации,
| ПутевойЛист3.ТранспортноеСредство КАК ТранспортноеСредство,
| ПутевойЛист3.Водитель КАК Водитель,
| ПутевойЛист3.ЛицензионнаяКарточка КАК ЛицензионнаяКарточка,
| ВЫРАЗИТЬ(ПутевойЛист3.Организация КАК Справочник.Организации).КодОКПО КАК КодОКПО,
| ВЫРАЗИТЬ(ПутевойЛист3.Организация КАК Справочник.Организации).НаименованиеПолное КАК НаименованиеОрганизации,
| ВЫРАЗИТЬ(ПутевойЛист3.ЛицензионнаяКарточка КАК Справочник.ЛицензионныеКарточки).РегистрационныйНомер КАК РегистрационныйНомерЛК,
| ВЫРАЗИТЬ(ПутевойЛист3.ЛицензионнаяКарточка КАК Справочник.ЛицензионныеКарточки).СерияКарточки КАК СерияЛК,
| ВЫРАЗИТЬ(ПутевойЛист3.ЛицензионнаяКарточка КАК Справочник.ЛицензионныеКарточки).НомерКарточки КАК НомерЛК,
| ВЫРАЗИТЬ(ПутевойЛист3.Водитель КАК Справочник.Сотрудники).Код КАК ТабельныйНомер,
| ПутевойЛист3.ВРаспоряжениеНаименование КАК ВРаспоряжениеНаименование,
| ПутевойЛист3.ВРаспоряжениеОрганизация КАК ВРаспоряжениеОрганизация,
| ПутевойЛист3.АдресПодачи КАК АдресПодачи,
| ПутевойЛист3.ПоказанияСпидометраПриВыезде КАК ПоказанияСпидометраПриВыезде,
| ПутевойЛист3.ПоказанияСпидометраПриВозвращении КАК ПоказанияСпидометраПриВозвращении,
| ПутевойЛист3.ВыпускающийТСДиспетчерНарядчик КАК ВыпускающийТСДиспетчерНарядчик,
| ПутевойЛист3.ПринимающийТСДиспетчерНарядчик КАК ПринимающийТСДиспетчерНарядчик,
| ПутевойЛист3.ВыездРазрешилМеханик КАК ВыездРазрешилМеханик,
| ПутевойЛист3.ПринялТСМеханик КАК ПринялТСМеханик,
| ПутевойЛист3.ВодительПринялТС КАК ВодительПринялТС,
| ПутевойЛист3.ВодительСдалТС КАК ВодительСдалТС,
| ПутевойЛист3.ВремяВыездаТС КАК ВремяВыездаТС,
| ПутевойЛист3.ВремяВозвращенияТС КАК ВремяВозвращенияТС,
| ПутевойЛист3.ОпозданияОжиданияПростои КАК ОпозданияОжиданияПростои,
| ПутевойЛист3.РезультатРаботыТСВсегоВремя КАК РезультатРаботыТСВсегоВремя,
| ПутевойЛист3.РезультатРаботыТСВсегоПробег КАК РезультатРаботыТСВсегоПробег,
| ПутевойЛист3.РасчетЗаработнойПлатыЗаКилометраж КАК РасчетЗаработнойПлатыЗаКилометраж,
| ПутевойЛист3.РасчетЗаработнойПлатыЗаЧасы КАК РасчетЗаработнойПлатыЗаЧасы,
| ПутевойЛист3.РасчетчикПутевогоЛиста КАК РасчетчикПутевогоЛиста,
| ПутевойЛист3.РегистрационныйНомернойЗнак КАК ГосударственныйНомернойЗнак,
| ПутевойЛист3.ГаражныйНомер КАК ГаражныйНомер,
| ПутевойЛист3.МаршрутДвижения.(
| Ссылка КАК Ссылка,
| НомерСтроки КАК НомерСтроки,
| КодЗаказчика КАК КодЗаказчика,
| МестоОтправления КАК МестоОтправления,
| МестоНазначения КАК МестоНазначения,
| ВремяВыезда КАК ВремяВыездаНаМаршрут,
| ВремяВозвращения КАК ВремяВозвращенияСМаршрута,
| ПройденоКилометров КАК ПройденоКилометров,
| Примечание КАК Примечание
| ) КАК МаршрутДвижения,
| ПутевойЛист3.СрокДействия КАК СрокДействия,
| ПутевойЛист3.ДвижениеГорючего.(
| Ссылка КАК Ссылка,
| НомерСтроки КАК НомерСтроки,
| ВидГСМ КАК ВидГСМ,
| МаркаГорючего КАК МаркаГорючего,
| КодМаркиГорючего КАК КодМаркиГорючего,
| ЕдиницаИзмеренияГорючего КАК ЕдиницаИзмеренияГорючего,
| ВыданоГорючее КАК ВыданоГорючее,
| НомерЗаправочногоЛиста КАК НомерЗаправочногоЛиста,
| ОстатокГорючегоПриВыезде КАК ОстатокГорючегоПриВыезде,
| ОстатокГорючегоПриВозвращении КАК ОстатокГорючегоПриВозвращении,
| ФактическийРасходГорючего КАК ФактическийРасходГорючего,
| НормативныйРасходГорючего КАК НормативныйРасходГорючего
| ) КАК ДвижениеГорючего
|ИЗ
| Документ.ПутевойЛист3 КАК ПутевойЛист3
|ГДЕ
| ПутевойЛист3.Ссылка В(&МассивОбъектов)
|
|УПОРЯДОЧИТЬ ПО
| ДатаПутевогоЛиста,
| НомерПутевогоЛиста,
| СерияПутевогоЛиста";
Запрос.УстановитьПараметр("МассивОбъектов", МассивОбъектов);
Результат = Запрос.Выполнить();
ВыборкаДокументов = Результат.Выбрать();
ТабличныйДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Портрет;
ТабличныйДокумент.ИмяПараметровПечати = "ПФ_MXL_Форма0345001_ДР";
ТабличныйДокумент.Автомасштаб = Истина;
ПервыйДокумент = Истина;
Пока ВыборкаДокументов.Следующий() Цикл
Если Не ПервыйДокумент Тогда
ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;
ПервыйДокумент = Ложь;
НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1;
СтруктураДанных = Новый Структура;
Для Каждого Колонка ИЗ Результат.Колонки Цикл
СтруктураДанных.Вставить(Колонка.Имя, ВыборкаДокументов[Колонка.Имя]);
КонецЦикла;
//---изменение представления данных в печатной форме----------------
АдресОрганизации = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияОбъекта(ВыборкаДокументов.Организация,
Справочники.ВидыКонтактнойИнформации.ЮрАдресОрганизации);
ТелефонОрганизации = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияОбъекта(ВыборкаДокументов.Организация,
Справочники.ВидыКонтактнойИнформации.ТелефонОрганизации);
СтруктураДанных.Вставить("НаименованиеОрганизации", СтруктураДанных.НаименованиеОрганизации);
СтруктураДанных.Вставить("СокращенноеНаименованиеОрганизации", СтруктураДанных.СокращенноеНаименованиеОрганизации);
СтруктураДанных.Вставить("ОГРН", СтруктураДанных.ОГРН);
СтруктураДанных.Вставить("АдресОрганизации", АдресОрганизации);
СтруктураДанных.Вставить("ТелефонОрганизации", ТелефонОрганизации);
СтруктураДанных.Вставить("НаименованиеОрганизацииАдресТелефон", СтруктураДанных.НаименованиеОрганизации+", "+ВыборкаДокументов.ОГРН+", "+АдресОрганизации+", "+ТелефонОрганизации);
СтруктураДанных.Вставить("СрокДействияПутевогоЛиста", УчетГСМ.СрокДействияПутевогоЛиста(СтруктураДанных.ДатаПутевогоЛиста, СтруктураДанных.СрокДействия));
СтруктураДанных.Вставить("МаркаАвтомобиля", УчетГСМ.ПолучитьМаркуТС(СтруктураДанных.ТранспортноеСредство));
ДанныеСотрудника = Новый Структура("СсылкаНаОбъект, Период, Фамилия, Имя, Отчество", СтруктураДанных.ВыездРазрешилМеханик, СтруктураДанных.ДатаПутевогоЛиста);
Справочники.Сотрудники.ПолучитьДанныеСотрудника(ДанныеСотрудника, Истина);
СтруктураДанных.Вставить("МеханикВыпустилТСИнициалыФамилия", КорреспондентыКлиентСервер.ФИО(ДанныеСотрудника, Истина));
ДанныеСотрудника = Новый Структура("СсылкаНаОбъект, Период, Фамилия, Имя, Отчество", СтруктураДанных.ПринялТСМеханик, СтруктураДанных.ДатаПутевогоЛиста);
Справочники.Сотрудники.ПолучитьДанныеСотрудника(ДанныеСотрудника, Истина);
СтруктураДанных.Вставить("МеханикПринялТСИнициалыФамилия", КорреспондентыКлиентСервер.ФИО(ДанныеСотрудника, Истина));
ДанныеСотрудника = Новый Структура("СсылкаНаОбъект, Период, Фамилия, Имя, Отчество", СтруктураДанных.ВыпускающийТСДиспетчерНарядчик, СтруктураДанных.ДатаПутевогоЛиста);
Справочники.Сотрудники.ПолучитьДанныеСотрудника(ДанныеСотрудника, Истина);
СтруктураДанных.Вставить("ДиспетчерВыпустилТСИнициалыФамилия", КорреспондентыКлиентСервер.ФИО(ДанныеСотрудника, Истина));
ДанныеСотрудника = Новый Структура("СсылкаНаОбъект, Период, Фамилия, Имя, Отчество", СтруктураДанных.ПринимающийТСДиспетчерНарядчик, СтруктураДанных.ДатаПутевогоЛиста);
Справочники.Сотрудники.ПолучитьДанныеСотрудника(ДанныеСотрудника, Истина);
СтруктураДанных.Вставить("ДиспетчерВпустилТСИнициалыФамилия", КорреспондентыКлиентСервер.ФИО(ДанныеСотрудника, Истина));
ДанныеСотрудника = Новый Структура("СсылкаНаОбъект, Период, Фамилия, Имя, Отчество", СтруктураДанных.ВодительПринялТС, СтруктураДанных.ДатаПутевогоЛиста);
Справочники.Сотрудники.ПолучитьДанныеСотрудника(ДанныеСотрудника, Истина);
СтруктураДанных.Вставить("ВодительПринялТСИнициалыФамилия", КорреспондентыКлиентСервер.ФИО(ДанныеСотрудника, Истина));
ДанныеСотрудника = Новый Структура("СсылкаНаОбъект, Период, Фамилия, Имя, Отчество", СтруктураДанных.ВодительСдалТС, СтруктураДанных.ДатаПутевогоЛиста);
Справочники.Сотрудники.ПолучитьДанныеСотрудника(ДанныеСотрудника, Истина);
СтруктураДанных.Вставить("ВодительСдалТСИнициалыФамилия", КорреспондентыКлиентСервер.ФИО(ДанныеСотрудника, Истина));
СтруктураДанных.Вставить("ВремяВыезда", Формат(СтруктураДанных.ВремяВыездаТС,"ДФ=""ЧЧ:мм"""));
СтруктураДанных.Вставить("ВремяВозвращения", Формат(СтруктураДанных.ВремяВозвращенияТС,"ДФ=""ЧЧ:мм"""));
СтруктураДанных.Вставить("СтандартнаяКарточка", "стандартная, ");
СтруктураДанных.Вставить("ОграниченнаяКарточка", "ограниченная");
//движение горючего
ВыборкаСтрокДвижениеГорючего = ВыборкаДокументов.ДвижениеГорючего.Выбрать();
Пока ВыборкаСтрокДвижениеГорючего.Следующий() Цикл
СтруктураДанных.Вставить("МаркаГорючего", ВыборкаСтрокДвижениеГорючего.МаркаГорючего);
СтруктураДанных.Вставить("КодМаркиГорючего", ВыборкаСтрокДвижениеГорючего.КодМаркиГорючего);
СтруктураДанных.Вставить("ВыданоГорючее", ВыборкаСтрокДвижениеГорючего.ВыданоГорючее);
СтруктураДанных.Вставить("НомерЗаправочногоЛиста", ВыборкаСтрокДвижениеГорючего.НомерЗаправочногоЛиста);
СтруктураДанных.Вставить("ОстатокГорючегоПриВыезде", ВыборкаСтрокДвижениеГорючего.ОстатокГорючегоПриВыезде);
СтруктураДанных.Вставить("ОстатокГорючегоПриВозвращении", ВыборкаСтрокДвижениеГорючего.ОстатокГорючегоПриВозвращении);
СтруктураДанных.Вставить("ФактическийРасходГорючего", ВыборкаСтрокДвижениеГорючего.ФактическийРасходГорючего);
СтруктураДанных.Вставить("НормативныйРасходГорючего", ВыборкаСтрокДвижениеГорючего.НормативныйРасходГорючего);
ЭкономияПерерасход = ВыборкаСтрокДвижениеГорючего.НормативныйРасходГорючего - ВыборкаСтрокДвижениеГорючего.ФактическийРасходГорючего;
Если ЭкономияПерерасход<0 Тогда
СтруктураДанных.Вставить("Перерасход", (-1)*ЭкономияПерерасход);
СтруктураДанных.Вставить("Экономия", 0);
Иначе
СтруктураДанных.Вставить("Перерасход", 0);
СтруктураДанных.Вставить("Экономия", ЭкономияПерерасход);
КонецЕсли;
Прервать;
КонецЦикла;
СтруктураДанных.Вставить("РасчетнаяСуммаОплатыВсего", СтруктураДанных.РасчетЗаработнойПлатыЗаКилометраж + СтруктураДанных.РасчетЗаработнойПлатыЗаЧасы);
ДанныеСотрудника = Новый Структура("СсылкаНаОбъект, Период, Фамилия, Имя, Отчество, Должность ", СтруктураДанных.РасчетчикПутевогоЛиста, СтруктураДанных.ДатаПутевогоЛиста);
Справочники.Сотрудники.ПолучитьДанныеСотрудника(ДанныеСотрудника, Истина);
СтруктураДанных.Вставить("ДолжностьРасчетчика", ДанныеСотрудника.Должность);
СтруктураДанных.Вставить("ФИОРасчетчика", КорреспондентыКлиентСервер.ФИО(ДанныеСотрудника, Истина));
ДанныеВодителя = УчетГСМ.ПолучитьДанныеВодителя(СтруктураДанных.Водитель, СтруктураДанных.ДатаПутевогоЛиста);
//вывод областей табличного документа
Область = Макет.ПолучитьОбласть("Заголовок");
Область.Параметры.Заполнить(СтруктураДанных);
Область = Макет.ПолучитьОбласть("ОсновныеПараметры");
Область.Параметры.Заполнить(СтруктураДанных);
Область.Параметры.Заполнить(ДанныеВодителя);
ТабличныйДокумент.Вывести(Область);
ЗачеркнутыйШрифт = Новый Шрифт("Arial",10,,,,Истина);
Если ЗначениеЗаполнено(СтруктураДанных.ЛицензионнаяКарточка) Тогда
Если СтруктураДанных.ЛицензионнаяКарточка.ОграниченнаяКарточка Тогда
ТабличныйДокумент.Область("СтандартнаяКарточка").Шрифт = ЗачеркнутыйШрифт;
Иначе
ТабличныйДокумент.Область("ОграниченнаяКарточка").Шрифт = ЗачеркнутыйШрифт;
КонецЕсли;
Иначе
ТабличныйДокумент.Область("СтандартнаяКарточка").Шрифт = ЗачеркнутыйШрифт;
ТабличныйДокумент.Область("ОграниченнаяКарточка").Шрифт = ЗачеркнутыйШрифт;
КонецЕсли;
Область = Макет.ПолучитьОбласть("ЗаданиеВодителю");
Область.Параметры.Заполнить(СтруктураДанных);
ТабличныйДокумент.Вывести(Область);
Если ЗначениеЗаполнено(СтруктураДанных.АдресПодачи) Тогда
Область = Макет.ПолучитьОбласть("АдресПодачи");
Иначе
Область = Макет.ПолучитьОбласть("АдресПодачиНеЗаполнен");
КонецЕсли;
Область.Параметры.Заполнить(СтруктураДанных);
ТабличныйДокумент.Вывести(Область);
Область = Макет.ПолучитьОбласть("ВыездВъезд");
Область.Параметры.Заполнить(СтруктураДанных);
ТабличныйДокумент.Вывести(Область);
Если ЗначениеЗаполнено(СтруктураДанных.ОпозданияОжиданияПростои) Тогда
Область = Макет.ПолучитьОбласть("ОпозданияПростоиЗаполнены");
Иначе
Область = Макет.ПолучитьОбласть("ОпозданияПростои");
КонецЕсли;
Область.Параметры.Заполнить(СтруктураДанных);
ТабличныйДокумент.Вывести(Область);
Область = Макет.ПолучитьОбласть("ПодвалПервойСтраницы");
Область.Параметры.Заполнить(СтруктураДанных);
ТабличныйДокумент.Вывести(Область);
ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
//Оборотная сторона
Область = Макет.ПолучитьОбласть("ЗаголовокОборотнойСтраницы");
ТабличныйДокумент.Вывести(Область);
ВыборкаСтрок = ВыборкаДокументов.МаршрутДвижения.Выбрать();
КоличествоСтрок = ВыборкаСтрок.Количество();
Пока ВыборкаСтрок.Следующий() Цикл
СтруктураДанныхСтроки = Новый Структура;
СтруктураДанныхСтроки.Вставить("ЧасВыезда", Формат(ВыборкаСтрок.ВремяВыездаНаМаршрут,"ДФ=""ЧЧ"""));
СтруктураДанныхСтроки.Вставить("МинутыВыезда", Формат(ВыборкаСтрок.ВремяВыездаНаМаршрут,"ДФ=""мм"""));
СтруктураДанныхСтроки.Вставить("ЧасВозвращения", Формат(ВыборкаСтрок.ВремяВозвращенияСМаршрута,"ДФ=""ЧЧ"""));
СтруктураДанныхСтроки.Вставить("МинутыВозвращения", Формат(ВыборкаСтрок.ВремяВозвращенияСМаршрута,"ДФ=""мм"""));
Область = Макет.ПолучитьОбласть("СтрокаМаршрутаДвижения");
Область.Параметры.Заполнить(ВыборкаСтрок);
Область.Параметры.Заполнить(СтруктураДанныхСтроки);
ТабличныйДокумент.Вывести(Область);
КонецЦикла;
Если КоличествоСтрок < 26 Тогда
Область = Макет.ПолучитьОбласть("СтрокаМаршрутаДвижения");
Для н = 1 По (26-КоличествоСтрок) Цикл
ТабличныйДокумент.Вывести(Область);
КонецЦикла;
КонецЕсли;
Область = Макет.ПолучитьОбласть("ПодвалОборотнойСтороны");
Область.Параметры.Заполнить(СтруктураДанных);
ТабличныйДокумент.Вывести(Область);
// В табличном документе зададим имя области, в которую был
// выведен объект. Нужно для возможности печати покомплектно.
УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент,
НомерСтрокиНачало, ОбъектыПечати, ВыборкаДокументов.Ссылка);
КонецЦикла;
Возврат ТабличныйДокумент;
КонецФункции
ПоказатьПо теме из базы знаний
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
В документе ПутевойЛист3 реквизит водитель, это ссылка на справочник физические лица?
В справочнике физические лица есть реквизит дата рождения?
В запросе:
....
| ПутевойЛист3.Водитель КАК Водитель,
| ПутевойЛист3.Водитель.ДатаРождения КАК ВодительДатаРождения,
...
В макете печатной формы есть реквизит "ВодительДатаРождения"?
Если есть то этот кусок его заполнит:
Область = Макет.ПолучитьОбласть("ОсновныеПараметры");
Область.Параметры.Заполнить(СтруктураДанных);
Область.Параметры.Заполнить(ДанныеВодителя);
Или чуть подробнее надо посмотреть и добавить в ДанныеВодителя его дату рождения.
В справочнике физические лица есть реквизит дата рождения?
В запросе:
....
| ПутевойЛист3.Водитель КАК Водитель,
| ПутевойЛист3.Водитель.ДатаРождения КАК ВодительДатаРождения,
...
В макете печатной формы есть реквизит "ВодительДатаРождения"?
Если есть то этот кусок его заполнит:
Область = Макет.ПолучитьОбласть("ОсновныеПараметры");
Область.Параметры.Заполнить(СтруктураДанных);
Область.Параметры.Заполнить(ДанныеВодителя);
Или чуть подробнее надо посмотреть и добавить в ДанныеВодителя его дату рождения.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот