Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Сохранение внешнего отчета в хранилище
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.3
Constantus
Приветствую, Форумчане!
УПП, полный перепис, адаптация под УФ

Имеется справочник "НастройкиВыгрузки".
В справочнике есть реквизиты:
"ПутьКФайлу" (строка)
"ВнешнийОтчет" (тип: ХранилищеЗначения)

На форме справочника есть кнопка выбора внешнего отчета "Выбрать отчет": открывает диалог выбора файла, выбирает внешний отчет. Код нажатия кнопки:

&НаКлиенте
Процедура ВыбратьОтчет(Команда)
ЗначениеВозврата = ВыбратьФайл ();
ИмяФайлаЗнешнейОбработки = ЗначениеВозврата.ПолноеИмяФайлаОбработки;
Объект.ПутьКФайлу = ПоместитьВоВременноеХранилище(Новый ДвоичныеДанные(ИмяФайлаВнешнейОбработки));
ВыбратьОтчетНаСервере();
КонецПроцедуры


Зачем-то используется процедура

Процедура ВыбратьОтчетНаСервере()

ОтчетДвоичныеДанные = ПолучитьИзВременногоХранилища(Объект.ПутьКФайлу);
ПутьКЗнешнемуФайлу = ПолучитьИмяЗременногоФайла (" . erf ");

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

КонецПроцедуры


перед записью справочника:

&НаСервере
Процедура ПередЗалисью (Отказ)

Если НЕ ПустаяСтрока(ПутьКФайлу) Тогда
ВнешнийОтчет = ПолучитьИзВременногоХранилища(ПутьКФайлу);
УдалитьИзВременногоХранилища(ПутьКФайлу);
ПутьКФайлу = "";
КонецЕсли;

КонецПроцедуры


Проблема заключается в том, что реквизит "ВнешнийОтчет" сохраняется только после 3-х кратного выбора файла внешней обработки. Т.е. нужно 3-жды выбрать обработку и сохранить, и тогда "ВнешнийОтчет" принимает какое-то значение (показывает отладчик как двоичные данные FF 00 DD...)

Никак не могу понять почему нужно выбрать и сохранить 3-и раза. Подскажите, что может быть?
andr_andrey
Constantus @ Сегодня, 13:20 необходимо зарегистрироваться для просмотра ссылки ,
ПоместитьВоВременнсеХранилище - это опечатка?
Constantus
andr_andrey @ Сегодня, 17:59 необходимо зарегистрироваться для просмотра ссылки ,
Да. Опечатка.
Vofka
Constantus, в ПоместитьВоВременноеХранилище кажется вторым параметром можно передать идентификатор формы. Если этого не делать, то после того, как закончится серверный вызов, нету гарантий, что во временном хранилище будет то, что вы туда ложили чуть ранее.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.