Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
25 Май 2018, 02:18
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Внешная печатная форма в 8.2 - нужна помощь  (Прочитано 11254 раз)

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

Оффлайн Pett

  • *
  • Сообщений: 8
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-03-24
  • Сайт: 
  • Профессия: Программист 7.7
В БП (2.0.19.9) на платформе 8.2.13.202  написала ВПФ для док-та "Реализация товаров  услуг". Реквизит "СсылкаНаОбъект" - есть, тип - правильный. В модуле написала следующий код:
++++++++
Перем мВалютаРегламентированногоУчета Экспорт;
Функция Печать()Экспорт
    Перем ЗапросШапка, Шапка, ЗапросУслуги, ТаблицаУслуги;
   Перем ТабДокумент, Курс, Кратность,Макет, ОбластьМакета;
   мВалютаРегламентированногоУчета   = Константы.ВалютаРегламентированногоУчета.Получить();
   ЭтотОбъект = СсылкаНаОбъект;
   ЗапросШапка = Новый Запрос;
   ЗапросШапка.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект);
   ЗапросШапка.Текст =
   "ВЫБРАТЬ
   |   Номер,
   |   Дата,
   |   ДоговорКонтрагента,
   |   ДоговорКонтрагента.РасчетыВУсловныхЕдиницах КАК РасчетыВУсловныхЕдиницах,
   |   Контрагент КАК Получатель,
   |   Организация КАК Поставщик,
   |   Организация,
   |   СуммаДокумента,
   |   ВалютаДокумента,
   |   УчитыватьНДС,
   |   СуммаВключаетНДС
   |ИЗ
   |   Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
   |
   |ГДЕ
   |   РеализацияТоваровУслуг.Ссылка = &ТекущийДокумент";
   Шапка = ЗапросШапка.Выполнить().Выбрать();
   Шапка.Следующий();

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

   ОбластьМакета = Макет.ПолучитьОбласть("Заголовок");
   ОбластьМакета.Параметры.ТекстЗаголовка = ОбщегоНазначения.СформироватьЗаголовокДокумента(Шапка, "Акт");
   ТабДокумент.Вывести(ОбластьМакета);

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

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

   ЕстьСкидки = Ложь;

   // Вывести табличную часть
   ОбластьМакета = Макет.ПолучитьОбласть("ШапкаТаблицы");
   ОбластьСтроки = Макет.ПолучитьОбласть("Строка");

   ТабДокумент.Вывести(ОбластьМакета);
   НомерСтроки = 0;

   Для Каждого СтрокаТабличнойЧасти Из ТаблицаУслуги Цикл

      НомерСтроки = НомерСтроки + 1;
      
      ОбластьСтроки.Параметры.Заполнить(СтрокаТабличнойЧасти);
      ОбластьСтроки.Параметры.НомерСтроки = НомерСтроки;
        ОбластьСтроки.Параметры.Товар = СокрЛП(СтрокаТабличнойЧасти.Товар);
      
      Если Шапка.ВалютаДокумента <> мВалютаРегламентированногоУчета Тогда
         ОбластьСтроки.Параметры.Цена  = СтрокаТабличнойЧасти.Сумма / ?(СтрокаТабличнойЧасти.Количество = 0, 1, СтрокаТабличнойЧасти.Количество);
      КонецЕсли;
      
      ТабДокумент.Вывести(ОбластьСтроки);

   КонецЦикла;

   Если ТаблицаУслуги <> Неопределено Тогда

      Сумма    = ТаблицаУслуги.Итог("Сумма");
      СуммаНДС = ТаблицаУслуги.Итог("СуммаНДС");

   Иначе

      Сумма    = 0;
      СуммаНДС = 0;

   КонецЕсли;

   ОбластьМакета = Макет.ПолучитьОбласть("Итого");
   ОбластьМакета.Параметры.Всего = ОбщегоНазначения.ФорматСумм(Сумма);
   ТабДокумент.Вывести(ОбластьМакета);

   Если Шапка.УчитыватьНДС Тогда

      ОбластьМакета = Макет.ПолучитьОбласть("ИтогоНДС");
      
      Если СуммаНДС <> 0 Тогда
         ОбластьМакета.Параметры.ВсегоНДС = ОбщегоНазначения.ФорматСумм(СуммаНДС);
         ОбластьМакета.Параметры.НДС      = ?(Шапка.СуммаВключаетНДС, "В том числе НДС", " Сумма НДС");
      Иначе
         ОбластьМакета.Параметры.ВсегоНДС = "-";
         ОбластьМакета.Параметры.НДС      = "Без налога (НДС)";
      КонецЕсли;
      
      ТабДокумент.Вывести(ОбластьМакета);

   КонецЕсли;

   СуммаКПрописи = Сумма + ?(Шапка.СуммаВключаетНДС, 0, СуммаНДС);
   ОбластьМакета = Макет.ПолучитьОбласть("СуммаПрописью");
   ОбластьМакета.Параметры.ИтоговаяСтрока ="Всего оказано услуг " + НомерСтроки
                                          + ", на сумму " + ОбщегоНазначения.ФорматСумм(СуммаКПрописи, мВалютаРегламентированногоУчета);
   ОбластьМакета.Параметры.СуммаПрописью  = ОбщегоНазначения.СформироватьСуммуПрописью(СуммаКПрописи, мВалютаРегламентированногоУчета);
   ТабДокумент.Вывести(ОбластьМакета);

   ОбластьМакета = Макет.ПолучитьОбласть("Подписи");
   ТабДокумент.Вывести(ОбластьМакета);

   Возврат ТабДокумент;

КонецФункции // Печать()
++++++++
Не работает, пишет "Метод объекта не обнаружен (Печать)"



Оффлайн Makifka

  • **
  • Сообщений: 81
  • РЕПУТАЦИЯ: 23
  • КПД: 28%
  • Регистрация: 2010-08-13
  • Сайт: 
  • Профессия: Программист 1С
а саму внешнюю форму можно приложить файлом? то есть вы считаете, что запросы у вас написаны правильно? или мы до них пока не дошли? вы за основу брали функцию Печать() с какого модуля типовой конфигурации ?

Оффлайн Makifka

  • **
  • Сообщений: 81
  • РЕПУТАЦИЯ: 23
  • КПД: 28%
  • Регистрация: 2010-08-13
  • Сайт: 
  • Профессия: Программист 1С
вы её подключили и не не работает, или через файл->открыть... не работает?

Оффлайн Pett

  • *
  • Сообщений: 8
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-03-24
  • Сайт: 
  • Профессия: Программист 7.7
ВПФ создала в конфигураторе, в модуль этого объекта скопировала функцию "ПечатьАктаОбОказанииУслуг()" из модуля документа "РеализацияТоваровУслуг", исправила ЭтотОбъект на СсылкаНаОбъект, объявила необходимые переменные, макет пока не исправляла. Сохранила, подключила в "Предприятии". При открытии док-та Реализация товаров и услуг, в списке печатных форм (принажатие на кнопку Печать) - моя форма есть, но при её выборе из списка программа выдает сообщение "Метод объекта не обнаружен (Печать)". А через файл->открыть... по-моему работать не должно, ведь не определена СсылкаНаОбъект

Оффлайн has

  • Модератор
  • *****
  • Сообщений: 1310
  • РЕПУТАЦИЯ: 285
  • КПД: 22%
  • Регистрация: 2011-01-28
  • Сайт: 
  • Профессия: Программист 1С
А в каком месте ошибка вылазит? Модуль, строка?

Оффлайн Pett

  • *
  • Сообщений: 8
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-03-24
  • Сайт: 
  • Профессия: Программист 7.7
А в каком месте ошибка вылазит? Модуль, строка?
Сообщение об ошибке  появляется, когда в "Предприятии" из док-та "Реализация товаров и услуг" пользователь выбирает подключенную мною печатную форму

Оффлайн has

  • Модератор
  • *****
  • Сообщений: 1310
  • РЕПУТАЦИЯ: 285
  • КПД: 22%
  • Регистрация: 2011-01-28
  • Сайт: 
  • Профессия: Программист 1С
Сообщение об ошибке  появляется, когда в "Предприятии" из док-та "Реализация товаров и услуг" пользователь выбирает подключенную мною печатную форму
Это я понял, строку не указывает чтоли в какой ошибка? Вобще отладчик в руки и вперед

Оффлайн Pett

  • *
  • Сообщений: 8
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-03-24
  • Сайт: 
  • Профессия: Программист 7.7
Номер строки не указывает,пишет только "Не удалось сформировать внешнюю печатную форму! Метод объекта не обнаружен (Печать)", а внешнюю печ.форму под отладчиком не пройдёшь. Если бы можно было это сделать, то ошибку бы давно нашла

Оффлайн has

  • Модератор
  • *****
  • Сообщений: 1310
  • РЕПУТАЦИЯ: 285
  • КПД: 22%
  • Регистрация: 2011-01-28
  • Сайт: 
  • Профессия: Программист 1С
а внешнюю печ.форму под отладчиком не пройдёшь.
да ну?)))
Общий модуль - Универсальные механизмы. Процедура "Напечатать внешнюю форму". Ставим точку останова на ТабДокумент = Обработка.Печать();
И тут попадаем в процедуру Печать() внешней печатной формы

Оффлайн Pett

  • *
  • Сообщений: 8
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-03-24
  • Сайт: 
  • Профессия: Программист 7.7
Сейчас попробую


Теги:
 

УТ 11.3 форма "УправлениеЭквайринговымТерминалом"

Автор skelaРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 238
Последний ответ 09 Фев 2018, 21:23
от Геннадий ОбьГЭС
Форма "Взнос наличными в банк" где она :)

Автор lefantiy_94Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 5
Просмотров: 5541
Последний ответ 30 Июн 2015, 03:50
от lefantiy_94
Вопрос по УНФ (форма "Задание на работу")

Автор tantonyРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 622
Последний ответ 22 Июн 2017, 18:22
от tantony
Как программно вызывать обработчик ПриИзменении поля табличной части после того, как форма была заполнена программно?

Автор ИстребительРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 6
Просмотров: 5482
Последний ответ 27 Июл 2015, 06:21
от cska-fanat-kz
Для объекта не определена форма по умолчанию, соответствующая текущему режиму запуска. Объект: "Консоль Запросов"

Автор Азамат ХубиевРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 14
Просмотров: 7875
Последний ответ 20 Июл 2016, 22:56
от Азамат Хубиев

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
161 Сообщений
alex0402
74 Сообщений
oleg-x
67 Сообщений
AIFrame AIFrame
60 Сообщений
buketov.av buketov.av
47 Сообщений
wise wise
39 Сообщений
ilyay ilyay
39 Сообщений
Анюта17
33 Сообщений
KOI8-R
32 Сообщений
Alter
30 Сообщений

* Кто онлайн

  • Точка Гостей: 183
  • Точка Скрытых: 0
  • Точка Пользователей: 1
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal