Версия для печати темы (https://pro1c.org.ua/index.php?s=b7d0670482199a7075aed17c309c2298&showtopic=50875)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 8.3 _ Сохранение печатной формы регламентным заданием

Автор: Inkognito 07.03.19, 10:06

Бухгалтерия для Украины 1.2, обычные формы.
Задача: сохранять печатную форму счета по расписанию на диск.
Проблема: ручная выгрузка документов проходит корректно, но когда создали регламентное задание - появляется ошибка Метод объекта не обнаружен (ПечатьСчетаЗаказа), хотя функция сделана экспортной (в типовой конфигурации она такой не является).

Документ = Документы.СчетНаОплатуПокупателю.СоздатьДокумент(); 
....
Документ.Записать();
            
ДокОб = Документ.Ссылка.ПолучитьОбъект();     
//1) Запуск обработки вручную - ОК  
//2) Запуск регламентным заданием - ошибка, см.выше "Метод объекта не обнаружен  (ПечатьСчетаЗаказа)"
ТабДок= ДокОб.ПечатьСчетаЗаказа("Счет");
//
ИмяФайла = "Рахунок №" + Строка(Номер) + " від " + Формат(Дата, "ДФ=dd-MM-yyyy");
ТабДок.Записать("C:\Rah\" + ИмяФайла + Строка(".PDF"), ТипФайлаТабличногоДокумента.PDF);

Автор: Vofka 07.03.19, 11:18

Эта функция скорее всего находится внутри директивы #Если Клиент

Автор: Inkognito 07.03.19, 11:50

Vofka
Точно, так и есть, - в самой конфигурации

// ЭКСПОРТНЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ ДОКУМЕНТА

#Если Клиент Тогда

// Функция формирует табличный документ с печатной формой заказа или счета,
// разработанного методистами
//
// Возвращаемое значение:
//  Табличный документ - сформированная печатная форма
//
Функция ПечатьСчетаЗаказа(Тип)

Перенес функцию выше определения #Если Клиент , но это не помогло.

Автор: Bernet 07.03.19, 12:14

Inkognito @ Сегодня, 11:50 * ,
на последнем примере не видно что процедура экспортная - она точно экспортная?

Автор: Inkognito 14.03.19, 12:23

Bernet
Да, экспортная. И не в "Клиенте". Актуально.
Картинка



Vofka
После того, как процедура была перенесена из конструкции Если Клиент, ошибка немного изменилась (стала "Ошибка инициализации модуля"):
Картинка

Автор: pablo 14.03.19, 12:24

Теперь штудируйте код функции, т.к. в нем могут вызываться функции, доступные только на клиенте.

Автор: Inkognito 14.03.19, 13:43

pablo
1) Общий модуль "ФормированиеПечатныхФорм" --- добавил флажки "Сервер" и "Внешнее соединение"
2) Общий модуль "ОбщегоНазначения", функция "ПолучитьНомерНаПечать", изменено:
//ПечатьПрефиксовРИБ = ОбщегоНазначения.ПолучитьЗначениеПеременной("ПечатьПрефиксаРИБ") И ПечатьПрефиксовРИБ;
ПечатьПрефиксовРИБ = Ложь;
//--------
Всем спасибо, заработало.

Автор: Inkognito 15.03.19, 12:43

Да, еще (может кому пригодится) - в макете нужно изменить фон шапки таблицы, с малинового на серый, иначе при выгрузке в PDF все содержимое шапки становится черным.

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua