Здравствуйте Все.
Потихоньку продвигаюсь в пришивании Гарантийника к стандартной торговле. Добился вывода строк с наименованиями товара, однако, СрокГарантии не печатается. Он просто не берётся из характеристики товара, хотя цихры там присутствуют.
Выставляю на суд зрителей исправленный (под мои нужды) код
//Формирует табличный документ
Функция Печать() Экспорт
ТабДокумент = Новый ТабличныйДокумент;
ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_РеализацияТоваровУслуг_ГарантийныйТалон";
ТипДокумента = "РеализацияТоваровУслуг";
//Определим тип документа
Если ТипЗнч(СсылкаНаОбъект) = ТипЗнч(Документы.РасходныйОрдерНаТовары.ПустаяСсылка()) Тогда
ТипДокумента = "РасходныйОрдерНаТовары";
КонецЕсли;
Если ТипЗнч(СсылкаНаОбъект) = ТипЗнч(Документы.ЧекККМ.ПустаяСсылка()) Тогда
ТипДокумента = "ЧекККМ";
КонецЕсли;
//Получим шапку документа
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| Товары.Номенклатура Как Номенклатура,
| Товары.ХарактеристикаНоменклатуры Как ХарактеристикаНоменклатуры,
| СерийныеНомера.СерийныйНомер Как СерийныйНомер,
| Товары.СерияНоменклатуры Как СерияНоменклатуры,
| ЗначенияСвойствОбъектов.Значение КАК СрокГарантии,
| Товары.Ссылка.Ссылка Как Ссылка,
| Товары.Ссылка.Номер Как Номер,
| Товары.Ссылка.Дата Как Дата,
| Товары.Ссылка.Ответственный Как Ответственный
|ИЗ
| Документ.РеализацияТоваровУслуг.Товары КАК Товары
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.СерийныеНомера КАК СерийныеНомера
| ПО Товары.КлючСвязи = СерийныеНомера.КлючСвязи И Товары.Ссылка = СерийныеНомера.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
| ПО (ЗначенияСвойствОбъектов.Свойство = ЗНАЧЕНИЕ(ПланВидовХарактеристик.СвойстваОбъектов.СрокГарантии))
| И Товары.Номенклатура = ЗначенияСвойствОбъектов.Объект
|ГДЕ
| Товары.Ссылка = &Ссылка";
Запрос.Текст = СтрЗаменить(Запрос.Текст, "РеализацияТоваровУслуг", ТипДокумента);
Запрос.УстановитьПараметр("Ссылка", СсылкаНаОбъект);
Товары = Запрос.Выполнить().Выгрузить();
Если Товары.Количество() = 0 Тогда Возврат ТабДокумент; КонецЕсли;
Заголовок = Товары[0];
Макет = ПолучитьМакет("ГарантийныйТалон");
// Выводим логотип
ОбластьМакета = Макет.ПолучитьОбласть("Логотип");
Организация = СсылкаНаОбъект.Организация;
Счет = Организация.ОсновнойБанковскийСчет;
ОбластьМакета.Параметры.Организация = Организация.НаименованиеПолное;
РеквизитыОрганизации = "ИНН " + Организация.ИНН +
", КПП " + Организация.КПП +
", ОГРН " + Организация.ОГРН +
", р/с " + Счет.НомерСчета +
" в " + Счет.Банк +
", к/с " + Счет.Банк.КоррСчет +
", БИК " + Счет.Банк.Код;
//", тел " + Организация.НомерТелефона +
//", телы " + Организация.Телефоны;
ОбластьМакета.Параметры.РеквизитыОрганизации = РеквизитыОрганизации;
ТабДокумент.Вывести(ОбластьМакета);
// Выводим заголовок
ОбластьМакета = Макет.ПолучитьОбласть("Заголовок");
ОбластьМакета.Параметры.Заполнить(Заголовок);
ОбластьМакета.Параметры.Дата = Формат(Заголовок.Дата,"ДЛФ=DD");
ТабДокумент.Вывести(ОбластьМакета);
// Выводим шапку таблицы
ОбластьМакета = Макет.ПолучитьОбласть("ШапкаТаблицы");
ТабДокумент.Вывести(ОбластьМакета);
// Выводим строки
НомерСтроки = 1;
Для Каждого Строка Из Товары Цикл
//Если НЕ ЗначениеЗаполнено(Строка.СерийныйНомер) И НЕ ЗначениеЗаполнено(Строка.СерияНоменклатуры) Тогда
// Сообщить("Для номенклатуры " + Строка.Номенклатура + " " + Строка.ХарактеристикаНоменклатуры + "не указан серийный номер." );
// Продолжить;
//КонецЕсли;
// Если СокрЛП(Строка.СрокГарантии) = "" Тогда
// Сообщить("Для номенклатуры " + Строка.Номенклатура + " " + Строка.ХарактеристикаНоменклатуры + "не указан срок гарантии." );
// Продолжить;
// КонецЕсли;
ОбластьМакета = Макет.ПолучитьОбласть("Строка");
ОбластьМакета.Параметры.Заполнить(Строка);
Если ЗначениеЗаполнено(Строка.СерияНоменклатуры) Тогда
ОбластьМакета.Параметры.СерийныйНомер = Строка.СерияНоменклатуры;
КонецЕсли;
ОбластьМакета.Параметры.НомерСтроки = НомерСтроки;
// ОбластьМакета.Параметры.Номенклатура = Номенклатура;
// ОбластьМакета.Параметры.СрокГарантии = СрокГарантии;
ТабДокумент.Вывести(ОбластьМакета);
НомерСтроки = НомерСтроки + 1;
КонецЦикла;
// ОбластьМакета = Макет.ПолучитьОбласть("Подпись");
// ОбластьМакета.Параметры.Заполнить(Заголовок);
// ОбластьМакета.Параметры.Ответственный = ПараметрыСеанса.ТекущийПользователь;
// ТабДокумент.Вывести(ОбластьМакета);
// ОбластьМакета = Макет.ПолучитьОбласть("Адрес");
// ТабДокумент.Вывести(ОбластьМакета);
ОбластьМакета = Макет.ПолучитьОбласть("Условия");
ТабДокумент.Вывести(ОбластьМакета);
Возврат ТабДокумент;
КонецФункции
Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
// Вставить содержимое обработчика.
КонецПроцедуры
Показать