Фирма 1С Система программ Решения Платформа Методическая поддержка Партнерам Другие сайты
.
 
 
Технологическая платформа
 
Функционал типовых решений
Библиотека стандартных подсистем
Система проектирования прикладных решений
 
1С:Бухгалтерия
 
1С:Упрощенка
 
1С:Предприниматель
 
1С:Управление небольшой фирмой
 
1С:Управление
торговлей
 
1С:Зарплата и Управление
Персоналом
 
1С:Комплексная автоматизация
 
1С:Управление производственным предприятием
 
1С:Консолидация
 
1С:Платежные документы
 
1С:Налогоплательщик
 
1С:Розница
 
1С:Документооборот
 
1С:Деньги
 
1С:Бухгалтерия государственного учреждения
 
1С:Зарплата и кадры бюджетного учреждения
 
1С:Бюджет поселения
 
1С:Документооборот государственного учреждения
 
1С:Бюджетная отчетность
 
1С:Свод отчетов
 
1С:Государственные и муниципальные закупки
 
1С:Электронное обучение
 
1С:Управляющий
Локализованные решения
Отраслевые и специализированные решения
Внедренные решения
Самые масштабные проекты
Технологические вопросы крупных внедрений

Интеграция

Как купить и внедрить?
Центры разработки

Центры компетенции по производству

Центры компетенции по торговле
Партнеры, работающие на корпоративном рынке
Новости и публикации
Обучение
Интернет-поддержка
Версия для печати Поиск
Главная 1С:Предприятие 8 Вопросы при переходе с версии 7.7

Типы значений, преобразование значений

Почему при указании периода выбираются все записи, кроме последнего дня?
При преобразовании числа из 4 цифр в строку количество символов в строке равно 5. Почему?
Что является результатом вычитания двух значений типа Дата?
Чем отличается значение типа Неопределено и значение типа Null?
Почему дата отображается со временем?
Как вывести число прописью по-английски?
Как указать конкретную дату (литерал) в языке?
Как проверить дату на пустое значение? Есть ли аналог функции ПустоеЗначение()? (новое)

Почему при указании периода выбираются все записи, кроме последнего дня?

Необходимо всегда помнить, что в версии 8 значения типа "дата" включают в себя время с точностью до секунд. Если нужно выбрать записи по какую-то дату, то нужно указывать конец суток, т.е. определенную дату со временем 23:59:59. Для этого лучше всего применять функцию КонецДня().

При преобразовании числа из 4 цифр в строку количество символов в строке равно 5. Почему?

При стандартных региональных настройках для русского языка при приведении числа к строке между группами разрядов чисел вставляется неразрывный пробел (Символы.НПП), например:

Год = 2003;
Строка1 = Строка(Число1); //Строка1 = "2 003", длина строки - 5 символов, включая неразрывный пробел

Чтобы преобразовать число к строке без вставки символа-разделителя групп (неразрывного пробела), нужно применить функцию Формат с параметром ЧГ=0:

Строка1 = Формат(Число1,"ЧГ=0");

Чтобы изменить преобразование чисел к строке по умолчанию, нужно для информационной базы установить региональные настройки (например, параметр "Группировка" установить в 0).

Для получения строкового представления года следует не получать числовое значение года, а
использовать функцию Формат. Например:

Формат(ТекущаяДата(), "ДФ=yyyy")

Смотрите также на ИТС "Особенности форматирования значений".

Что является результатом вычитания двух значений типа Дата?

В 1С:Предприятии 8 значение Дата включает не только саму дату, но и время с точностью до секунды. При вычитании одного значения типа Дата из другого возвращается разница в секундах.

Соответственно, для получения следующей даты нужно прибавить к дате количество секунд в дате.

Чем отличается значение типа Неопределено и значение типа Null?

Значение типа Неопределено используется прежде всего как значение по умолчанию (незаданное значение) для полей с составным типом. Например, если есть реквизит, который имеет составной тип, включающий СправочникСсылка.Товары и СправочникСсылка.Материалы, то значением реквизита по умолчанию будет Неопределено. Так же это значение используется и в других случаях для обозначения неуказанного значения.

Значение типа Null используется при работе с таблицами прикладных объектов. Оно обозначает отсутствие значения поля в выборке. Прежде всего оно используется в результатах запросов выполняющих левое или правое соединение. Поля невыбранных записей таблиц участвующих в таких соединениях будут иметь значение Null. Кроме того, значение типа Null будет иметь, например, реквизит иерархического справочника для элементов-групп, если в метаданных указано, что этот реквизит используется только для элементов не являющихся группами.

Почему дата отображается со временем?

В 1С:Предприятии 8 значение типа Дата всегда включает в себя время с точностью до секунды. Если в конкретных полях прикладных объектов или форм задается хранение даты без времени, то это описывает только область допустимых значений поля. То есть при присвоении устанавливается значение со временем 00:00:00. Само значение не содержит информации о том, может ли поле, где оно хранится, содержать время или нет. Также как и число не хранит информации о том, может ли поле, где оно хранится, содержать дробные числа. Оно может быть только фактически целым или дробным. Точно так же и дата может фактически содержать время отличное от 00:00:00 или содержать время 00:00:00.

При отображении реквизита объекта в табличном поле и в поле ввода система использует имеющуюся информацию о допустимом типе значений и отображает дату без времени. Однако если отображение значение происходит без непосредственной связи с объектом, то используется стандартное форматирование значения типа Дата. При этом отображается и дата и время. Например, это происходит при заполнении табличного документа или при выводе значения в окно сообщений. Чтобы установить желаемое форматирование, можно или использовать функцию Формат() или установить форматную строку, если эта возможность предусмотрена там, где отображается значение. Свойство Формат может быть, задано, например, для ячейки табличного документа, для элемента управления Надпись и т.д.

Как вывести число прописью по-английски?

Для получения представления числа прописью используется функция глобального контекста ЧислоПрописью(Число, ФорматнаяСтрока, ПараметрыПредметаИсчисления).

Параметр ФорматнаяСтрока описывает параметры форматирования, и, в частности, код локализации (Л или L), определяющий язык, на котором будет формироваться пропись. В дополнение к коду локализации следует указать ПараметрыПредметаИсчисления, принятые для данного языка:

Сообщить(ЧислоПрописью(ПолеВвода1,"L=en_US","dollar, dollars, cent, cents, 2"));

Результат:
One thousand four hundreds fifty seven dollars 25 cents

Ознакомиться со всеми доступными вариантами форматной строки для преобразования числа в пропись можно в файле loclinfo.txt, входящим в комплект поставки системы 1С:Предприятие 8.

Как указать конкретную дату (литерал) в языке?

Литерал типа Дата представляет собой строку цифр, заключенную в одинарные кавычки. Эта строка должна иметь вид 'ГГГГММДДччммсс', где:

ГГГГ - четыре цифры года (включая тысячелетие и век);
ММ - две цифры месяца;
ДД - две цифры даты;
чч - две цифры часа (в 24-х часовом формате);
мм - две цифры минут;
сс - две цифры секунд.
В литерале типа Дата обязательно должно задаваться значение года, месяца и дня. Для задания даты соответствующей началу отсчета достаточно указать '00010101'. Допускается при указании литералов типа Дата опускать последние символы (секунды, минуты, часы и т.д.). Это означает, что данные параметры будут равны нулю (для времени) или единице (для даты).

В литерале даты допускается использование различных разделителей:

Сообщить('20040814093941');
Сообщить('2004-08-14 09:39:41');

В языке запросов значения типа Дата задаются с помощью ключевого слова ДАТАВРЕМЯ, после которого в скобках последовательно указываются год, месяц, день, час, минута и секунда. Последние три указывать не обязательно:

ДАТАВРЕМЯ(2003, 10, 12, 10, 15, 34)

ДАТАВРЕМЯ(2003, 10, 12)

Как проверить дату на пустое значение? Есть ли аналог функции ПустоеЗначение()?

В 1С:Предприятии 8 не существует понятия «пустое» значение. Любая переменная всегда имеет некоторое значение. Для многих типов данных в 1С:Предприятии 8 существуют значения по умолчанию. Эти значения используются системой в тех случаях, когда нет явного указания на устанавливаемое значение. Например, значение по умолчанию используется при очистке поля ввода.

Поэтому, для того чтобы проверить дату на «пустое» значение, нужно сравнить имеющееся значение со значением типа Дата по умолчанию. Например:

Функция ДатаНеЗаполнена(ПереданноеЗначение)

Если ПереданноеЗначение = Дата('00010101') Тогда

Возврат Истина;

КонецЕсли;

КонецФункции

Следует помнить, что не все типы имеют значения по умолчанию. Значения некоторых типов могут быть созданы только с указанием обязательных параметров конструктора (например, ХранилищеЗначения или Файл). Поэтому само понятие значения по умолчанию в данном случае отсутствует.

Вернуться к списку

   © ООО «1С»

Отправить ваши замечания и предложения по сайту