Доброго времени суток.
Есть фоновое задание ,отрабатывается в общом модуле, оно вызывает процедуру из модуля объекта справочника, на клиенте процедуру видит,на сервере выдает ошибку,помогите разобратся!
Каталог = ПолучитьИмяВременногоФайла();
ИмяФайла = рфПолучитьИмяФайла(Каталог,Строка.Имя);
рфСохранитьФайлНаДиске(Строка.Файл,ИмяФайла,,"ДА");
ЧтениеZIP = Новый ЧтениеZipФайла(ИмяФайла);
ЧтениеZIP.ИзвлечьВсе(Каталог);
Объект = СпрПрайсЛисты.ПолучитьОбъект();
Объект.ФайлИсточникДанных = Перечисления.ИсточникЗагрузкиПрайса.Файл;
Объект.СтрокаПодключения = Каталог+"\"+ЧтениеZIP[0].Имя;
Объект.Записать();
Объект.ЗагрузитьПрайсЛист(Ложь);
Процедура ЗагрузитьПрайсЛист(ПолнаяЗамена=Истина) Экспорт
#Если Клиент Тогда
Если ЭтоНовый() Тогда
Ответ = Вопрос("Элемент еще не записан, загрузка не возможена. Записать элемент?", РежимДиалогаВопрос.ДаНет);
Если Ответ = КодВозвратаДиалога.Да Тогда
Попытка
Записать();
Исключение
Возврат;
КонецПопытки;
Иначе
Возврат;
КонецЕсли;
КонецЕсли;
#КонецЕсли
ЕстьЗаполненныеПоля = Ложь;
Для Каждого ПолеЗагрузки Из СтруктураФайлаПрайсЛиста Цикл
Если обЗначениеНеЗаполнено(ПолеЗагрузки.ИмяПоляФайла) Тогда
Продолжить;
КонецЕсли;
ЕстьЗаполненныеПоля = Истина;
Прервать;
КонецЦикла;
Если ((Не ЕстьЗаполненныеПоля) и (ФайлИсточникДанных<>Перечисления.ИсточникЗагрузкиПрайса.Обработка)) Тогда
// если поля не заполнены продолжать не имеет смысла
#Если Клиент Тогда
Предупреждение("Ни одно поле таблицы не заполнено!",обПраво("ТаймаутДиалогов",глПрава));
#КонецЕсли
Возврат;
КонецЕсли;
//Получим набор записей регистра сведений
РегистрПрайсЛистов=РегистрыСведений.ПрайсЛистыКонтрагентов.СоздатьНаборЗаписей();
РегистрПрайсЛистов.Отбор.ПрайсЛист.Значение=Ссылка;
РегистрПрайсЛистов.Отбор.ПрайсЛист.Использование=Истина;
НачатьТранзакцию();
ДатаЗагрузки=ТекущаяДата();
Записать();
Если ПолнаяЗамена Тогда
РегистрПрайсЛистов.Записать();
Иначе
РегистрПрайсЛистов.Прочитать();
КонецЕсли;
ТЗПрайсЛиста=РегистрПрайсЛистов.Выгрузить();
РезультатЗагрузки=Истина;
Если ФайлИсточникДанных=Перечисления.ИсточникЗагрузкиПрайса.Файл Тогда
//Грузим Exсel
ТипФайла=ВРег(Прав(СокрЛП(СтрокаПодключения),4));
Если ТипФайла=".XLS" ИЛИ ТипФайла="XLSX" ИЛИ ТипФайла=".CSV" Тогда
РезультатЗагрузки=ПрочитатьEXCEL(ТЗПрайсЛиста);
ИначеЕсли ТипФайла=".TXT" Тогда
РезультатЗагрузки=ПрочитатьTXT(ТЗПрайсЛиста);
Иначе
#Если Клиент Тогда
Сообщить("Недопустимый тип файла."); Возврат;
#КонецЕсли
КонецЕсли;
ИначеЕсли ФайлИсточникДанных=Перечисления.ИсточникЗагрузкиПрайса.ИсточникДанных Тогда //Грузим из ADO
РезультатЗагрузки=ПрочитатьADO(ТЗПрайсЛиста);
Иначе
#Если Клиент Тогда
Форма=ПолучитьФорму("Обработка."+СокрЛП(СтрокаПодключения)+".Форма");
Форма.ПрайсЛистДляЗагрузки=ЭтотОбъект.Ссылка;
Форма.СрокПоставки=СрокПоставкиПоУмолчанию;
Форма.Открыть();
#КонецЕсли
Возврат;
КонецЕсли;
спУдалить = Новый СписокЗначений;
Для Каждого СтрПрайс Из ТЗПрайсЛиста Цикл
Если ПустаяСтрока(СтрПрайс.Артикул) Тогда
Попытка
СтрПрайс.Артикул=Лев(СтрПрайс.Наименование,15)+Прав(Строка(Новый УникальныйИдентификатор()),10);
Исключение
спУдалить.Добавить(СтрПрайс);
КонецПопытки;
КонецЕсли;
КонецЦикла; //Иначе СтрПрайс.Артикул = АртикулДляПоиска(СтрПрайс.Артикул);
Для Каждого удЭлем Из спУдалить Цикл ТЗПрайсЛиста.Удалить(удЭлем.Значение); КонецЦикла;
ЗафиксироватьТранзакцию();
НачатьТранзакцию();
Если РезультатЗагрузки<>Неопределено И РезультатЗагрузки Тогда
НаборЗаписейПрайсЛиста=РегистрыСведений.ПрайсЛистыКонтрагентов.СоздатьНаборЗаписей();
сч=0;
Для Каждого СтрРез Из ТЗПрайсЛиста Цикл
НаборЗаписейПрайсЛиста.Отбор.Артикул.Установить(СтрРез.Артикул);
НаборЗаписейПрайсЛиста.Отбор.ПрайсЛист.Установить(СтрРез.ПрайсЛист);
НаборЗаписейПрайсЛиста.Отбор.Производитель.Установить(СтрРез.Производитель);
НаборЗаписейПрайсЛиста.Прочитать();
Если НаборЗаписейПрайсЛиста.Количество()=1 Тогда
ТекущаяЗапись = НаборЗаписейПрайсЛиста[0];
ЗаполнитьЗначенияСвойств(ТекущаяЗапись,СтрРез);
Попытка
НаборЗаписейПрайсЛиста.Записать();
Исключение
#Если Клиент Тогда
Сообщить("Ошибка записи строки прайс-листа: "+ОписаниеОшибки());
#КонецЕсли
КонецПопытки;
Иначе
НовРег = РегистрыСведений.ПрайсЛистыКонтрагентов.СоздатьМенеджерЗаписи();
ЗаполнитьЗначенияСвойств(НовРег,СтрРез);
НовРег.Записать();
КонецЕсли;
сч=сч+1;
Если сч%1000=0 Тогда
ЗафиксироватьТранзакцию();
#Если Клиент Тогда
Состояние("Записано в регистр: "+сч);
#КонецЕсли
НачатьТранзакцию();
КонецЕсли;
КонецЦикла;
Иначе
#Если Клиент Тогда
Сообщить("Ошибка при загрузке прайс-листа");
#КонецЕсли
ОтменитьТранзакцию(); Возврат;
КонецЕсли;
ЗафиксироватьТранзакцию();
#Если Клиент Тогда
Сообщить("Обработка прайс-листа завершена !");
ФормаСписка=РегистрыСведений.ПрайсЛистыКонтрагентов.ПолучитьФормуСписка();
ФормаСписка.Отбор.ПрайсЛист.Значение=Ссылка; ФормаСписка.Отбор.ПрайсЛист.Использование=Истина;
ФормаСписка.Отбор.Контрагент.Значение=Ссылка.Владелец; ФормаСписка.Отбор.Контрагент.Использование=Истина;
ФормаСписка.Открыть();
#КонецЕсли
КонецПроцедуры
ОбработкаЗагрузкиКурсовВалют = Обработки.ЗагрузкаКурсовВалют.Создать();
ОбработкаЗагрузкиКурсовВалют.НачДата = ТекущаяДата();
ОбработкаЗагрузкиКурсовВалют.КонДата = ТекущаяДата();
ОбработкаЗагрузкиКурсовВалют.ЗаполнитьВалюты(Истина);
ОбработкаЗагрузкиКурсовВалют.ЗагрузитьКурсы();