Шрифт
6 новых функций, которые не следует использовать в режиме совместимости
Play

6 новых функций, которые не следует использовать в режиме совместимости

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

Когда пишете на "своих" конфигурациях, тогда можно делать что душе угодно, но когда разработка идет в "чужую" конфигурацию - стоит задуматься каким путем пойти:

  • Использовать новые функции и обязать заказчика перейти на свежую платформу
  • Сделать проверку текущей версии платформы и использовать новые функции и старые механизмы работы
  • Использовать только старые механизмы работы

Функция работы со строками СтрНайти(<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>)

Функция выполняет поиск подстроки в различных направлениях и не только с начала строки.

В режиме совместимости 8.3.5 и ниже возникает ошибка : Процедура или функция с указанным именем не определена (СтрНайти) Сообщить(<<?>>СтрНайти("1","2212"));

Остается довольствоваться тем, что имеем

меньше возможностей, но не вылетает с ошибкой

Функция Найти() осталась только для совместимости с 8.3.5 и в дальнейшем ожидаем, что ее не станет.

Функция работы со строками СтрШаблон(<Шаблон>, <Значение1-Значение10>)

Функция выполняет замену маркеров подстановки (вида %1) в шаблонной строке на реальные значения.

В режиме совместимости возникает ошибка : Процедура или функция с указанным именем не определена (СтрШаблон) Сообщить(<<?>>СтрШаблон("Ошибка в строке "" %1 ""","МояСтрока"));

Функция работы со строками СтрСравнить(<Строка1>, <Строка2>)

Функция выполняет лексикографическое сравнение строк без учета регистра.

Возникающая ошибка : Процедура или функция с указанным именем не определена (СтрСравнить) Сообщить(<<?>>СтрСравнить("Первая строка", "Вторая строка"));

Но можно сделать по-другому

Функция работы со строками СтрНачинаетсяС(<Строка>,<СтрокаПоиска>)

Функция проверяет, что строка начинается на подстроку.

Возникает ошибка : Процедура или функция с указанным именем не определена (СтрНачинаетсяС) Сообщить(<<?>>СтрНачинаетсяС("http://google.com", "http://"));

Но можно сделать по-старому

Функция работы со строками СтрЗаканчиваетсяНа(<Строка>, <СтрокаПоиска>)

Функция проверяет, что строка оканчивается подстрокой.

Возникает ошибка : Процедура или функция с указанным именем не определена (СтрНачинаетсяС) Сообщить(<<?>>СтрНачинаетсяС("http://google.com", "http://"));

Но можно сделать по-другому

Функция работы со строками СтрРазделить(<Строка>,<Разделитель>,<ВключатьПустые>) Функция работы со строками СтрСоединить(<Строки>, <Разделитель>)

Функция СтрРазделить() разделяет строку на части по указанному разделителю.

Функция СтрСоединить() соединяет строки из массива подстрок.

Удобные функции, но возникает ошибка

: Процедура или функция с указанным именем не определена (СтрРазделить) Массив = <<?>>СтрРазделить("1,2,3,4,5,6,7,8,9,,10",",",Ложь);//вернет массив : Процедура или функция с указанным именем не определена (СтрСоединить) Строка = <<?>>СтрСоединить(Массив,",")//вернет 1,2,3,4,5,6,7,8,9,10

Если вы уверены, что разработка будет использоваться на платформе выше 8.3.6.1977, то можете смело использовать все нововведения, иначе придется работать по старинке.

Специальные предложения
  • Скопировать ссылку
  • Перейти
  • Скопировать ссылку
  • Перейти
  • Скопировать ссылку
  • Перейти
  • Скопировать ссылку
  • Перейти
  • Скопировать ссылку
  • Перейти

(3) AlexanderKai, Когда пишете на "своих" конфигурациях, тогда можно делать что душе угодно, но когда разработка идет в "чужую" конфигурацию - стоит задуматься каким путем пойти:

1) Использовать новые функции и обязать заказчика перейти на свежую платформу 2) Сделать проверку текущей версии платформы и использовать новые функции и старые механизмы работы 3) Использовать только старые механизмы работы

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

По второму - идеальный вариант, но не каждый разработчик будет перед каждым вызовом новой функции строить городульки чтобы узнать версию платформы. Хотя данный вариант имеет право на жизнь.

И по третьему - самый оптимальный (мое субъективное мнение) гораздо проще второго варианта, но уступает первому в том что не помогает продвижению новых платформ в массы

  • Скопировать ссылку
  • Перейти

Нам со стороны разрабатывали подсистему приема бюджетных обязательств по отыгранным тендерам и запросам котировок цен для БГУ 1.0 и нарукожопили с использованием новых функций.

(3) AlexanderKai, этот вариант не работает. Ругается на то что данной функции вообще нет.(7)

denis_aka_wolf, статью поправь, второй вариант не рабочий.

  • Скопировать ссылку
  • Перейти
  • Скопировать ссылку
  • Перейти

Такой код все равно работать не будет!

  • Скопировать ссылку
  • Перейти
  • Скопировать ссылку
  • Перейти
  • Скопировать ссылку
  • Перейти
  • Скопировать ссылку
  • Перейти
  • Скопировать ссылку
  • Перейти
  • Скопировать ссылку
  • Перейти
  • Скопировать ссылку
  • Перейти

(20) DitriX, Всё так кроме : СтрНайти(<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска> , <НачальнаяПозиция>, <НомерВхождения>)

Системное перечисление НаправлениеПоиска в режиме совместимости отсутствует.

📎📎📎📎📎📎📎📎📎📎