Группа: Пользователи
Сообщений: 9
Спасибо сказали: 0 раз
Рейтинг: 0
1С:Предприятие 8.3 (8.3.12.1616) "Управление торговым предприятием для Украины", редакция 1.2. (1.2.48.1) Доброго! Вояю ВПФ для документа "РасходныйКассовыйОрдер", все по методике: процедурки и функции повыдергивал, себе в модуль вставил, проверил ошибки, переменные. ОК. Прогоняю через отладчик с точкой останова, ошибок не дает. Но и ТабДокумент не возвращает!! А когда прикручиваю к доку ч-з Серви/Внешние печатные формы, то при попытке печатнуть дает такую ошибку: "Не удалось сформировать внешнюю печатную форму! Преобразование значения к типу Число не может быть выполнено" При отладке эту ошибку получить не могу. Просьба, помочь/направить/подсказать. Вот код:
Возврат РезультирующаяСтрока; КонецФункции Функция СформироватьСуммуПрописью(Сумма, Валюта, КодЯзыка = "ua") Экспорт
ПараметрыПрописи = ПараметрыПрописи(Валюта, КодЯзыка); Если ПараметрыПрописи = "" Тогда Возврат ФорматСумм(Сумма); Иначе Попытка Возврат ЧислоПрописью(Сумма,"Л="+ОпределитьКодЯзыкаДляФормат(КодЯзыка),ПараметрыПрописи); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; КонецЕсли; КонецФункции Функция ПараметрыПрописи(Валюта, КодЯзыка) Экспорт
Рез = ("гривня, гривні, гривень, ж, копійка, копійки, копійок, ж, 2"); Если Рез = "" Тогда ОбщегоНазначения.СообщитьСлужебнуюИнформацию("Для валюты " + Валюта + " не установлены параметры прописи для кода языка " + КодЯзыка); КонецЕсли;
Возврат Рез;
КонецФункции // ПараметрыПрописи() Функция Печать()Экспорт
Запрос = Новый Запрос; Запрос.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект);
Запрос.Текст = "ВЫБРАТЬ | Номер, | Дата КАК ДатаДокумента, | Организация, | Касса.ОбособленноеПодразделение КАК ОбособленноеПодразделениеОрганизации, | Касса.ОбособленноеПодразделение.НаименованиеПолное КАК ОбособленноеПодразделениеОрганизацииПредставление, | СуммаДокумента КАК Сумма, | Контрагент.Представление КАК ФИОПолучателя, | ВалютаДокумента КАК Валюта, | ВалютаДокумента.Представление КАК ВалютаПредставление, | Выдать, | Приложение, | ПоДокументу, | Основание, | НомерОрдера |ИЗ | Документ.РасходныйКассовыйОрдер КАК РасходныйКассовыйОрдер | |ГДЕ | РасходныйКассовыйОрдер.Ссылка = &ТекущийДокумент";
Шапка = Запрос.Выполнить().Выбрать(); Если Шапка.Сумма = неопределено ИЛИ Шапка.Сумма = NULL Тогда Сумма=0; Иначе Сумма = Шапка.Сумма; КонецЕсли; Шапка.Следующий();
ТабДокумент = Новый ТабличныйДокумент; //ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_РасходныйКассовыйОрдер_КО2";
Вариант2018 = Ложь; Если СсылкаНаОбъект.Дата >= Дата('20180105') Тогда Макет = ПолучитьМакет("КО2ф"); Вариант2018 = Истина; ИначеЕсли СсылкаНаОбъект.Дата >= Дата('20090616') Тогда Макет = ПолучитьМакет("КО2ф"); Иначе Макет = ПолучитьМакет("КО2ф"); КонецЕсли;
Если НЕ ЗначениеЗаполнено(Шапка.ОбособленноеПодразделениеОрганизации) Тогда ОбластьМакета.Параметры.ПолноеНаименование = СведенияОбОрганизации.ПолноеНаименование; Иначе ОбластьМакета.Параметры.ПолноеНаименование = Шапка.ОбособленноеПодразделениеОрганизацииПредставление; КонецЕсли;
Если НЕ ЗначениеЗаполнено(Шапка.ОбособленноеПодразделениеОрганизации) Тогда Руководители = ОбщегоНазначения.ОтветственныеЛица(Шапка.Организация, Шапка.ДатаДокумента); Иначе Руководители = ОбщегоНазначения.ОтветственныеЛицаОбособленногоПодразделения(Шапка.ОбособленноеПодразделениеОрганизации, Шапка.ДатаДокумента); КонецЕсли;
Если ЗначениеЗаполнено(Руководители.РуководительФИО) Тогда Руководитель = ОбщегоНазначения.ПолучитьФамилиюИмяОтчество(Руководители.РуководительФИО.Фамилия, Руководители.РуководительФИО.Имя, Руководители.РуководительФИО.Отчество); КонецЕсли;
Если ЗначениеЗаполнено(Руководители.ГлавныйБухгалтерФИО) Тогда ГлавныйБухгалтер = ОбщегоНазначения.ПолучитьФамилиюИмяОтчество(Руководители.ГлавныйБухгалтерФИО.Фамилия, Руководители.ГлавныйБухгалтерФИО.Имя, Руководители.ГлавныйБухгалтерФИО.Отчество); КонецЕсли;
Если ЗначениеЗаполнено(Руководители.КассирФИО) Тогда Кассир = ОбщегоНазначения.ПолучитьФамилиюИмяОтчество(Руководители.КассирФИО.Фамилия, Руководители.КассирФИО.Имя, Руководители.КассирФИО.Отчество); КонецЕсли;
Группа: Основатель
Сообщений: 13981
Из: Киев
Спасибо сказали: 4549 раз
Рейтинг: 3678.1
Цитата(1c_lam @ 14.02.19, 10:07)
Вернее возвращает, но не выводит на экран/печать ничего
Если вы отлаживаете это сейчас как внешнюю обработку (не внешнюю печатную форму, а обработку через файл/открыть), то для того, что бы что-то вывелось на экран, в вызывающем коде надо прописать показ:
Группа: Пользователи
Сообщений: 32
Спасибо сказали: 6 раз
Рейтинг: 0
Цитата(1c_lam @ 14.02.19, 10:19)
тОлько что то я с суммой напутал:
Это невнимательность. Нужно получить элемент "Следующий()" до того как проверять условие.
Шапка = Запрос.Выполнить().Выбрать(); Если Шапка.Сумма = неопределено ИЛИ Шапка.Сумма = NULL Тогда Сумма=0; Иначе Сумма = Шапка.Сумма; КонецЕсли; Шапка.Следующий();
Группа: Пользователи
Сообщений: 32
Спасибо сказали: 6 раз
Рейтинг: 0
1c_lam @ Сегодня, 10:35
, Это, конечно, если не упоминать тот факт, что условие которые Вы используете, само по себе бессмысленное. Если у вас есть ссылка на документ до начала выполнения печати, то ни Неопределено ни NULL в качестве результата проверки быть не может в принципе.
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!