Skip to content

Помещение файла невозможно, повторите попытку позднее #609

Description

@ImHunter

Описание ошибки
При выполнении теста устойчиво получаю ошибку платформы "Помещение файла невозможно, повторите попытку позднее"

Сценарий воспроизведения
Шаги по воспроизведению:

  1. Использовать платформу 8.3.14-15
  2. Запустить xddTestRunner.epf
  3. Загрузить тесты
  4. Запустить выполнение теста (тестов)

Ожидаемое поведение, если бы ошибки не было
Тесты выполняются со своими успехами/неудачами

Окружение:

  • Версия операционной системы: Win 7
  • Редакция платформы 1С 8.3.15.1700
  • Версия Vanessa.ADD 6.4.0

Ругается при этом в методе формы обработки УправляемаяФорма:

&НаКлиенте
Процедура ПодключитьВнешнююОбработку(ФайлОбработки) Экспорт
...
		НачатьПомещениеФайла(Оп, АдресХранилища, ФайлОбработки.ПолноеИмя, Ложь, ЭтаФорма.УникальныйИдентификатор); // Здесь ошибка

Причем, в доках (СП) про НачатьПомещениеФайла() честно пишется, что

Не рекомендуется использовать, начиная с версии 8.3.15.

Но альтернативных рецептов не приводится. Поэтому решил избавиться от НачатьПомещениеФайла(...) по-простому.

Новый код метода:

&НаКлиенте
Процедура ПодключитьВнешнююОбработку(ФайлОбработки) Экспорт
	Перем АдресХранилища;

	Если ПодключенныеВнешниеОбработки.Получить(ФайлОбработки.ИмяБезРасширения) = Неопределено Тогда
		ЭтоОтчет = (НРег(ФайлОбработки.Расширение) = ".erf");
		ДопПараметры = Новый Структура("ФайлОбработки, ЭтоОтчет", ФайлОбработки, ЭтоОтчет);
		Оп = Новый ОписаниеОповещения("ПодключитьВнешнююОбработкуЗавершениеМод", ЭтаФорма, ДопПараметры);
		АдресХранилища = ПоместитьВоВременноеХранилище(Новый ДвоичныеДанные(ФайлОбработки.ПолноеИмя), АдресХранилища);
		ДопПараметры.Вставить("АдресХранилища", АдресХранилища);
		ВыполнитьОбработкуОповещения(Оп, Истина);
	КонецЕсли;
КонецПроцедуры

И почти копипаст обработчика оповещения:

&НаКлиенте
Процедура ПодключитьВнешнююОбработкуЗавершениеМод(Результат, ДополнительныеПараметры) Экспорт

	ФайлОбработки = ДополнительныеПараметры.ФайлОбработки;
	ЭтоОтчет = ДополнительныеПараметры.ЭтоОтчет;
	Адрес = ДополнительныеПараметры.АдресХранилища;

	Если Не Объект.ИспользоватьПрямыеПутиФайлов Тогда
		ПодключитьФайлОбработкиНаСервере(Адрес, ФайлОбработки.ИмяБезРасширения, ЭтоОтчет);
	Иначе
		СоздатьФайлОбработки(ФайлОбработки.ПолноеИмя, ФайлОбработки.ИмяБезРасширения, ЭтоОтчет);
	КонецЕсли;

	ПодключенныеВнешниеОбработки.Вставить(ФайлОбработки.ИмяБезРасширения, Истина);

	Если ДополнительныеПараметры.Свойство("ОбработкаЗавершения") Тогда
		ВыполнитьОбработкуОповещения(ДополнительныеПараметры.ОбработкаЗавершения, Результат);
	КонецЕсли;

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

С такой доработкой - все норм, работает без ошибок.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions