"Управление торговым предприятием для Украины", редакция 1.2. (1.2.48.1)
Доброго!
Вояю ВПФ для документа "РасходныйКассовыйОрдер", все по методике: процедурки и функции повыдергивал, себе в модуль вставил, проверил ошибки, переменные. ОК.
Прогоняю через отладчик с точкой останова, ошибок не дает. Но и ТабДокумент не возвращает!!
А когда прикручиваю к доку ч-з Серви/Внешние печатные формы, то при попытке печатнуть дает такую ошибку:
"Не удалось сформировать внешнюю печатную форму!
Преобразование значения к типу Число не может быть выполнено"
При отладке эту ошибку получить не могу.
Просьба, помочь/направить/подсказать. Вот код:
необходимо зарегистрироваться для просмотра ссылки
Функция ОпределитьКодЯзыкаДляФормат(КодЯзыка) Экспорт
Возврат ОпределитьКодЯзыкаДляФормат1(КодЯзыка);
КонецФункции // ОпределитьКодЯзыкаДляФормат()
Функция ОпределитьКодЯзыкаДляФормат1(КодЯзыка) Экспорт
Возврат ?(КодЯзыка = "uk","uk_UA","ru_RU");
КонецФункции // ОпределитьКодЯзыкаДляФормат()
Функция ФорматСумм(Сумма, Валюта = Неопределено, ЧН = "", ЧРГ = "") Экспорт
ФорматнаяСтрока = "ЧЦ=15;ЧДЦ=2" +
?(НЕ ЗначениеЗаполнено(ЧН), "", ";" + "ЧН=" + ЧН) +
?(НЕ ЗначениеЗаполнено(ЧРГ),"", ";" + "ЧРГ=" + ЧРГ);
РезультирующаяСтрока = СокрЛ(Формат(Сумма, ФорматнаяСтрока));
//Если ЗначениеЗаполнено(Валюта) Тогда
// РезультирующаяСтрока = РезультирующаяСтрока + " " + СокрП(Валюта);
//КонецЕсли;
Возврат РезультирующаяСтрока;
КонецФункции
Функция СформироватьСуммуПрописью(Сумма, Валюта, КодЯзыка = "ua") Экспорт
ПараметрыПрописи = ПараметрыПрописи(Валюта, КодЯзыка);
Если ПараметрыПрописи = "" Тогда
Возврат ФорматСумм(Сумма);
Иначе
Попытка
Возврат ЧислоПрописью(Сумма,"Л="+ОпределитьКодЯзыкаДляФормат(КодЯзыка),ПараметрыПрописи);
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;
КонецЕсли;
КонецФункции
Функция ПараметрыПрописи(Валюта, КодЯзыка) Экспорт
Рез = ("гривня, гривні, гривень, ж, копійка, копійки, копійок, ж, 2");
Если Рез = "" Тогда
ОбщегоНазначения.СообщитьСлужебнуюИнформацию("Для валюты " + Валюта + " не установлены параметры прописи для кода языка " + КодЯзыка);
КонецЕсли;
Возврат Рез;
КонецФункции // ПараметрыПрописи()
Функция Печать()Экспорт
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект);
Запрос.Текст =
"ВЫБРАТЬ
| Номер,
| Дата КАК ДатаДокумента,
| Организация,
| Касса.ОбособленноеПодразделение КАК ОбособленноеПодразделениеОрганизации,
| Касса.ОбособленноеПодразделение.НаименованиеПолное КАК ОбособленноеПодразделениеОрганизацииПредставление,
| СуммаДокумента КАК Сумма,
| Контрагент.Представление КАК ФИОПолучателя,
| ВалютаДокумента КАК Валюта,
| ВалютаДокумента.Представление КАК ВалютаПредставление,
| Выдать,
| Приложение,
| ПоДокументу,
| Основание,
| НомерОрдера
|ИЗ
| Документ.РасходныйКассовыйОрдер КАК РасходныйКассовыйОрдер
|
|ГДЕ
| РасходныйКассовыйОрдер.Ссылка = &ТекущийДокумент";
Шапка = Запрос.Выполнить().Выбрать();
Если Шапка.Сумма = неопределено
ИЛИ
Шапка.Сумма = NULL
Тогда
Сумма=0;
Иначе
Сумма = Шапка.Сумма;
КонецЕсли;
Шапка.Следующий();
ТабДокумент = Новый ТабличныйДокумент;
//ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_РасходныйКассовыйОрдер_КО2";
Вариант2018 = Ложь;
Если СсылкаНаОбъект.Дата >= Дата('20180105') Тогда
Макет = ПолучитьМакет("КО2ф");
Вариант2018 = Истина;
ИначеЕсли СсылкаНаОбъект.Дата >= Дата('20090616') Тогда
Макет = ПолучитьМакет("КО2ф");
Иначе
Макет = ПолучитьМакет("КО2ф");
КонецЕсли;
ОбластьМакета = Макет.ПолучитьОбласть("Шапка");
КодЯзыкаПечать = "uk";
СведенияОбОрганизации = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Организация, Шапка.ДатаДокумента);
Если Вариант2018 Тогда
ПредставлениеДаты = Формат(Шапка.ДатаДокумента, "Л=uk_UA; ДЛФ=ДД");
ПредставлениеДаты = Сред(ПредставлениеДаты, 1, СтрДлина(ПредставлениеДаты) - 2) + "року";
ОбластьМакета.Параметры.ДатаДокумента = Шапка.ДатаДокумента+ "року";
КонецЕсли;
// Выводим шапку ордера
ОбластьМакета.Параметры.Заполнить(Шапка);
Если НЕ ЗначениеЗаполнено(Шапка.ОбособленноеПодразделениеОрганизации) Тогда
ОбластьМакета.Параметры.ПолноеНаименование = СведенияОбОрганизации.ПолноеНаименование;
Иначе
ОбластьМакета.Параметры.ПолноеНаименование = Шапка.ОбособленноеПодразделениеОрганизацииПредставление;
КонецЕсли;
ОбластьМакета.Параметры.Сумма = ФорматСумм(Шапка.Сумма);//, Шапка.Валюта);
//Если Вариант2018
// И СсылкаНаОбъект.ВидОперации = Перечисления.ВидыОперацийРКО.ВзносНаличнымиВБанк
// ИЛИ СсылкаНаОбъект.ВидОперации = Перечисления.ВидыОперацийРКО.ИнкассацияДенежныхСредств
// Или СсылкаНаОбъект.ВидОперации = Перечисления.ВидыОперацийРКО.ВыплатаЗаработнойПлатыПоВедомостям Тогда
//ОбластьМакета.Параметры.СуммаПрописью = ?(Шапка.Валюта = мВалютаРегламентированногоУчета,"грн коп.","");
//Иначе
ОбластьМакета.Параметры.СуммаПрописью = СформироватьСуммуПрописью(Сумма, Шапка.Валюта, КодЯзыкаПечать);
//КонецЕсли;
Если СсылкаНаОбъект.ВидОперации = Перечисления.ВидыОперацийРКО.ВыплатаЗаработнойПлатыРаботнику ИЛИ СсылкаНаОбъект.ВидОперации = Перечисления.ВидыОперацийРКО.ВыдачаДенежныхСредствПодотчетнику Тогда
КодПоДРФО = ?(СсылкаНаОбъект.ВидОперации = Перечисления.ВидыОперацийРКО.ВыплатаЗаработнойПлатыРаботнику,СсылкаНаОбъект.Контрагент.Физлицо.КодПоДРФО,СсылкаНаОбъект.Контрагент.КодПоДРФО);
ОбластьМакета.Параметры.Выдать = Шапка.Выдать + ?(КодПоДРФО="",""," ("+КодПоДРФО+")");
КонецЕсли;
ОбластьМакета.Параметры.КодПоЕДРПОУ = УправлениеКонтактнойИнформацией.ПолучитьКодОрганизации(СведенияОбОрганизации);
Если НЕ ЗначениеЗаполнено(Шапка.ОбособленноеПодразделениеОрганизации) Тогда
Руководители = ОбщегоНазначения.ОтветственныеЛица(Шапка.Организация, Шапка.ДатаДокумента);
Иначе
Руководители = ОбщегоНазначения.ОтветственныеЛицаОбособленногоПодразделения(Шапка.ОбособленноеПодразделениеОрганизации, Шапка.ДатаДокумента);
КонецЕсли;
Если ЗначениеЗаполнено(Руководители.РуководительФИО) Тогда
Руководитель = ОбщегоНазначения.ПолучитьФамилиюИмяОтчество(Руководители.РуководительФИО.Фамилия, Руководители.РуководительФИО.Имя, Руководители.РуководительФИО.Отчество);
КонецЕсли;
Если ЗначениеЗаполнено(Руководители.ГлавныйБухгалтерФИО) Тогда
ГлавныйБухгалтер = ОбщегоНазначения.ПолучитьФамилиюИмяОтчество(Руководители.ГлавныйБухгалтерФИО.Фамилия, Руководители.ГлавныйБухгалтерФИО.Имя, Руководители.ГлавныйБухгалтерФИО.Отчество);
КонецЕсли;
Если ЗначениеЗаполнено(Руководители.КассирФИО) Тогда
Кассир = ОбщегоНазначения.ПолучитьФамилиюИмяОтчество(Руководители.КассирФИО.Фамилия, Руководители.КассирФИО.Имя, Руководители.КассирФИО.Отчество);
КонецЕсли;
ОбластьМакета.Параметры.ФИОРуководителя = Руководитель;
ОбластьМакета.Параметры.ФИОБухгалтера = ГлавныйБухгалтер;
ОбластьМакета.Параметры.ФИОКассира = "Узун Н.П.";
ТабДокумент.Вывести(ОбластьМакета);
Возврат ТабДокумент;
КонецФункции // ПечатьРКО()