Печатная форма

Новая тема
"У док.ВозвратПоставщику сделали печатную форму(далее ПФ) АКТ.
Задача. У ПФ есть параметр "ДокументОснование" в этот параметр при печати передаются реквизиты:
- НомерВходящегоДокумента;
- ДатаВходящегоДокумента;

А т.к. я вношу товары в ТЧ док.ВозвратПоставщику товары с разными док..
Мне надо при печати ПФ, чтоб в строке передавались (- НомерВходящегоДокумента;
- ДатаВходящегоДокумента) разных док.ПоступленияТовара.

Подскажите как это сделать. Нашла в ПФ строку которая выводит параметр ДокументОснование

Для Каждого Строка Из СсылкаНаОбъект.Товары Цикл

Строка.ДокументПоступления.НомерВходящегоДокумента;
Строка.ДокументПоступления.ДатаВходящегоДокумента;

Страница1.Параметры.ДокументОснование   = ?(СсылкаНаОбъект.Товары[0].ДокументПоступления <> Неопределено,"Товарная накладная № " + СсылкаНаОбъект.Товары[0].ДокументПоступления.НомерВходящегоДокумента + " от " + Формат(СсылкаНаОбъект.Товары[0].ДокументПоступления.ДатаВходящегоДокумента, "ДФ=dd.MM.yyyy"), """");

КонецЦикла;

Выдает ошибку.
{ВнешняяОбработка.ВозвратТоваровПоставщикуТОРГ2(83,54)}: Неопознанный оператор
Строка.ДокументПоступления.НомерВходящегоДокумента<>;
{ВнешняяОбработка.ВозвратТоваровПоставщикуТОРГ2(84,53)}: Неопознанный оператор
Строка.ДокументПоступления.ДатаВходящегоДокумента<>;

Подскажите как исправить ошибку?


"
"По хорошему надо проверить не только есть документ или нет, но и есть у него реквизит или нет.
Кстати СсылкаНаОбъект.Товары[0].ДокументПоступления может быть пустой ссылкой.
И еще вопрос - зачем цикл, если реально делаете через СсылкаНаОбъект.Товары[0]???

Функция ПолучитьСтрокуОснования (ДокОсн)
Если Не ЗначениеЗаполнено (ДокОсн) Тогда Возврат """"; КонецЕсли;
МД = ДокОсн.Метаданные();
Если (МД.Реквизиты.Найти("НомерВходящегоДокумента") <> Неопределено) И
(МД.Реквизиты.Найти("ДатаВходящегоДокумента")<> Неопределено) Тогда
Возврат "Товарная накладная № "+ДокОсн.НомерВходящегоДокумента + " от " +
Формат(ДокОсн.ДатаВходящегоДокумента, "ДФ=dd.MM.yyyy");
Иначе
Возврат """";
КонецЕсли;
Возврат """";
КонецФункции

А уже в вашей строке написать так:
Страница1.Параметры.ДокументОснование = ПолучитьСтрокуОснования (СсылкаНаОбъект.Товары[0].ДокументПоступления);
"
Вы наверное меня не правильно поняли. У вас есть эл.ящик я Вам в картинках отправлю
Курсы программистов.
"А не проще было подсказать(((
Вот как надо это делать...
//muv
Стр = """";
Для Каждого ТекСтрока Из СсылкаНаОбъект.Товары Цикл
       НомерВх = Строка(ТекСтрока.ДокументПоступления.НомерВходящегоДокумента);
Если (Стр = """") Тогда
Стр = Стр + НомерВх + " от " + Формат(ТекСтрока.ДокументПоступления.ДатаВходящегоДокумента, "ДФ=dd.MM.yyyy");
Иначе
Стр = Стр + ", " + НомерВх + " от " + Формат(ТекСтрока.ДокументПоступления.ДатаВходящегоДокумента, "ДФ=dd.MM.yyyy");
КонецЕсли;
//ТекСтрока.ДокументПоступления.ДатаВходящегоДокумента;
КонецЦикла;
// Страница1.Параметры.ДокументОснование   = ?(СсылкаНаОбъект.Товары[0].ДокументПоступления <> Неопределено,"Товарная накладная № " + СсылкаНаОбъект.Товары[0].ДокументПоступления.НомерВходящегоДокумента + " от " + Формат(СсылкаНаОбъект.Товары[0].ДокументПоступления.ДатаВходящегоДокумента, "ДФ=dd.MM.yyyy"), """");
Страница1.Параметры.ДокументОснование = Стр;
//muv

Мне нужны советы по кодированию, а не то что мне надо идти на курсы((((("
Этот код предполагает, что в табличной части "Товары" только одна строка?
Если да, то зачем тогда цикл, если нет, то почему вместо "ТекСтрока" данные для вывода в печ.форму берутся из "СсылкаНаОбъект.Товары[0]", т.е. только из первой строки?
А вообще данные для печати надо запросом выбирать.

З.Ы. Иди на курсы программистов! :)
Советую посмотреть, какие типы принимает ДокументПоступления. И для каждого проверить наличие реквизитов шапки ДатаВходящегоДокумента и НомерВходящегоДокумента. А то однажды поймаете ошибку.
К тому же сравнение на Неопределено не всегда удачно. Пустая ссылка тоже "<> Неопределено", но нужны ли вам пустые значения? Лучше используйте ЗначениеЗаполнено (...).
Читают тему
(гостей: 1)

Быстрый переход