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

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

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

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

Оффлайн Pett

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

Оффлайн has

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

Оффлайн Pett

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

Оффлайн has

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

Оффлайн Pett

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


Теги:
 

Форма "Взнос наличными в банк" где она :)

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

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

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

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

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

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

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

Ответов: 14
Просмотров: 6376
Последний ответ 20 Июл 2016, 22:56
от Азамат Хубиев
Шаблон или Форма для заполнения "заказа покупателя"

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

Ответов: 5
Просмотров: 6591
Последний ответ 02 Сен 2013, 14:22
от LordWizard

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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
184 Сообщений
ilyay ilyay
75 Сообщений
oleg-x
51 Сообщений
alex0402
50 Сообщений
andron81_81
40 Сообщений
AIFrame
37 Сообщений
MuI_I_Ika MuI_I_Ika
34 Сообщений
BuhRust
30 Сообщений
Golickoff Golickoff
29 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal