В этой записи мы разберем причину ошибки «Метод объекта не обнаружен (ПодготовитьКоллекциюПечатныхФорм)». Ошибка может возникнуть при обновлении конфигурации на версию 11.4.8 (конфигурация «Управление торговлей 11») или 2.4.8 (конфигурации «Комплексная автоматизация 2», «ERP Управление предприятием 2), ЗУП 3.1.10.
Ошибка связана с использованием в печатной форме метода УправлениеПечатью.ПодготовитьКоллекциюПечатныхФорм(), который в новых версиях конфигураций перестал быть экспортным. Для исправления ошибки добавьте процедуру ПодготовитьКоллекциюПечатныхФорм() в модуль обработки (в месте вызова):
// Конструктор для параметра КоллекцияПечатныхФорм процедуры Печать.
//
// ВозвращаемоеЗначение:
// ТаблицаЗначений - пустая коллекция печатных форм:
// * ИмяМакета - Строка - идентификатор печатной формы;
// * ИмяВРЕГ - Строка - идентификатор в верхнем регистре символов для быстрого поиска;
// * СинонимМакета - Строка - представление печатной формы;
// * ТабличныйДокумент - ТабличныйДокумент - печатная форма;
// * Экземпляров - Число - количество копий, которое необходимо вывести на печать;
// * Картинка - Картинка - (не используется);
// * ПолныйПутьКМакету - Строка - используется для быстрого перехода к редактированию макета печатной формы;
// * ИмяФайлаПечатнойФормы - Строка - имя файла;
// - Соответствие - имена файлов для каждого объекта:
// ** Ключ - ЛюбаяСсылка - ссылка на объект печати;
// ** Значение - Строка - имя файла;
// * ОфисныеДокументы - Соответствие - коллекция печатных форм в формате офисных документов:
// ** Ключ - Строка - адрес во временном хранилище двоичных данных печатной формы;
// ** Значение - Строка - имя файла печатной формы.
Функция ПодготовитьКоллекциюПечатныхФорм(Знач Идентификаторы)
Результат = Новый ТаблицаЗначений;
Для Каждого ИмяКолонки Из УправлениеПечатьюКлиентСервер.ИменаПолейКоллекцииПечатныхФорм() Цикл
Результат.Колонки.Добавить(ИмяКолонки);
КонецЦикла;
Если ТипЗнч(Идентификаторы) = Тип("Строка") Тогда
Идентификаторы = СтрРазделить(Идентификаторы, ",");
КонецЕсли;
Для Каждого Идентификатор Из Идентификаторы Цикл
ПечатнаяФорма = Результат.Найти(Идентификатор, "ИмяМакета");
Если ПечатнаяФорма = Неопределено Тогда
ПечатнаяФорма = Результат.Добавить();
ПечатнаяФорма.ИмяМакета = Идентификатор;
ПечатнаяФорма.ИмяВРЕГ = ВРег(Идентификатор);
ПечатнаяФорма.Экземпляров = 1;
Иначе
ПечатнаяФорма.Экземпляров = ПечатнаяФорма.Экземпляров + 1;
КонецЕсли;
КонецЦикла;
Результат.Индексы.Добавить("ИмяВРЕГ");
Возврат Результат;
КонецФункции
После добавления процедуры в модуль внешней обработки замените вызов УправлениеПечатью.ПодготовитьКоллекциюПечатныхФорм() на ПодготовитьКоллекциюПечатныхФорм(). После сохранения изменений необходимо обновить файл внешней печатной формы.
Добрый день! вчера воспользовался Вашей функцией
//Конструктор для параметра КоллекцияПечатныхФорм процедуры Печать.
на Вашем сайте по адресу
https://tnsoft.ru/blog/ispravlyaem-oshibku-metod-obekta-ne-obnaruzhen-podgotovitkollektsiyupechatnyhform/
утром сегодня запустил обработку которая содержит эту функцию- для рассылки бухгалтерских документов, сначала все шло хорошо выдавались сообщения о том, что письмо отправлено на такой то адрес, и вдруг пошли пустые сообщения , хотя в самом конце было выдано — рассылка завершена успешно. Я связался с бухгалтером одного из контрагентов из списка рассылок — у которого выдалось пустое сообщение — она посмотрела ей ничего не пришло
И затем сколько я ни пытался даже те контрагенты у кого первый раз сообщения были нормальные тоже пошли пустые сообщения — подскажите пожалуйста что могло произойти?
Заранее признателен
Добрый день! В Вашем случае необходимо анализировать обработку — удаленно определить причину такого поведения невозможно. Присылайте нам обработку на почту help@tnsoft.ru а также укажите наименование и версию используемой конфигурации 1С.