Чтение параметров из json файла
Читает параметры из файла json и возвращает соответствие параметров. Параметры читаются рекурсивно, т.е. если в файле указана структура, в ней структура, а уже в ней п1 = 100, то в соответствии будет прочитанныеПараметры["п1"] = 100
записьТекста = Новый ЗаписьТекста(файлПараметров);
ЗаписьТекста.ЗаписатьСтроку( "{""парам.Число"": 100, ""парам.Строка"": ""100"", ""парам.Булево"": true}" );
ЗаписьТекста.Закрыть();
ошибкиЧтения = Неопределено;
прочитанныеПараметры = ЧтениеПараметров.Прочитать( файлПараметров, ошибкиЧтения );
// ТипЗнч(прочитанныеПараметры) = Тип("Соответствие");
// прочитанныеПараметры.Количество() = 3;
// ТипЗнч(ошибкиЧтения) = Тип("Соответствие");
// ошибкиЧтения.Количество() = 0;
// прочитанныеПараметры["парам.Число"] = 100;
// прочитанныеПараметры["парам.Строка"] = "100";
// прочитанныеПараметры["парам.Булево"] = Истина;
Так же на вход можно подавать файл (Новый файл()) массив файлов, массив путей к файлам.
Если ничего не указывать в качестве пути, то будет прочитан файл param_os.json из текущего каталога.
файлПараметров = ОбъединитьПути( ТекущийКаталог(), "param_os.json");
записьТекста = Новый ЗаписьТекста(файлПараметров);
ЗаписьТекста.ЗаписатьСтроку( "{""парам.Число"": 100, ""парам.Строка"": ""100"", ""парам.Булево"": true}" );
ЗаписьТекста.Закрыть();
прочитанныеПараметры = ЧтениеПараметров.Прочитать();
Если указать в файле параметров имя параметра, которое начинается с ReadFile, а в значении путь к файлу (в том числе относительно этого файла), то будут прочитан так же и указанный файл.
путь2 = ПутьВЗначениеJSON( ОбъединитьПути(".", "testParam2.json") );
путь3 = ПутьВЗначениеJSON( ОбъединитьПути(".", "testParam3.json") );
записьТекста = Новый ЗаписьТекста(файлПараметров1);
ЗаписьТекста.ЗаписатьСтроку( "{""парам.Число"": 1, ""парам.Строка"": ""1"", ""парам.Булево"": true, ""ReadFile"": """ + путь2 + """}" );
ЗаписьТекста.Закрыть();
записьТекста = Новый ЗаписьТекста(файлПараметров2);
ЗаписьТекста.ЗаписатьСтроку( "{""парам.Число2"": 2, ""парам.Строка2"": ""2"", ""парам.Булево2"": false, ""ReadFile"": """ + путь3 + """}" );
ЗаписьТекста.Закрыть();
записьТекста = Новый ЗаписьТекста(файлПараметров3);
ЗаписьТекста.ЗаписатьСтроку( "{""парам.Число"": 3, ""парам.Строка"": ""3""}" );
ЗаписьТекста.Закрыть();
прочитанныеПараметры = ЧтениеПараметров.Прочитать( файлПараметров1 );
// прочитанныеПараметры["парам.Число"] = 3;
// прочитанныеПараметры["парам.Строка"] = "3";
// прочитанныеПараметры["парам.Булево"] = Истина;
// прочитанныеПараметры["парам.Число2"] = 2;
// прочитанныеПараметры["парам.Строка2"] = "2";
// прочитанныеПараметры["парам.Булево2"] = Ложь;
// прочитанныеПараметры["ReadFile"] = ОбъединитьПути(".", "testParam3.json");
Если для какого-либо параметра в качестве значения используется шаблон %ИмяПараметра%, то в прочитанных параметрах будет предпринята попытка подменить этот шаблон на соответствующее значение
записьТекста = Новый ЗаписьТекста(файлПараметров);
ЗаписьТекста.ЗаписатьСтроку( "{""парам.Число"": 100,
|""парам.Подстановка1"": ""999+%парам.Число%+%парам.Число%"",
|""парам.Подстановка2"": ""0+%парам.Подстановка1%+%парам.Число%""
|}" );
ЗаписьТекста.Закрыть();
прочитанныеПараметры = ЧтениеПараметров.Прочитать( файлПараметров );
// прочитанныеПараметры["парам.Число"] = 100;
// прочитанныеПараметры["парам.Подстановка1"] = "999+100+100";
// прочитанныеПараметры["парам.Подстановка2"] "0+999+100+100+100";
Модуль не генерирует исключений и не выводит никаких сообщений. Если переданный файл не удалось прочитать или распарсить, то ошибка об этом вернется вторым параметром ошибкиЧтения. Это соответствие, где ключ - путь к файлу, значение - описание ошибки.
ОСкрипты для деплоя и копирования базы данных и они же на github