К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

Делаю сам внешнюю печатную форму

Гость
0 - 24.12.2018 - 16:38
Решил сделать сам, надеюсь на вашу помощь.)
Была у меня внешняя печ. форма для 7.7

сейчас делаю для БП 3.0
форма достаточно простая, удостоверение качества по сути просто табличка с данными.

Получилось создать внешнюю форму,подключить ее.
Не могу только понять как вывести поля, которые были в 7.7, а именно в 7.7 было так:

Покупатель: [?(ПустоеЗначение(Контрагент) = 1, "", глПолноеНаименование(Контрагент) + " " + глПредставлениеАдреса(Контрагент.ЮридическийАдрес) )]

и

[ДатаДок+5 #Д]

как в восьмерке правильно написать?

т.е. мне надо:
1. вывести в шапке Контрагента с юр адресом
2. вывести текущую дату документа + 5 дней и вывести итоговую дату



Гость
1 - 24.12.2018 - 16:43
делать печатную форму для документа РеализацияТоваровУслуг
Гость
2 - 24.12.2018 - 17:26
вот мой код:

Функция СформироватьПечатнуюФорму(СсылкаНаОбъект, ОбъектыПечати)

ТабличныйДокумент = Новый ТабличныйДокумент;
МакетОбработки = ПолучитьМакет("МакетКачественное");

//заполняем шапку
ОбластьШапка = МакетОбработки.ПолучитьОбласть("Шапка");

ОбластьШапка.Параметры.НомерРеализации = СсылкаНаОбъект.Номер;
ОбластьШапка.Параметры.ДатаРеализации = Формат (СсылкаНаОбъект.Дата,"ДФ=dd.MM.yyyy; ДЛФ=DD");
ОбластьШапка.Параметры.Грузополучатель = СсылкаНаОбъект.Грузополучатель;

//выводим шапку в табличный документ
ТабличныйДокумент.Вывести(ОбластьШапка);

//заполняем строки

ОбластьСтроки = МакетОбработки.ПолучитьОбласть("Строка");
ОбластьСтроки.Параметры.ДатаРеализации = Формат (СсылкаНаОбъект.Дата,"ДФ=dd.MM.yy");
ТабличныйДокумент.Вывести(ОбластьСтроки);

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

ТабличныйДокумент.АвтоМасштаб = Истина;

Возврат ТабличныйДокумент;

КонецФункции
Гость
3 - 24.12.2018 - 17:29
Вы уверены что вы для БП 3.0 внешнюю форму делаете?
Гость
4 - 24.12.2018 - 17:41
3-Viking >да, для документа накладной нужно сделать печатную форму с качественный удостоверением (табличка с текстом и датами)
Гость
5 - 24.12.2018 - 17:47
Да не важно для чего, Интересно что используете "СсылкаНаОбъект"... как бы это наследие БП 2.0 и обычных форм. БП 3 на управляемых формах, там это не используется...
--
А контрагента и его реквизиты проще получить штатными средствами

СведенияОПокупателе = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛи це(СведенияОДокументе.Контрагент, СведенияОДокументе.Дата);
ПредставлениеПокупателя = ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации (СведенияОПокупателе, "НаименованиеДляПечатныхФорм, ЮридическийАдрес");
Гость
6 - 24.12.2018 - 17:52
Да, прибавляя к дате имейте ввиду что в 8-ке время прибавляется в секундах.. будет что-то типа СведенияОДокументе.Дата + 5 * 86400 (86400 - количество секунд в сутках)
Гость
7 - 24.12.2018 - 18:21
(0) Дата, в 8-ке, содержит время. Поэтому прибавляй столько секунд, сколько их в 5-и днях, т.е. 432000.
Гость
8 - 24.12.2018 - 18:35
5-Viking >я не кодил на 8-ке, нужно формочку сделать, вот на ютюбе нашел пример создание, поэтому такой код и получился, спасибо за советы буду пробовать
Гость
9 - 24.12.2018 - 19:23
(8)Тогда лучше попробуй для начала сделать ВПФ штатной печатной формы ТОРГ11, СФ или УПД. БП 3.0 так быстро меняется, что лучше не подбирать непонятно что
Гость
10 - 24.12.2018 - 20:50
5-Viking >что-то ошибки выходят в режиме предприятия, может код не там ставлю, не могли бы вы в моем коде указать куда вставить СведенияОПокупателе = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛи це(СведенияОДокументе.Контрагент, СведенияОДокументе.Дата);
ПредставлениеПокупателя = ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации (СведенияОПокупателе, "НаименованиеДляПечатныхФорм, ЮридическийАдрес");

и что вставить в таблице макета? <ПредставлениеПокупателя>?
Гость
11 - 24.12.2018 - 21:12
текст ошибок какой?
Гость
12 - 24.12.2018 - 21:45
11-Viking > если вставить код сюда:

Функция СформироватьПечатнуюФорму(СсылкаНаОбъект, ОбъектыПечати)

ТабличныйДокумент = Новый ТабличныйДокумент;
МакетОбработки = ПолучитьМакет("МакетКачественное");

//заполняем шапку
ОбластьШапка = МакетОбработки.ПолучитьОбласть("Шапка");

ОбластьШапка.Параметры.НомерРеализации = СсылкаНаОбъект.Номер;

ОбластьШапка.Параметры.ДатаРеализации = Формат (СсылкаНаОбъект.Дата,"ДФ=dd.MM.yyyy; ДЛФ=DD");
ОбластьШапка.Параметры.Контрагент = СсылкаНаОбъект.Контрагент;
СведенияОПокупателе = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛи це(СведенияОДокументе.Контрагент, СведенияОДокументе.Дата);
ПредставлениеПокупателя = ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации (СведенияОПокупателе, "НаименованиеДляПечатныхФорм, ЮридическийАдрес");
//выводим шапку в табличный документ
ТабличныйДокумент.Вывести(ОбластьШапка);

//заполняем строки

ОбластьСтроки = МакетОбработки.ПолучитьОбласть("Строка");
ОбластьСтроки.Параметры.ДатаРеализации = Формат (СсылкаНаОбъект.Дата,"ДФ=dd.MM.yy");
ТабличныйДокумент.Вывести(ОбластьСтроки);
//заполняем подвал
ОбластьПодвал = МакетОбработки.ПолучитьОбласть("Подвал");
ТабличныйДокумент.Вывести(ОбластьПодвал);

ТабличныйДокумент.АвтоМасштаб = Истина;

Возврат ТабличныйДокумент;

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



то при сохранении выходит ошибка такая:

{ВнешняяОбработка.КачествоВнешний.МодульОбъекта(63 ,76)**: Переменная не определена (СведенияОДокументе)
СведенияОПокупателе = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛи це(<<?>>СведенияОДокументе.Контрагент, СведенияОДокументе.Дата); (Проверка: Сервер)
{ВнешняяОбработка.КачествоВнешний.МодульОбъекта(63 ,107)**: Переменная не определена (СведенияОДокументе)
СведенияОПокупателе = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛи це(СведенияОДокументе.Контрагент, <<?>>СведенияОДокументе.Дата); (Проверка: Сервер)
Гость
13 - 24.12.2018 - 22:39
пригласите программиста, проще будет
Гость
14 - 24.12.2018 - 23:15
С Датой кстати получилось, по сути остался один вопрос, как вывести Наименование контрагента и его юр адрес.

если с этим не разберусь, буду искать онлайн кто поможет.

Неужели в 8.3 так мудрено это вывести? как было просто в 7.7)

Вроде как подсказали как выбрать контрагента :

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

но куда поставить код этот и что дополнительно нужно указать бы еще подсказали

в макете понятно, надо указать ПредставлениеПокупателя с типом параметр.
Гость
15 - 25.12.2018 - 00:23
судя по коду у вас изначально не верный подход... посмотрите как сделаны внешние печатные формы для управляемого приложения, их полно в интернете, и ознакомьтесь с методологией создания оных для управляемого приложения. Сейчас, кстати, намного удобнее делать дополнительные печатные формы в расширении.
Гость
16 - 25.12.2018 - 00:51
15-Viking >обязательно почитаю про данный метод, не знал о нем раньше.

но просто уже стало очень интересно, почему у меня пишет переменная не определена, вас бы не затруднило объяснить, а еще лучше пример написать как правильно вывести только один реквизит Наименование контрагента и его юр адрес?
Гость
17 - 25.12.2018 - 01:22
неужели не видно, что такого объекта "СведенияОДокументе" у вас нет, но есть "СсылкаНаОбъект"... попробуйте заменить.
Гость
18 - 25.12.2018 - 01:24
ну и подумайте вот над чем... в 1С БП 3 можно пометить НЕСКОЛЬКО документов и сразу напечатать какую-нибудь выбранную печатную форму по каждому из них (групповая печать)... сможет ВАШ код обеспечить это?
Гость
19 - 25.12.2018 - 09:02
17-Viking> спасибо Вам большое, получилось!
Гость
20 - 25.12.2018 - 11:40
Ну то что отчёт или обработка в расширении удобнее, чем впф-это спорно или дело вкуса. Разве что с отладкой попроше


К списку вопросов






Copyright ©, Все права защищены