Даты и строки в 1С (10 из 100 дней)

Даты и строки в 1С (10 из 100 дней)

Строки

В коде на встроенном языке строки ограничиваются двойными кавычками:

Даты и строки в 1С (10 из 100 дней)

Для строк определена единственная операция - конкатенация

Правила применения операторов

- Поведение оператора сложения зависит от того, какой тип данных находится слева от знака "+"

- Система постарается привести тип правой части к типу левой:

Даты и строки в 1С (10 из 100 дней)

Для строковых значений, хранящихся в ИБ, - например, реквизитов справочников - требуется определить максимальную длину.

Даты и строки в 1С (10 из 100 дней)

Обработка строк - это одна из наиболее частых задач в программировании

Даты и строки в 1С (10 из 100 дней)

- Вычисление длины строки

- Получение части строки - фрагмента

- Поиск в строке

- Дробление на части и склеивание из частей

- Шаблонизированные сообщения и многое другое

Для работы со строками в 1С есть набор системных функций и объектов.

Например:

Даты и строки в 1С (10 из 100 дней)

- "СтрДлина()" возвращает длину строки числом

- ВРег, НРег и ТРег - приводят строки к верхнему, нижнему и специальному регистру

- Специальный регистр - первая буква каждого слова строки заглавная, остальные - строчные

Операция равенства сравнивает строки буквально. Отличаются большие и маленькие буквы.

Даты и строки в 1С (10 из 100 дней)

Иногда нужно сравнить текст вообще, независимо от того, каким регистром его написал пользователь

Для этого приводят строку к одному из регистром и потом уже сравнивают:

Даты и строки в 1С (10 из 100 дней)

Удаление незначащих символом: СокрЛП (), СокрЛ (), СокрП () - отсекают незначащие символы по краям

Подстрока

Подстроки - это фрагменты строк

Их можно получить при помощи специальных команд: Лев(), Прав(), Сред()

Даты и строки в 1С (10 из 100 дней)

Можно также проверить, начинается ли строка с определенной последовательности и заканчивается ли на неё: СтрНачинаетсяС(); СтрЗаканчиваетсяНа();

Даты и строки в 1С (10 из 100 дней)

Если необходимо проверить строку не с начала или конца, а в принципе узнать, встречается ли в ней подстрока, удобно использовать СтрНайти()

Даты и строки в 1С (10 из 100 дней)

Подстрока часто используется при последовательном разборе с учетом разделителей:

1. Ищем позицию разделителя СтрНайти

2. Берем фрагмент до него Лев

3. Берем фрагмент после него Сред

Получим следующий код:

Даты и строки в 1С (10 из 100 дней)

Выведется: Слово до нашего параметра и После параметра

Даты и строки в 1С (10 из 100 дней)

Если стоит задача заменить все вхождения подстроки в строки, удобно использовать функцию СтрЗаменить ()

Даты и строки в 1С (10 из 100 дней)

Шаблоны строк

Для сборки длинных сложных строк вместо конкантенации (сложение строк) рекомендуется использовать функцию СтрШаблон (). Она создает строку подставляя в нее значения вместо подстрок %1-%10.

Даты и строки в 1С (10 из 100 дней)

Это не так сильно нагружает систему и работает быстрее.

Строка, символы и коды символов

Строка - это последовательность символов. Каждый символ кодируется числом при помощи таблицы кодировки, например ASCII

Для получения кода конкретного символа можно воспользоваться функциями

Даты и строки в 1С (10 из 100 дней)

- КодСимвола() - функция вернет код первого символа строки, переданного в неё

- Символ() - функция, наоборот, возвращает символ, соответствующий переданному числу

Слияние и разделение строк

- СтрРазделить () - делит строку на подстроки по разделителям

- Результат - массив подстрок

Даты и строки в 1С (10 из 100 дней)

Для обратного преобразования массива к строке используется СтрСоединить ()

Даты и строки в 1С (10 из 100 дней)

Тип "Даты"

Определение дат

Дата - точка на оси времени

Даты и строки в 1С (10 из 100 дней)

- Минимальная дата, она же "пустая дата", - 01.01.0001 00:00:00

- Максимальная дата - конец времен по версии 1С - 31.12.3999 23:59:59

Компонента времени - часы, минуты, секунды - может для кратности опускаться. Тогда считается, что время - 00:00:00

Дату можно задать с помощью литерала в одинарных кавычках

Любые нецифровые символы системой игнорируются, поэтому допускается использовать разделить для читабельности

Второй и наиболее часто используемый способ задания дат - функция Дата

Порядок её аргументов такой же, как для литерала дат:

Даты и строки в 1С (10 из 100 дней)

Пустая дата в 1С - 1 января 1 года, или:

Даты и строки в 1С (10 из 100 дней)

Однако более читабельно для проверки на "пустоту" использовать значение метод ЗначениеЗаполнено

Даты и строки в 1С (10 из 100 дней)

Даты могут хранится в трех вариантах:

- Дата и время

- Дата

- Время

Но это имеет значение только для хранения в ИБ

Функция для дат:

Даты и строки в 1С (10 из 100 дней)

- ТекущаяДата() - возвращает текущую дату и время

- Год(), Месяц(), День(), Час(), Минута(), Секунда() - выделяют часть даты в виде числа:

Посмотрим на практике работу с датами:

1. Пропишем разные способы вывода дат в обработчике

Даты и строки в 1С (10 из 100 дней)

2. Запустим платформу и выполнение алгоритма, и увидим, что выводится

Даты и строки в 1С (10 из 100 дней)

Для определения границ периодов служат пары функций:

Даты и строки в 1С (10 из 100 дней)

- НачалоГода() и КонецГода()

- НачалоМесяца() и КонецМесяца()

- НачалоДня() и КонецДня() и т.д.

Конечная дата возвращается с точностью до секунд - 23:59:59

Для определения количества дней в текущем месяце можно привести дату к концу месяца и получить из неё день

Даты и строки в 1С (10 из 100 дней)

Также по дате можно определить день недели или номер дня в году:

Даты и строки в 1С (10 из 100 дней)

Посмотрим на практике:

1. Создадим обработчик

2. Пропишем следующий код

Даты и строки в 1С (10 из 100 дней)

3. Запустим алгоритм и увидим, как оно работает

Даты и строки в 1С (10 из 100 дней)

Операции над датами

- Для дат определены операции сложения и вычитания

- Разность между двумя датами - время между ними в секундах:

Даты и строки в 1С (10 из 100 дней)

- Чтобы сдвинуть дату, нужно прибавить или отнять нужное число секунд:

Даты и строки в 1С (10 из 100 дней)

Поскольку календарь неравномерный: 30 или 31 день в месяце - добавлением секунд сложно попасть в дату в другом месяце.

Существует специальная функция для сдвига с учетом календаря:

Даты и строки в 1С (10 из 100 дней)

На этом все! Встретимся уже завтра с разбором темы "Условий"

1