gifts2017

Открытие расшифровок из очетов и обработок внешнего хранилища

Опубликовал Александр (shrek2) в раздел Программирование - Практика программирования

Проблема...

Сделала внешний отчет  - формируется все хорошо, но когда пытаешься сделать расшифровку какой-либо строки выдает следующее:

Вот как я ее решил.

Доработал модуль УниверсальногоОтчета. Может, кому-то пригодится.


//мой код
ХранилищеВнешнейОбработки = Справочники.ВнешниеОбработки.НайтиПоНаименованию(Отчет.УниверсальныйОтчет.мНазваниеОтчета);
ДвоичныеДанные = ХранилищеВнешнейОбработки.ПолучитьОбъект().ХранилищеВнешнейОбработки.Получить();

Если
ДвоичныеДанные = Неопределено Тогда
   
Предупреждение("Внешний файл отсутствует в хранилище");
    Возврат;
КонецЕсли;

ДвоичныеДанные.Записать(Отчет.ИспользуемоеИмяФайла);
//мой код
Если Строка(Отчет) = "ВнешняяОбработкаОбъект." + Отчет.Метаданные().Имя Тогда

   
ОтчетРасшифровка = ВнешниеОбработки.Создать(Отчет.ИспользуемоеИмяФайла);

ИначеЕсли
Строка(Отчет) = "ВнешнийОтчетОбъект." + Отчет.Метаданные().Имя Тогда

   
ОтчетРасшифровка = ВнешниеОтчеты.Создать(Отчет.ИспользуемоеИмяФайла);

Иначе

   
ОтчетРасшифровка = Отчеты[Отчет.Метаданные().Имя].Создать();

КонецЕсли;

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Артур Аюханов (artbear) 20.08.10 15:20
(0) Ты поторопился.
В какой метод и в какую строку общего модуля вставлять твой код? где его начало и конец?
2. Сергей Ожерельев (Поручик) 22.08.10 21:39
(0) (1) Вся проблема решается на раз комментированием одной строки.
-------- [OPEN] ------------------
Справочник.ВнешниеОбработки ФормаСписка

-------- [FIND] ------------------
			УдалитьФайлы(ИмяФайла);

-------- [REPLACE WITH] ------------------
			//[begin] Commented by Sergey. http://infostart.ru/profile/18346/
			//УдалитьФайлы(ИмяФайла);
			//[end]  Commented
...Показать Скрыть

И больше ничего курочить не надо.
theshadowco; hulio; +2 Ответить 2
3. Валерий Дубовой (Valerich) 26.08.10 12:11
(2) кроме того, что придется регулярно чистить временные файлы, а при активной работе и не один раз в день
4. Сергей Ожерельев (Поручик) 26.08.10 21:23
(3)
Временные файлы вида v8*.tmp удаляются системой автоматически при завершении работы. Если нет, небольшой батник и планировщик заданий тоже решают проблему.
5. Валерий Дубовой (Valerich) 27.08.10 03:27
(4) и где же такую систему найти (мечтательно задумчиво....)

Винда теоретически удаляет временные файлы, которые созданы как временные. но только теоретически. Практически она этого зачастую не делает. А эти файлы отчетов и обработок пишутся как постоянные, поэтому 1с-ка их сразу и удаляет, потому как винда этого делать не будет.

Так что кроме комментирования одной строчки в программе надо еще напрячь сисадмина, чтобы батнички каждому челу писал и в планировщик их закидывал. :)
6. Сергей Ожерельев (Поручик) 27.08.10 06:10
Каталог %temp% в любом случае надо регулярно чистить. Заглянул как-то туда и припух от полутора гектар отборнейшего мусора. :D
А юзеру, обычному дятлу, вообще в голову не придёт. Даже если и работает несколько лет на одном месте.
7. Сергей Ожерельев (Поручик) 27.08.10 06:13
Батник или скрипт vbs можно ведь закинуть групповой политикой и запускать при старте винды.
8. vx_gas vx_gas (vx_gas) 07.03.12 06:36
Плюсег аффтару, мне пригодилось :) прям в яблочко :)
9. Dragon Ago (DragonAgo) 07.08.13 11:52
добрый день! данные метод закрывает расшифровку отчета в конфигурации, не универсален.
10. Михаил Соколов (stavrida) 12.01.16 11:41
11. Alexandr Kuritsyn (hibico) 22.04.16 13:13
(2) Поручик,
Я кроме комментирования:
 //УдалитьФайлы(ИмяФайла);

Еще заменил строчку
ИмяФайла = ПолучитьИмяВременногоФайла();

на
ИмяФайла = КаталогВременныхФайлов()+"v8_"+ВыбраннаяСтрока.Код+ВыбраннаяСтрока.ВидОбработки+".tmp";

В этом случае на каждую обработку будет создаваться всего один временный файл.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа