forked from stasganiev/OnesTemplates
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMyTemlates.st
227 lines (200 loc) · 9.06 KB
/
MyTemlates.st
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
{1,
{3,
{"Мои шаблоны",1,0,"",""},
{8,
{"Комментарии",1,0,"",""},
{0,
{"Невада*",0,0,"Нева[да]","//Невада (<?"""", ДатаВремя, """"> Ганиев наряд <?""Номер наряда"">
<?>
//Невада )<?"""", ДатаВремя, """">"}
},
{0,
{"Невада* (однострочный)",0,0,"Нева[да]","<?>//Невада (<?"""", ДатаВремя, """"> Ганиев наряд <?""Номер наряда"">"}
},
{0,
{"Романия (однострочный)",0,0,"Рома[ния]","<?>//{{ 1cromania"}
},
{0,
{"Романия (многострочный)",0,0,"Рома[ния]","//{{ 1cromania
<?>
//}} 1cromania"}
},
{0,
{"Романия (поставка - добавлено)",0,0,"Рома[ния]","//{{ 1cromania+
<?>
//}} 1cromania+"}
},
{0,
{"Романия (поставка - удалено)",0,0,"Рома[ния]","//{{ 1cromania-
<?>
//}} 1cromania-"}
},
{0,
{"Ганиев* (блок кода)",0,0,"Гани[ев]","//Ганиев С.Т.(<?"""", ДатаВремя, """">
<?>
//Ганиев С.Т.)<?"""", ДатаВремя, """">"}
},
{0,
{"Ганиев* (строка кода)",0,0,"Гани[ев]","<?>//Ганиев С.Т.(<?"""", ДатаВремя, """">"}
}
},
{2,
{"XML",1,0,"",""},
{3,
{"Самая простая выгрузка/загрузка",1,0,"",""},
{0,
{"Выгрузка в xml (простая)",0,0,""," ФайлВыгрузки = <?ПутьКФайлу>;
//создание файла
ФайлXML = Новый Файл(ФайлВыгрузки);
Если (ФайлXML.Существует()) Тогда
УдалитьФайлы(ФайлXML.ПолноеИмя);
Иначе
СоздатьКаталог(ФайлXML.Путь);
КонецЕсли;
ФайлXML = Новый ЗаписьXML;
Попытка
ФайлXML.ОткрытьФайл(ФайлВыгрузки);
ФайлXML.ЗаписатьОбъявлениеXML();
Исключение
Возврат;
КонецПопытки;
Если ФайлXML = Неопределено Тогда
Сообщить(""Ошибка создания файла выгрузки!"", СтатусСообщения.Важное);
Возврат;
КонецЕсли;
//данные
ФайлXML.ЗаписатьНачалоЭлемента(""<?ИмяУзлаВерхнегоУровня>"");
//<?ФормированиеДанныхXML>
//ФайлXML.ЗаписатьНачалоЭлемента(""<?ИмяУзла>"");
//ФайлXML.ЗаписатьАтрибут(""<?ИмяАтрибута>"", ""<?ЗначениеАтрибута>"");
//ФайлXML.ЗаписатьКонецЭлемента();
ФайлXML.ЗаписатьКонецЭлемента();
ФайлXML.Закрыть();
"}
},
{0,
{"Загрузка из xml (простая)",0,0,""," ФайлВыгрузки = <?ПутьКФайлу>;
Файл = Новый Файл(ФайлВыгрузки);
Если НЕ Файл.Существует() ИЛИ Файл.ЭтоКаталог() Тогда
Возврат;
КонецЕсли;
ФайлXML = Новый ЧтениеXML;
Попытка
ФайлXML.ОткрытьФайл(ФайлВыгрузки);
Исключение
Сообщить(""Не удалось открыть файл: ""+ОписаниеОшибки(),СтатусСообщения.Важное);
Возврат;
КонецПопытки;
Если ФайлXML = Неопределено Тогда
Сообщить(""Ошибка при открытии файла!"", СтатусСообщения.Важное);
Возврат;
КонецЕсли;
Пока ФайлXML.Прочитать() Цикл
// Чтение ""шапки"" файла
Если ФайлXML.ТипУзла = ТипУзлаXML.КонецЭлемента И ФайлXML.Имя = ""<?ИмяУзлаВерхнегоУровня>"" Тогда
Прервать; // Конец файла выгрузки
КонецЕсли;
// Чтение данных
Если ФайлXML.ТипУзла = ТипУзлаXML.НачалоЭлемента И ФайлXML.Имя = ""<?ИмяУзла>"" Тогда
Пока ФайлXML.ПрочитатьАтрибут() Цикл
Если ФайлXML.ЛокальноеИмя = ""<?ИмяАтрибута>"" Тогда
<?ПеременнаяАтрибут> = ФайлXML.Значение;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЦикла;
ФайлXML.Закрыть();
"}
},
{0,
{"Запись одного элемента",0,0,"","ФайлXML.ЗаписатьНачалоЭлемента(""<?ИмяУзла>"");
ФайлXML.ЗаписатьАтрибут(""<?ИмяАтрибута>"", ""<?ЗначениеАтрибута>"");
ФайлXML.ЗаписатьТекст(""<?Текст>"");
ФайлXML.ЗаписатьКомментарий(""<?Комментарий>"");
ФайлXML.ЗаписатьКонецЭлемента();"}
}
},
{2,
{"Алгоритмы работы с xml",1,0,"",""},
{0,
{"Создание файла xml (функция)",0,0,"","// Создание и открытие на запись потока данных xml
//
// Параметры
// ПутьКФайлу - Строка - Полный путь к файлу xml для записи
//
// Возвращаемое значение:
// ЗаписьXML - Созданный файл xml, открытый для записи
//
Функция СоздатьФайлXMLДляЗаписи(ПутьКФайлу) Экспорт
ФайлXML = Новый Файл(ПутьКФайлу);
Если (ФайлXML.Существует()) Тогда
УдалитьФайлы(ФайлXML.ПолноеИмя);
Иначе
СоздатьКаталог(ФайлXML.Путь);
КонецЕсли;
ФайлXML = Новый ЗаписьXML;
Попытка
ФайлXML.ОткрытьФайл(ПутьКФайлу);
ФайлXML.ЗаписатьОбъявлениеXML();
Исключение
Возврат Неопределено;
КонецПопытки;
Если ФайлXML = Неопределено Тогда
Возврат Неопределено;
КонецЕсли;
Возврат ФайлXML;
КонецФункции
"}
},
{0,
{"Добавление элемента в файл xml (процедура)",0,0,"","// Добавление одного элемента xml
//
// Параметры
// ФайлXML - ЗаписьXML - Инициированный файл xml, открытый на запись
// ИмяЭлемента - Строка - Имя для нового узла xml, в которое будет
// записано значение
// ЗначениеЭлемента - Произвольный - Записываемое значение в новый узел xml.
// Поддерживаются только типы значений, сериализуемые в xml
// ЗаписыватьПустоеЗначение - Булево - Признак необходимости записи значения, даже если оно не заполнено.
// (пустая строка или нулевое число). Значение по умолчанию: Ложь
//
Процедура ДобавитьЭлементВXMLФайл(ФайлXML, ИмяЭлемента, ЗначениеЭлемента, ЗаписыватьПустоеЗначение = Ложь) Экспорт
Если НЕ ЗначениеЗаполнено(ЗначениеЭлемента) И НЕ ЗаписыватьПустоеЗначение Тогда
Возврат;
КонецЕсли;
ТипЗначенияXML = XMLТипЗнч(ЗначениеЭлемента);
Попытка
URIПространстваИмен = ТипЗначенияXML.URIПространстваИмен;
ИмяТипа = ТипЗначенияXML.ИмяТипа;
Исключение
Возврат;
КонецПопытки;
ФайлXML.ЗаписатьНачалоЭлемента(ИмяЭлемента);
ФайлXML.ЗаписатьАтрибут(""Тип"", URIПространстваИмен, ИмяТипа);
ФайлXML.ЗаписатьАтрибут(""Значение"", XMLСтрока(ЗначениеЭлемента));
ФайлXML.ЗаписатьКонецЭлемента();
КонецПроцедуры
"}
}
}
},
{1,
{"Работа со строками",1,0,"",""},
{0,
{"Получить из строки только цифры",0,0,"","Функция ПолучитьИзСтрокиТолькоЦифры(ИсходнаяСтрока) Экспорт
КопияСтроки = СокрЛП(ИсходнаяСтрока);
ДлинаСтроки = СтрДлина(КопияСтроки);
Результат = """";
Для Сч = 1 По ДлинаСтроки Цикл
Симв = Сред(КопияСтроки, Сч, 1);
Если Найти(""0123456789"", Симв) > 0 Тогда
Результат = Результат + Симв;
КонецЕсли;
КонецЦикла;
Возврат Результат;
КонецФункции
"}
}
}
}
}