Делаю сам внешнюю печатную форму Решил сделать сам, надеюсь на вашу помощь.) Была у меня внешняя печ. форма для 7.7 сейчас делаю для БП 3.0 форма достаточно простая, удостоверение качества по сути просто табличка с данными. Получилось создать внешнюю форму,подключить ее. Не могу только понять как вывести поля, которые были в 7.7, а именно в 7.7 было так: Покупатель: [?(ПустоеЗначение(Контрагент) = 1, "", глПолноеНаименование(Контрагент) + " " + глПредставлениеАдреса(Контрагент.ЮридическийАдрес))] и [ДатаДок+5 #Д] как в восьмерке правильно написать? т.е. мне надо: 1. вывести в шапке Контрагента с юр адресом 2. вывести текущую дату документа + 5 дней и вывести итоговую дату |
делать печатную форму для документа РеализацияТоваровУслуг |
вот мой код: Функция СформироватьПечатнуюФорму(СсылкаНаОбъект, ОбъектыПечати) ТабличныйДокумент = Новый ТабличныйДокумент; МакетОбработки = ПолучитьМакет("МакетКачественное"); //заполняем шапку ОбластьШапка = МакетОбработки.ПолучитьОбласть("Шапка"); ОбластьШапка.Параметры.НомерРеализации = СсылкаНаОбъект.Номер; ОбластьШапка.Параметры.ДатаРеализации = Формат (СсылкаНаОбъект.Дата,"ДФ=dd.MM.yyyy; ДЛФ=DD"); ОбластьШапка.Параметры.Грузополучатель = СсылкаНаОбъект.Грузополучатель; //выводим шапку в табличный документ ТабличныйДокумент.Вывести(ОбластьШапка); //заполняем строки ОбластьСтроки = МакетОбработки.ПолучитьОбласть("Строка"); ОбластьСтроки.Параметры.ДатаРеализации = Формат (СсылкаНаОбъект.Дата,"ДФ=dd.MM.yy"); ТабличныйДокумент.Вывести(ОбластьСтроки); //заполняем подвал ОбластьПодвал = МакетОбработки.ПолучитьОбласть("Подвал"); ТабличныйДокумент.Вывести(ОбластьПодвал); ТабличныйДокумент.АвтоМасштаб = Истина; Возврат ТабличныйДокумент; КонецФункции |
Вы уверены что вы для БП 3.0 внешнюю форму делаете? |
3-Viking >да, для документа накладной нужно сделать печатную форму с качественный удостоверением (табличка с текстом и датами) |
Да не важно для чего, Интересно что используете "СсылкаНаОбъект"... как бы это наследие БП 2.0 и обычных форм. БП 3 на управляемых формах, там это не используется... -- А контрагента и его реквизиты проще получить штатными средствами СведенияОПокупателе = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛице(СведенияОДокументе.Контрагент, СведенияОДокументе.Дата); ПредставлениеПокупателя = ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(СведенияОПокупателе, "НаименованиеДляПечатныхФорм, ЮридическийАдрес"); |
Да, прибавляя к дате имейте ввиду что в 8-ке время прибавляется в секундах.. будет что-то типа СведенияОДокументе.Дата + 5 * 86400 (86400 - количество секунд в сутках) |
(0) Дата, в 8-ке, содержит время. Поэтому прибавляй столько секунд, сколько их в 5-и днях, т.е. 432000. |
5-Viking >я не кодил на 8-ке, нужно формочку сделать, вот на ютюбе нашел пример создание, поэтому такой код и получился, спасибо за советы буду пробовать |
(8)Тогда лучше попробуй для начала сделать ВПФ штатной печатной формы ТОРГ11, СФ или УПД. БП 3.0 так быстро меняется, что лучше не подбирать непонятно что |
5-Viking >что-то ошибки выходят в режиме предприятия, может код не там ставлю, не могли бы вы в моем коде указать куда вставить СведенияОПокупателе = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛи це(СведенияОДокументе.Контрагент, СведенияОДокументе.Дата); ПредставлениеПокупателя = ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации (СведенияОПокупателе, "НаименованиеДляПечатныхФорм, ЮридическийАдрес"); и что вставить в таблице макета? <ПредставлениеПокупателя>? |
текст ошибок какой? |
11-Viking > если вставить код сюда: Функция СформироватьПечатнуюФорму(СсылкаНаОбъект, ОбъектыПечати) ТабличныйДокумент = Новый ТабличныйДокумент; МакетОбработки = ПолучитьМакет("МакетКачественное"); //заполняем шапку ОбластьШапка = МакетОбработки.ПолучитьОбласть("Шапка"); ОбластьШапка.Параметры.НомерРеализации = СсылкаНаОбъект.Номер; ОбластьШапка.Параметры.ДатаРеализации = Формат (СсылкаНаОбъект.Дата,"ДФ=dd.MM.yyyy; ДЛФ=DD"); ОбластьШапка.Параметры.Контрагент = СсылкаНаОбъект.Контрагент; СведенияОПокупателе = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛице(СведенияОДокументе.Контрагент, СведенияОДокументе.Дата); ПредставлениеПокупателя = ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации (СведенияОПокупателе, "НаименованиеДляПечатныхФорм, ЮридическийАдрес"); //выводим шапку в табличный документ ТабличныйДокумент.Вывести(ОбластьШапка); //заполняем строки ОбластьСтроки = МакетОбработки.ПолучитьОбласть("Строка"); ОбластьСтроки.Параметры.ДатаРеализации = Формат (СсылкаНаОбъект.Дата,"ДФ=dd.MM.yy"); ТабличныйДокумент.Вывести(ОбластьСтроки); //заполняем подвал ОбластьПодвал = МакетОбработки.ПолучитьОбласть("Подвал"); ТабличныйДокумент.Вывести(ОбластьПодвал); ТабличныйДокумент.АвтоМасштаб = Истина; Возврат ТабличныйДокумент; КонецФункции то при сохранении выходит ошибка такая: {ВнешняяОбработка.КачествоВнешний.МодульОбъекта(63,76)**: Переменная не определена (СведенияОДокументе) СведенияОПокупателе = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛице(<<?>>СведенияОДокументе.Контрагент, СведенияОДокументе.Дата); (Проверка: Сервер) {ВнешняяОбработка.КачествоВнешний.МодульОбъекта(63,107)**: Переменная не определена (СведенияОДокументе) СведенияОПокупателе = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛице(СведенияОДокументе.Контрагент, <<?>>СведенияОДокументе.Дата); (Проверка: Сервер) |
пригласите программиста, проще будет |
С Датой кстати получилось, по сути остался один вопрос, как вывести Наименование контрагента и его юр адрес. если с этим не разберусь, буду искать онлайн кто поможет. Неужели в 8.3 так мудрено это вывести? как было просто в 7.7) Вроде как подсказали как выбрать контрагента : СведенияОПокупателе = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛи це(СведенияОДокументе.Контрагент, СведенияОДокументе.Дата); ПредставлениеПокупателя = ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации (СведенияОПокупателе, "НаименованиеДляПечатныхФорм, ЮридическийАдрес"); но куда поставить код этот и что дополнительно нужно указать бы еще подсказали в макете понятно, надо указать ПредставлениеПокупателя с типом параметр. |
судя по коду у вас изначально не верный подход... посмотрите как сделаны внешние печатные формы для управляемого приложения, их полно в интернете, и ознакомьтесь с методологией создания оных для управляемого приложения. Сейчас, кстати, намного удобнее делать дополнительные печатные формы в расширении. |
15-Viking >обязательно почитаю про данный метод, не знал о нем раньше. но просто уже стало очень интересно, почему у меня пишет переменная не определена, вас бы не затруднило объяснить, а еще лучше пример написать как правильно вывести только один реквизит Наименование контрагента и его юр адрес? |
неужели не видно, что такого объекта "СведенияОДокументе" у вас нет, но есть "СсылкаНаОбъект"... попробуйте заменить. |
ну и подумайте вот над чем... в 1С БП 3 можно пометить НЕСКОЛЬКО документов и сразу напечатать какую-нибудь выбранную печатную форму по каждому из них (групповая печать)... сможет ВАШ код обеспечить это? |
17-Viking> спасибо Вам большое, получилось! |
Ну то что отчёт или обработка в расширении удобнее, чем впф-это спорно или дело вкуса. Разве что с отладкой попроше |
Текущее время: 14:40. Часовой пояс GMT +3. |