Внешняя печатная форма непроведенного документа на управляемых формах

24.08.17

Задачи пользователя - Адаптация типовых решений

Одно из решений, когда нужно сформировать внешнюю печатную форму для непроведенного документа.

Скачать исходный код

Наименование Файл Версия Размер
Внешняя печатная форма непроведенного документа на управляемых формах:
.epf 41,56Kb
41
.epf 41,56Kb 41 Скачать

Часто возникает не совсем правильная, но такая необходимая потребность сфомировать печатную форму непроведенного документа.

В основе метода публикация Передача параметров во внешнюю печатную форму

  1.  Открыть любую ВПФ.
  2. Создать пустую форму

  1. Заполнить параметры формы

  1. В модуль формы вставить код

&НаСервереБезКонтекста
Функция ЕстьОбщийМодуль(НазваниеМодуля)
	Возврат Метаданные.ОбщиеМодули.Найти(НазваниеМодуля) <> Неопределено;
КонецФункции

&НаКлиенте
Процедура ПриОткрытии(Отказ)

	ВыполняемаяКоманда = Параметры;

	СтандартнаяОбработка = Истина;
	//Проверка на релиз БСП для универсальности.
	//Общий модуль ДополнительныеОтчетыИОбработкиКлиентПереопределяемый существует в версии БСП выше 2.0.1.19
	Если ЕстьОбщийМодуль("ДополнительныеОтчетыИОбработкиКлиентПереопределяемый") Тогда
		Выполнить("ДополнительныеОтчетыИОбработкиКлиентПереопределяемый.ПередВыполнениемКомандыПечатиВнешнейПечатнойФормы(ВыполняемаяКоманда.ОбъектыНазначения, СтандартнаяОбработка);");
	КонецЕсли;
	

	//Определение и заполнение штатных параметров для общей формы ПечатьДокументов
	ПараметрыОткрытия = Новый Структура("ИсточникДанных, ПараметрыИсточника");
	ПараметрыОткрытия.ИсточникДанных	 = ВыполняемаяКоманда.ДополнительнаяОбработкаСсылка;
	ПараметрыОткрытия.ПараметрыИсточника = Новый Структура("ИдентификаторКоманды, ОбъектыНазначения");
	ПараметрыОткрытия.ПараметрыИсточника.ИдентификаторКоманды = ВыполняемаяКоманда.ИдентификаторКоманды;
	
	ПараметрыОткрытия.ПараметрыИсточника.ОбъектыНазначения = ВыполняемаяКоманда.ОбъектыНазначения;
	
	//Вывод сформированного табличного документа в штатную форму.
	ОткрытьФорму("ОбщаяФорма.ПечатьДокументов", ПараметрыОткрытия);
	
	ЭтаФорма.Закрыть();	
КонецПроцедуры
  1. В модуле Объекта "ВызовСерверногоМетода" заменить на "ОткрытиеФормы"
	ДобавитьКоманду(ТаблицаКоманд,
		НСтр("ru = 'ВПФ Товарный чек'"),
		"ПФ_MXL_РеализацияТоваров",
		//"ВызовСерверногоМетода",
		"ОткрытиеФормы",
		Истина,
		"ПечатьMXL");
  1. Доработать экспортную процедуру "Печать"
	//УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм,	"ПФ_MXL_РеализацияТоваров",	НСтр("ru='Реализация товаров'"),
	//		СформироватьПечатнуюФормуНакладная(МассивОбъектов, ОбъектыПечати, Неопределено, ПараметрыВывода));
	
			
	Если ТипЗнч(МассивОбъектов) = Тип("СписокЗначений") Тогда
		МассивОбъектов = МассивОбъектов.ВыгрузитьЗначения();
	КонецЕсли;
		
	ИмяМакета = "ПФ_MXL_РеализацияТоваров";
	ПараметрыВывода.Вставить("ИмяМакета", ИмяМакета);		
	
	ссылкаДок = МассивОбъектов[0];
	//управляем именем сохранения файла
	имяФСохр = ПрефиксацияОбъектовКлиентСервер.ПолучитьНомерНаПечать(ссылкаДок.Номер) + " " + СокрЛП(ссылкаДок.Метаданные().Синоним) + " " + СокрЛП(ссылкаДок.Контрагент);	
	
	УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм,	"ПФ_MXL_РеализацияТоваров",	НСтр("ru='Реализация товаров'"),
		СформироватьПечатнуюФормуНакладная(МассивОбъектов, ОбъектыПечати, Неопределено, ПараметрыВывода),,, имяФСохр);
			

ВПФ печатная форма не проведен 1С8 отчет внешний

См. также

Табличная часть в доп. реквизитах и формирование таблиц в шаблоне docx для 1С:ДО 3.0

Адаптация типовых решений Платформа 1С v8.3 1С:Документооборот Россия Платные (руб)

Расширение конфигурации для «1С:Документооборот КОРП», редакция 3.0. позволяет: 1.использовать произвольные табличные части в качестве дополнительных реквизитов к документу; 2 использовать произвольные табличные части в шаблонах в формате docx для автоматического заполнения таблиц.

29400 руб.

29.06.2023    4653    9    5    

18

Расширение для 1С:УНФ. Автоматическое снятие резервов в Заказах покупателей

Логистика, склад и ТМЦ Адаптация типовых решений Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 Россия Управленческий учет Платные (руб)

Чтобы не допустить путаницы с обещаниями клиентам и для четкого контроля исполнения заказов мы используем резервирование товаров. Мы доработали УНФ, чтобы она автоматически отменяла старые резервы и не мешала эффективно продавать.

7200 руб.

02.08.2023    3062    4    0    

20

Создать на основании - своя кнопка (БСП). Проблема двух подменю Создать на основании

БСП (Библиотека стандартных подсистем) Адаптация типовых решений Платформа 1С v8.3 1С:ERP Управление предприятием 2 Бесплатно (free)

Понадобилось в подменю "Создать на основании" добавить свою команду, которая открывает обработку. В процессе доработок появилась проблема двух подменю "Создать на основании". В статье о том, как решились проблемы.

01.03.2024    1691    dimanich70    8    

14

Доработка отчета "Связанные документы" (структура подчиненности) для вывода объектов из любого расширения

Адаптация типовых решений Платформа 1С v8.3 1С:Управление торговлей 11 Россия Абонемент ($m)

Доработка типового отчета "Связанные документы" позволяет просто и быстро расширять состав объектов для построения структуры подчиненности документов, используя объекты основной конфигурации и любых расширений.

1 стартмани

27.10.2023    2109    19    avmartynov    14    

44

Печать непроведенных документов для УТ, КА, ERP. Настройка печати по пользователям, документам и печатным формам

Пакетная печать Печатные формы Адаптация типовых решений Универсальные функции Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Абонемент ($m)

Расширение для программ 1С:Управление торговлей, 1С:Комплексная автоматизация, 1С:ERP, которое позволяет распечатывать печатные формы для непроведенных документов. Можно настроить, каким пользователям, какие конкретные формы документов разрешено печатать без проведения документа.

2 стартмани

22.08.2023    2244    25    progmaster    8    

3
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Diagnostiks 17 31.07.17 09:48 Сейчас в теме
Добрый день. В чем отличия формирования внешней печатной формы для непроведенного и проведенного документа? В том, и то случаю, документ уже записан в базу и имеют ссылку.
4. Umix 131 31.07.17 13:45 Сейчас в теме
(1) Здравствуйте, если документ непроведен, то система не дает сформировать печатную форму без предварительного проведения документа. Это лишние вопросы, движения, время. Эта обработка решает эту задачу. Да данная версия работает, когда документ уже имеет ссылку, надо попробовать печать без существования документа, как было в 1с7 по контексту.
5. Diagnostiks 17 31.07.17 13:58 Сейчас в теме
(4)
Здравствуйте, если документ непроведен, то система не дает сформировать печатную форму без предварительного проведения документа. Это лишние вопросы, движения, время. Эта обработка решает эту задачу. Да данная версия работает, когда документ уже имеет ссылку, надо попробовать печать без существования документа, как было в 1с7 по контексту.

Добрый день. Не понятно, как это не дает? Какая конфигурация? Какая версия БСП? Проверил на 5 разных конфигурациях (УТ11, Розница 2.2, БП3.0, ЗУП3.1, УСЦ1.6) и все прекрасно работает и выдает печатную форму, даже когда документ не проведен (но записан и есть ссылка).

Вот печать без существования документа (то есть, ссылки еще не существует) довольно интересная задача. А то, что есть у Вас, обычная задача по формированию печатной формы с помощью БСП, "решения" я никакого не вижу. Да и открытие формы необходимо только тогда, когда пользователю надо дать возможность указать дополнительные данные для печати.
6. Umix 131 31.07.17 20:14 Сейчас в теме
(5)
Проверил на 5 разных конфигурациях (УТ11, Розница 2.2, БП3.0, ЗУП3.1, УСЦ1.6) и все прекрасно работает и выдает печатную форму, даже когда документ не проведен (но записан и есть ссылка)


вот пример УТ 11.2.3.185, не хочет... без проведения
Прикрепленные файлы:
7. Diagnostiks 17 31.07.17 21:02 Сейчас в теме
(6) Это пример типовой печатной формы?
8. Umix 131 31.07.17 22:18 Сейчас в теме
(7) верно,
нетиповая ВПФ так же ругается
9. Diagnostiks 17 31.07.17 23:01 Сейчас в теме
(6) Про данную конфигурацию согласен. Опять же, в конфигурации "Бухгалтерия предприятия, ред. 3.0" все спокойно печатается. В УТ11 это скорее "атовизм", чем правило, ибо данное правило БСП уже отменили. И кстати, в УТ11.3, которая есть на работе (типовая полностью), печать непроведенных доступна.
10. Umix 131 01.08.17 08:08 Сейчас в теме
(9) главное есть окошко для решения подобной ситуации, понадобилось, а оно - есть.
2. Alias 176 31.07.17 11:58 Сейчас в теме
Посмотрел у себя в одной из ВПФ -- сделано так же (видимо, источник копипаста имеет общие корни), но вместо "ОткрытияФормы" используется "ВызовКлиентскогоМетода". Это позволяет избавиться от фиктивного использования формы, которая в Вашем случае закрывается сразу же в событии ПриОткрытии(). Код из ПриОткрытии расположен в единственной процедуре Печать() модуля формы.
Зато в Вашем случае, как я понимаю, можно использовать открытую форму (если не закрывать её сразу) для установки каких-то интерактивных параметров перед печатью?
3. Umix 131 31.07.17 13:41 Сейчас в теме
(2) Вы правы, в шапке указан источник, который был взят за основу. Как раз в нем и говорится, как сделать так, чтобы передавать параметры в управляемую форму при открытии, но частенько пользователям этого не нужно, им просто нужна печать непроведенного документа.
11. mifka186 8 27.10.17 10:55 Сейчас в теме
Вместо того чтобы дать пользователю право печати непроведенных документов - создаём ВПФ. Норм
Прикрепленные файлы:
12. Umix 131 27.10.17 14:20 Сейчас в теме
(11) Мы говорим с вами о разных платформах и, соответственно, разных возможностях.
Dmitri93; +1 Ответить
13. djan 17.02.20 17:26 Сейчас в теме
Столкнулся с такой же проблемой. Сделал так:
1. В модуле объекта вместо "ОткрытияФормы" прописал "ВызовКлиентскогоМетода";
2. В модуле формы создал экспортную процедуру Печать

&НаКлиенте
Процедура Печать(ИдентификаторПечатнойФормы,  ОбъектыНазначения) Экспорт
	
	КоллекцияПечатныхФорм = ВывестиТабличныйДокументВКоллекцию(ИдентификаторПечатнойФормы, ОбъектыНазначения);
	
	МодульУправлениеПечатьюКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("УправлениеПечатьюКлиент");
			
	МодульУправлениеПечатьюКлиент.ПечатьДокументов(КоллекцияПечатныхФорм);
	
КонецПроцедуры
Показать


3. Добавил серверную процедуру для формирования коллекции печатных форм

&НаСервере
Функция ВывестиТабличныйДокументВКоллекцию(ИмяМакета, ОбъектыНазначения)

	//подготовка переменных для заполнении КоллекцияПечатныхФорм на сервере
	ОбъектыПечати = Новый СписокЗначений;
	ПараметрыВывода = УправлениеПечатью.ПодготовитьСтруктуруПараметровВывода();	
	//КоллекцияПечатныхФорм = УправлениеПечатью.ПодготовитьКоллекциюПечатныхФорм(ИмяМакета);
	КоллекцияПечатныхФорм = ПодготовитьКоллекциюПечатныхФорм(ИмяМакета);
	
	ОбъектОбработка = РеквизитФормыВЗначение("Объект");
	ОбъектОбработка.Печать(ОбъектыНазначения, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода, Истина);
	   
	//создание и заполнение массива -КоллекцияПечатныхФорм для передачи на клиент	
	Поля = УправлениеПечатьюКлиентСервер.ИменаПолейКоллекцииПечатныхФорм();
	Результат = Новый Массив;
	ПечатнаяФорма = Новый Структура(СтрСоединить(Поля, ","));
	ПечатнаяФорма.ИмяМакета = ИмяМакета;
	ПечатнаяФорма.ИмяВРЕГ = ВРег(ИмяМакета);
	ПечатнаяФорма.Экземпляров = 1;
	
	СтрокаКоллекции = КоллекцияПечатныхФорм.Найти(ИмяМакета,"ИмяМакета");
	Если СтрокаКоллекции <> Неопределено Тогда
		ЗаполнитьЗначенияСвойств(ПечатнаяФорма, СтрокаКоллекции);	
	КонецЕсли; 
	
	Результат.Добавить(ПечатнаяФорма);
		
	Возврат Результат;
	
КонецФункции
Показать


4. пришлось еще добавить в форму процедуру ПодготовитьКоллекциюПечатныхФорм т.к. в модуле УправлениеПечатью она не экспортная
inalaxe; m_gin; user1231816; +3 Ответить
15. Umix 131 27.03.23 23:46 Сейчас в теме
...
(13)
&НаКлиенте
Процедура Печать(ИдентификаторПечатнойФормы, ОбъектыНазначения) Экспорт

КоллекцияПечатныхФорм = ВывестиТабличныйДокументВКоллекцию(ИдентификаторПечатнойФормы, ОбъектыНазначения);

МодульУправлениеПечатьюКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("УправлениеПечатьюКлиент");

МодульУправлениеПечатьюКлиент.ПечатьДокументов(КоллекцияПечатныхФорм);

КонецПроцедуры






По данной схеме сыпятся ошибки.

Вот такой вариант остается рабочим и сегодня.

Пример описания


Функция СведенияОВнешнейОбработке() Экспорт

ПараметрыРегистрации = Новый Структура;

ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма");
ПараметрыРегистрации.Вставить("Назначение", ПолучитьНазначениеОбработки());
ПараметрыРегистрации.Вставить("Наименование", НСтр("ru = 'Заказ покупателя (Заказ на поиск и Заказ на самовывоз)'"));
ПараметрыРегистрации.Вставить("Версия", "20230327");
ПараметрыРегистрации.Вставить("БезопасныйРежим", Ложь);
ПараметрыРегистрации.Вставить("Информация", НСтр("ru = 'Заказ покупателя (Заказ на поиск и Заказ на самовывоз)'"));

ТаблицаКоманд = ПолучитьТаблицуКоманд();

ДобавитьКоманду(ТаблицаКоманд,
НСтр("ru = 'Заказ на поиск'"),
"ЗаказНаПоиск",
//"ВызовСерверногоМетода",
//"ОткрытиеФормы",
"ВызовКлиентскогоМетода",
Истина,
"ПечатьMXL");
ДобавитьКоманду(ТаблицаКоманд,
НСтр("ru = 'Заказ на самовывоз'"),
"ЗаказНаСамовывоз",
//"ВызовСерверногоМетода",
//"ОткрытиеФормы",
"ВызовКлиентскогоМетода",
Истина,
"ПечатьMXL");

ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);

Возврат ПараметрыРегистрации;

КонецФункции



В форме


&НаКлиенте
Процедура Печать(ИмяКоманды, МассивОбъектов, ПараметрыПечати = неопределено, КоллекцияПечатныхФорм = неопределено, ОбъектыПечати = неопределено, ПараметрыВывода = неопределено) Экспорт

ВыполняемаяКоманда = Параметры;

ПараметрыОткрытия = Новый Структура("ИсточникДанных, ПараметрыИсточника");
ПараметрыОткрытия.ИсточникДанных = ВыполняемаяКоманда.ДополнительнаяОбработкаСсылка;
ПараметрыОткрытия.ПараметрыИсточника = Новый Структура("ИдентификаторКоманды, ОбъектыНазначения");
ПараметрыОткрытия.ПараметрыИсточника.ИдентификаторКоманды = ВыполняемаяКоманда.ИдентификаторКоманды;

ПараметрыОткрытия.ПараметрыИсточника.ОбъектыНазначения = ВыполняемаяКоманда.ОбъектыНазначения;
ОткрытьФорму("ОбщаяФорма.ПечатьДокументов", ПараметрыОткрытия);

КонецПроцедуры // Печать()
14. userAlenaLobaskina 26.06.20 15:12 Сейчас в теме
Спасибо Вам огромное за публикацию!!!
Оставьте свое сообщение