|
Печать счёт-фактуры из впф 1С 8.2 УТ 10.3 | ☑ | ||
---|---|---|---|---|
0
AL_Rain
09.08.16
✎
10:35
|
Приветствую спецы 1С, нашёл в инете нужную мне тему http://catalog.mista.ru/public/125517/
Но она сначала выводит список печатных форм, а мне надо чтобы сразу печатался документ счёт-фактура из впф. Можете подсказать как исправить, либо у кого-то есть готовый пример, кто делал? Сам только начинающий в 1С. перем СсылкаНаОбъект экспорт; перем НаПРинтер экспорт; перем КоличествоЭкземпляров экспорт; функция Печать() экспорт Запрос = новый запрос; Запрос.Текст = "ВЫБРАТЬ | СчетФактураВыданныйДокументыОснования.Ссылка.Ссылка |ИЗ | Документ.СчетФактураВыданный.ДокументыОснования КАК СчетФактураВыданныйДокументыОснования |ГДЕ | СчетФактураВыданныйДокументыОснования.ДокументОснование = &ДокументОснование"; Запрос.УстановитьПараметр("ДокументОснование",СсылкаНаОбъект); Выборка = Запрос.Выполнить().Выбрать(); Если Выборка.Следующий() тогда СФ = Выборка.Ссылка.ПолучитьОбъект(); СФФорма = СФ.ПолучитьФорму("ФормаДокумента"); СтруктураВнутреннихПечатныхФорм = СФ.ПолучитьСтруктуруПечатныхФорм(); ДеревоМакетовПечати = УниверсальныеМеханизмы.ПолучитьДеревоМакетовПечати(СФ.Ссылка, СтруктураВнутреннихПечатныхФорм); Для каждого Строка Из ДеревоМакетовПечати.Строки Цикл Если Строка.ТипКнопки = ТипКнопкиКоманднойПанели.Разделитель Тогда Продолжить; КонецЕсли; Если Строка.Расшифровка = Неопределено Тогда Продолжить; КонецЕсли; Если СокрЛП(Строка.Текст) = "Счет-фактура" тогда УниверсальныеМеханизмы.ОткрытьФормуВыбораПечатныхФормОбъекта(СФ, СФФорма); КонецЕсли; КонецЦикла; КонецЕсли; КонецФункции |
|||
1
AL_Rain
09.08.16
✎
15:45
|
Экспериментирую с кодом:
Запрос = новый запрос; Запрос.Текст = "ВЫБРАТЬ | СчетФактураВыданныйДокументыОснования.Ссылка.Ссылка |ИЗ | Документ.СчетФактураВыданный.ДокументыОснования КАК СчетФактураВыданныйДокументыОснования |ГДЕ | СчетФактураВыданныйДокументыОснования.ДокументОснование = &ДокументОснование"; Запрос.УстановитьПараметр("ДокументОснование",СсылкаНаОбъект); Выборка = Запрос.Выполнить().Выбрать(); Если Выборка.Следующий() тогда СФ = Выборка.Ссылка.ПолучитьОбъект(); СФФорма = СФ.ПолучитьФорму("ФормаДокумента"); ДеревоМакетовПечати = УниверсальныеМеханизмы.ПолучитьДеревоМакетовПечати(СФ.Ссылка, Неопределено); СтрМакета = ДеревоМакетовПечати.Строки.Найти("Счет-фактура","Текст"); ТабДокумент = УниверсальныеМеханизмы.НапечататьВнешнююФорму(СФ, СФФорма); КонецЕсли; Возврат ТабДокумент; Выдаёт ошибку: Не удалось сформировать внешнюю печатную форму! Поле объекта не обнаружено (СсылкаНаВнешнююОбработку) Я так понимаю затык из-за этой строки ТабДокумент = УниверсальныеМеханизмы.НапечататьВнешнююФорму(СФ, СФФорма); Если делаю так: Запрос = новый запрос; Запрос.Текст = "ВЫБРАТЬ | СчетФактураВыданныйДокументыОснования.Ссылка.Ссылка |ИЗ | Документ.СчетФактураВыданный.ДокументыОснования КАК СчетФактураВыданныйДокументыОснования |ГДЕ | СчетФактураВыданныйДокументыОснования.ДокументОснование = &ДокументОснование"; Запрос.УстановитьПараметр("ДокументОснование",СсылкаНаОбъект); Выборка = Запрос.Выполнить().Выбрать(); Если Выборка.Следующий() тогда СФ = Выборка.Ссылка.ПолучитьОбъект(); СФФорма = СФ.ПолучитьФорму("ФормаДокумента"); ДеревоМакетовПечати = УниверсальныеМеханизмы.ПолучитьДеревоМакетовПечати(СФ.Ссылка, Неопределено); СтрМакета = ДеревоМакетовПечати.Строки.Найти("Счет-фактура","Текст"); УниверсальныеМеханизмы.НапечататьДокумент(СФ, СФФорма); КонецЕсли; То ошибка: Не удалось сформировать внешнюю печатную форму! Операции сравнения на больше-меньше допустимы только для значений совпадающих примитивных типов (Булево, Число, Строка, Дата) Что делаю не так? |
|||
2
polosov
09.08.16
✎
15:48
|
Вернуть табдок надо:
Возврат ТабДокумент; |
|||
3
polosov
09.08.16
✎
15:48
|
(2) А тьфу, увидел возврат
|
|||
4
AL_Rain
10.08.16
✎
10:09
|
Вот такой код, мне сказали правильный, но он почему-то не находит печатную форму под названием "Счет-фактура", выдаёт ошибку:
Не удалось сформировать внешнюю печатную форму! Значение не является значением объектного типа (Расшифровка) Ссылается на эту строку: Расшифровка = СтрМакета.Расшифровка; Для проверки другой ПФ указал другое название: Счет-фактура выданный (МСК и СПб), в ответ тишина, ничего не выдал (ни ошибок, ни формы на экран). Можете подсказать, как исправить? Запрос = новый запрос; Запрос.Текст = "ВЫБРАТЬ | СчетФактураВыданныйДокументыОснования.Ссылка.Ссылка |ИЗ | Документ.СчетФактураВыданный.ДокументыОснования КАК СчетФактураВыданныйДокументыОснования |ГДЕ | СчетФактураВыданныйДокументыОснования.ДокументОснование = &ДокументОснование"; Запрос.УстановитьПараметр("ДокументОснование",СсылкаНаОбъект); Выборка = Запрос.Выполнить().Выбрать(); Если Выборка.Следующий() тогда СФ = Выборка.Ссылка.ПолучитьОбъект(); //СФФорма = СФ.ПолучитьФорму("ФормаДокумента"); ДеревоМакетовПечати = УниверсальныеМеханизмы.ПолучитьДеревоМакетовПечати(СФ.Ссылка, Неопределено); СтрМакета = ДеревоМакетовПечати.Строки.Найти("Счет-фактура","Текст"); Расшифровка = СтрМакета.Расшифровка; Если ТипЗнч(Расшифровка) = Тип("Структура") Тогда ТабДокумент = УниверсальныеМеханизмы.НапечататьВнешнююФорму(СФ, Расшифровка); Если ТабДокумент <> Неопределено Тогда КоличествоЭкземпляров = 2; НаПринтер = Ложь; УниверсальныеМеханизмы.НапечататьДокумент(ТабДокумент, КоличествоЭкземпляров, НаПринтер, , СсылкаНаОбъект); КонецЕсли; КонецЕсли; КонецЕсли; Возврат ТабДокумент |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |