Договор с контрагентом, как основание в счете на оплату (печатная форма)
Здравствуйте!
Перешли с 1С 8.2, УТП на 1С 8.3 УТ 3.2 для Казахстана, как я понял, то это аналог УТ 11.4.
Обнаружили, что в счёте не оплату исчезло поле Основание, в УТП оно было, в УТ нет.
Клиенты требуют, чтобы мы указывали Договор в поле основание.
Сейчас выкручиваемся указанием Договора в поле Информация для печати.
Вопрос: как вывести Основание в печатную форму?
Перелопатил интернет, полез в модуль, но ничего не получилось.
Есть ли ВПФ с выводом основания для УТ 11.4?
Понял, что надо здесь вставить кусок кода:
Перешли с 1С 8.2, УТП на 1С 8.3 УТ 3.2 для Казахстана, как я понял, то это аналог УТ 11.4.
Обнаружили, что в счёте не оплату исчезло поле Основание, в УТП оно было, в УТ нет.
Клиенты требуют, чтобы мы указывали Договор в поле основание.
Сейчас выкручиваемся указанием Договора в поле Информация для печати.
Вопрос: как вывести Основание в печатную форму?
Перелопатил интернет, полез в модуль, но ничего не получилось.
Есть ли ВПФ с выводом основания для УТ 11.4?
Понял, что надо здесь вставить кусок кода:
ТекстЗаголовка = ОбщегоНазначенияУТКлиентСервер.СформироватьЗаголовокДокумента(ДанныеПечати, НСтр("ru='Счет на оплату'"));
СтруктураДанныхШапки = Новый Структура;
СтруктураДанныхШапки.Вставить("ТекстЗаголовка", ТекстЗаголовка);
ОбластьМакета.Параметры.Заполнить(СтруктураДанныхШапки);
ТабличныйДокумент.Вывести(ОбластьМакета);
ОбластьМакета = Макет.ПолучитьОбласть("Поставщик");
СтруктураДанныхПоставщик = Новый Структура;
СтруктураДанныхПоставщик.Вставить("ПредставлениеПоставщика",
ФормированиеПечатныхФорм.ОписаниеОрганизации(ФормированиеПечатныхФорм.СведенияОЮрФизЛице(ДанныеПечати.ОрганизацияПоставщик, ДанныеПечати.Дата),
"ПолноеНаименование,ИНН,ЮридическийАдрес,Телефоны,"));
ОбластьМакета.Параметры.Заполнить(СтруктураДанныхПоставщик);
ТабличныйДокумент.Вывести(ОбластьМакета);
ОбластьМакета = Макет.ПолучитьОбласть("Покупатель");
СтруктураДанныхПокупатель = Новый Структура;
СтруктураДанныхПокупатель.Вставить("ПредставлениеПолучателя",
ФормированиеПечатныхФорм.ОписаниеОрганизации(ФормированиеПечатныхФорм.СведенияОЮрФизЛице(ДанныеПечати.Контрагент, ДанныеПечати.Дата),
"ПолноеНаименование,ИНН,ЮридическийАдрес,Телефоны"));
ОбластьМакета.Параметры.Заполнить(СтруктураДанныхПокупатель);
ТабличныйДокумент.Вывести(ОбластьМакета);
//ЭТО ЭКСПЕРИМЕНТ
//ОбластьМакета = Макет.ПолучитьОбласть("Основание");
//СтруктураДанныхОснование = Новый Структура;
//СтруктураДанныхОснование.Вставить("Договор", СсылкаНаДокумент.ДоговорКонтрагента);
//
////СтруктураДанныхОснование.Вставить("Договор" ,
//// ФормированиеПечатныхФорм.ОписаниеОрганизации(ФормированиеПечатныхФорм.СведенияОЮрФизЛице(ДанныеПечати.Контрагент, ДанныеПечати.Дата),
//// "Наименование,Номер,Дата"));
//
//ОбластьМакета.Параметры.Заполнить(СтруктураДанныхОснование);
//ТабличныйДокумент.Вывести(ОбластьМакета);
ПоказатьПо теме из базы знаний
Ответы
В избранное
Подписаться на ответы
Сортировка:
Древо развёрнутое
Свернуть все
Ну может реквизит "заказ" есть ?
В структуре подчиненности документ основание выводится ?
А, или основание - это чисто в печатной форме....? Тогда сложнее, т.к. думаю немного пользователей с такой конфигурацией сидит. В самом макете то есть основание ?
А так да ВПФ, и доп реквизит, решит проблему.
В структуре подчиненности документ основание выводится ?
А, или основание - это чисто в печатной форме....? Тогда сложнее, т.к. думаю немного пользователей с такой конфигурацией сидит. В самом макете то есть основание ?
А так да ВПФ, и доп реквизит, решит проблему.
//ЭТО расшифровка того что сделали
ОбластьМакета = Макет.ПолучитьОбласть("Основание"); //То есть в макете должна быть такая область, если её нет, то выдаст ошибку. Область выделена красны и на поля пишется её название
СтруктураДанныхОснование = Новый Структура;
СтруктураДанныхОснование.Вставить("Договор", СсылкаНаДокумент.ДоговорКонтрагента); //Это лишнее
СтруктураДанныхОснование.Вставить("Договор" ,
ФормированиеПечатныхФорм.ОписаниеОрганизации(ФормированиеПечатныхФорм.СведенияОЮрФизЛице(ДанныеПечати.Контрагент, ДанныеПечати.Дата),
"Наименование,Номер,Дата"));// В структуре может быть только один параметр с уникальным названием "Договор",
// а при попытке присвоить, заменится значение
ОбластьМакета.Параметры.Заполнить(СтруктураДанныхОснование); //Слово заполнить() означает, что по именам структуры заполняются параметры в области.
//То есть если в макете есть параметр договор, он будет заполнен иначе проигнорирует.
ТабличныйДокумент.Вывести(ОбластьМакета);
Показать
(8)
Это при отладке закомментил.
(8)
Пробовал просто "Договор", не отображается.
Это уже эксперименты шли :)
Реквизит "Договор" существует.
СтруктураДанныхОснование.Вставить("Договор", СсылкаНаДокумент.ДоговорКонтрагента); //Это лишнее
Это при отладке закомментил.
(8)
СтруктураДанныхОснование.Вставить("Договор" , ФормированиеПечатныхФорм.ОписаниеОрганизации(ФормированиеПечатныхФорм.СведенияОЮрФизЛице(ДанныеПечати.Контрагент, ДанныеПечати.Дата), "Наименование,Номер,Дата"));// В структуре может быть только один параметр с уникальным названием "Договор", а при попытке присвоить, заменится значение
Пробовал просто "Договор", не отображается.
Это уже эксперименты шли :)
Реквизит "Договор" существует.
Как сделать так, что бы в основание выводился договор:
Все, будет выведено название договора. Соотвественно, старое значение параметра затрется, то есть другая информация в этом поле выводится не будет.
ОбластьМакета = Макет.ПолучитьОбласть("Основание"); //Найти в коде, где заполняется область, в которой заполняется основание
//Потом в макете посмотри как называется параметр, где хотите что бы выводился договор.
И перед выводом области в табличный документ пишите такую строку
ОбластьМакета.Параметры.НужныйПараметр = Ссылка на договор;
ТабличныйДокумент.Вывести(ОбластьМакета);
Все, будет выведено название договора. Соотвественно, старое значение параметра затрется, то есть другая информация в этом поле выводится не будет.
Все зависит где этот код выполняется, модуль менеджера или в какой-то обработке.
Либо в "ДанныеПечати" одно из значений будет договор, либо там есть ссылка на документ и уже у него взять ссылку на договор.
итоговый код будет примерно такой
Если делать в отладке (поставить точку остановки), то можно посмотреть какие данные доступны и не гадать.
Либо в "ДанныеПечати" одно из значений будет договор, либо там есть ссылка на документ и уже у него взять ссылку на договор.
итоговый код будет примерно такой
ОбластьМакета = Макет.ПолучитьОбласть("Основание");
ОбластьМакета.Параметры.Договор = ДанныеПечати.ссылкаНаДокумент.ДоговорКонтрагента;
ТабличныйДокумент.Вывести(ОбластьМакета);
Если делать в отладке (поставить точку остановки), то можно посмотреть какие данные доступны и не гадать.
(18)
{Обработка.ПечатьСчетовНаОплату.МодульМенеджера(287)}: Поле объекта не обнаружено (ссылкаНаДокумент)
ОбластьМакета.Параметры.Договор = ДанныеПечати.ссылкаНаДокумент.ДоговорКонтрагента;
ОбластьМакета = Макет.ПолучитьОбласть("Основание"); ОбластьМакета.Параметры.Договор = ДанныеПечати.ссылкаНаДокумент.ДоговорКонтрагента; ТабличныйДокумент.Вывести(ОбластьМакета);
{Обработка.ПечатьСчетовНаОплату.МодульМенеджера(287)}: Поле объекта не обнаружено (ссылкаНаДокумент)
ОбластьМакета.Параметры.Договор = ДанныеПечати.ссылкаНаДокумент.ДоговорКонтрагента;
(22)
Выглядит так:
Переменная Значение Тип
ДанныеПечати ВыборкаИзРезультатаЗапроса
|
|
|
|
|
|_ССылка Заказ клиента № ДокументСсылка.ЗаказКлиента
|
|
|
|_Договор Договр №__ СправочникСсылка.ДоговорыКонтрагентов
Единственное но, что эти переменные появляются при выполнение ниже расположенного кода
А вставка Договора идет выше в предыдущей процедуре. Там вообще нет нигде Договора в переменных.
Выглядит так:
Переменная Значение Тип
ДанныеПечати ВыборкаИзРезультатаЗапроса
|
|
|
|
|
|_ССылка Заказ клиента № ДокументСсылка.ЗаказКлиента
|
|
|
|_Договор Договр №__ СправочникСсылка.ДоговорыКонтрагентов
Единственное но, что эти переменные появляются при выполнение ниже расположенного кода
Процедура ЗаполнитьРеквизитыПодвалаСчетаНаОплату(ДанныеПечати, Макет, ТабличныйДокумент, ТаблицаЭтапыОплаты, СоответствиеСтавокНДС, ПараметрыПечати)
МассивПроверкиВывода = Новый Массив;
// В этом месте мы получаем данные печати //
// Вывести этапы графика оплаты
Если ТаблицаЭтапыОплаты.Количество() > 1 Тогда
ИмяКолонкиДатыОплаты = ?(ДанныеПечати.СчетКВозврату, НСтр("ru='Дата оплаты или возврата'"), НСтр("ru='Дата оплаты'"));
ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицыЭтапыОплаты");
ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ИтогоЭтапыОплаты");
СтруктураДанныхШапки = Новый Структура("ИмяКолонкиДатыОплаты",ИмяКолонкиДатыОплаты);
ОбластьШапкаТаблицы.Параметры.Заполнить(СтруктураДанныхШапки);
МассивПроверкиВывода.Добавить(ОбластьШапкаТаблицы);
МассивПроверкиВывода.Добавить(ОбластьПодвалТаблицы);
ОбластьСтрокаТаблицы = Макет.ПолучитьОбласть("СтрокаТаблицыЭтапыОплаты");
НомерЭтапа = 1;
Для Каждого ТекЭтап Из ТаблицаЭтапыОплаты Цикл
ПараметрыСтроки = НовыеПараметрыСтрокиЭтапа();
ЗаполнитьЗначенияСвойств(ПараметрыСтроки, ТекЭтап);
ПараметрыСтроки.НомерСтроки = НомерЭтапа;
Если Не ПараметрыСтроки.ЭтоЗалогЗаТару Тогда
ПараметрыСтроки.ТекстНДС = ФормированиеПечатныхФорм.СформироватьТекстНДСЭтапаОплаты(
СоответствиеСтавокНДС,
ТекЭтап.ПроцентПлатежа);
Иначе
ПараметрыСтроки.ПроцентПлатежа = "-";
ПараметрыСтроки.ТекстНДС = НСтр("ru='Залог за тару. Без налога (НДС).'");
КонецЕсли;
ОбластьСтрокаТаблицы.Параметры.Заполнить(ПараметрыСтроки);
МассивПроверкиВывода.Добавить(ОбластьСтрокаТаблицы);
Если ТабличныйДокумент.ПроверитьВывод(МассивПроверкиВывода) Тогда
Если НомерЭтапа = 1 Тогда
ТабличныйДокумент.Вывести(ОбластьШапкаТаблицы);
МассивПроверкиВывода.Удалить(0);
КонецЕслИ;
Иначе
ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
ТабличныйДокумент.Вывести(ОбластьШапкаТаблицы);
КонецЕсли;
ТабличныйДокумент.Вывести(ОбластьСтрокаТаблицы);
МассивПроверкиВывода.Удалить(МассивПроверкиВывода.ВГраница());
НомерЭтапа = НомерЭтапа + 1;
КонецЦикла;
ТабличныйДокумент.Вывести(ОбластьПодвалТаблицы);
КонецЕсли;
Если ЗначениеЗаполнено(ДанныеПечати.СсылкаДоговор) Тогда
Область = Макет.ПолучитьОбласть("Основание");
Область.Параметры.Заполнить(ДанныеПечати);
ТабличныйДокумент.Вывести(Область);
КонецЕсли;
// Вывести дополнительную информацию
Если ЗначениеЗаполнено(ДанныеПечати.ДополнительнаяИнформация) Тогда
Область = Макет.ПолучитьОбласть("ДополнительнаяИнформация");
Область.Параметры.Заполнить(ДанныеПечати);
ТабличныйДокумент.Вывести(Область);
КонецЕсли;
// Вывести подписи
Область = Макет.ПолучитьОбласть("ПодвалСчета");
СтруктураДанныхПодвал = Новый Структура;
СтруктураДанныхПодвал.Вставить("ФИОРуководителя", ДанныеПечати.Руководитель);
СтруктураДанныхПодвал.Вставить("ФИОБухгалтера", ДанныеПечати.ГлавныйБухгалтер);
СтруктураДанныхПодвал.Вставить("ФИОМенеджер", ФизическиеЛицаУТ.ФамилияИнициалыФизЛица(ДанныеПечати.Менеджер, ДанныеПечати.Дата));
Область.Параметры.Заполнить(СтруктураДанныхПодвал);
ФормированиеПечатныхФорм.ВывестиФаксимилеВТабличныйДокумент(Макет, Область, ДанныеПечати.Организация, ПараметрыПечати);
МассивПроверкиВывода.Очистить();
МассивПроверкиВывода.Добавить(Область);
Если НЕ ТабличныйДокумент.ПроверитьВывод(МассивПроверкиВывода) Тогда
ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;
ТабличныйДокумент.Вывести(Область);
КонецПроцедуры
ПоказатьА вставка Договора идет выше в предыдущей процедуре. Там вообще нет нигде Договора в переменных.
(25)
Никак не могу понять, как ссылка формируется из вытащенных данных.
Переменная ///////// Значение /////////// Тип
ДанныеПечати ///// ВыборкаИзРезультатаЗапроса
|
|
|
|
|
|_ССылка // Заказ клиента № // ДокументСсылка.ЗаказКлиента
* |
* |
* |
* |_Договор // Договор №__ // СправочникСсылка.ДоговорыКонтрагентов Показать
Никак не могу понять, как ссылка формируется из вытащенных данных.
Переменная ///////// Значение /////////// Тип
ДанныеПечати ///// ВыборкаИзРезультатаЗапроса
|
|
|
|
|
|_ССылка // Заказ клиента № // ДокументСсылка.ЗаказКлиента
* |
* |
* |
* |_Договор // Договор №__ // СправочникСсылка.ДоговорыКонтрагентов
Вакансии
Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)