Вывод из макета
#1
Отправлено 19 февраля 2012 - 10:43
Нужно чтобы при условии если есть номер "Доп соглашения" , тогда выводился некий текст (например: НекийТекст <Доп Соглашение>) Как записать это условие, зависяще от того есть номер Доп соглашения или нет и как в макете переменную обозначить с текстом( как задать саму переменную понятно) Спасибо
#2
Отправлено 19 февраля 2012 - 11:58
Если ТипЗнч(Выборка.Документ) = Тип("СправочникСсылка.ДопСоглашения") Тогда Если ЗначениеЗаполнено(Выборка.ДатаДокумента) Тогда ДатаДокумента = "от " + Формат(Выборка.ДатаДокумента, "ДФ=dd.MM.yyyy"); Иначе ДатаДокумента = ""; КонецЕсли; Если ЗначениеЗаполнено(Выборка.Документ.Владелец.Дата) Тогда ДатаДокументаВладельца = "от " + Формат(Выборка.Документ.Владелец.Дата, "ДФ=dd.MM.yyyy") Иначе ДатаДокументаВладельца = ""; КонецЕсли; Если ЗначениеЗаполнено(Выборка.Документ.Владелец.ВидДокумента) Тогда ВидДокумента = СокрЛП(Выборка.Документ.Владелец.ВидДокумента); Иначе ВидДокумента = "Договор"; КонецЕсли; ОбластьДетали.Параметры.Документ = СокрЛП(Выборка.ВидДокумента) + " " + СокрЛП(Выборка.НомерДокумента) + " " + ДатаДокумента + " " + "" "" + "Основной договор: " + ВидДокумента + " " + СокрЛП(Выборка.Документ.Владелец.Номер) + " " + ДатаДокументаВладельца; КонецЕсли;
Сообщение отредактировал nbIpKuH_BaH9I: 19 февраля 2012 - 11:59
#3
Отправлено 19 февраля 2012 - 13:59
#5
Отправлено 19 февраля 2012 - 15:08
#6
Отправлено 19 февраля 2012 - 21:27
Если ЗначениеЗаполнено(ДопСоглашение) Тогда ВашаОбласть.Параметры.Заголовок = "В связи с доп соглашением " + ДопСоглашение; Иначе ВашаОбласть.Параметры.Заголовок = "Доп. соглашение не заполнено"; КонецЕсли;Так понятнее?
Сообщение отредактировал nbIpKuH_BaH9I: 19 февраля 2012 - 21:28
#7
Отправлено 20 февраля 2012 - 06:36
#8
Отправлено 20 февраля 2012 - 07:48
PavelA (20 февраля 2012 - 06:36) писал:
Попытаюсь перефразировать. Если значение Доп. соглашение заполнено, тогда в параметр необходимо записать "В связи с доп. соглашением и т.д.". Если значение Доп. соглашение не заполнено, тогда в параметр необходимо записать "Значение не заполнено". Я понять никак не могу, что именно вам не понятно.
#9
Отправлено 20 февраля 2012 - 18:21
#10
Отправлено 20 февраля 2012 - 21:04
Что конкретно не понятно?
Сообщение отредактировал alexburn: 20 февраля 2012 - 21:05
Но человеком быть обязан!

Если вам помог мой ответ, просьба сказать спасибо вот такой
кнопкой рядом с сообщением.
#11
Отправлено 20 февраля 2012 - 22:07
#12
Отправлено 20 февраля 2012 - 22:11
PavelA (19 февраля 2012 - 10:43) писал:
PavelA (20 февраля 2012 - 22:07) писал:
Сообщение отредактировал nbIpKuH_BaH9I: 20 февраля 2012 - 22:11
#13
Отправлено 20 февраля 2012 - 23:56
#14
Отправлено 21 февраля 2012 - 00:09
что тут не понятного то
Если ЗначениеЗаполнено(ДопСоглашение) Тогда ВашаОбласть.Параметры.Заголовок = "В связи с доп соглашением " + ДопСоглашение; Иначе ВашаОбласть.Параметры.Заголовок = ""; КонецЕсли;
Сообщение отредактировал alexburn: 21 февраля 2012 - 10:02
#16
Отправлено 21 февраля 2012 - 06:58
#20
Отправлено 21 февраля 2012 - 23:31
Функция ПечатьАкта(Док, Парам) ТабДок = Новый ТабличныйДокумент; Макет = Документы.СписокОбъектовПодрядныйДоговор.ПолучитьМакет("МакетНов"); ОбластьШапка = Макет.ПолучитьОбласть("Шапка"); ЗаполнитьЗначенияСвойств(ОбластьШапка.Параметры, Док); ОбластьШапка.Параметры.Год = Год(Док.Дата); ТабДок.Вывести(ОбластьШапка); ОбластьСтрока = Макет.ПолучитьОбласть("Строка"); Запрос = Новый Запрос( "ВЫБРАТЬ | СписокОбъектовПодрядныйДоговорОбъектыСтротельства.Объект.Регион КАК Регион, | СписокОбъектовПодрядныйДоговорОбъектыСтротельства.НомерСтроки, | СписокОбъектовПодрядныйДоговорОбъектыСтротельства.ДлинаПр КАК ДлинаПр, | СписокОбъектовПодрядныйДоговорОбъектыСтротельства.Стоимость КАК Стоимость, | СписокОбъектовПодрядныйДоговорОбъектыСтротельства.ЦенаДог КАК ценадог, | СписокОбъектовПодрядныйДоговорОбъектыСтротельства.СрокНач, | СписокОбъектовПодрядныйДоговорОбъектыСтротельства.СрокКон, | 18 * СписокОбъектовПодрядныйДоговорОбъектыСтротельства.ЦенаДог / 118 КАК СуммаНДСдог, | 18 * СписокОбъектовПодрядныйДоговорОбъектыСтротельства.Стоимость / 118 КАК СуммаНДС, | СписокОбъектовПодрядныйДоговорОбъектыСтротельства.КодСтройки, | СписокОбъектовПодрядныйДоговорОбъектыСтротельства.Объект.ПолноеНаименование КАК Объект |ИЗ | Документ.СписокОбъектовПодрядныйДоговор.ОбъектыСтроительства КАК СписокОбъектовПодрядныйДоговорОбъектыСтротельства |ГДЕ | СписокОбъектовПодрядныйДоговорОбъектыСтротельства.Ссылка = &Ссылка | И (СписокОбъектовПодрядныйДоговорОбъектыСтротельства.Стоимость <> 0 | ИЛИ СписокОбъектовПодрядныйДоговорОбъектыСтротельства.Стоимость = 0 | И НАЧАЛОПЕРИОДА(СписокОбъектовПодрядныйДоговорОбъектыСтротельства.СрокКон, ГОД) >= НАЧАЛОПЕРИОДА(СписокОбъектовПодрядныйДоговорОбъектыСтротельства.Ссылка.Дата, ГОД)) |ИТОГИ | СУММА(ДлинаПр), | СУММА(Стоимость), | СУММА(ценадог), | СУММА(СуммаНДСдог), | СУММА(СуммаНДС) |ПО | ОБЩИЕ, | Регион |АВТОУПОРЯДОЧИВАНИЕ"); Запрос.УстановитьПараметр("Ссылка", Док.Ссылка); ВыборкаОбщ = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Если не ВыборкаОбщ.Следующий() Тогда Возврат ТабДок; КонецЕсли; ОбластьИтого = Макет.ПолучитьОбласть("Итого"); ЗаполнитьЗначенияСвойств(ОбластьИтого.Параметры,ВыборкаОбщ); ОбластьИтогоНДС = Макет.ПолучитьОбласть("ИтогоНДС"); ЗаполнитьЗначенияСвойств(ОбластьИтогоНДС.Параметры,ВыборкаОбщ); ТабДок.Вывести(ОбластьИтого); Если Парам.НДС Тогда ТабДок.Вывести(ОбластьИтогоНДС); КонецЕсли; ВыборкаРегион = ВыборкаОбщ.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Сч=1; Пока ВыборкаРегион.Следующий() Цикл ОбластьРегион = Макет.ПолучитьОбласть("Регион"); ЗаполнитьЗначенияСвойств(ОбластьРегион.Параметры,ВыборкаРегион); ТабДок.Вывести(ОбластьРегион); ВыборкаДетали = ВыборкаРегион.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока ВыборкаДетали.Следующий() Цикл ОбластьСтрока = Макет.ПолучитьОбласть("Строка"); ЗаполнитьЗначенияСвойств(ОбластьСтрока.Параметры,ВыборкаДетали); Если Парам.ЭлДС Тогда ОбластьСтрока.Параметры.Объект = ВыборкаДетали.ЭлементДС; КонецЕсли; ОбластьСтрока.Параметры.СрокНач = ?(Парам.Сроки, Формат(ВыборкаДетали.СрокНач, "ДФ=dd.MM.yyyy"), Формат(ВыборкаДетали.СрокНач, "ДФ=MM.yyyy")); ОбластьСтрока.Параметры.СрокКон = ?(Парам.Сроки, Формат(ВыборкаДетали.СрокКон, "ДФ=dd.MM.yyyy"), Формат(ВыборкаДетали.СрокКон, "ДФ=MM.yyyy")); ОбластьСтрока.Параметры.НомерСтроки = Сч; Сч=Сч+1; ТабДок.Вывести(ОбластьСтрока); КонецЦикла; КонецЦикла; ОбластьПодвал = Макет.ПолучитьОбласть("Подвал"); ОбластьПодвал.Параметры.Организация = Справочники.Организации.НайтиПоКоду("000000001"); ОбластьПодвал.Параметры.Руководитель = Док.Генподрядчик.Руководитель; ОбластьПодвал.Параметры.Генподрядчик = Док.Генподрядчик.ПолноеНаименование; ОбластьПодвал.Параметры.ДолжностьРуководителя = Док.Генподрядчик.ДолжностьРуководителя; ТабДок.Вывести(ОбластьПодвал); Возврат ТабДок; КонецФункции
Сообщение отредактировал alexburn: 22 февраля 2012 - 09:05
#22
Отправлено 22 февраля 2012 - 09:17
Второе. Поле ДопСоглашение вы выводите в Шапке, а реквизиты ДопСоглашение выводятся у вас в ДетальныхЗаписях, таким образом, чтобы выводить то что вы хотите, сначала вам нужно обработать детальные записи, проверить на ваше условие, потом выводить Шапку, и только потом уже детальные записи.
Как вариант, предлагаю вам создать временную ТЗ, в которую вы выгрузите ваши данные из таблицы "Перечень объектов....", потом проверить на выполнение вашего условия, и записать этот результат(условия) в переменную, например ВремДопСоглашение. Потом в коде уже проверять:
ОбластьШапка = Макет.ПолучитьОбласть("Шапка"); ЗаполнитьЗначенияСвойств(ОбластьШапка.Параметры, Док); ОбластьШапка.Параметры.Год = Год(Док.Дата); Если ВремДопСоглашение Тогда ОбластьШапка.Параметры.ДопСоглашение = "ВАШ ТЕКСТ, КОТОРЫЙ НУЖНО ВЫВОДИТЬ"; КонецЕсли; ТабДок.Вывести(ОбластьШапка);Хочу заметить, что переменная ВремДопСоглашение имеет булевый тип (потому как зависит от результата условия).
Ну вроде как-то так.
Но человеком быть обязан!

Если вам помог мой ответ, просьба сказать спасибо вот такой
кнопкой рядом с сообщением.
#23
Отправлено 22 февраля 2012 - 09:24
#24
Отправлено 22 февраля 2012 - 16:09
#25
Отправлено 22 февраля 2012 - 19:22
Или я чего-то не понимаю???
Но человеком быть обязан!

Если вам помог мой ответ, просьба сказать спасибо вот такой
кнопкой рядом с сообщением.
#26
Отправлено 23 февраля 2012 - 11:40
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных










