|
Во ВПФ для УТ 10.3 не отрабатываются мои параметры (не заполняются на макете) | ☑ | ||
---|---|---|---|---|
0
Shecurok
31.01.20
✎
09:40
|
Скачал УПД с форума, необходимо доработать, а именно заполнять доверенность.
Делается как: В функции Печать вызывается моя форма, где всего 5 кнопок с именами людей. Допустим жму на Иванов Иван Иванович, в макете проставляется он. Так вот. Алгоритм такой: 1. Печать - открывается Форма В форме отрабатывается такой код: Функция Кнопка1Нажатие(Элемент) ДоверенноеЛицо = "Иванов Иван Иванович"; Доверенность = "(По доверенности № 01/20-ШМ от 09 января 2020 года)"; Печать1(); ЭтаФорма.Закрыть(); КонецФункции (всего пять таких функций). 2. Из Формы вызывается процедура Печать1: Функция Печать1() Экспорт Если Строка(ТипЗнч(СсылкаНаОбъект)) <> "Счет-фактура выданный" Тогда ДокументОснование = СсылкаНаОбъект; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | СчетФактураВыданныйДокументыОснования.ДокументОснование, | СчетФактураВыданныйДокументыОснования.Ссылка |ИЗ | Документ.СчетФактураВыданный.ДокументыОснования КАК СчетФактураВыданныйДокументыОснования |ГДЕ | СчетФактураВыданныйДокументыОснования.ДокументОснование = &ДокументОснование | И СчетФактураВыданныйДокументыОснования.Ссылка.ПометкаУдаления = ЛОЖЬ"; Запрос.УстановитьПараметр("ДокументОснование", ДокументОснование); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Если РезультатЗапроса.Пустой() Тогда Сообщить("На основании данной реализации нет счет-фактуры! (Или она помечена на удаление)"); Возврат 0; КонецЕсли; Пока ВыборкаДетальныеЗаписи.Следующий() Цикл СсылкаНаОбъект = ВыборкаДетальныеЗаписи.Ссылка; КонецЦикла; КонецЕсли; Дата = СсылкаНаОбъект.Дата; ВидСчетаФактуры = СсылкаНаОбъект.ВидСчетаФактуры; ПометкаУдаления = СсылкаНаОбъект.ПометкаУдаления; Если Дата < УчетНДС.ДатаНачалаПримененияУПД() Тогда Предупреждение("Применение формы универсального передаточного (отгрузочного) документа возможно только с "+УчетНДС.ДатаНачалаПримененияУПД(Истина)+"!"); Возврат 0; КонецЕсли; Если ВидСчетаФактуры = Перечисления.ВидСчетаФактурыВыставленного.Корректировочный Тогда Предупреждение("Форма1 универсального передаточного (отгрузочного) документа не предназначена для корректировочных счетов-фактур!"); Возврат 0; КонецЕсли; Если ВидСчетаФактуры = Перечисления.ВидСчетаФактурыВыставленного.НаАванс ИЛИ ВидСчетаФактуры = Перечисления.ВидСчетаФактурыВыставленного.НаАвансКомитента Тогда Предупреждение("Форма1 универсального передаточного документа не применяется для счетов-фактур на аванс"); Возврат 0; КонецЕсли; Если ПометкаУдаления Тогда Предупреждение("Форма1 универсального передаточного (отгрузочного) документа не предназначена для помеченных на удаление документов!"); Возврат 0; КонецЕсли; ДанныеДляПечати = ПодготовитьДанныеДляПечатиУниверсальногоПередаточногоДокумен<wbr>та(); Если ДанныеДляПечати = Неопределено Тогда Возврат 0; КонецЕсли; ТабДокумент = ПечатьУниверсальногоПередаточногоДокумента(ДанныеДляПечати); Возврат ТабДокумент; КонецФункции Тут мы видим, что вызывается другая функция: 3. Функция ПечатьУниверсальногоПередаточногоДокумента(ДанныеДляПечати, ТабДокумент = Неопределено) Экспорт Дата = СсылкаНаОбъект.Дата; Если ТабДокумент = Неопределено Тогда ТабДокумент = Новый ТабличныйДокумент; КонецЕсли; Если Дата < УчетНДС.НачалоДействияПостановления981() Тогда Макет = ПолучитьОбщийМакет("УниверсальныйПередаточныйДокумент"); ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_УниверсальныйПередаточныйДокумент"; Иначе Макет = ПолучитьМакет("УниверсальныйПередаточныйДокумент981"); ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_УниверсальныйПередаточныйДокумент981"; КонецЕсли; УчетНДС.ВывестиСчетФактуруВТабличныйДокумент(ТабДокумент, Макет, ДанныеДляПечати); УчетНДС.ВывестиПодвалУниверсальногоПередаточногоДокументаВТабличныйД<wbr>окумент(ТабДокумент, Макет, ДанныеДляПечати); Возврат ТабДокумент; КонецФункции // ПечатьУниверсальногоПередаточногоДокумента Тут судя по всему идет заполнение из общего модуля УчетНДС. Немного отойду от рассказа. До этого я скачивал другую ПФ (бесплатную), но там не всё заполнялось. Там мне удалось сделать привязку. Там был такой код: 1. В печати открывается форма, в форме вызывается Печать1, там она выглядела иначе: ТабДокумент = ПечатьУниверсальногоПередаточногоДокумента(); УниверсальныеМеханизмы.НапечататьДокумент(ТабДокумент, , , ОбщегоНазначения.СформироватьЗаголовокДокумента(СсылкаНаОбъект)); Ну и т.д. по процедурам\функциям. И там был такой код: ОбластьМакетаПодвал.Параметры.Заполнить(ДанныеДляПечати); // Суть: доверенность ОбластьМакетаПодвал.Параметры.Доверенность = Доверенность; ОбластьМакетаПодвал.Параметры.ФИОРуководителя = ДоверенноеЛицо; ОбластьМакетаПодвал.Параметры.ФИОГлавногоБухгалтера = ДоверенноеЛицо; ТабДокумент.Вывести(ОбластьМакетаПодвал); и соответственно в начале модуля было 2 переменные (Доверенность, ДоверенноеЛицо). Возвращаемся к используемой ПФ. Тут есть подобная процедура где есть подобное заполнение, но судя по всему она не используется, а идет обращение напрямую в УчетНДС. Я добавил там заполнение (как выше) и добавил в процедуру переменные 2 штуки, но вместо заполнения строчки оказались пустыми. Т.е. код действительно берется из общего модуля. Но не отрабатывает как надо. Какие варианты посоветуете? |
|||
1
Shecurok
31.01.20
✎
09:41
|
Т.е. то, что я добавил в общий модуль не отрабатывает. Может я как-от переменные не так проставил, хотя они аналогичные тем, что были в прошлой ПФ, за исключением того, что переменные тут стоят в процедуре, а там они были общие.
|
|||
2
Shecurok
31.01.20
✎
09:56
|
переменные добавил в общий модуль УчетНДС, в ВывестиСчетФактуруВТабличныйДокумент.
И кстати, если раньше переменные были Экспортные, то тут нет. Лоакльные перменные нельзя сделать экспортными, а если я их ставлю вне процедур, ругается, что модуль может читать только процедуры и функции |
|||
3
unbred
31.01.20
✎
10:00
|
ты чтобы картину на стену повесить сначала разбираешь стену, берёшь нужный кирпич, сверлишь в нём дырку, собираешь стену и вешаешь ? я ничего не перепутал?
|
|||
4
Shecurok
31.01.20
✎
10:03
|
(3) да ладно вам, я пытаюсь понять, что делаю не так. Не хватает знаний это факт. Что я примерно делаю не так?
|
|||
5
Shecurok
31.01.20
✎
10:06
|
Скорее всего я как то не верно указываю переменные.
|
|||
6
Shecurok
31.01.20
✎
10:21
|
не, ну тут точно дело в переменных. Отладчик показывает на них "Неопределенно". А как их в таком случае указать верно? Вот этого не пойму. Доверенное лицо у меня записано в Форме внешней ПФ. Иии как тогда указать?
|
|||
7
ДенисЧ
31.01.20
✎
10:22
|
Сделать переменные реквизитами обработки. В них и присваивать значения. И читать тоже из них. Про глобальные переменные забудь.
|
|||
8
Shecurok
31.01.20
✎
10:30
|
(7) а как им присвоить значения и читать из них?
ну допустим в форме у меня так и останется Доверенность = "Иванов Иван Иванович". Это задастся реквизит? И как мне его в дальнейшем прочитать если из общего модуля вызывается функция? |
|||
9
Пробел
31.01.20
✎
10:39
|
в табличном макете у Вас есть ячейка с текстом "<Доверенность>" или "[Доверенность]"? Эта ячейка принадлежит Области макета подвал? У этой ячейки свойство "Заполнение" установлено в "Параметр" или "Шаблон"?
|
|||
10
Shecurok
31.01.20
✎
10:41
|
(9) есть, принадлежит подвалу, заполнение = параметр
|
|||
11
Пробел
31.01.20
✎
10:56
|
ДанныеДляПечати - это должна быть структура или соответствие. Попробуйте добавить в нее свои Доверенность и ДоверенноеЛицо перед строкой:
ТабДокумент = ПечатьУниверсальногоПередаточногоДокумента(ДанныеДляПечати); |
|||
12
Пробел
31.01.20
✎
11:10
|
Эта задача просто решается отладкой. Посмотреть доходят ли из формы в модуль Доверенность и ДоверенноеЛицо, посмотреть есть ли в итоговом ТабличномДокументе эти параметры (скорее всего нет), провалиться в
УчетНДС.ВывестиПодвалУниверсальногоПередаточногоДокументаВТабличныйДокумент(ТабДокумент, Макет, ДанныеДляПечати); посмотреть как заполняется подвал. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |