Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 15:27

Доработка ВПФ

Автор sashasasha89, 06 фев 2016, 06:08

0 Пользователей и 1 гость просматривают эту тему.

sashasasha89

Здравствуйте. Не судите строка только начинаю изучать 1с. Во внешнию печатную форму нужно добавить дополнительный реквизит. Макет подправил. Ссылку на реквизит нашел. Но не получается его подтянуть. Пожалуйста подскажите? http://i75.fastpic.ru/big/2016/0205/f7/01ef687765ae09600c9e1d1b1cd3e8f7.jpg

sashasasha89

Необходимо добавить Договор в печатную форму.

cska-fanat-kz

могу ошибаться, но СсылкаНаОбъект - это для ВПФ для обычного приложения (для 10.3 и т.д.).
текущий печатаемый документ сидит в МассивОбъектов
вот из него и надо получать реквизиты
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

sashasasha89

Так?
Функция Печать() Экспорт
   перем КоллекцияПечатныхФорм;
   
   МассивОбъектов =новый массив;
   МассивОбъектов.Добавить(СсылкаНаОбъект);
   ОбъектыПечати =Неопределено;
   ТабДок = СформироватьПечатнуюФормуУПД(МассивОбъектов,ОбъектыПечати, Неопределено, );
   УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "УПДдляИП", "УПД для ИП", ТабДок);
   Возврат ТабДок;
КонецФункции

cska-fanat-kz

Нет.
Массив объектов "приходит снаружи".
Я практически не занимаюсь ВПФ для управляемого приложения, поэтому фиг знает, как там что устроено.
Главное что вы дорабатываете уже существующую ВПФ - разве нельзя посмотреть как там обращаются к реквизитам документа?
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

sashasasha89

Так я с этого и начал. Пока что то не как поэтому и обратился за подсказкой к знающим людям.
Добавлено: 06 фев 2016, 14:57


Сейчас провел эксперимент: вместо
ПараметрыШапки.Вставить("Договор", "Договор: "  + ДанныеПечати.Договор);
заменил на
ПараметрыШапки.Вставить("Договор", "Договор: "  + ДанныеПечати.Основание);
и основание в печатную форму подтянулось.

Добавлено: 06 фев 2016, 15:06


Не правильно написал.
Сейчас провел эксперимент: вместо
ПараметрыШапки.Вставить("Договор", "Договор: "  + СсылкаНаОбъект.Договор);
заменил на
ПараметрыШапки.Вставить("Договор", "Договор: "  + ДанныеПечати.Основание);
и основание в печатную форму подтянулось.
Добавлено: 06 фев 2016, 15:18


Так же Дату подтягивает. Через один реквизит работает. Хотя когда в табло делаешь то там все подтягиваются.
ПараметрыШапки.Вставить("Договор", "Договор: " + СсылкаНаОбъект.Дата);

sashasasha89

Как я понимаю у меня управляемая форма. Я СсылкаНаОбъект используется в обычных формах. Подскажите как можно вытащить значения реквизита? Как вытащить через массив?
Другие реквизиты вытаскиваются так:
ПараметрыШапки.Вставить("ПредставлениеПокупателя", "Покупатель: "
      + ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПокупателе, "ПолноеНаименование", Ложь));

В ФормированиеПечатныхФорм есть код для договора:

Функция ПредставлениеОбъектаПечати(ДанныеПолучателя,ПреобразовыватьПредставлениеДокумента = Ложь)
   
   ТипСсылки = ТипЗнч(ДанныеПолучателя.СсылкаНаОбъектПечати);
   
   Если ТипСсылки = Тип("СправочникСсылка.ДоговорыКонтрагентов") Тогда
      Возврат НСтр("ru = 'Договор'") + " '" +  ДанныеПолучателя.ПредставлениеОбъектаПечати + "'";
   ИначеЕсли ТипСсылки = Тип("СправочникСсылка.СоглашенияСКлиентами") Тогда
      Возврат НСтр("ru = 'Соглашение с клиентом'") + " '" +  ДанныеПолучателя.ПредставлениеОбъектаПечати + "'";
   ИначеЕсли ТипСсылки = Тип("СправочникСсылка.СделкиСКлиентами") Тогда
      Возврат НСтр("ru = 'Сделка с клиентом'") + " '" +  ДанныеПолучателя.ПредставлениеОбъектаПечати + "'";
   ИначеЕсли ТипСсылки = Тип("СправочникСсылка.Партнеры") Тогда
      Возврат "";
   Иначе
      Если ПреобразовыватьПредставлениеДокумента Тогда
         
         НомерДокумента = ПрефиксацияОбъектовКлиентСервер.ПолучитьНомерНаПечать(ДанныеПолучателя.НомерДокумента, Ложь, Истина);
         ДатаДокумента  = ДанныеПолучателя.ДатаДокумента;
         
         ПредставлениеДокумента = НСтр("ru='%Синоним% №%Номер% от %Дата%'");
         ПредставлениеДокумента = СтрЗаменить(ПредставлениеДокумента, "%Номер%", НомерДокумента);
         ПредставлениеДокумента = СтрЗаменить(ПредставлениеДокумента, "%Дата%", Формат(ДатаДокумента, "ДЛФ=D"));
         ПредставлениеДокумента = СтрЗаменить(ПредставлениеДокумента, "%Синоним%", ДанныеПолучателя.СинонимОбъектаМетаданных);
         Возврат ПредставлениеДокумента;
         
      Иначе
         Возврат ДанныеПолучателя.ПредставлениеОбъектаПечати;
      КонецЕсли;
   КонецЕсли;
   
КонецФункции

, но у меня не получается его вытащить.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск