You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Опишите ошибку
Для объекта ЧтениеДанных поведение метода Пропустить() отличается от базовой платформы.
Отсутствует проверка типа параметра:
Данные= ПолучитьДвоичныеДанныеИзСтроки("123456");Чтение=Новый ЧтениеДанных(Данные);
Чтение.Пропустить("2");// работает
Чтение.Пропустить(Истина);// работает
Должно падать с ошибкой "Несоответствие типов (параметр номер '1')"
Отсутствует проверка значения параметра:
Данные= ПолучитьДвоичныеДанныеИзСтроки("123456");Чтение=Новый ЧтениеДанных(Данные);
Чтение.Пропустить(2);
Чтение.Пропустить(-1);// работает (только для позиционируемых потоков!)Стр= Чтение.ПрочитатьСтроку();// Стр = "23456"
Должно падать с ошибкой "Недопустимое значение числа"
И самое интересное:
3. Возвращаемый результат соответствует описанию, но не соответствует поведению 1С
Ошибки выявляются в процессе раскручивания от #1080.
Проблема в фактическом отсутствии внятной и полной документации к 1С.
По п.1: есть функции, допускающие приведение типов, а есть требующие строгого соответствия. Нигде (?) не документировано.
По п.2 вопросов нет, это ошибка реализации. Но допустимые значения параметров и поведение при недопустимых также не документированы для подавляющего большинства функций.
Пункт 3 - баг 1С, явное расхождение документации и реального поведения. В какую сторону исправлять?
Опишите ошибку
Для объекта
ЧтениеДанных
поведение методаПропустить()
отличается от базовой платформы.Должно падать с ошибкой "Несоответствие типов (параметр номер '1')"
Должно падать с ошибкой "Недопустимое значение числа"
И самое интересное:
3. Возвращаемый результат соответствует описанию, но не соответствует поведению 1С
По описанию (Синтакс-помощник Конфигуратора или Справка EDT до версии 8.3.19 включительно)
Реально 1С возвращает позицию в потоке:
Рез1 = 2, Рез2 = 2, Рез3 = 3
В онлайн документации ни описания, ни примера работы с возвращаемым
ЧтениеДанных.Пропустить()
значением не обнаружилось.В дополнение, в 1С:Исполнителе
ЧтениеДанных.Пропустить()
работает согласно описанию - возвращает количество фактически пропущенных данных.The text was updated successfully, but these errors were encountered: