Проверка на тип число 1с
Дата — это один из примитивных типов данных существующих в 1С. Также как числа и строки используется абсолютно повсеместно, и следовательно знание основных функций и принципов работы с типом “Дата” приобретают просто драматическую важность.
В начале скажем, что значение типа дата в 1С содержит точную (с точностью до 0,1 миллисекунды) дату григорианского календаря.
Типовой порядок частей даты принятый в 1С — год, месяц, день, час, минута, секунда.
Собственно простейший способ создания новой переменной типа дата является приравнивание к переменной строки цифр в одинарных кавычках (обязательно) вида ‘ГГГГММДДччммсс’ где:
- ГГГГ — четыре цифры года (включая тысячелетие и век);
- ММ — две цифры месяца;
- ДД — две цифры даты;
- чч — две цифры часа (в 24-х часовом формате);
- мм — две цифры минут;
- сс — две цифры секунд.
Часы, минуты и секунды можно не указывать, при этом они приравниваются к нулю.
Функции работы с датами
Функция Дата() служит для создания значения типа “Дата”. Использовать ее можно двумя способами:
- Дата(x) — где параметр “x” это строка вида “ГГГГММДДччммсс”, часы, минуты и секунды можно опустить, т.е. преобразуем строку в дату;
- Дата(x, y, z, w, v, c) — в этом случае параметры “x”, “y”, “z”, “w”, “v” и “c” являются числами и означают год, месяц, день, час, минуту и секунду соответственно. Как и в предыдущем случае час, минуту и секунду можно опустить.
ТекущаяДата
Функция ТекущаяДата() просто возвращает текущую дату того компьютера на котором она исполняется. В клиент-серверных системах будет разумно инкапсулировать эту функцию в общем модуле (с исполнением на сервере) и использовать ее только таким образом.
ТекущаяУниверсальнаяДатаВМиллисекундах
Функция ТекущаяУниверсальнаяДатаВМиллисекундах() позволяет узнать дату в миллисекундах. Данная функция доступна начиная с версии платформы 8.2.17. Замечание о клиент-серверных системах из функции выше справедливо и для этой функции.
Год, Месяц, День, Час, Минута, Секунда
Функции Год(x), Месяц(x), День(x), Час(x), Минута(x) и Секунда(x) возвращают соответствующую часть переданной им даты “x” в виде числа.
Начало…
Функции вида “Начало…(x)” получают дату в параметре “x” и возвращают дату начала периода времени в соответствии с названием конкретной функции. Существуют следующие функции:
- НачалоГода;
- НачалоКвартала;
- НачалоМесяца;
- НачалоНедели;
- НачалоДня;
- НачалоЧаса;
- НачалоМинуты.
Конец…
Функции вида “Конец…(x)” получают дату в параметре “x” и возвращают дату окончания периода времени в соответствии с названием конкретной функции. Существуют следующие функции:
- КонецГода;
- КонецКвартала;
- КонецМесяца;
- КонецНедели;
- КонецДня;
- КонецЧаса;
- КонецМинуты.
НеделяГода, ДеньГода
Функции НеделяГода(x) И ДеньГода(x) возвращают соответственно номер недели и номер дня в году для указанной даты “x”.
ДеньНедели
Функция ДеньНедели(x) возвращает номер дня недели для указанной даты “x”.
ДобавитьМесяц
Функция ДобавитьМесяц(x, y) добавляет к дате “x” количество месяцев “y”, которое может быть отрицательным, в этом случае происходит вычитание месяцев из даты “x”.
МоментВремени
МоментВремени это объект который является совокупностью даты и ссылки на какой-либо объект информационной базы. МоментВремени используется в качестве значения свойств или параметров методов других объектов, имеющих тип МоментВремени. Нужен в первую очередь для того, чтобы иметь возможность различать моменты времени для объектов имеющих одинаковую дату создания.
ВвестиДату
Функция ВвестиДату(x, y, z) вызывает диалог для ввода даты, введенная дата записывается в переменную “x”, кроме этого можно указать подсказку “y”, а также какую часть даты нужно ввести “z” Функция возвращает Истина — если ввод был произведен, Ложь — если пользователь отказался от ввода.
Выглядит это окно примерно так:
Окно ввода даты
Типовые задачи представления данных
Разность даты в днях, количество дней между датами
Простым вычитанием одной даты из другой мы можем получить разность между датами в секундах, следовательно получение любого другого типа разности (в минутах, днях и тд.) является простой арифметической операцией:
Кроме этого можно воспользоваться функцией «РАЗНОСТЬДАТ» из языка запросов:
Таким образом можно узнать следующие типы разности дат:
Разница между датами в месяцах, количество месяцев между датами
Здесь все в точности также, как и в предыдущем пункте.
Прибавить день к дате, вычесть день из даты, отнять от даты день
Прибавить месяц к дате, вычесть месяц из даты, отнять месяц от даты
Для прибавления/вычитания месяцев существует встроенная функция:
День недели по дате
Сравнение дат
Так как дата в 1С это по сути количество секунд прошедшее с начала нашей эры (т.е. число) то и сравнение производится так же как и числами. У объекта «МоментВремени» существует специальный метод «Сравнить» который позволяет сравнить один объект «МоментВремени» с другим.
Дата равна нулю (проверка на заполненность), проверка на пустую дату
Если Вы нашли ошибку или неточность, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
(оценок: 14, средняя оценка: 4,50 из 5)
Рассмотрим один из примитивных типов, с которым приходится сталкиваться разработчикам на платформе 1С 8.3, – Число. В этой статье мы научимся задавать числа в коде, создавать реквизиты с типом число , получать случайное число, округлять числа и получать из числа с дробью целое число.
Тип число в 1С
Задать число в коде просто: нужно какой-то переменной просто присвоить определенное число.
Так задаётся целое число:
А так задаются дробные числа:
Над числами в коде можно выполнять простые арифметические операции: сложение, вычитание, умножение и деление.
Причем, как непосредственно над числами:
Так и над переменными с типом число:
Если нужно инвертировать число, т.е. поставить какому-то уже заданному числу обратный знак (например, было 5, стало -5), то его нужно умножить на -1.
Сделать это можно несколькими способами:
Если нам нужно создать реквизит какого-то объекта, с типом число, то в свойстве Тип реквизита нужно выбрать тип Число. На картинке ниже у справочника создан реквизит с типом Число.
А также задать его точность и длину.
Остановимся на точности и длине подробнее.
Точность – это максимальное количество знаков после запятой.
Длина – это максимальное количество разрядов в числе (включая знаки после запятой).
Например, если длина 5, а точность 3, то максимальное число будет 99,999.
Если длина 5, а точность 0, то – 99999.
А если длинна 3, а точность 3, то – 0,999. Т.е когда длинна равна точности мы не сможем задать число равное 1.
Когда мы в коде задаем переменную с типом Число, то мы не ограничиваем эту переменную по длине и точности, в тоже время для реквизита объекта с типом Число нужно это делать заранее. При разработке вы должны заранее предусмотреть, какие у реквизита числового типа будет длинна и точность.
Точно также, реквизит с типом число нужной длинны и точности можно создать на управляемой форме.
Случайное число в 1С
В платформе 1С 8.3 имеется возможность сгенерировать случайное целое число при помощи генератора случайных чисел, который так и называется ГенераторСлучайныхЧисел. Для генерации случайного числа нужно воспользоваться методом этого объекта СлучайноеЧисло.
Рассмотрим, простой пример генерации случайного числа.
В этом случае Число1 будет сгенерировано от 0 до 4294967295 (2^32 -1).
В примере выше метод СлучайноеЧисло без параметров, но у этого метода есть два параметра:
Оба параметра являются необязательных и с их помощью можно задать верхнюю и нижнюю границу генерации случайных чисел. Причем параметр НижняяГраница не может быть меньше нуля, а параметр ВерхняяГраница не может быть больше 4294967295.
Например, в этом случае будет сгенерировано случайное число от 1 до 100.
Округлить число в 1С
В платформе 1С имеется возможность округления чисел по определенному правилу. Для этих целей существует метод Окр. Этот метод является функцией, которая принимает число, нужное для округления, и возвращает округленное число. Данный метод имеет следующий синтаксис:
Число – число, которое будет округляться;
Разрядность – до какого количества знаков после запятой нужно округлить число (если разрядность равна 0, то число будет округлено до целого числа).
РежимОкругления – системное перечисление, которое имеет два значения: РежимОкругления.Окр15как10 – в этом случае 1.5 округляется до 1, РежимОкругления.Окр15как20 – 1.5 округляется до 2. Если этот параметр не задан, то по умолчанию 1.5 округляется до 2
В этом случае будет следующий результат:
Целое число в 1С
Если предыдущий метод округляет число, то также имеется возможность получать целое число, т.е. просто отбросить дробную часть числа. Делает это метод Цел. Данный метод является функцией, принимающей единственный параметр – число, у которого нужно отбросить дробную часть, и возвращающей полученное целое число.
Рассмотрим работу этого метод в сравнении с методом округления числа.
Должен получиться следующий результат:
Из результата вы видите, что нельзя использовать метод Окр для получения целого числа, он именно округляет и не всегда может дать требуемый результат. Для получения целого числа используйте метод Цел.
Степень числа в 1С
В платформе 1С имеется возможность возвести нужное число в степень. Делается это при помощи метода Pow, который является функцией со следующим синтаксисом.
Рассмотрим ряд примеров:
Из примеров видно, что мы можем возводить в положительную и отрицательную степень, а также степень может быть дробной.
Функции чисел в 1С
В платформе 1С 8.3 имеется другие функции пот работе с числами , познакомится с ними можно в синтаксис-помощнике. В подразделе Функции работы со значениями типа Число.
Другие статьи о примитивных типах:
Более подробно и основательно начальные вопросы программирования в 1С есть вы можете изучить в
Книга «Программировать в 1С за 11 шагов»
Изучайте программирование в 1С в месте с моей книгой «Программировать в 1С за 11 шагов»
Книга написана понятным и простым языком — для новичка.
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Научитесь понимать архитектуру 1С;
- Станете писать код на языке 1С;
- Освоите основные приемы программирования;
- Закрепите полученные знания при помощи задачника.
О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»
Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.
- Очень доступный и понятный язык изложения
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Поймете идеологию управляемого приложения 1С
- Узнаете, как разрабатывать управляемое приложение;
- Научитесь разрабатывать управляемые формы 1С;
- Сможете работать с основными и нужными элементами управляемых форм
- Программирование под управляемым приложением станет понятным
Промо-код на скидку в 15% — 48PVXHeYu
Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog
Если Вам понравился этот урок, был полезен или помог решить какую-нибудь проблему, то Вы можете поддержать мой проект, перечислив любую сумму.
Разберем методы, при помощи которых, в 1С 8.3 можно определить тип значения переменной (или реквизита какого-нибудь объекта). Причем, эти методы могут работать со всеми типами: примитивными, объектными и коллекциями значений.
Для работы с типами, в платформе 1С имеется специальный тип, который так и называется Тип. Этот тип необходим для идентификации типов значений различных данных. Значения типа Тип возвращают только две функции Тип и ТипЗнч.
Функция ТипЗнч в 1С
Разберем функцию ТипЗнч. Эта функция принимает в качестве параметра любое значение и возвращает тип этого значения.
Рассмотрим пример: будем использовать в качестве параметра этой функции число, таблицу значений и объект какого-нибудь справочника.
Посмотрим в отладке, что вернет этот метод.
Как видите, все значения, которые вернул метод ТипЗнч имеют тип Тип. Но, сами по себе знания о том, какой тип у того или иного значения нам ни чего не дают. Разве что можно сравнить одинаковы ли типы у двух разных значений. Эти знания применимы только тогда, когда можно точно определить какого типа наше значение. Делается это при помощи функции Тип.
Функция Тип в 1С
Функция тип имеет один параметр имя получаемого типа в строковом представлении, возвращает тип Тип.
Переделаем предыдущий пример: будем получать типы значений, используя функцию Тип.
В переменных будут те же значения, что и в прошлый раз.
Чтобы быстро получить название какого-то типа, достаточно «задержаться» в написании после первой кавычки, или нажать комбинацию клавиш Ctrl+Пробел.
Появится выпадающий список всех названий типов, где набирая первые символы названия можно быстро найти нужный тип.
Обе функции Тип и ТипЗНЧ возвращают значения одного типа – Тип. Но, если в случае функции ТипЗнч мы не можем точно знать, что вернет эта функция (поскольку, иногда, возникают ситуации, когда точно не известно какого тип та или иная переменная), то при работе с функцией Тип, мы точно знаем, какое значение вернет эта функция, поскольку сами указали строковое представление типа в параметре.
Как проверить тип значения
Для того, чтобы проверить какой тип значения у той или иной переменой, достаточно использовать обе этих функции (Тип и ТипЗнч) вместе: сравнивая, что возвращает функция ТипЗнч, в параметре которой указано какое-либо значение, с функцией Тип, в параметре которой мы указали конкретный тип.
Рассмотрим пример: будем заполнять массив значениями разных типов, потом при помощи генератора случайных чисел выберем нужный элемент массива, и определим какого типа этот элемент массива. В этот массив поместим число, дату, строку и какой-нибудь список значений.
В этом коде я использовал условие, где обрабатывал сравнение значений, которые возвращают функции Тип и ТипЗнч.
Статьи о примитивных типах в 1С:
Более подробно и основательно начальные вопросы программирования в 1С есть вы можете изучить в
Книга «Программировать в 1С за 11 шагов»
Изучайте программирование в 1С в месте с моей книгой «Программировать в 1С за 11 шагов»
Книга написана понятным и простым языком — для новичка.
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Научитесь понимать архитектуру 1С;
- Станете писать код на языке 1С;
- Освоите основные приемы программирования;
- Закрепите полученные знания при помощи задачника.
О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»
Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.
- Очень доступный и понятный язык изложения
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Поймете идеологию управляемого приложения 1С
- Узнаете, как разрабатывать управляемое приложение;
- Научитесь разрабатывать управляемые формы 1С;
- Сможете работать с основными и нужными элементами управляемых форм
- Программирование под управляемым приложением станет понятным
Промо-код на скидку в 15% — 48PVXHeYu
Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog
Если Вам понравился этот урок, был полезен или помог решить какую-нибудь проблему, то Вы можете поддержать мой проект, перечислив любую сумму.
Очень часто возникает необходимость где-то задать перечисление типов. Например, это может быть колонка таблицы значений, в которой могут содержаться значения разных типов. Для создания списка типов используется общий объект Описание типов 1С.
Как правило, объект описание типов 1С сам по себе нигде не используется, в основном он нужен в качестве параметра разных объектов, например, таблицы значений 1С. На примере таблицы значений и покажем, как работать с описанием типов. Описание типов можно создать только для одного типа, например, для типа Число будет следующее описание типа.
А, для строки, даты и булево — следующее описание типов:
Это примитивные типы, для ссылочных типов можно создать такое же описание, указав в двойных кавычках название типа.
Чтобы получить быстро полное название нужной ссылки, можно воспользоваться контекстной подсказкой метода Тип.
После того, как мы создали описание типов, этот объект можно использовать, например, при создании таблицы значений.
Выше показано самое простое использование описания типов. Для числа, строки и даты мы можем использовать Квалификаторы. Это общие объекты – КвалификаторыЧисла, КвалификаторыСтроки, КвалификаторыДаты. Они также задаются при помощи конструктора Новый и имеют следующие синтаксисы.
Квалификатор числа 1С
Для числа будет следующий синтаксис квалификатора.
Где: ЧислоРазрядов – общее число разрядов;
ЧислоРазрядовДробнойЧасти – число разрядов после запятой;
ДопустимыйЗнак – системное перечисления (значения Любой, Неотрицательный).
Например, задать неотрицательно число с 6 разрядами и 2 дробными разрядами будет так:
Квалификатор строки 1С
Для строки будет следующий синтаксис квалификатора.
Где: ДлинаСтроки – длина задаваемой строки
ДопустимаяДлина – системное перечисление ДопустимаяДлина, которое определяет, будет строка переменная или фиксированная.
Например, задать строку длинной 10 символов фиксированной длины нужно так:
Обратите внимание, что КвалификаторСтроки задаем третьим параметром.
Квалификатор даты 1С
Для даты будет следующий синтаксис квалификатора.
Где ЧастиДаты – системное перечисление, с тремя значениями Время, Дата, ДатаВремя.
Например, задать дату, которая будет иметь формат времени нужно так:
Обратите внимание, что КвалификаторДаты задаем третьим параметром.
Общий вариант синтаксиса с использование типов выглядит так:
Массив типов в описание типов
Кроме использования одного типа в синтаксисе описания типов, можно использовать массив типов, например, сделаем колонку таблицы значений, у которая может принимать значения примитивных типов Строка, Число, Дата, Булево. Для этого нужно все типы перечислить в массиве, причём типы должны быть не в виде строк, как мы делали ранее, а в виде значений типа Тип.
Также можно «собрать» массив из ссылочных типов, например из справочников:
Описание типов на основании описания типов
Выше был рассмотрен один вариант синтаксиса описания типов, на основания какого-то типа (или перечисления типов), но также можно создать описание типа на основании другого описания типов, т.е. дополнить имеющееся описание.
Например, мы создали описание типов для чисел, строк и булево.
Теперь нам нужно новое описание типов, в котором будут такие типы как Число, Строка и Дата (тип Булево нам не нужно).
Для этого мы можем использовать следующий конструктор описания типов:
Где, в качестве первого параметра указывается описание типов, на основании которого создается это описание, а в качестве второго и третьего параметра – добавляемые и вычитаемые типы (могут быть как в виде массивов, так и в виде строк).
Давайте продолжим код выше:
В этом код в новое описание типов, мы добавили тип Дата, и вычли тип Булево.
Более подробно о работе с другими интересными объектами языка программирования в 1С читайте в моей книге «Программировать в 1С за 11 шагов»
Изучайте программирование в 1С в месте с моей книги «Программировать в 1С за 11 шагов»
- Книга написана понятным и простым языком — для новичка.
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Научитесь понимать архитектуру 1С;
- Станете писать код на языке 1С;
- Освоите основные приемы программирования;
- Закрепите полученные знания при помощи задачника;
Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.
- Очень доступный и понятный язык изложения
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Поймете идеологию управляемого приложения 1С
- Узнаете, как разрабатывать управляемое приложение;
- Научитесь разрабатывать управляемые формы 1С;
- Сможете работать с основными и нужными элементами управляемых форм
- Программирование под управляемым приложением станет понятным
Промо-код на скидку в 15% — 48PVXHeYu
Если Вам помог этот урок решить какую-нибудь проблему, понравился или оказался полезен, то Вы можете поддержать мой проект, перечислив любую сумму:
Строка — это один из примитивных типов данных существующих 1С и работать с ним приходится практически постоянно. Следовательно необходимо иметь представление о том, какие функции для работы со строками существуют, как и когда они используются, а также, что получается в результате. Этим и займемся.
Функции для работы со строками в 1С 8.2 и 8.3
Строка
Функция Строка(x) возвращает текстовое представление переданного ей значения “x”.
СтрДлина
Функция СтрДлина(x) вычисляет количество символов в строке “x”, учитывая пробелы и ничего не значащие символы.
СокрЛП, СокрЛ, СокрП
Функции СокрЛП(x), СокрЛ(x) и СокрП(x) убирают пробелы и ничего не значащие символы у переданной строки “x” с обеих сторон, слева и справа соответственно.
Лев, Прав, Сред
Функции Лев(x, y) и Прав(x, y) возвращают количество символов “y” с левого или правого края переданной им строки “x”. А функция Сред(x, y, z) возвращает количество символов “z” из указанного места “y” переданной строки “x”.
ВРег, НРег, ТРег
Функция ВРег(x) преобразует все символы переданной строки “x” в верхний регистр, НРег(x) — в нижний регистр, ТРег(x) — первую букву каждого слова преобразует в верхний регистр, а все остальные нижний.
Найти
Функция Найти(x, y) возвращает номер первого символа первого вхождения подстроки “y” в строку “x”, если, конечно, такое вхождение найдено (при этом нумерация начинается с 1). Если же вхождений не найдено, то функция возвращает 0.
СтрЧислоВхождений
Функция СтрЧислоВхождений(x, y) возвращает количество вхождений подстроки “y” в строку “x”.
СтрЗаменить
Функция СтрЗаменить(x, y, z) позволяет в указанной строке “x” заменить все вхождения одной подстроки “y” на другую “z”, результатом выполнения функции будет строка с проведенными заменами.
ПустаяСтрока
Функция ПустаяСтрока(x) сравнивает переданную ей строку “x” с пустой и возвращает результат этого сравнения — Истина или Ложь, при этом строка состоящая из пробелов и/или ничего не значащих символов приравнивается к пустой.
СтрЧислоСтрок
Функция СтрЧислоСтрок(x) возвращает количество строк в многострочном тексте “x”.
МногострочныйТекст = СтрЗаменить("тест1,тест2,тест3,тест4", ",", Символы.ПС); //тест1 тест2 тест3 тест4
СтрПолучитьСтроку
Функция СтрПолучитьСтроку(x, y) возвращает строку с номером “y” из многострочного текста “x”.
МногострочныйТекст = СтрЗаменить("тест1,тест2,тест3,тест4", ",", Символы.ПС); //тест1 тест2 тест3 тест4
Символ, КодСимвола
Функция Символ(x) получает код символа “x” и возвращает строку содержащую соответствующий символ (в кодировке Unicode). Функция КодСимвола(x) делает обратное действие — получает символ “x” и возвращает его код в кодировке Unicode. Таблицу символов Unicode можно найти, например, тут.
Символы
Это не функция, а набор наиболее часто используемых специальных символов, состоит из:
- ВК (CR) — возврат каретки;
- ВТаб (VTab) — вертикальная табуляция;
- НПП (NBSp) — неразрывный пробел;
- ПС (LF) — перевод строки;
- ПФ (FF) — перевод формы;
- Таб (Tab) — символ горизонтальной табуляции.
ЗначениеВСтрокуВнутр, ЗначениеИзСтрокиВнутр
Функция ЗначениеВСтрокуВнутр(x) возвращает системное строковое представление значения “x”. Функция ЗначениеИзСтрокиВнутр(x) проделывает обратную операцию и возвращает значение, полученное из строкового системного представления “x”. Обе эти функции используются для сохранения функциональной совместимости с версией 7.7. Использование для каких-либо других целей не рекомендуется. В новых версиях платформы данные функции не работают (хотя их описание присутствует в справке).
ВвестиСтроку
Функция ВвестиСтроку(x, y, z, w) вызывает диалог для ввода строки, введенная строка записывается в переменную “x”, кроме этого можно указать подсказку “y”, длину вводимой строки “z”, отметку многострочности вводимого текста “w”. Функция возвращает Истина — если ввод был произведен, Ложь — если пользователь отказался от ввода. Выглядит это окно примерно так:
Читайте также: