|
Автоматическая выгрузка универсального отчета на другой сервер. | ☑ | ||
---|---|---|---|---|
0
Anabella
30.05.18
✎
17:06
|
Добрый день. У нас есть сервак для рабочих баз, куда доступ для всего остального строго закрыт, и другие серваки. Нужно сделать регламентное задание которое бы ночью выгружало из УТ10 список отчетов в папку на другом сервере. Обработку написала. Под собой отлично работает. А в регламентном задании - нет. Причем не видно, что он вообще его формирует, оно почти тут же останавливается с ошибкой. А что за ошибка, хрен пойми.
Код следующий: Процедура ВыгрузитьОтчеты() Экспорт ПараметрыПоиска = ПолучитьСписокОтчетов(); Для каждого СтрокаПоиска из ПараметрыПоиска цикл Если СтрокаПоиска.Неделя = истина тогда Если ДеньНедели(ТекущаяДата()) = 1 тогда Иначе продолжить; КонецЕсли; КонецЕсли; Период = ПолучитьПериод(СтрокаПоиска.ПериодНачало,СтрокаПоиска.ПериодОкончание); Если СтрокаПоиска.ИмяОбъекта <> "ОтчетОбъект.Прайс" тогда ТабДок = Новый ТабличныйДокумент; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | СохраненныеНастройки.СохраненнаяНастройка |ИЗ | РегистрСведений.СохраненныеНастройки КАК СохраненныеНастройки |ГДЕ | СохраненныеНастройки.Пользователь = &Пользователь | И СохраненныеНастройки.ИмяОбъекта = &ИмяОбъекта | И СохраненныеНастройки.НаименованиеНастройки = &НаименованиеНастройки"; Запрос.УстановитьПараметр("Пользователь", СтрокаПоиска.Пользователь); Запрос.УстановитьПараметр("ИмяОбъекта",СтрокаПоиска.ИмяОбъекта); Запрос.УстановитьПараметр("НаименованиеНастройки",СтрокаПоиска.НаименованиеНастройки); Выборка = Запрос.Выполнить().Выбрать(); Выборка.Следующий(); Точка = Найти(СтрокаПоиска.ИмяОбъекта,"."); КоличествоСимволов = (СтрДлина(СтрокаПоиска.ИмяОбъекта))-Точка; ИмяОбъектаОтчета = Прав(СтрокаПоиска.ИмяОбъекта,КоличествоСимволов); Отчет = Отчеты[ИмяОбъектаОтчета].Создать(); УниверсальныйОтчет = Отчеты.УниверсальныйОтчет.Создать(); СтруктураНастройки = Новый Структура; СтруктураНастройки.Вставить("Пользователь", СтрокаПоиска.Пользователь); СтруктураНастройки.Вставить("ИмяОбъекта", СтрокаПоиска.ИмяОбъекта); СтруктураНастройки.Вставить("НаименованиеНастройки", СтрокаПоиска.НаименованиеНастройки); СтруктураНастройки.Вставить("СохраненнаяНастройка", Выборка.СохраненнаяНастройка.Получить()); УниверсальныеМеханизмы.ПолучитьНастройку(СтруктураНастройки); СтруктураНастройки.СохраненнаяНастройка.НастройкаПериода.ДатаНачала = Период.Дата1; СтруктураНастройки.СохраненнаяНастройка.НастройкаПериода.ДатаОкончания = Период.Дата2; УниверсальныйОтчет.мТекущаяНастройка = СтруктураНастройки; УниверсальныйОтчет.ВосстановитьНастройкиИзСтруктуры(СтруктураНастройки.СохраненнаяНастройка); Отчет.ВосстановитьНастройкиИзСтруктуры(СтруктураНастройки.СохраненнаяНастройка); Отчет.СформироватьОтчет(ТабДок); ИмяФайла = СтрокаПоиска.НаименованиеОтчета; Результат = "net use t: \\gate.saks.ru\translate\service\1c\_1с.ут.отчёты Amozhetbyttakoyparol7 /user:OFFICE\1cut"; ЗапуститьПриложение(Результат,,Истина); ПутьКФайлуДискПодключен = "t:\" + ИмяФайла + ".xlsx"; //ПутьКФайлуДискПодключен = "t:\\gate.saks.ru\translate\service\1c\_1с.ут.отчёты\" + ИмяФайла + ".xlsx"; Файл = Новый Файл(ПутьКФайлуДискПодключен); ТабДок.Записать(ПутьКФайлуДискПодключен,ТипФайлаТабличногоДокумента.XLSX); КонецПроцедуры Функция ПолучитьСписокОтчетов() Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | СписокЕжедневныхОтчетов.Пользователь, | СписокЕжедневныхОтчетов.ИмяОбъекта, | СписокЕжедневныхОтчетов.НаименованиеНастройки, | СписокЕжедневныхОтчетов.ПериодНачало, | СписокЕжедневныхОтчетов.ПериодОкончание, | СписокЕжедневныхОтчетов.НаименованиеОтчета, | СписокЕжедневныхОтчетов.Неделя |ИЗ | РегистрСведений.СписокЕжедневныхОтчетов КАК СписокЕжедневныхОтчетов"; ТЗОтчетов = Запрос.Выполнить().Выгрузить(); Возврат ТЗОтчетов; КонецФункции Функция ПолучитьПериод(ПериодНачало,ПериодОкончание); Структура = Новый Структура; Если ПериодНачало = Перечисления.ПериодыОтчетов.Вчера тогда Дата1 = НачалоДня(НачалоДня(ТекущаяДата())-1); ИначеЕсли ПериодНачало = Перечисления.ПериодыОтчетов.Месяц тогда Дата1 = НачалоМесяца(ТекущаяДата()); ИначеЕсли ПериодНачало = Перечисления.ПериодыОтчетов.Сегодня тогда Дата1 = НачалоДня(ТекущаяДата()); ИначеЕсли ПериодНачало = Перечисления.ПериодыОтчетов.Неделя тогда Дата1 = НачалоДня(ТекущаяДата()-3600*24*7); ИначеЕсли ПериодНачало = Перечисления.ПериодыОтчетов.ДвеНедели тогда Дата1 = НачалоДня(ТекущаяДата()-3600*24*7*2); ИначеЕсли ПериодНачало = Перечисления.ПериодыОтчетов.ТриНедели тогда Дата1 = НачалоДня(ТекущаяДата()-3600*24*7*3); ИначеЕсли ПериодНачало = Перечисления.ПериодыОтчетов.ЧетыреНедели тогда Дата1 = НачалоДня(ТекущаяДата()-3600*24*7*4); ИначеЕсли ПериодНачало = Перечисления.ПериодыОтчетов.Минус28Дней тогда Дата1 = НачалоДня(ТекущаяДата()-3600*24*28); ИначеЕсли ПериодНачало = Перечисления.ПериодыОтчетов.Предыдущие4Месяца тогда Дата1 = НачалоМесяца(ДобавитьМесяц(ТекущаяДата(),-3)); ИначеЕсли ПериодНачало = Перечисления.ПериодыОтчетов.ПредыдущийМесяц тогда Дата1 = НачалоМесяца(ДобавитьМесяц(ТекущаяДата(),-1)); ИначеЕсли ПериодНачало = Перечисления.ПериодыОтчетов.Фикс1июль17 тогда Дата1 = НачалоДня('20170701'); ИначеЕсли ПериодНачало = Перечисления.ПериодыОтчетов.Фикс31июль17 тогда Дата1 = НачалоДня('20170731'); ИначеЕсли ПериодНачало = Перечисления.ПериодыОтчетов.Завтра тогда Дата1 = КонецДня(ТекущаяДата())+1; КонецЕсли; Если ПериодОкончание = Перечисления.ПериодыОтчетов.Вчера тогда Дата2 = КонецДня(НачалоДня(ТекущаяДата())-1); ИначеЕсли ПериодОкончание = Перечисления.ПериодыОтчетов.Сегодня тогда Дата2 = КонецДня(ТекущаяДата()); ИначеЕсли ПериодОкончание = Перечисления.ПериодыОтчетов.КонецТекущегоМесяца тогда Дата2 = КонецМесяца(ТекущаяДата()); ИначеЕсли ПериодОкончание = Перечисления.ПериодыОтчетов.Следующие10Дней тогда Дата2 = КонецДня(КонецДня(ТекущаяДата()+3600*24*10)); КонецЕсли; Структура.Вставить("Дата1",Дата1); Структура.Вставить("Дата2",Дата2); Возврат Структура; КонецФункции |
|||
1
Anabella
30.05.18
✎
17:08
|
Простите, как позвать модератора, чтобы поменять пару строк?
|
|||
2
DrShad
30.05.18
✎
17:08
|
права
|
|||
3
Anabella
30.05.18
✎
17:09
|
(2) есть права у пользователя под которым рег.задание выполняется.
|
|||
4
DrShad
30.05.18
✎
17:10
|
(3) имя пользователя в студию
|
|||
5
ptiz
30.05.18
✎
17:10
|
(0) "А что за ошибка, хрен пойми." - пиши логи в журнал регистрации и смотри, где останавливается
|
|||
6
Anabella
30.05.18
✎
17:10
|
(1) с этим помогите пожалуйста.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |