<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://sfsys.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%A2%D0%B5%D1%85%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D1%8F_%D0%BF%D0%BE_%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%82%D0%B0%D0%BC_%D1%84%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2_%D0%A1%D1%82%D1%83%D0%B4%D0%B8%D0%B8</id>
	<title>Техническая информация по форматам файлов Студии - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://sfsys.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%A2%D0%B5%D1%85%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D1%8F_%D0%BF%D0%BE_%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%82%D0%B0%D0%BC_%D1%84%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2_%D0%A1%D1%82%D1%83%D0%B4%D0%B8%D0%B8"/>
	<link rel="alternate" type="text/html" href="http://sfsys.ru/index.php?title=%D0%A2%D0%B5%D1%85%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D1%8F_%D0%BF%D0%BE_%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%82%D0%B0%D0%BC_%D1%84%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2_%D0%A1%D1%82%D1%83%D0%B4%D0%B8%D0%B8&amp;action=history"/>
	<updated>2026-04-04T15:48:25Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.31.1</generator>
	<entry>
		<id>http://sfsys.ru/index.php?title=%D0%A2%D0%B5%D1%85%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D1%8F_%D0%BF%D0%BE_%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%82%D0%B0%D0%BC_%D1%84%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2_%D0%A1%D1%82%D1%83%D0%B4%D0%B8%D0%B8&amp;diff=3378&amp;oldid=prev</id>
		<title>Admin: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="http://sfsys.ru/index.php?title=%D0%A2%D0%B5%D1%85%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D1%8F_%D0%BF%D0%BE_%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%82%D0%B0%D0%BC_%D1%84%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2_%D0%A1%D1%82%D1%83%D0%B4%D0%B8%D0%B8&amp;diff=3378&amp;oldid=prev"/>
		<updated>2021-02-07T06:55:58Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 06:55, 7 February 2021&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>http://sfsys.ru/index.php?title=%D0%A2%D0%B5%D1%85%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D1%8F_%D0%BF%D0%BE_%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%82%D0%B0%D0%BC_%D1%84%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2_%D0%A1%D1%82%D1%83%D0%B4%D0%B8%D0%B8&amp;diff=3377&amp;oldid=prev</id>
		<title>Admin at 15:46, 10 December 2020</title>
		<link rel="alternate" type="text/html" href="http://sfsys.ru/index.php?title=%D0%A2%D0%B5%D1%85%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D1%8F_%D0%BF%D0%BE_%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%82%D0%B0%D0%BC_%D1%84%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2_%D0%A1%D1%82%D1%83%D0%B4%D0%B8%D0%B8&amp;diff=3377&amp;oldid=prev"/>
		<updated>2020-12-10T15:46:59Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{HeadLinks|&lt;br /&gt;
* [[Main_Page|Начальная страница]]&lt;br /&gt;
* [[Общая информация и интерфейс Студии]]}}&lt;br /&gt;
Данная статья описывает технические детали, требующиеся для полного понимания принципа работы Студии. Для общей информации, см. следующую [[Общая информация и интерфейс Студии|статью]].&lt;br /&gt;
&lt;br /&gt;
== Способ хранения проекта и файлы проекта ==&lt;br /&gt;
&lt;br /&gt;
Проекты представляют собой набор файлов и папок, хранящихся на жестком диске, каждый проект обычно имеет три основные папки:&lt;br /&gt;
* Папка исходных текстов проекта. В данной папке находятся файлы, с которыми работает разработчик с помощью Студии.&lt;br /&gt;
* Папка скомпилированных файлов проекта. При изменении модуля проекта и его компиляции (см. ниже), измененный и компилированные файлы помещаются в папку, которая содержит компилированный проект. Данная папка необходима, так как именно ее содержимое будет сравниваться с содержимым рабочей папки проекта удаленного сервера базы данных. Если какие-либо файлы на сервере отличаются от файлов в этой папке, обновленные файлы по требованию разработчика будут перенесены на удаленный сервер.&lt;br /&gt;
* Папка локального сервера. Чаще всего (но не всегда), разработчик проверяет сделанные изменения до того, как перенести их на рабочий сервер базы данных. Такая политика позволяет избежать как мелких ошибок, так и серьезных искажений данных учетных систем. Для такой конфигурации, разработчик обычно создает локальный сервер базы данных на той же машине, где происходит работа с проектом, при этом удобно поместить рабочую папку локального сервера вместе с папкой исходных текстов и компилированных файлов проекта. После этого разработчик устанавливает локальный сервер базы данных с копией рабочей базы данных, в Студии в проект добавляет локальный сервер и настраивается его автоматическое обновление после любой компиляции.&lt;br /&gt;
&lt;br /&gt;
Основной файл проекта (файл конфигурации проекта), открываемый или создаваемый Студией, это файл с расширением '''sfprj''', обычно &amp;lt;code&amp;gt;sfstudio.sfprj&amp;lt;/code&amp;gt;. Файл '''всегда''' находится внутри папки исходных текстов проекта. При создании нового проекта, Студия создает структуру из двух папок -- папки исходных текстов ('''Source''') и папки скомпилированных файлов ('''Compiled'''), внутри первой папки находится основной файл проекта. Основной файл проекта представляет собой текстовый файл в формате UTF-16, в котором, кроме дополнительной информации по проекту, хранится ссылка на папку с скомпилированными файлами проекта (при создании нового проекта, это ''..\Compiled\''). Основной файл проекта можно открыть непосредственно из проводника Windows, рабочего стола, либо из меню &amp;quot;открыть&amp;quot; Студии.&lt;br /&gt;
&lt;br /&gt;
Папка исходных текстов проекта может содержать следующие подпапки:&lt;br /&gt;
* '''_ConfigFiles''' -- папка с файлом метаданных, файлами настройки меню, связанных элементов и прочего. Папка хранит всю информации по конфигурации проекта, в частности, в ней хранятся файлы:&lt;br /&gt;
** '''Meta.ini''' -- основной файл структуры базы данных&lt;br /&gt;
** '''CommonProp.ini''' -- общие установки проекта&lt;br /&gt;
** '''ControlPanels.ini''' -- установки панелей инструментов&lt;br /&gt;
** '''GuestInfo.ini''' -- установки проекта, включающие картинку при загрузке проекта, наименование проекта и пр., данные установки будут доступны пользователю в момент ввода пароля для регистрации на сервере&lt;br /&gt;
** '''Menus.ini''' -- установки главных меню&lt;br /&gt;
** '''UserAttbuttons.ini''' -- установки пользовательских связанных элементов, использующихся в этом проекте&lt;br /&gt;
** '''ServersList.ini''' -- список серверов, который используется при разворачивании обновлений&lt;br /&gt;
** '''IconsLibrary.png''' -- библиотека иконок, использующаяся в этом проекте&lt;br /&gt;
* '''_DeploymentBin_Server''' -- папка используется для обновления исполняемых файлов и библиотек серверов базы данных. При выполнении обмена между Студией и сервером базы данных, изменения в этой папке попадают в каталог обновления на сервере, после чего программа обновления на сервере заменяет текущие исполняемые файлы сервера полученными новыми версиями. Обновление такого рода временно переводит сервер в нерабочее состояние.&lt;br /&gt;
* '''_DeploymentBin_ConsoleClient''', '''_DeploymentBin_GUIClient''' -- папки, позволяющие разворачивать обновления программ на клиентах автоматически. Новые файлы из этих папок автоматически переносятся на сервер в соответствующие папки для обновлений. В момент, когда клиент (консольный или визуальный) регистрируется на сервере, он получает эти обновления (для визуальный клиентов есть возможность задать вопрос пользователю см. описание визуального клиента) и заменяет текущие исполняемые файлы полученными новыми версиями. После обновления клиент регистрируется на сервере снова.&lt;br /&gt;
* '''Modules''' -- папка с модулями, таблицами и формами проекта. Информацией из этой папки обновляются файлы на сервере. Кроме основных файлов проекта, в структуре этой папки могут храниться ini-файлы или другие файлы, в том числе бинарные. Основными файлами проекта являются:&lt;br /&gt;
** '''файлы исходных текстов модулей'''. Файлы имеют расширения '''sf''' и содержат текст в формате UTF-16, перенос строк осуществляется знаками с кодами 13 и 10, каждый файл имеет UTF-16 BOM. Допустимо использование ANSI файлов без BOM.&lt;br /&gt;
** '''файлы установок форм'''. Файлы имеют расширения '''sfg''' и содержат текст в формате ASCII (символы с кодами &amp;gt;127 не используются), перенос строк осуществляется знаками с кодами 13 и 10. Все строковые константы и тексты визуальных событий внутри файлов кодируются особым образом.&lt;br /&gt;
** '''файлы электронных таблиц'''. Файлы имеют расширения '''sft''' и содержат бинарную информацию по таблицам SFT.&lt;br /&gt;
&lt;br /&gt;
== Формат основных файлов проекта ==&lt;br /&gt;
Описание Форматов основных файлов проекта ''Meta.ini'', ''ControlPanels.ini'', ''Menus.ini'' и ''UserAttbuttons.ini'' выходит за рамки компетенции этой документации. Описания этих файлов доступны во внутренних исходных текстах системы.&lt;br /&gt;
&lt;br /&gt;
== Формат файлов-шаблонов (папка Profiles) ==&lt;br /&gt;
=== Формат файла шаблонов цветов SFT (ColorProfiles.*.sfs) ===&lt;br /&gt;
Шаблоны цветов используются в таблицах SFT не только в Студии, но и в клиентах. Файл загружается при запуске Студии, и, в зависимости от языка Студии имеет дополнительный суффикс используемого языка (к примеру, &amp;lt;code&amp;gt;ru&amp;lt;/code&amp;gt;, для русского, т.е. полное имя файла будет выглядеть следующим образом: &amp;lt;code&amp;gt;ColorProfiles.ru.sfs&amp;lt;/code&amp;gt;). Если файл не найден, загрузка Студии будет остановлена. Шаблон является текстовым файлом в формате UTF-16 с BOM. Разделение строк осуществляют два символа с кодами 13 и 10. Комментарии в файле могут следовать только отдельными строками и должны начинаться на знак ''';'''. Файл имеет следующую структуру:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[MajorIndexNames]&lt;br /&gt;
;Далее следуют наименования заголовков шаблонов ячеек (назначений ячеек), обычно их 5 штук:&lt;br /&gt;
Index1=&amp;quot;Стандартные ячейки&amp;quot;&lt;br /&gt;
Index2=&amp;quot;Заголовки отчета&amp;quot;&lt;br /&gt;
Index3=&amp;quot;Заголовки и итоги таблиц&amp;quot;&lt;br /&gt;
Index4=&amp;quot;Строки таблиц&amp;quot;&lt;br /&gt;
Index5=&amp;quot;Особенные строки таблиц&amp;quot;&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
[MinorIndexNames]&lt;br /&gt;
;Далее следуют наименования шаблонов ячеек (назначений ячеек). Наименования имеют вид Index&amp;lt;Индекс заголовка&amp;gt;_&amp;lt;Индекс шаблона&amp;gt;.&lt;br /&gt;
;Первый шаблон всегда является шаблоном по умолчанию&lt;br /&gt;
;Для примера даны несколько обычно используемых наименований&lt;br /&gt;
Index1_1=&amp;quot;Дизайн по умолчанию&amp;quot;&lt;br /&gt;
Index2_1=&amp;quot;Имя отчета&amp;quot;&lt;br /&gt;
Index2_2=&amp;quot;Свойства отчета&amp;quot;&lt;br /&gt;
Index2_3=&amp;quot;Доп. инф. (предупреждения и пр.)&amp;quot;&lt;br /&gt;
Index3_1=&amp;quot;Заголовок (обычный)&amp;quot;&lt;br /&gt;
Index3_2=&amp;quot;Заголовок выделенный&amp;quot;&lt;br /&gt;
Index3_3=&amp;quot;Заголовок (мелкий)&amp;quot;&lt;br /&gt;
Index3_4=&amp;quot;Заголовок (обычный, без выдел.)&amp;quot;&lt;br /&gt;
Index4_1=&amp;quot;Уровень 1&amp;quot;&lt;br /&gt;
Index4_2=&amp;quot;Уровень 2&amp;quot;&lt;br /&gt;
Index4_3=&amp;quot;Уровень 3&amp;quot;&lt;br /&gt;
Index4_4=&amp;quot;Уровень 4&amp;quot;&lt;br /&gt;
Index4_5=&amp;quot;Уровень 5&amp;quot;&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
[Profiles]&lt;br /&gt;
;Далее следуют наименования профилей палитры. Каждая палитра задает свой вид таблиц, пользователи могут свободно выбирать палитры по своему желанию.&lt;br /&gt;
;Ниже приведены примеры палитр&lt;br /&gt;
Profile1=&amp;quot;Стандартная настройка&amp;quot;&lt;br /&gt;
Profile2=&amp;quot;Оттенки серого&amp;quot;&lt;br /&gt;
Profile3=&amp;quot;Темные цвета для принтера&amp;quot;&lt;br /&gt;
Profile4=&amp;quot;Зеленые цвета&amp;quot;&lt;br /&gt;
Profile5=&amp;quot;Синие цвета&amp;quot;&lt;br /&gt;
Profile6=&amp;quot;Красные цвета&amp;quot;&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
;Количество параграфов Profile* должно совпадать с количеством профилей палитр в параграфе [Profiles]&lt;br /&gt;
[Profile1]&lt;br /&gt;
;Каждый профиль палитры содержит информацию по каждому шаблону ячейки из параграфа [MinorIndexNames]&lt;br /&gt;
;Наименования переменных профиля имеют вид Scheme&amp;lt;Индекс заголовка&amp;gt;_&amp;lt;Индекс шаблона&amp;gt;.&lt;br /&gt;
;Значение каждой переменной -- список значений, разделенных знаками &amp;quot;;&amp;quot;, пропущенные значения используют параметры по умолчанию&lt;br /&gt;
;Первый профиль является профилем по умолчанию, параметры по умолчанию заменяются на значение именно этого шаблона&lt;br /&gt;
;Значение переменных имеет следующий формат: &lt;br /&gt;
;&amp;quot;&amp;lt;Имя шрифта&amp;gt;;&amp;lt;Размер шрифта&amp;gt;;&amp;lt;Цвет шрифта&amp;gt;;&amp;lt;Цвет фона&amp;gt;;&amp;lt;Жирный&amp;gt;;&amp;lt;Наклонный&amp;gt;;&amp;lt;Подчеркнутый&amp;gt;;&amp;lt;Вычеркнутый&amp;gt;;&amp;lt;Отрицательный красным&amp;gt;;&amp;lt;Цвет рамки&amp;gt;&amp;quot;&lt;br /&gt;
;Цвета имеют формат RGB, и могут быть заданы в шестнадцатеричном формате (начинаются на знак $), либо в десятичном формате&lt;br /&gt;
;Булевые значения задаются как 0 или 1&lt;br /&gt;
;Далее показаны примеры нескольких строк шаблонов. Нужно заменить, что наименование шрифта упоминается только в шаблоне по умолчанию, &lt;br /&gt;
;  последующие шаблоны пропускают этот параметр&lt;br /&gt;
Scheme1_1=&amp;quot;Arial;9&amp;quot;&lt;br /&gt;
Scheme2_1=&amp;quot;;12;$000000;;1&amp;quot;&lt;br /&gt;
Scheme2_2=&amp;quot;;8;$000000;;1&amp;quot;&lt;br /&gt;
Scheme2_3=&amp;quot;;8;$000000&amp;quot;&lt;br /&gt;
Scheme3_1=&amp;quot;;9;$000000;$C0C0C0;1&amp;quot;&lt;br /&gt;
Scheme3_2=&amp;quot;;9;$000000;$C0C0C0;1;;1&amp;quot;&lt;br /&gt;
Scheme3_3=&amp;quot;;8;$000000;$C0C0C0;1&amp;quot;&lt;br /&gt;
Scheme3_4=&amp;quot;;9;$000000;;1&amp;quot;&lt;br /&gt;
Scheme4_1=&amp;quot;;9;$000000;$FFFFFF&amp;quot;&lt;br /&gt;
Scheme4_2=&amp;quot;;9;$000000;$E8E8E8&amp;quot;&lt;br /&gt;
Scheme4_3=&amp;quot;;9;$000000;$D0D0D0&amp;quot;&lt;br /&gt;
Scheme4_4=&amp;quot;;9;$000000;$C0C0C0;1&amp;quot;&lt;br /&gt;
Scheme4_5=&amp;quot;;9;$000000;$B0B0B0;1&amp;quot;&lt;br /&gt;
Scheme4_6=&amp;quot;;10;$000000;$A0A0A0;1&amp;quot;&lt;br /&gt;
Scheme4_7=&amp;quot;;11;$FFFFFF;$909090;1&amp;quot;&lt;br /&gt;
Scheme4_8=&amp;quot;;11;$FFFFFF;$707070;1&amp;quot;&lt;br /&gt;
Scheme4_9=&amp;quot;;12;$FFFFFF;$404040;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[Profile2]&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
;Параграф &amp;quot;палитры&amp;quot; задает цветовые палитры с доступными в SFT таблицах цветами. Так как цвета в ячейках не задаются в формате RGB, а используют индексы, &lt;br /&gt;
;  в таблицах нельзя использовать произвольные цвета, но только цвета из указанной палитры.&lt;br /&gt;
;Обычно указывается одна палитра по умолчанию, но можно указать несколько палитр&lt;br /&gt;
[Palettes]&lt;br /&gt;
Palette1=&amp;quot;Стандартная палитра&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[Palette1]&lt;br /&gt;
;Далее следуют 16 переменных цвета палитры. Каждая переменная содержит 16 цветов, разделенных знаком &amp;quot;;&amp;quot;.&lt;br /&gt;
;Цвета могут быть заданы как в шестнадцатеричном формате (начинаются на знак $), так и в десятичном формате&lt;br /&gt;
;Для примера дана стандартная палитра SunFlurry&lt;br /&gt;
Colors1=&amp;quot;$000000;$FFFFFF;$000080;$0000FF;$008000;$00FF00;$800000;$FF0000;$008080;$00FFFF;$800080;$FF00FF;$808000;$FFFF00;$808080;$C0C0C0&amp;quot;&lt;br /&gt;
Colors2=&amp;quot;$E0E0FF;$D0D0FF;$C0C0FF;$A0A0FF;$8080FF;$6060FF;$4040FF;$2020FF;$0000FF;$0000E0;$0000C0;$0000A0;$000080;$000060;$000040;$000020&amp;quot;&lt;br /&gt;
Colors3=&amp;quot;$E0FFE0;$D0FFD0;$C0FFC0;$A0FFA0;$80FF80;$60FF60;$40FF40;$20FF20;$00FF00;$00E000;$00C000;$00A000;$008000;$006000;$004000;$002000&amp;quot;&lt;br /&gt;
Colors4=&amp;quot;$FFE0E0;$FFD0D0;$FFC0C0;$FFA0A0;$FF8080;$FF6060;$FF4040;$FF2020;$FF0000;$E00000;$C00000;$A00000;$800000;$600000;$400000;$200000&amp;quot;&lt;br /&gt;
Colors5=&amp;quot;$E0FFFF;$D0FFFF;$C0FFFF;$A0FFFF;$80FFFF;$60FFFF;$40FFFF;$20FFFF;$00FFFF;$00E0E0;$00C0C0;$00A0A0;$008080;$006060;$004040;$002020&amp;quot;&lt;br /&gt;
Colors6=&amp;quot;$FFE0FF;$FFD0FF;$FFC0FF;$FFA0FF;$FF80FF;$FF60FF;$FF40FF;$FF20FF;$FF00FF;$E000E0;$C000C0;$A000A0;$800080;$600060;$400040;$200020&amp;quot;&lt;br /&gt;
Colors7=&amp;quot;$FFFFE0;$FFFFD0;$FFFFC0;$FFFFA0;$FFFF80;$FFFF60;$FFFF40;$FFFF20;$FFFF00;$E0E000;$C0C000;$A0A000;$808000;$606000;$404000;$202000&amp;quot;&lt;br /&gt;
Colors8=&amp;quot;$E8E8E8;$E0E0E0;$D0D0D0;$C0C0C0;$B8B8B8;$B0B0B0;$A0A0A0;$909090;$808080;$707070;$606060;$505050;$404040;$303030;$202020;$101010&amp;quot;&lt;br /&gt;
Colors9=&amp;quot;$F0FFE0;$E0FFC0;$D0FFA0;$C0FF80;$B0FF60;$A0FF40;$90FF20;$80FF00;$FFF0E0;$FFE0C0;$FFD0A0;$FFC080;$FFB060;$FFA040;$FF9020;$FF8000&amp;quot;&lt;br /&gt;
Colors10=&amp;quot;$F0E0FF;$E0C0FF;$D0A0FF;$C080FF;$B060FF;$A040FF;$9020FF;$8000FF;$E0F0FF;$C0E0FF;$A0D0FF;$80C0FF;$60B0FF;$40A0FF;$2090FF;$0080FF&amp;quot;&lt;br /&gt;
Colors11=&amp;quot;$FFE0F0;$FFC0E0;$FFA0D0;$FF80C0;$FF60B0;$FF40A0;$FF2090;$FF0080;$E0FFF0;$C0FFE0;$A0FFD0;$80FFC0;$60FFB0;$40FFA0;$20FF90;$00FF80&amp;quot;&lt;br /&gt;
Colors12=&amp;quot;$E0FF80;$A0FF80;$FFE080;$FFA080;$E080FF;$A080FF;$80E0FF;$80A0FF;$FF80E0;$FF80A0;$80FFE0;$80FFA0;$708040;$807040;$704080;$407080&amp;quot;&lt;br /&gt;
Colors13=&amp;quot;$E0FFC0;$A0FFC0;$FFE0C0;$FFA0C0;$E0C0FF;$A0C0FF;$C0E0FF;$C0A0FF;$FFC0E0;$FFC0A0;$C0FFE0;$C0FFA0;$804070;$408070;$708060;$807060&amp;quot;&lt;br /&gt;
Colors14=&amp;quot;$E0C080;$A0C080;$C0E080;$C0A080;$E080C0;$A080C0;$80E0C0;$80A0C0;$C080E0;$C080A0;$80C0E0;$80C0A0;$706080;$607080;$806070;$608070&amp;quot;&lt;br /&gt;
Colors15=&amp;quot;$C0C0FF;$E0D0FF;$C0FFC0;$E0FFD0;$FFC0C0;$FFE0D0;$E0E0FF;$A0A0FF;$E0FFE0;$A0FFA0;$FFE0E0;$FFA0A0;$706040;$607040;$704060;$407060&amp;quot;&lt;br /&gt;
Colors16=&amp;quot;$C0C0E0;$C0C0A0;$C0E0C0;$C0A0C0;$E0C0C0;$A0C0C0;$A0E0FF;$E0A0FF;$A0FFE0;$FFA0E0;$E0FFA0;$FFE0A0;$604070;$406070;$FFFFFF;$000000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Формат файла шаблонов прописей и валюты (Common.*.sfs) ===&lt;br /&gt;
Шаблон прописей и валюты используется при работе программ клиентов (консольного и визуального). Файл загружается при запуске в момент использования функций прописи [[SpellNumber]], [[FormatCurrency]] или [[FormatDate]], и, в зависимости от указанного при вызове функции языка, имеет дополнительный суффикс (к примеру, &amp;lt;code&amp;gt;ru&amp;lt;/code&amp;gt;, для русского, т.е. полное имя файла будет выглядеть следующим образом: &amp;lt;code&amp;gt;Common.ru.sfs&amp;lt;/code&amp;gt;). Шаблон является текстовым файлом в формате UTF-16 с BOM. Разделение строк осуществляют два символа с кодами 13 и 10. Комментарии в файле могут следовать только отдельными строками и должны начинаться на знак ''';'''. Файл имеет следующую структуру: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Months]&lt;br /&gt;
;Далее следуют полные наименования месяцев на языке шаблона. Первая буква должна быть прописной, остальные строчными.&lt;br /&gt;
January=&amp;quot;Январь&amp;quot;&lt;br /&gt;
February=&amp;quot;Февраль&amp;quot;&lt;br /&gt;
March=&amp;quot;Март&amp;quot;&lt;br /&gt;
April=&amp;quot;Апрель&amp;quot;&lt;br /&gt;
May=&amp;quot;Май&amp;quot;&lt;br /&gt;
June=&amp;quot;Июнь&amp;quot;&lt;br /&gt;
July=&amp;quot;Июль&amp;quot;&lt;br /&gt;
August=&amp;quot;Август&amp;quot;&lt;br /&gt;
September=&amp;quot;Сентябрь&amp;quot;&lt;br /&gt;
October=&amp;quot;Октябрь&amp;quot;&lt;br /&gt;
November=&amp;quot;Ноябрь&amp;quot;&lt;br /&gt;
December=&amp;quot;Декабрь&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[MonthsShort]&lt;br /&gt;
;Далее следуют краткие наименования месяцев на языке шаблона. Каждое из наименований должно иметь не более 3 букв, первая буква должна быть прописной, остальные строчными.&lt;br /&gt;
January=&amp;quot;Янв&amp;quot;&lt;br /&gt;
February=&amp;quot;Фев&amp;quot;&lt;br /&gt;
March=&amp;quot;Мар&amp;quot;&lt;br /&gt;
April=&amp;quot;Апр&amp;quot;&lt;br /&gt;
May=&amp;quot;Май&amp;quot;&lt;br /&gt;
June=&amp;quot;Июн&amp;quot;&lt;br /&gt;
July=&amp;quot;Июл&amp;quot;&lt;br /&gt;
August=&amp;quot;Авг&amp;quot;&lt;br /&gt;
September=&amp;quot;Сен&amp;quot;&lt;br /&gt;
October=&amp;quot;Окт&amp;quot;&lt;br /&gt;
November=&amp;quot;Ноя&amp;quot;&lt;br /&gt;
December=&amp;quot;Дек&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[MonthsGenitiveCase]&lt;br /&gt;
;Далее следуют полные наименования месяцев на языке шаблона в родительном падеже, если применимо с точки зрения языка &lt;br /&gt;
;  (в случае, если не применимо, в разделе должны повторяться значения раздела [Months]). Первая буква должна быть прописной, остальные строчными.&lt;br /&gt;
January=&amp;quot;Января&amp;quot;&lt;br /&gt;
February=&amp;quot;Февраля&amp;quot;&lt;br /&gt;
March=&amp;quot;Марта&amp;quot;&lt;br /&gt;
April=&amp;quot;Апреля&amp;quot;&lt;br /&gt;
May=&amp;quot;Мая&amp;quot;&lt;br /&gt;
June=&amp;quot;Июня&amp;quot;&lt;br /&gt;
July=&amp;quot;Июля&amp;quot;&lt;br /&gt;
August=&amp;quot;Августа&amp;quot;&lt;br /&gt;
September=&amp;quot;Сентября&amp;quot;&lt;br /&gt;
October=&amp;quot;Октября&amp;quot;&lt;br /&gt;
November=&amp;quot;Ноября&amp;quot;&lt;br /&gt;
December=&amp;quot;Декабря&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[DaysOfTheWeek]&lt;br /&gt;
;Далее следуют полные наименования дней недели на языке шаблона. Первая буква должна быть прописной, остальные строчными.&lt;br /&gt;
Monday=&amp;quot;Понедельник&amp;quot;&lt;br /&gt;
Tuesday=&amp;quot;Вторник&amp;quot;&lt;br /&gt;
Wednesday=&amp;quot;Среда&amp;quot;&lt;br /&gt;
Thursday=&amp;quot;Четверг&amp;quot;&lt;br /&gt;
Friday=&amp;quot;Пятница&amp;quot;&lt;br /&gt;
Saturday=&amp;quot;Суббота&amp;quot;&lt;br /&gt;
Sunday=&amp;quot;Воскресенье&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[DaysOfTheWeekShort]&lt;br /&gt;
;Далее следуют краткие наименования дней недели на языке шаблона. Каждое из наименований должно иметь не более 3 букв, первая буква должна быть прописной, остальные строчными.&lt;br /&gt;
Monday=&amp;quot;Пнд&amp;quot;&lt;br /&gt;
Tuesday=&amp;quot;Втр&amp;quot;&lt;br /&gt;
Wednesday=&amp;quot;Срд&amp;quot;&lt;br /&gt;
Thursday=&amp;quot;Чтв&amp;quot;&lt;br /&gt;
Friday=&amp;quot;Пят&amp;quot;&lt;br /&gt;
Saturday=&amp;quot;Суб&amp;quot;&lt;br /&gt;
Sunday=&amp;quot;Вск&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[Numbers]&lt;br /&gt;
;Здесь следует раздел для создания прописи цифр, каждая переменная начинается на префикс рода или количества, далее следует цифра, пропись которой указывается в значении переменной. &lt;br /&gt;
;Первая буква значений переменных должна быть прописной, остальные строчными.&lt;br /&gt;
;Переменные указываются для всех цифр а также порядков цифр, имеющих отличающееся написание в языке шаблона&lt;br /&gt;
;Доступны следующие префиксы:&lt;br /&gt;
;&amp;quot;M&amp;lt;цифра&amp;gt;&amp;quot; -- цифра прописывается в мужском роде&lt;br /&gt;
;&amp;quot;F&amp;lt;цифра&amp;gt;&amp;quot; -- цифра прописывается в женском роде, если женский род цифр в языке отсутствует, переменная не указывается&lt;br /&gt;
;&amp;quot;P&amp;lt;цифра&amp;gt;&amp;quot; -- переменная задает альтернативное написание в случае, когда необходимо употребить множественное число вместо рода&lt;br /&gt;
;  (к примеру, &amp;quot;одна тысяча&amp;quot; -- женский род, &amp;quot;один миллион&amp;quot; -- мужской, &amp;quot;десять тысяч&amp;quot; -- множественное число)&lt;br /&gt;
;  переменная может быть пропущена, если пропись множественного числа цифры совпадает с мужским или женским родом&lt;br /&gt;
;&amp;quot;C&amp;lt;цифра&amp;gt;&amp;quot; -- переменная задает суффикс (падеж) альтернативной прописи цифр порядков, которая начинается на данную. Переменная может быть указана только для цифр 0..9.&lt;br /&gt;
;  (к примеру, для цифры 4 укажем доп. суффикс &amp;quot;G&amp;quot;, далее зададим переменную P1000G равную &amp;quot;Тысячи&amp;quot;, тогда как обычная P1000 равна &amp;quot;Тысяч&amp;quot;,&lt;br /&gt;
;   4000 будут прописаны, как &amp;quot;четыре тысячи&amp;quot;, а 5000, как &amp;quot;пять тысяч&amp;quot;).&lt;br /&gt;
;&amp;quot;G&amp;lt;цифра&amp;gt;&amp;quot; -- переменная указывает на род цифры, по умолчанию для цифр принимается мужской род. Для языков, где род не важен, переменная не указывается&lt;br /&gt;
;&lt;br /&gt;
;Дополнительные переменные, используемые в разделе:&lt;br /&gt;
;&amp;quot;Minus&amp;quot; -- пропись слова &amp;quot;минус&amp;quot; на требуемом языке&lt;br /&gt;
;&amp;quot;HundredsDelimiter&amp;quot; -- фраза-разделитель сотен (&amp;quot;And&amp;quot; используется для британского и европейского английского, для американского английского не указывается)&lt;br /&gt;
;&amp;quot;TensHyphen&amp;quot; -- фраза-разделитель десятков в прописи (&amp;quot;-&amp;quot; используется для английского, к примеру 67 превращается в &amp;quot;sixty-seven&amp;quot;)&lt;br /&gt;
;&lt;br /&gt;
;Далее следует пример для русского языка&lt;br /&gt;
Minus=&amp;quot;Минус&amp;quot;&lt;br /&gt;
M0=&amp;quot;Ноль&amp;quot;&lt;br /&gt;
M1=&amp;quot;Один&amp;quot;&lt;br /&gt;
F1=&amp;quot;Одна&amp;quot;&lt;br /&gt;
M2=&amp;quot;Два&amp;quot;&lt;br /&gt;
F2=&amp;quot;Две&amp;quot;&lt;br /&gt;
C2=&amp;quot;G&amp;quot;&lt;br /&gt;
M3=&amp;quot;Три&amp;quot;&lt;br /&gt;
C3=&amp;quot;G&amp;quot;&lt;br /&gt;
M4=&amp;quot;Четыре&amp;quot;&lt;br /&gt;
C4=&amp;quot;G&amp;quot;&lt;br /&gt;
M5=&amp;quot;Пять&amp;quot;&lt;br /&gt;
M6=&amp;quot;Шесть&amp;quot;&lt;br /&gt;
M7=&amp;quot;Семь&amp;quot;&lt;br /&gt;
M8=&amp;quot;Восемь&amp;quot;&lt;br /&gt;
M9=&amp;quot;Девять&amp;quot;&lt;br /&gt;
M10=&amp;quot;Десять&amp;quot;&lt;br /&gt;
M11=&amp;quot;Одиннадцать&amp;quot;&lt;br /&gt;
M12=&amp;quot;Двенадцать&amp;quot;&lt;br /&gt;
M13=&amp;quot;Тринадцать&amp;quot;&lt;br /&gt;
M14=&amp;quot;Четырнадцать&amp;quot;&lt;br /&gt;
M15=&amp;quot;Пятнадцать&amp;quot;&lt;br /&gt;
M16=&amp;quot;Шестнадцать&amp;quot;&lt;br /&gt;
M17=&amp;quot;Семнадцать&amp;quot;&lt;br /&gt;
M18=&amp;quot;Восемнадцать&amp;quot;&lt;br /&gt;
M19=&amp;quot;Девятнадцать&amp;quot;&lt;br /&gt;
M20=&amp;quot;Двадцать&amp;quot;&lt;br /&gt;
M30=&amp;quot;Тридцать&amp;quot;&lt;br /&gt;
M40=&amp;quot;Сорок&amp;quot;&lt;br /&gt;
M50=&amp;quot;Пятьдесят&amp;quot;&lt;br /&gt;
M60=&amp;quot;Шестьдесят&amp;quot;&lt;br /&gt;
M70=&amp;quot;Семьдесят&amp;quot;&lt;br /&gt;
M80=&amp;quot;Восемьдесят&amp;quot;&lt;br /&gt;
M90=&amp;quot;Девяносто&amp;quot;&lt;br /&gt;
M100=&amp;quot;Сто&amp;quot;&lt;br /&gt;
M200=&amp;quot;Двести&amp;quot;&lt;br /&gt;
M300=&amp;quot;Триста&amp;quot;&lt;br /&gt;
M400=&amp;quot;Четыреста&amp;quot;&lt;br /&gt;
M500=&amp;quot;Пятьсот&amp;quot;&lt;br /&gt;
M600=&amp;quot;Шестьсот&amp;quot;&lt;br /&gt;
M700=&amp;quot;Семьсот&amp;quot;&lt;br /&gt;
M800=&amp;quot;Восемьсот&amp;quot;&lt;br /&gt;
M900=&amp;quot;Девятьсот&amp;quot;&lt;br /&gt;
M1000=&amp;quot;Тысяча&amp;quot;&lt;br /&gt;
P1000=&amp;quot;Тысяч&amp;quot;&lt;br /&gt;
P1000G=&amp;quot;Тысячи&amp;quot;&lt;br /&gt;
G1000=&amp;quot;F&amp;quot;&lt;br /&gt;
M1000000=&amp;quot;Миллион&amp;quot;&lt;br /&gt;
P1000000=&amp;quot;Миллионов&amp;quot;&lt;br /&gt;
P1000000G=&amp;quot;Миллиона&amp;quot;&lt;br /&gt;
G1000000=&amp;quot;M&amp;quot;&lt;br /&gt;
M1000000000=&amp;quot;Миллиард&amp;quot;&lt;br /&gt;
P1000000000=&amp;quot;Миллиардов&amp;quot;&lt;br /&gt;
P1000000000G=&amp;quot;Миллиарда&amp;quot;&lt;br /&gt;
G1000000000=&amp;quot;M&amp;quot;&lt;br /&gt;
M1000000000000=&amp;quot;Триллион&amp;quot;&lt;br /&gt;
P1000000000000=&amp;quot;Триллионов&amp;quot;&lt;br /&gt;
P1000000000000G=&amp;quot;Триллиона&amp;quot;&lt;br /&gt;
G1000000000000=&amp;quot;M&amp;quot;&lt;br /&gt;
M1000000000000000=&amp;quot;Квадриллион&amp;quot;&lt;br /&gt;
P1000000000000000=&amp;quot;Квадриллионов&amp;quot;&lt;br /&gt;
P1000000000000000G=&amp;quot;Квадриллиона&amp;quot;&lt;br /&gt;
G1000000000000000=&amp;quot;M&amp;quot;&lt;br /&gt;
M1000000000000000000=&amp;quot;Квинтиллион&amp;quot;&lt;br /&gt;
P1000000000000000000=&amp;quot;Квинтиллионов&amp;quot;&lt;br /&gt;
P1000000000000000000G=&amp;quot;Квинтиллиона&amp;quot;&lt;br /&gt;
G1000000000000000000=&amp;quot;M&amp;quot;&lt;br /&gt;
M1000000000000000000000=&amp;quot;Секстиллион&amp;quot;&lt;br /&gt;
P1000000000000000000000=&amp;quot;Секстиллионов&amp;quot;&lt;br /&gt;
P1000000000000000000000G=&amp;quot;Секстиллиона&amp;quot;&lt;br /&gt;
G1000000000000000000000=&amp;quot;M&amp;quot;&lt;br /&gt;
&lt;br /&gt;
;Далее следуют разделы для прописи любой из валют на языке шаблона, имена разделов [Currency\&amp;lt;Имя валюты&amp;gt;]&lt;br /&gt;
;Каждая валюта записывается тремя латинскими буквами, которые указываются при вызове функции FormatCurrency&lt;br /&gt;
;Первая буква значений переменных должна быть прописной, остальные строчными.&lt;br /&gt;
&lt;br /&gt;
[Currency\RUB]&lt;br /&gt;
;MainName -- задается основное наименование валюты в именительном падеже, если применимо&lt;br /&gt;
MainName=&amp;quot;Рубль&amp;quot;&lt;br /&gt;
&lt;br /&gt;
;MainNameGender -- задается род основного наименования валюты. Род используется для прописи чисел этой валюты&lt;br /&gt;
;  если род мужской, переменную можно пропустить&lt;br /&gt;
MainNameGender=&amp;quot;M&amp;quot;&lt;br /&gt;
&lt;br /&gt;
;MainGenitiveCase -- задается основное наименование валюты в родительном падеже, если применимо&lt;br /&gt;
MainGenitiveCase=&amp;quot;Рубля&amp;quot;&lt;br /&gt;
&lt;br /&gt;
;MainGenitiveCasePlural -- задается основное наименование валюты во множественном числе, если написание отличается от единственного числа&lt;br /&gt;
MainGenitiveCasePlural=&amp;quot;Рублей&amp;quot;&lt;br /&gt;
&lt;br /&gt;
;AdditionalName -- задается альтернативное (сотые доли) наименование валюты в именительном падеже, если применимо&lt;br /&gt;
AdditionalName=&amp;quot;Копейка&amp;quot;&lt;br /&gt;
&lt;br /&gt;
;AdditionalNameGender -- задается род альтернативного (сотые доли) наименования валюты. Род используется для прописи чисел этой валюты&lt;br /&gt;
;  если род мужской, переменную можно пропустить&lt;br /&gt;
AdditionalNameGender=&amp;quot;F&amp;quot;&lt;br /&gt;
&lt;br /&gt;
;AdditionalGenitiveCase -- задается альтернативное (сотые доли) наименование валюты в родительном падеже, если применимо&lt;br /&gt;
AdditionalGenitiveCase=&amp;quot;Копейки&amp;quot;&lt;br /&gt;
&lt;br /&gt;
;AdditionalGenitiveCasePlural -- задается альтернативное (сотые доли) наименование валюты во множественном числе, если написание отличается от единственного числа&lt;br /&gt;
AdditionalGenitiveCasePlural=&amp;quot;Копеек&amp;quot;&lt;br /&gt;
&lt;br /&gt;
;Abbreviation -- задается сокращенное написание валюты (знак ₽ может быть не задан в системных шрифтах)&lt;br /&gt;
Abbreviation=&amp;quot;р.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
;AbbreviationBeforeNumber -- переменная задает режим (значение = 1), когда сокращенное наименование следует до числа, не в режиме прописи (к примеру, €100)&lt;br /&gt;
AbbreviationBeforeNumber=&amp;quot;0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
;Далее показаны примеры для долларов и евро&lt;br /&gt;
&lt;br /&gt;
[Currency\USD]&lt;br /&gt;
MainName=&amp;quot;Доллар&amp;quot;&lt;br /&gt;
MainGenitiveCase=&amp;quot;Доллара&amp;quot;&lt;br /&gt;
MainGenitiveCasePlural=&amp;quot;Долларов&amp;quot;&lt;br /&gt;
AdditionalName=&amp;quot;Цент&amp;quot;&lt;br /&gt;
AdditionalGenitiveCase=&amp;quot;Цента&amp;quot;&lt;br /&gt;
AdditionalGenitiveCasePlural=&amp;quot;Центов&amp;quot;&lt;br /&gt;
Abbreviation=&amp;quot;$&amp;quot;&lt;br /&gt;
AbbreviationBeforeNumber=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[Currency\EUR]&lt;br /&gt;
MainName=&amp;quot;Евро&amp;quot;&lt;br /&gt;
MainGenitiveCase=&amp;quot;Евро&amp;quot;&lt;br /&gt;
MainGenitiveCasePlural=&amp;quot;Евро&amp;quot;&lt;br /&gt;
AdditionalName=&amp;quot;Цент&amp;quot;&lt;br /&gt;
AdditionalGenitiveCase=&amp;quot;Цента&amp;quot;&lt;br /&gt;
AdditionalGenitiveCasePlural=&amp;quot;Центов&amp;quot;&lt;br /&gt;
Abbreviation=&amp;quot;€&amp;quot;&lt;br /&gt;
AbbreviationBeforeNumber=&amp;quot;1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
</feed>