Перестала работать УправлениеПечатьюБП.ДополнитьДокументПодписьюИПечатью()

1. config 198 22.02.24 12:12 Сейчас в теме
Уже сыпятся все печатные формы с подписью и печатью, начиная с релиза БП 3.0.148. Осторожно обновляйтесь, ребята.

Внимание! Порядок вывода факсимиле в печатные формы

Изменен порядок вывода факсимиле в печатные формы. Начиная с 01.01.2025 не будет поддерживаться совместимость для внешних форм, которые используют процедуру УправлениеПечатьюБП.ДополнитьДокументПодписьюИПечатью (). Если в конфигурации есть доработанные печатные формы или внешние печатные формы, которые используют эту процедуру, то эти печатные формы необходимо переделать. Требуется удалить вызов этой процедуры.
Оригинал: https://v8.1c.ru/news/vyshla-novaya-versiya-3-0-148-7-tipovoy-konfiguratsii-bukhgalteriya-nekommercheskoy-organizatsii-bazovaya.htm
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. RustamZz 22.02.24 13:06 Сейчас в теме
(1)
Начиная с 01.01.25
ну за 10 месяцев можно успеть и исправить.
3. config 198 22.02.24 15:08 Сейчас в теме
(2)не-не, ошибка уже при обновлении на свежий релиз!
4. config 198 22.02.24 15:11 Сейчас в теме
Клиент-то и возмущён тем, что сегодня уже надо вносить правки
Прикрепленные файлы:
5. laperuz 47 22.02.24 16:38 Сейчас в теме
Есть же патч EF_70078508
А вообще вот что 1С пишут:

Выпустили патч EF_70078508, в котором добавлена пустая процедура ДополнитьДокументПодписьюИПечатью().

Также в релизе 3.0.149 вернем пустую процедуру ДополнитьДокументПодписьюИПечатью().

Процедуру планируем убрать 01.12.2024, до этого времени рекомендуем отказаться от ее использования


Я в ответ на это предложил добавить не пустую, а с выводом сообщения о том, что процедура будет удалена, обещали подумать
6. slavok123 2 02.03.24 20:15 Сейчас в теме
УправлениеПечатьюБП.ДобавитьФаксимилеВФоне эту вообще убрали молча!!!
7. user1880116 03.03.24 10:46 Сейчас в теме
(6)
УправлениеПечатьюБП.ДобавитьФаксимилеВФоне
Ты уже во всех темах со своим нытьем отметился или ещё нет?

А ведь как раньше хорошо было! Сидишь, ничего не делаешь, зарплату получаешь. А тут раз, и что-то делать надо. 1С изменения вносят, за которым следить необходимо. Клиенты оборзели, сроки какие-то выставляют...
8. config 198 03.03.24 21:08 Сейчас в теме
Мне было достаточно просто убрать строчку УправлениеПечатьюБП.ДополнитьДокументПодписьюИПечатью() из своей внешней печатной формы. При этом факсимиле и печать продолжают выводится, их вывод в табличный документ просто перенесли.
9. user1762863 21.03.24 16:44 Сейчас в теме
(8)
При этом факсимиле и печать продолжают выводится, их вывод в табличный документ просто перенесли


Правда?
Ну если просто выводить на экран через общую форму "ПечатьДокументов", то да (и то не всегда)

А если у людей была обработка по массовой рассылке, печати, сохранении печатных форм?
Эти люди сейчас который раз уже достали желто-красную куклу вуду и колят в неё иголками.
Windsor77; config; +2 Ответить
10. config 198 21.03.24 20:56 Сейчас в теме
(9)
А если у людей была обработка по массовой рассылке, печати, сохранении печатных форм?

Оооо, сочувствую..
11. user1880116 21.03.24 21:09 Сейчас в теме
(9)
достали желто-красную куклу вуду и колят в неё иголками.
И, судя по форумам, тут же бешенно возмущаются, что им в зад что-то втыкают. Гаитянская магия, она такая.
12. user1762863 22.03.24 09:31 Сейчас в теме
Ну черт возьми, был какой-никакой API, который работал. Все просто -- вот макет, вот ссылка на документ, поставьте пожалуйста подписи и печати.
Нет, давайте его похерим, а вместо него дадим другой, который работает не скажу как.
И во всех макетах давайте переименуем картинки, чтобы люди заново рыли, как теперь подписи называются.
А сделаем мы это не скажем зачем, нам же захотелось.
Сидите и разбирайтесь сами, нешто вы не специалисты?
Windsor77; +1 Ответить
13. Denis_Shiln 03.04.24 14:19 Сейчас в теме
Решили данную задачу? Как сейчас выводить печать?
14. user1762863 03.04.24 15:54 Сейчас в теме
Решил. Накостылил, точнее говоря

Первую процедуру надо вызывать, ОбъектыПечати -- список значений

Процедура ДобавитьПодписьИПечать(ТабДокумент, ОбъектыПечати) Экспорт
	ПараметрыВывода = Новый Структура;
	ПараметрыВывода.Вставить("ДоступнаПечатьПоКомплектно", Ложь);
	ПараметрыВывода.Вставить("ЗаголовокФормы", "");
	ПараметрыВывода.Вставить("ИмяФайлаПоВходящимНомерам", Истина);
	ПараметрыВывода.Вставить("КодЯзыка", "ru");
	ПараметрыВывода.Вставить("ПараметрыОтправки", Новый Структура("Получатель, Текст, Тема", Неопределено, "", ""));
	
	ПодписиИПечати = ПодписиИПечатиТабличногоДокумента(ТабДокумент);
	ПодписиИПечатиОбластей = УправлениеПечатью.ПодписиИПечатиОбластей(ОбъектыПечати);
	
	ОбработанныеТабличныеДокументы = Новый Соответствие;
	
	РисункиТабличногоДокумента = ПодписиИПечати;
	Для Каждого СохраненныйРисунок Из РисункиТабличногоДокумента Цикл
		НовыйРисунок = ТабДокумент.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка);
		ЗаполнитьЗначенияСвойств(НовыйРисунок, СохраненныйРисунок);
		НовыйРисунок.Линия = Новый Линия(ТипЛинииРисункаТабличногоДокумента.НетЛинии);
	КонецЦикла;
	
	ДанныеПечатиРисунковТабличногоДокумента = УправлениеПечатью.ПодписиИПечатиТабличногоДокумента(ОбъектыПечати, ТабДокумент, "ru");
	Для Каждого ПодписиИПечатиОбласти Из ПодписиИПечатиОбластей Цикл
		ИмяОбласти = ПодписиИПечатиОбласти.Ключ;
		Если ДанныеПечатиРисунковТабличногоДокумента[ИмяОбласти] = Неопределено Тогда
			ДанныеПечатиРисунковТабличногоДокумента[ИмяОбласти] = Новый Соответствие();
		КонецЕсли;
		Для Каждого Элемент Из ПодписиИПечатиОбласти.Значение Цикл
			ДанныеПечатиРисунковТабличногоДокумента[ИмяОбласти][Элемент.Ключ] = Элемент.Значение;
		КонецЦикла;
	КонецЦикла;		
	
	УправлениеПечатью.ДобавитьПодписьИПечать(ТабДокумент, ДанныеПечатиРисунковТабличногоДокумента);
	
КонецПроцедуры

Функция ПодписиИПечатиТабличногоДокумента(ТабличныйДокумент) Экспорт
	
	РисункиТабличногоДокумента = Новый Массив;
	
	Для Каждого Рисунок Из ТабличныйДокумент.Рисунки Цикл
		Если УправлениеПечатью.ЭтоПодписьИлиПечать(Рисунок) Тогда
			ОписаниеРисунка = Новый Структура("Лево,Верх,Ширина,Высота,Картинка,Владелец,ЦветФона,Имя,Линия,
				|РазмерКартинки,ВертикальноеПоложение,ГоризонтальноеПоложение");
			ЗаполнитьЗначенияСвойств(ОписаниеРисунка, Рисунок);
			РисункиТабличногоДокумента.Добавить(ОписаниеРисунка);
		КонецЕсли;
	КонецЦикла;
	
	Возврат РисункиТабличногоДокумента;
	
КонецФункции
Показать
Ольга_tmp; +1 Ответить
15. Denis_Shiln 04.04.24 10:37 Сейчас в теме
(14) Вот спасибо, все работает.
17. user1489171 19.04.24 14:13 Сейчас в теме
(14) все равно спотыкается :-(... даже Рисунки у табличного документа ПУСТЫ.... видимо Объекты печати некоректно сформированы.... НО без подписей АКТ выводится :(((
18. user1489171 22.04.24 11:53 Сейчас в теме
(17) вот ЗДЕСЬ ломается :(
 Для Каждого Элемент Из ПодписиИПечатиОбласти.Значение Цикл
            ДанныеПечатиРисунковТабличногоДокумента[ИмяОбласти][Элемент.Ключ] = Элемент.Значение;
        КонецЦикла;



Итератор для значения не определен
22. Ольга_tmp 72 03.06.24 13:33 Сейчас в теме
(14)ОбъектыПечати - это список ссылок на документы?
23. Ольга_tmp 72 04.06.24 08:19 Сейчас в теме
(14)благодарю за наводку, завелось, делала новый список значений, который заполняла так - СписокЗначенийОбъектов.Добавить(Выборка.Ссылка,"Документ_1");
ну и затем скармливала в ДобавитьПодписьИПечать(ТабличныйДокумент,СписокЗначенийОбъектов);
16. user1762863 04.04.24 11:16 Сейчас в теме
Ну это я насобирал в типовой форме ПечатьДокументов

Они из общих модулей взяли и туда все засунули, чтобы никто не мог снаружи вызвать.
А у нас в начале месяца биллинг, рассылка, все дела. Все были просто счастливы. Вариантов два: захардкодить подпись и печать прямо в макеты, потом разбираться, или в авральном режиме костылить обертку.
Вот накостылил.
19. user1489171 22.04.24 12:18 Сейчас в теме
(18)короче.... ето что-то с чем то.... получился костыль путем перетаскивания и вызова процедуры

Процедура УправлениеКартинкойФаксимиле(РабочаяПечатнаяФорма, МассивИменПоказателей, Добавить = Истина)
	
	МассивИменОбластей = Новый Массив;
	Для Каждого ОбластьМакета ИЗ РабочаяПечатнаяФорма.Области Цикл
		Если СтрНайти(ОбластьМакета.Имя, "РасшифровкаФаксимилеМакета") <> 0 Тогда
			МассивИменОбластей.Добавить(ОбластьМакета.Имя);
		КонецЕсли;
	КонецЦикла;
	
	ЦветФонаБелый = Новый Цвет(255,255,255);
	ЦветФонаАвто  = Новый Цвет();
	
	Для Каждого ИмяОбластиМакета ИЗ МассивИменОбластей Цикл
		
		ОбластьМакета = РабочаяПечатнаяФорма.Области[ИмяОбластиМакета];
		Если НЕ ЭтоАдресВременногоХранилища(ОбластьМакета.Расшифровка) Тогда
			Продолжить;
		КонецЕсли;
		
		ДанныеФаксимиле = ПолучитьИзВременногоХранилища(ОбластьМакета.Расшифровка);
		Если ТипЗнч(ДанныеФаксимиле) <> Тип("Структура") Тогда
			Продолжить;
		КонецЕсли;
		
		Для Каждого ЗначениеПоказателя ИЗ МассивИменПоказателей Цикл
			
			Если НЕ ДанныеФаксимиле.Свойство(ЗначениеПоказателя) Тогда
				Продолжить;
			КонецЕсли;
			
			СтруктураЗначений = ДанныеФаксимиле[ЗначениеПоказателя];
			
			ИмяОбластиФаксимиле = ЗначениеПоказателя + "_" + СтруктураЗначений.ОбластьВладелец;
			
			АдресКартинки = СтруктураЗначений.ДанныеКартинки;
			
			Если Добавить И ЗначениеЗаполнено(АдресКартинки) Тогда
				
				ОбластьКартинки = РабочаяПечатнаяФорма.Области[СтруктураЗначений.ОбластьВладелец];
				
				РисунокТабличногоДокумента = РабочаяПечатнаяФорма.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка);
				РисунокТабличногоДокумента.Имя = ИмяОбластиФаксимиле;
				РисунокТабличногоДокумента.Линия = Новый Линия(ТипЛинииРисункаТабличногоДокумента.НетЛинии);
				РисунокТабличногоДокумента.РазмерКартинки = РазмерКартинки.Пропорционально;
				РабочаяПечатнаяФорма.Рисунки[РисунокТабличногоДокумента.Имя].Картинка = ПолучитьИзВременногоХранилища(АдресКартинки);
				РабочаяПечатнаяФорма.Рисунки[РисунокТабличногоДокумента.Имя].Расположить(ОбластьКартинки);
				РабочаяПечатнаяФорма.Рисунки[РисунокТабличногоДокумента.Имя].Верх           = СтруктураЗначений.Верх;
				РабочаяПечатнаяФорма.Рисунки[РисунокТабличногоДокумента.Имя].Лево           = СтруктураЗначений.Лево;
				РабочаяПечатнаяФорма.Рисунки[РисунокТабличногоДокумента.Имя].Высота         = СтруктураЗначений.Высота;
				РабочаяПечатнаяФорма.Рисунки[РисунокТабличногоДокумента.Имя].Ширина         = СтруктураЗначений.Ширина;
				Если СтрНайти(РисунокТабличногоДокумента.Имя, "ФаксимильнаяПечать") > 0 Тогда
					РабочаяПечатнаяФорма.Рисунки[РисунокТабличногоДокумента.Имя].ЦветФона   = ЦветФонаБелый;
				Иначе
					РабочаяПечатнаяФорма.Рисунки[РисунокТабличногоДокумента.Имя].ЦветФона   = ЦветФонаАвто;
				КонецЕсли;
			Иначе
				
				Если РабочаяПечатнаяФорма.Области.Найти(ИмяОбластиФаксимиле) <> Неопределено Тогда
					РабочаяПечатнаяФорма.Рисунки.Удалить(ИмяОбластиФаксимиле);
				КонецЕсли;
				
			КонецЕсли;
			
		КонецЦикла
		
	КонецЦикла;
	
КонецПроцедуры
Показать
21. Ольга_tmp 72 03.06.24 13:05 Сейчас в теме
(19)
Процедура УправлениеКартинкойФаксимиле(РабочаяПечатнаяФорма, МассивИменПоказателей, Добавить = Истина)

МассивИменОбластей = Новый Массив;
Для Каждого ОбластьМакета ИЗ РабочаяПечатнаяФорма.Области Цикл
Если СтрНайти(ОбластьМакета.Имя, "РасшифровкаФаксимилеМакета") <> 0 Тогда
МассивИменОбластей.Добавить(ОбластьМакета.Имя);
КонецЕсли;
КонецЦикла;

ЦветФонаБелый = Новый Цвет(255,255,255);
ЦветФонаАвто = Новый Цвет();

Для Каждого ИмяОбластиМакета ИЗ МассивИменОбластей Цикл

ОбластьМакета = РабочаяПечатнаяФорма.Области[ИмяОбластиМакета];
Если НЕ ЭтоАдресВременногоХранилища(ОбластьМакета.Расшифровка) Тогда
Продолжить;
КонецЕсли;

ДанныеФаксимиле = ПолучитьИзВременногоХранилища(ОбластьМакета.Расшифровка);
Если ТипЗнч(ДанныеФаксимиле) <> Тип("Структура") Тогда
Продолжить;
КонецЕсли;

Для Каждого ЗначениеПоказателя ИЗ МассивИменПоказателей Цикл

Если НЕ ДанныеФаксимиле.Свойство(ЗначениеПоказателя) Тогда
Продолжить;
КонецЕсли;

СтруктураЗначений = ДанныеФаксимиле[ЗначениеПоказателя];

ИмяОбластиФаксимиле = ЗначениеПоказателя + "_" + СтруктураЗначений.ОбластьВладелец;

АдресКартинки = СтруктураЗначений.ДанныеКартинки;

Если Добавить И ЗначениеЗаполнено(АдресКартинки) Тогда

ОбластьКартинки = РабочаяПечатнаяФорма.Области[СтруктураЗначений.ОбластьВладелец];

РисунокТабличногоДокумента = РабочаяПечатнаяФорма.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка);
РисунокТабличногоДокумента.Имя = ИмяОбластиФаксимиле;
РисунокТабличногоДокумента.Линия = Новый Линия(ТипЛинииРисункаТабличногоДокумента.НетЛинии);
РисунокТабличногоДокумента.РазмерКартинки = РазмерКартинки.Пропорционально;
РабочаяПечатнаяФорма.Рисунки[РисунокТабличногоДокумента.Имя].Картинка = ПолучитьИзВременногоХранилища(АдресКартинки);
РабочаяПечатнаяФорма.Рисунки[РисунокТабличногоДокумента.Имя].Расположить(ОбластьКартинки);
РабочаяПечатнаяФорма.Рисунки[РисунокТабличногоДокумента.Имя].Верх = СтруктураЗначений.Верх;
РабочаяПечатнаяФорма.Рисунки[РисунокТабличногоДокумента.Имя].Лево = СтруктураЗначений.Лево;
РабочаяПечатнаяФорма.Рисунки[РисунокТабличногоДокумента.Имя].Высота = СтруктураЗначений.Высота;
РабочаяПечатнаяФорма.Рисунки[РисунокТабличногоДокумента.Имя].Ширина = СтруктураЗначений.Ширина;
Если СтрНайти(РисунокТабличногоДокумента.Имя, "ФаксимильнаяПечать") > 0 Тогда
РабочаяПечатнаяФорма.Рисунки[РисунокТабличногоДокумента.Имя].ЦветФона = ЦветФонаБелый;
Иначе
РабочаяПечатнаяФорма.Рисунки[РисунокТабличногоДокумента.Имя].ЦветФона = ЦветФонаАвто;
КонецЕсли;
Иначе

Если РабочаяПечатнаяФорма.Области.Найти(ИмяОбластиФаксимиле) <> Неопределено Тогда
РабочаяПечатнаяФорма.Рисунки.Удалить(ИмяОбластиФаксимиле);
КонецЕсли;

КонецЕсли;

КонецЦикла

КонецЦикла;

КонецПроцедуры
Показать
Гхм, а в чем ее смысл? у меня в областях макета нет имен РасшифровкаФаксимилеМакета, соответственно и все остальное не отрабатывает
20. VladimirMezentsev 02.05.24 04:40 Сейчас в теме
Для БП 3.0 добавил следующее

	ПодписиИПечатиОбластей = УправлениеПечатью.ПодписиИПечатиОбластей(ОбъектыПечати);
	ДанныеПечатиРисунковТабличногоДокумента = УправлениеПечатью.ПодписиИПечатиТабличногоДокумента(ОбъектыПечати, ТабДок, );
	Для Каждого ПодписиИПечатиОбласти Из ПодписиИПечатиОбластей Цикл
		ИмяОбласти = ПодписиИПечатиОбласти.Ключ;
		Если ДанныеПечатиРисунковТабличногоДокумента[ИмяОбласти] = Неопределено Тогда
			ДанныеПечатиРисунковТабличногоДокумента[ИмяОбласти] = Новый Соответствие();
		КонецЕсли;
		Для Каждого Элемент Из ПодписиИПечатиОбласти.Значение Цикл
			ДанныеПечатиРисунковТабличногоДокумента[ИмяОбласти][Элемент.Ключ] = Элемент.Значение;
		КонецЦикла;
	КонецЦикла;		
	
	УправлениеПечатью.ДобавитьПодписьИПечать(ТабДок, ДанныеПечатиРисунковТабличногоДокумента);
Показать
user1959776; user1430013; user_pdd; config; +4 Ответить
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот