Число прописью в макете
Здравствуйте! БГУ 1.0 обычная форма. Создала макет печатной формы с помощью конструктора печатных форм, вывожу на макете реквизит документа ИтогВсего (строка), в котором рассчитываются итог по табличной части. Процедура печать располагается в форме документа:
Но при вызове макета выдает ошибку - ошибка при вызове метода контекста ЧислоПрописью несоответствие типов параметр №1. Подскажите пожалуйста где ошибка?
Процедура Печать(Элемент)
//{{_КОНСТРУКТОР_ПЕЧАТИ_ЭЛЕМЕНТ(Печать)
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
ТабДок = Новый ТабличныйДокумент;
Макет = Документы.РасчетСтоимостиУслуг.ПолучитьМакет("Печать1");
// Заголовок
Область = Макет.ПолучитьОбласть("Заголовок");
ТабДок.Вывести(Область);
// Шапка
Шапка = Макет.ПолучитьОбласть("Шапка");
Шапка.Параметры.Заполнить(ЭтотОбъект);
ТабДок.Вывести(Шапка);
// Услуги
Область = Макет.ПолучитьОбласть("УслугиШапка");
ТабДок.Вывести(Область);
ОбластьУслуги = Макет.ПолучитьОбласть("Услуги");
Для Каждого ТекСтрокаУслуги Из Услуги Цикл
ОбластьУслуги.Параметры.Заполнить(ТекСтрокаУслуги);
ТабДок.Вывести(ОбластьУслуги);
КонецЦикла;
// Подвал
Подвал = Макет.ПолучитьОбласть("Подвал");
Подвал.Параметры.ИтогВсего = ИтогВсего;
Подвал.Параметры.ИтогВсего = ЧислоПрописью(ИтогВсего,,);
Подвал.Параметры.Заполнить(ЭтотОбъект);
ТабДок.Вывести(Подвал);
ТабДок.ОтображатьСетку = Ложь;
ТабДок.Защита = Ложь;
ТабДок.ТолькоПросмотр = Ложь;
ТабДок.ОтображатьЗаголовки = Ложь;
ТабДок.Показать();
//}}_КОНСТРУКТОР_ПЕЧАТИ_ЭЛЕМЕНТ
КонецПроцедуры
Показать//{{_КОНСТРУКТОР_ПЕЧАТИ_ЭЛЕМЕНТ(Печать)
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
ТабДок = Новый ТабличныйДокумент;
Макет = Документы.РасчетСтоимостиУслуг.ПолучитьМакет("Печать1");
// Заголовок
Область = Макет.ПолучитьОбласть("Заголовок");
ТабДок.Вывести(Область);
// Шапка
Шапка = Макет.ПолучитьОбласть("Шапка");
Шапка.Параметры.Заполнить(ЭтотОбъект);
ТабДок.Вывести(Шапка);
// Услуги
Область = Макет.ПолучитьОбласть("УслугиШапка");
ТабДок.Вывести(Область);
ОбластьУслуги = Макет.ПолучитьОбласть("Услуги");
Для Каждого ТекСтрокаУслуги Из Услуги Цикл
ОбластьУслуги.Параметры.Заполнить(ТекСтрокаУслуги);
ТабДок.Вывести(ОбластьУслуги);
КонецЦикла;
// Подвал
Подвал = Макет.ПолучитьОбласть("Подвал");
Подвал.Параметры.ИтогВсего = ИтогВсего;
Подвал.Параметры.ИтогВсего = ЧислоПрописью(ИтогВсего,,);
Подвал.Параметры.Заполнить(ЭтотОбъект);
ТабДок.Вывести(Подвал);
ТабДок.ОтображатьСетку = Ложь;
ТабДок.Защита = Ложь;
ТабДок.ТолькоПросмотр = Ложь;
ТабДок.ОтображатьЗаголовки = Ложь;
ТабДок.Показать();
//}}_КОНСТРУКТОР_ПЕЧАТИ_ЭЛЕМЕНТ
КонецПроцедуры
Но при вызове макета выдает ошибку - ошибка при вызове метода контекста ЧислоПрописью несоответствие типов параметр №1. Подскажите пожалуйста где ошибка?
По теме из базы знаний
Найденные решения
Остальные ответы
В избранное
Подписаться на ответы
Сортировка:
Древо развёрнутое
Свернуть все
(15)
Можно сделать отдельную переменную, её использовать для вывода прописью.
Можно сделать уже имеющуюся переменную и изначально её сделать числом и только когда надо преобразовать в строку. Но тогда вам наверное много кода надо переделывать, честно не вникал как у вас получается значение переменной "ИтогВсего".
а как можно его пребразовать в число, но только при выводе на печатную форму?
Можно сделать отдельную переменную, её использовать для вывода прописью.
Можно сделать уже имеющуюся переменную и изначально её сделать числом и только когда надо преобразовать в строку. Но тогда вам наверное много кода надо переделывать, честно не вникал как у вас получается значение переменной "ИтогВсего".
Функция формирования ИтогВсего
Функция ФорматСумм(Сумма, Валюта = Неопределено, ЧН = "", ЧРГ = "", ЧРД = "." ) Экспорт
ФорматнаяСтрока = "ЧЦ=15;ЧДЦ=2" + ";ЧРД="+ЧРД +
?(ЗначениеЗаполнено(ЧН), ";ЧН=" + ЧН, "") +
?(ЗначениеЗаполнено(ЧРГ), ";ЧРГ=" + ЧРГ, "");
РезультирующаяСтрока = СокрЛ(Формат(Сумма, ФорматнаяСтрока));
Если ЗначениеЗаполнено(Валюта) Тогда
РезультирующаяСтрока = РезультирующаяСтрока + " " + СокрП(Валюта);
КонецЕсли;
Возврат РезультирующаяСтрока;
КонецФункции // ФорматСумм()
ПоказатьФорматнаяСтрока = "ЧЦ=15;ЧДЦ=2" + ";ЧРД="+ЧРД +
?(ЗначениеЗаполнено(ЧН), ";ЧН=" + ЧН, "") +
?(ЗначениеЗаполнено(ЧРГ), ";ЧРГ=" + ЧРГ, "");
РезультирующаяСтрока = СокрЛ(Формат(Сумма, ФорматнаяСтрока));
Если ЗначениеЗаполнено(Валюта) Тогда
РезультирующаяСтрока = РезультирующаяСтрока + " " + СокрП(Валюта);
КонецЕсли;
Возврат РезультирующаяСтрока;
КонецФункции // ФорматСумм()
Вакансии
Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)