OneScript icon indicating copy to clipboard operation
OneScript copied to clipboard

Слетает позиция потока при вызове методов объекта ЧтениеДанных в отладчике

Open Bayselonarrend opened this issue 9 months ago • 0 comments

Опишите ошибку Позиция целевого потока ЧтенияДанных из ДвоичныхДанных слетает до 64 в отладчике (VSC) при вызове метода Прочитать() и ЦелевойПоток().ТекущаяПозиция(). При этом, при выполнении скрипта через CL все нормально. Также не возникает такая проблема (ни в отладчике, ни в CL), если чтение данных основано на ФайловыйПоток

В отладчике - значения одинаковые

image image

В CL - значения разные image

Воспроизведение ошибки

  1. Создать ЧтениеДанных на основе ДвоичныхДанных (размер данных в примере ~1,5 GB)
  2. Прочитать некоторую часть этих данных через ЧтениеДанных.Прочитать(РазмерЧасти);
  3. Попытаться определить позицию потока через ЧтениеДанных.ИсходныйПоток().ТекущаяПозиция() или получить двоичные данные из ЧтениеДанных.Прочитать(РазмерЧасти).ПолучитьДвоичныеДанные()

РазмерЧасти  = 268435456;
ДвоичныеДанные = Новый ДвоичныеДанные("D:\GD\Мой диск\3.zip");
ЧтениеДанных   = Новый ЧтениеДанных(ДвоичныеДанные);

Для Н = 0 По 5 Цикл
	Сообщить(ЧтениеДанных.Прочитать(РазмерЧасти).ПолучитьДвоичныеДанные());
	А = ЧтениеДанных.ИсходныйПоток().ТекущаяПозиция();
	Сообщить(А);
КонецЦикла;

Ожидаемое поведение Позиция должна равняться числу прочитанных байт, вызов метода ПолучитьДвоичныеДанные из результата чтения не должно возвращать одни и те же данные при чтении в цикле

Окружение

  • ОС: Windows 10
  • Версия: 1.9.0.6

Bayselonarrend avatar May 28 '24 06:05 Bayselonarrend