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

Автор Тема: Внешняя печатная форма с формой в 8.3  (Прочитано 19407 раз)

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

Оффлайн lolozhiga

  • *
  • Сообщений: 12
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2013-06-21
  • Сайт: 
  • Профессия: Консультант 1С
Помогите с формой. Есть код:
 &НаКлиенте
Процедура ПечатьК(ТабДокумент,Команда)
Печать(ТабДокумент);
КонецПроцедуры

&НаСервере
Процедура Печать(ТабДокумент)
ПечатьАкта(ТабДокумент)  ;
ТабДокумент.Показать();
КонецПроцедуры

&НаСервере
Функция ПечатьАкта(ТабДокумент)

Перем ПодразделениеОтветственныхЛиц; 
ТабДокумент = Новый ТабличныйДокумент;
ТабДокумент.ПолеСверху              = 10;
ТабДокумент.ПолеСлева               = 5;
ТабДокумент.ПолеСнизу               = 10;
ТабДокумент.ПолеСправа              = 5;
ТабДокумент.АвтоМасштаб             = Ложь;
ТабДокумент.ОриентацияСтраницы      = ОриентацияСтраницы.Портрет; 
Табдокумент.ОтображатьСетку = Ложь;
ТабДокумент.ОтображатьЗаголовки = Ложь;


//Запрос.УстановитьПараметр("ПустойКонтрагент", Справочники.Контрагенты.ПустаяСсылка());

Запрос = ЗапросНаСервере(); 
Шапка = Запрос.Выполнить().Выбрать();
Шапка.Следующий();
Макет = РеквизитФормыВЗначение("Объект").ПолучитьМакет("ТОРГ2");
 

//СведенияОПокупателе = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛице(Шапка.Покупатель, Шапка.ДатаДокумента);
//СведенияОПоставщике = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛице(Шапка.ЮрФизЛицо,  Шапка.ДатаДокумента);

//Руководители = ОтветственныеЛицаБП.ОтветственныеЛица(Шапка.Руководители, Шапка.ДатаДокумента, ПодразделениеОтветственныхЛиц);
//Руководитель = Руководители.РуководительПредставление;
//Бухгалтер    = Руководители.ГлавныйБухгалтерПредставление;

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


//ТабДокумент.Показать();


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


КонецФункции

&НаСервере
Функция ЗапросНаСервере ()
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("СсылкаНаОбъект", Объект.СсылкаНаОбъект);

Запрос.Текст =

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

КонецФункции

Выдает ошибку:
{Форма.Форма.Форма(168)}: Ошибка при вызове метода контекста (Печать)
   Печать(ТабДокумент);
по причине:
Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.
по причине:
Ошибка преобразования данных XDTO:
Запись значения свойства 'param':
   форма: Элемент
   имя: {http://v8.1c.ru/8.2/managed-application/modules}param
по причине:
Ошибка отображения типов:
Отсутствует отображение для типа 'КомандаФормы'
Как это исправить? Может у кого - нибудь есть простой пример вывода ВПФ с формой? Платформа : 8.3.4.408, Конфигурация: Бухгалтерия предприятия, редакция 3.0 (3.0.29.8), Форма Торг-2.

Последний раз редактировалось: MuI_I_Ika; 18 Фев 2014, 11:53


Оффлайн MuI_I_Ika

  • Гончаров Михаил
  • Администратор
  • *****
  • Сообщений: 6095
  • РЕПУТАЦИЯ: 714
  • КПД: 12%
  • Регистрация: 2012-08-15
    • Skype: MuI_I_Ika
  • Сайт: 
  • Профессия: Программист 1С
Подозреваю что ТабДокумент - это у вас реквизит на форме.

Оффлайн MuI_I_Ika

  • Гончаров Михаил
  • Администратор
  • *****
  • Сообщений: 6095
  • РЕПУТАЦИЯ: 714
  • КПД: 12%
  • Регистрация: 2012-08-15
    • Skype: MuI_I_Ika
  • Сайт: 
  • Профессия: Программист 1С
Вам нужно на клиенте получать табличный документ, а уже потом на основании него заполнять поле на форме.

Оффлайн lolozhiga

  • *
  • Сообщений: 12
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2013-06-21
  • Сайт: 
  • Профессия: Консультант 1С
Подозреваю что ТабДокумент - это у вас реквизит на форме.
На форме у меня только  3 вводимых параметра. Туда я нехочу ничего передовать.
Добавлено: 18 Фев 2014, 17:08

Вам нужно на клиенте получать табличный документ, а уже потом на основании него заполнять поле на форме.
Нет в ланах что-то заполнять на форме! Хочу получить из запроса данные и из формы, вводимые вручную и ими уже заполнять печатную форму.

Оффлайн MuI_I_Ika

  • Гончаров Михаил
  • Администратор
  • *****
  • Сообщений: 6095
  • РЕПУТАЦИЯ: 714
  • КПД: 12%
  • Регистрация: 2012-08-15
    • Skype: MuI_I_Ika
  • Сайт: 
  • Профессия: Программист 1С
Тогда что такое ТабДокумент для формы?

Оффлайн lolozhiga

  • *
  • Сообщений: 12
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2013-06-21
  • Сайт: 
  • Профессия: Консультант 1С
Тогда что такое ТабДокумент для формы?
Переделала. Убрала ТабДокумент. Теперь выглядит так:

&НаКлиенте
Процедура ПечатьК(Команда,МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода)
   Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);
КонецПроцедуры

&НаСервере
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
   КоллекцияПечатныхФорм     = УправлениеПечатью.ПодготовитьКоллекциюПечатныхФорм("ТОРГ2");
   Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ТОРГ2") Тогда
      УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ТОРГ2", "ТОРГ2",
      ПечатьАкта()) ;
   КонецЕсли
КонецПроцедуры
 Ошибка:
{Форма.Форма.Форма(168)}: Ошибка при вызове метода контекста (Печать)
   Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);
по причине:
Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.
по причине:
Ошибка преобразования данных XDTO:
НачалоСвойства: param   Форма: Элемент   Тип: {http://www.w3.org/2001/XMLSchema}anyType
по причине:
Ошибка отображения типов:
Отсутствует отображение для типа '{http://v8.1c.ru/8.1/data/core}ValueTable'

Оффлайн MuI_I_Ika

  • Гончаров Михаил
  • Администратор
  • *****
  • Сообщений: 6095
  • РЕПУТАЦИЯ: 714
  • КПД: 12%
  • Регистрация: 2012-08-15
    • Skype: MuI_I_Ika
  • Сайт: 
  • Профессия: Программист 1С
По порядку какие типы у реквизитов?

МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода

Оффлайн lolozhiga

  • *
  • Сообщений: 12
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2013-06-21
  • Сайт: 
  • Профессия: Консультант 1С
По порядку какие типы у реквизитов?

МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода
Убрала эти реквизиты. Получилось так:

&НаКлиенте
Процедура ПечатьК(Команда,СсылкаНаДок, ТабДок, ЗаголовокТабДок)
   Печать(СсылкаНаДок, ТабДок, ЗаголовокТабДок);
КонецПроцедуры

&НаСервере
Процедура Печать(СсылкаНаДок, ТабДок, ЗаголовокТабДок) Экспорт
   Массив=Новый Массив;
   Массив.Добавить(СсылкаНаДок);
   
   КоллекцияПечатныхФорм=Новый ТаблицаЗначений;
   КоллекцияПечатныхФорм.Колонки.Добавить("ИмяВРЕГ");
   КоллекцияПечатныхФорм.Колонки.Добавить("ИмяМакета");
   КоллекцияПечатныхФорм.Колонки.Добавить("Картинка");
   КоллекцияПечатныхФорм.Колонки.Добавить("ПолныйПутьКМакету");
   КоллекцияПечатныхФорм.Колонки.Добавить("СинонимМакета");
   КоллекцияПечатныхФорм.Колонки.Добавить("ТабличныйДокумент");
   КоллекцияПечатныхФорм.Колонки.Добавить("Экземпляров");
   
   ПечФорма=КоллекцияПечатныхФорм.Добавить();
   ПечФорма.ИмяВРЕГ="ТОРГ2";
   ПечФорма.Экземпляров=1;
   
   ПараметрыОтправки=Новый Структура;
   ПараметрыОтправки.Вставить("Получатель");
   ПараметрыОтправки.Вставить("Текст","");
   ПараметрыОтправки.Вставить("Тема","");
   
   ПараметрыВывода=Новый Структура;
   ПараметрыВывода.Вставить("ДоступнаПечатьПоКомплектно",Ложь);
   ПараметрыВывода.Вставить("ПараметрыОтправки",ПараметрыОтправки);
   
   ОбъектыПечати=Новый СписокЗначений;
   
   ОбъектДляСервера = РеквизитФормыВЗначение("Объект");
   ЗаполнитьЗначенияСвойств(ОбъектДляСервера, Объект);
   
   ОбъектДляСервера.Печать(
   Массив,
   КоллекцияПечатныхФорм,
   ОбъектыПечати,
   ПараметрыВывода
   );
   
   // Проверим, все ли макеты были сформированы
   Для Каждого Стр Из КоллекцияПечатныхФорм Цикл
      Если Стр.ТабличныйДокумент = Неопределено Тогда
         ТекстСообщенияОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
         НСтр("ru = 'В обработчике печати не был сформирован табличный документ для: %1'"),
         Стр.ИмяМакета
         );
         ВызватьИсключение(ТекстСообщенияОбОшибке);
      КонецЕсли;
      
      Стр.ТабличныйДокумент.КоличествоЭкземпляров = Стр.Экземпляров;
   КонецЦикла;
   
   ТабДок=КоллекцияПечатныхФорм[0].ТабличныйДокумент;
   ЗаголовокТабДок=КоллекцияПечатныхФорм[0].СинонимМакета;
   
КонецПроцедуры
 Ошибка:
{Форма.Форма.Форма(208)}: Метод объекта не обнаружен (Печать)
    ОбъектДляСервера.Печать(

Оффлайн Besart

  • *****
  • Сообщений: 676
  • РЕПУТАЦИЯ: 142
  • КПД: 21%
  • Регистрация: 2012-12-10
    • Skype: artfa.a
  • Компания: Фрилансер
  • Профессия: Программист 8.1
процедура Печать() должна быть экспортной, и если вы привели весь код из ВПФ, то этого недостаточно, для конфигураций построенных на БСП, нужен специальный алгоритм технология создания ВПФдля регистрации ВПФ и обработок, почитайте

Оффлайн lolozhiga

  • *
  • Сообщений: 12
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2013-06-21
  • Сайт: 
  • Профессия: Консультант 1С
процедура Печать() должна быть экспортной, и если вы привели весь код из ВПФ, то этого недостаточно, для конфигураций построенных на БСП, нужен специальный алгоритм технология создания ВПФдля регистрации ВПФ и обработок, почитайте
Должна быть, если она в модуле, а если она в форме? Ссылка не открывается. У кого-нибудь есть простой пример?


Теги:
 

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

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

Ответов: 5
Просмотров: 2789
Последний ответ 30 Июн 2015, 03:50
от lefantiy_94
Как программно вызывать обработчик ПриИзменении поля табличной части после того, как форма была заполнена программно?

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

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

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

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

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

Ответов: 5
Просмотров: 5153
Последний ответ 02 Сен 2013, 14:22
от LordWizard
Интерфейс "ТАКСИ". Управляемая форма как вкладка

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

Ответов: 10
Просмотров: 2056
Последний ответ 22 Окт 2015, 08:39
от Luzer1C

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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
171 Сообщений
alex0402
58 Сообщений
MuI_I_Ika MuI_I_Ika
50 Сообщений
crow1983
35 Сообщений
LexaK
32 Сообщений
alexandr_ll
31 Сообщений
sertak sertak
25 Сообщений
Vzonder
22 Сообщений
BuhRust
17 Сообщений
дфтын дфтын
17 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 

Dellos Catering - выездной ресторан кейтеринг по всему Миру
SimplePortal 2.3.5 © 2008-2012, SimplePortal