Программирование (и бизнес программы) обычно имеют дело со следующими простыми типами данных: число, строка, дата. Значения этих типов для разных стран, стандартов и просто привычек могут иметь разное представление.
Вероятно самый известный пример, это разное представление времени – в России привычно использовать 9:00 и 21.00, а в англоязычных странах 9am и 9pm. Разница как в логике (12ти часовая система или 24х часовая), так и в написании.
Представление значения называется «формат» и сегодня мы обсудим изменение формата даты и формата числа в 1С.
Использовать форматирование можно как программисту в языке 1С, так и визуально, без программирования, например при создании печатной формы или отчета, при настройке элементов на форме.
Что такое форматирование
Число и дата вне зависимости от его представления на экране или на печати – остается самим собой. Форматирование подразумевает собой исключительно преобразование к строковому значению – то есть как он будет «выглядеть» на экране компьютера или на бумаге.
Основные различия форматов 1С представления чисел и дат:
Также в формате 1С могут быть указаны дополнительные «удобства», например отрицательные числа выводить красным цветом, или представление «пустого значения» в виде «0» или «не заполнено».
Принцип форматирования
Форматирование по умолчанию работает, например, при переводе числа в строку. В некоторых случаях такие настройки могут служить дурную службу там, где программист этого и не ожидает.
Например, при переводе числа в строку оно переводится с учетом группировки цифр (а вы этого ожидаете?):
ЧислоСтрокой = СокрЛП(2400); //будет равно «2 400»
Для точного указания формата в языке 1С есть функция Формат(), с помощью которой возможно указать требуемое представление.
ЧислоСтрокой = Формат(2400, «Настройки»)
В качестве строки «Настройки» нужно указать требуемый формат 1С. Такие настройки указываются в специальном закодированном виде. Рассмотрим наиболее часто используемые настройки:
Формат 1С даты и числа по умолчанию
Если Вам требуется вывести дату или число и не хочется заморачиваться со знанием как они должны быть представлены по правилам нужной страны, есть простейшая настройка, которая позволит Вам это сделать:
L = КраткоеНаименованиеНужнойСтраны
Пример вывода даты по правилам некоторых стран:
Формат(ТекущаяДата(), «L=ru»)
> 28.03.2012 14:21:32
Формат(ТекущаяДата(), «L=en»)
> 3/28/2012 2:21:24 PM
Формат(ТекущаяДата(), «L=fr»)
> 28/03/2012 14:22:08
Как не трудно заметить, названия стран — интуитивны.
Формат даты в языке 1С
Если настройки по умолчанию Вам недостаточно и хотелось бы самостоятельно указать порядок частей даты и символы их разделения, необходимо использовать настройку:
ДФ = «дмг чмс»
Соответственно «дмг» – это день, месяц и год, а «чмс» — это часы, минуты и секунды. Любую из этих частей возможно пропустить. Порядок следования – любой. Символы, указанные между частями будут использованы как символы разделения.
Символ части даты может быть указан несколько раз подряд, от этого зависит вид этой части даты, например «д» или «дд» или «дддд».
Расшифровка частей даты:
Пример вывода даты с указанием правил:
Формат(ТекущаяДата(), "ДФ=""дд.ММ.гггг чч:мм:сс""")
> 28.03.2012 02:44:44
Формат(ТекущаяДата(), "ДФ="" М / д /гггг ч:м:с вв""")
> 3/28/2012 2:44:44 PM
Формат(ТекущаяДата(), "ДФ=""дд/ММ/гггг чч:мм:сс""")
> 28/03/2012 02:44:44
Формат числа в языке 1С
В отличие от форматирование даты, где все достаточно просто, для форматирования числа есть много параметров. Мы рассмотрим те, которые нам показались полезными – то есть по нашему мнению часто применяются.
Первая «проблема» связана с группировкой по умолчанию цифр в числах по 3 и разделением групп пробелом, например:
СтрЧисло = Строка(22300500)
> 22 300 500
Это неудобно, когда число преобразовывается к строке не для красивого и понятного вывода пользователю, а для служебных нужд. На это можно повлиять с помощью параметра «ЧГ», например:
Формат(22300500, "ЧГ=100")
>22300500 //вообще убрали нули
Формат(22300500, "ЧГ=6")
> 22 300500 //сделали группировку только миллионов
Параметр, который позволяет округлить число при выводе до нужного количества цифр после запятой «ЧДЦ»:
Формат(3.535353, "ЧДЦ=""2""")
> 3,54
Параметр, который позволяет указать символ-разделитель целой и дробной части «ЧРД»:
Формат(3.535353, "ЧРД="".""")
> 3.535353
Для некоторых случаев бывает полезно иметь возможность вместо числа «0» отображать что-то другое: пустую строку или «не заполнено». Это позволяет делать параметр «ЧН»:
Формат(0, "ЧН=""""")
>
Формат 1С поля на форме
Мы рассмотрели с Вами приемы, которые позволяют программисту форматировать значение в языка 1С. Также есть механизмы, которые позволяют указать требуемый формат визуально, без программирования.
Например, пользователь работает с формой. На форме есть поле, которое отображает дату. Мы можем повлиять на представление этой даты.
Откройте свойства этого поля. Для этого — в толстом клиенте нажмите правой кнопкой на поле, а в тонком — правой кнопкой на имени поля в списке полей, выберите пункт Свойства.
У поля есть свойство «Формат».
Нажмите кнопку «…», чтобы настроить его. Для настройки формата даты используйте закладку Дата (для числа – закладку Число). Вы можете выбрать требуемый формат из списка.
Формат 1С ячейки в печатной форме
Когда нужно разработать печатную форму (отчет или печать документа), можно назначить формат ячейки точно таким же способом, как и для поля документа.
Выбираем ячейку (или несколько ячеек одновременно), заходим в свойства, свойство «Формат», выбираем требуемый формат.
Формат 1С в СКД
Отчеты СКД позволяют настроить формат 1С как программисту (в момент создания отчета), так и пользователю (при использовании отчета). Также возможностей больше за счет использования условного форматирования.
Это значит Вы не только указываете какое поле как форматировать, но и при каком условии (например, если значение этого поля – отрицательное).
В режиме Предприятие выберите пункт меню на форме отчета «Изменить вариант». В отчете СКД в толстом клиенте этот пункт в меню «Действия/Настройки».
В открывшейся форме всех настроек СКД есть закладка «Условное форматирование». Добавьте новую строчку. В строчке три колонки:
Формат 1С в управляемых формах
Аналогичные правила форматирования действуют в любой форме списка управляемого клиента. В форме списке выберите пункт меню «Все действия/Настроить список».
Закладка Условное оформление.
Выбираем требуемое оформление и формат.
Указываем список полей, на которые будет применено это оформление.
Основные типы данных в 1С – число, булево и дата, могут быть представлены множеством форматов. Программисты часто сталкиваются с тем, что требования к виду данных сильно различаются в разных отчетах и таблицах. Разработчики 1С подумали об удобстве программистов и создали специальную функцию, существенно облегчающую процесс изменения внешнего вида данных. Основная задача функции – привести число, дату или логический тип к нужному виду строкового типа.
Синтаксис данной функции прост – в качестве параметров вы можете передать два параметра. Сначала разработчик указывает значение, которое должно подвергнуться форматированию. Чтобы 1С поняла, как нужно изменить значение, программист указывает второй параметр в виде строкового значения, содержащего предопределенные операнды. Именно значение этой строки и определяет, какими предстанут перед пользователями данные в отчете.
ОтформатированноеЗначение = Формат(ПеременнаяДляФорматирования,ТекстоваяФорматнаяСтрока);Если параметр «ФорматнаяСтрока» не задан, то 1С преобразует заданное значение в строку. Помните, что пустая дата и 0 будут преобразованы к пустой строке, что может не понравиться пользователям. Каждый параметр в форматной строке представляет собой комбинацию из наименования, символа «=» и значения, указываемого в кавычках. Это позволяет предусматривать вкрапление символов, используемых в написании форматной строки функции Формат в 1С.
В отображение данных вы можете вставить произвольный символ за исключением используемых в синтаксисе написания форматной строки. Если есть необходимость обойти это ограничение – используйте одинарные кавычки. Это решение также поможет в ситуациях, когда символ может быть истолкован компилятором неверно.
Для удобства разработчиков в 1С встроен конструктор форматной строки. К нему можно обратиться в модулях через контекстное меню или в СКД через предусмотренные разработчиками места. К примеру, такую возможность можно обнаружить в списке полей для запроса в разделе «Оформление».
Самое важное преимущество конструктора в том, что вы сразу же можете увидеть, как будут в итоге выглядеть ваши данные. После того как вы выставили необходимые настройки по конкретному типу данных в разделе «Пример», вам демонстрируют результат ваших установок. В безымянном текстовом поле внизу вы обнаружите форматную строку, с помощью которой получен результат. Ее можно скопировать и использовать в дальнейшем, если результат вас полностью устроит.
Конструктор форматной строки может стать отличным подспорьем начинающим разработчикам, но опытные программисты предпочитают не тратить время на него. Разработка пойдет намного быстрее, если вы будете знать основные ключевые параметры форматной строки и использовать их без вызова конструктора.
Изучить все доступные команды не получится, и в этом нет необходимости. Разработчику достаточно лишь знать некоторые популярные операции и как их применять. В любой момент вы сможете в синтакс-помощнике открыть полный перечень параметров форматной строки и выбрать нужный. Программисту 1С могут пригодиться в ежедневной работе следующие параметры:
Универсализм и удобство конструктора стали ключевыми причинами популярности функции «Формат» среди разработчиков 1С. Гибкие настройки помогут вам задать любой внешний вид данным по желанию клиента.
*.cf - файл содержит только конфигурацию(код и структура) без пользовательских данных. Создаётся из конфигуратора 1С 8.х: «Конфигурация -> Сохранить конфигурацию в файл» или «Конфигурация -> Поставка конфигурации -> Создать файл поставки и обновление конфигурации -> признак «Создать файл поставки»».
*.cfu - файл содержит только обновление конфигурации. Например файл 1cv8.cfu. Создать конфигурацию из этого файла невозможно, так как он содержит в себе только отличия новой конфигурации от предыдущей. Создаётся из конфигуратора 1С 8.х: «Конфигурация -> Поставка конфигурации -> Создать файл поставки и обновление конфигурации -> признак «Создать файл обновления конфигурации»».
*.dt - файл содержит конфигурацию вместе с пользовательской базой данных. Это специализированный формат архива 1С 8. Создаётся из конфигуратора 1С 8.х: «Администрирование -> Выгрузить информационную базу».
*.epf (*.erf ) – файл внешней обработки (отчёта). Любую обработку (отчёт) из конфигурации можно сохранить внешней. Создаётся из конфигуратора 1С 8.х: «Конфигурация -> Открыть конфигурацию -> становимся на нужную обработку (отчёт) -> выделяем правой кнопкой мыши -> Сохранить как внешнюю обработку, отчёт…».
*.1cd – файл полноценной базы данных. Представление имени по умолчанию: 1Cv8.1CD. Включает в себя конфигурацию, базу данных, пользовательские настройки. Открывается платформой 1С 8.x. Создаётся для разработки новой конфигурации автоматически по кнопке «Добавить» при выборе пункта «Создание новой информационной базы».
*.log, *.lgf, *.lgp, *.elf - лог файлы, которые собирают информацию (регистрируют данные) в 1С 8.0 8.1, 8.2, 8.3.
*. cdn - файл с таким расширением (1Cv8.cdn) служит для ручной или автоматической блокировки базы данных 1С Предприятия восьмой версии .
*.mxl - файлы печатных форм используются, в том числе и в 1С. Являются как печатными формами документов, справочников, отчётов, так и различными накопителями данных для различных классификаторов. Открывается через Конфигуратор или в режиме 1С:Предприятии через «файл -> открыть». Создаётся точно так же: в режиме Конфигуратор или в 1С:Предприятии через «файл -> новый». Так же файлы с такими расширениями могут служить правилами переноса, например, из 1С 7.7 в 8.2 (acc77_82.xml и вспомогательная обработка exp77_82.ert) - находятся они обычно в папке ExtForms.
*.efd - это архивный файл 1С, используется для установки конфигурации. Содержит или конфигурацию 1с или обновление к ней. Запускается с помощью вспомогательного исполняющего файла setup.exe (должен находиться в одной папке).
*.mft – вспомогательный файл для создания конфигурации из шаблона. Содержит информацию о конфигурации, описание, пути, название. Используется непосредственно самой платформой при создании информационной базы 1С из шаблона.
*.grs - файлы графических схем в специализированном формате 1С. Открывается через Конфигуратор или в режиме 1С:Предприятии через «файл -> открыть». Создаётся точно так же: в режиме Конфигуратор или в 1С:Предприятии через «файл -> новый».
*.geo - файлы географических схем в специализированном формате 1С. Открывается через Конфигуратор или в режиме 1С:Предприятии через «файл -> открыть». Создаётся точно так же: в режиме Конфигуратор или в 1С:Предприятии через «файл -> новый».
*.st - файлы шаблонов текстов. Используются в основном 1С разработчиками.
*.pff - файл с сохраненными замерами производительности. Используются системными администраторами и специалистами 1С.
Подробное описание. Нажмите чтобы развернуть
Форматная строка представляет собой строковое значение, включающее параметры форматирования.
Параметры форматирования перечисляются через символ “;”. Наличие параметра означает отличие форматирования от стандартного.
Если параметр не задан, то применяется стандартное форматирование, которое в основном соответствует преобразованию значения к строке. Однако для значений типа Число и Дата по умолчанию (0 и 01.01.0001 00:00:00 соответственно) будет выдаваться пустая строка.
Каждый параметр задается именем параметра, символом “=” и значением параметра. Значение параметра может указываться в одинарных или двойных кавычках. Это необходимо, если значение параметра содержит символы, используемые в синтаксисе форматной строки.
Внутри значения параметра могут указываться произвольные символы, которые при формировании результирующей строки будут отображаться как есть. Таким образом, например, можно указывать разделители часов, минут и секунд при форматировании времени. Если эти символы совпадают со значениями форматной строки, их необходимо заключать в одинарные кавычки.
Имена и значения параметров форматной строки:
Параметры:
<Значение>
Форматируемое значение.
<ФорматнаяСтрока>
Форматная строка представляет собой строковое значение, включающее параметры форматирования.
Параметры форматирования перечисляются через символ ";". Наличие параметра означает отличие форматирования от стандартного.
Если параметр не задан, то применяется стандартное форматирование, которое в основном соответствует преобразованию значения к строке. Однако для значений типа Число и Дата по умолчанию (0 и 01.01.0001 00:00:00 соответственно) будет выдаваться пустая строка.
Каждый параметр задается именем параметра, символом "=" и значением параметра. Значение параметра может указываться в одинарных или двойных кавычках. Это необходимо, если значение параметра содержит символы, используемые в синтаксисе форматной строки.
Внутри значения параметра могут указываться произвольные символы, которые при формировании результирующей строки будут отображаться как есть. Таким образом, например, можно указывать разделители часов, минут и секунд при форматировании времени. Если эти символы совпадают со значениями форматной строки, их необходимо заключать в одинарные кавычки.
Имена и значения параметров форматной строки: