Changes for page Интерфейс file

Last modified by Bimit Administrator on 02.10.2024, 11:55

From version 4.2
edited by Bimit Administrator
on 15.02.2022, 14:15
Change comment: There is no comment for this version
To version 1.3
edited by Bimit Administrator
on 15.02.2022, 09:33
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -2,13 +2,16 @@
2 2  В нем доступны следующий функции:
3 3  
4 4  * [[create>>||anchor="Hcreate"]] - функция конструктор, создает и подготавливает файл для приема данных
5 -* [[addTitle>>||anchor="HaddTitle"]] - добавление заголовка в документ MS Word (DOCX)
6 -* [[addParagraph>>||anchor="HaddParagraph"]] - функция создания нового параграфа в документе MS Word (DOCX)
5 +* [[addTitle>>||anchor="HaddTitle"]] - добавление заголовка в документ MS Word (DOCX) c базовыми настройками
6 +* [[addTitle>>||anchor="HaddTitle"]] - добавление заголовка в документ MS Word (DOCX), с указанием размера шрифта, и указанием жирный/простой
7 +* [[addParagraph>>||anchor="HaddParagraph"]] - функция создания нового параграфа в документе MS Word (DOCX) с базовыми настройками
8 +* [[addParagraph>>||anchor="HaddParagraph"]] - функция создания нового параграфа в документе MS Word (DOCX) с указанием отступа, размера шрифта, и указанием жирный/простой
7 7  * [[addCenterParagraph>>||anchor="HaddCenterParagraph"]] - функция создания нового параграфа в документе MS Word (DOCX) с размещением текста посередине и с указанием размера шрифта, и указанием жирный/простой
8 8  * [[addRightParagraph>>||anchor="HaddRightParagraph"]] - функция создания нового параграфа в документе MS Word (DOCX) с размещением текста справа и с указанием размера шрифта, и указанием жирный/простой
9 9  * [[addLeftParagraph>>||anchor="HaddLeftParagraph"]] - функция создания нового параграфа в документе MS Word (DOCX) с размещением текста слева и с указанием размера шрифта, и указанием жирный/простой
10 10  * [[addTextBreak>>||anchor="HaddTextBreak"]] - функция перевода каретки указателя на новую строку в документе MS Word (DOCX)
11 -* [[addText>>||anchor="HaddText"]] - функция добавления строки с данным в документ MS Word (DOCX)
13 +* [[addText>>||anchor="HaddText"]] - функция добавления строки с данным в документ MS Word (DOCX) с указанием размера текста и указанием жирный/простой
14 +* [[addText>>||anchor="HaddText"]] - функция добавления строки с данным в текстовый файл с опциями (file.addText(“Строка, которая появится в файле”))
12 12  * [[addHeaderRow>>||anchor="HaddHeaderRow"]] - функция которая формирует заголовок на странице эксель файла
13 13  * [[addRow>>||anchor="HaddRow"]] - функция которая формирует строку на странице эксель файла
14 14  * [[getDocument>>||anchor="HgetDocument"]] - получение интерфейса текущего документа XWPFDocument (docx) (https:~/~/poi.apache.org/apidocs/4.1/org/apache/poi/xwpf/usermodel/XWPFDocument.html), предоставляет полный доступ к инструментарию формирования документа MSWord
... ... @@ -23,51 +23,45 @@
23 23  )))
24 24  
25 25  **Пример использования:**
29 +{{code language="java"}}file.create("XLS"); или file.create("TXT");{{/code}}
26 26  
27 27  
28 -{{code language="java"}}
29 -file.create("XLS"); или file.create("TXT");
30 -{{/code}}
31 -
32 -
33 33  (% class="box infomessage" %)
34 34  (((
35 -**addTitle** - добавление заголовка в документ MS Word (DOCX)
34 +**addTitle** - добавление заголовка в документ MS Word (DOCX) c базовыми настройками
36 36  )))
37 37  
38 -* с базовыми настройками
39 -* с указанием размера шрифта, и указанием жирный/простой
37 +**Пример использования:**
38 +{{code language="java"}}addTitle("Заголовок"){{/code}}
40 40  
41 -**Примеры использования:**
42 42  
43 -{{code language="java"}}
44 -addTitle("Заголовок")
45 -{{/code}}
41 +(% class="box infomessage" %)
42 +(((
43 +**addTitle** - добавление заголовка в документ MS Word (DOCX), с указанием размера шрифта, и указанием жирный/простой
44 +)))
46 46  
47 -{{code language="java"}}
48 -addTitle("Заголовок", 30, true)
49 -{{/code}}
46 +**Пример использования:**
47 +{{code language="java"}}addTitle("Заголовок", 30, true){{/code}}
50 50  
51 51  
52 52  (% class="box infomessage" %)
53 53  (((
54 -**addParagraph** - функция создания нового параграфа в документе MS Word (DOCX)
52 +**addParagraph** - функция создания нового параграфа в документе MS Word (DOCX) с базовыми настройками
55 55  )))
56 56  
57 -* с базовыми настройками
58 -* с указанием отступа, размера шрифта, и указанием жирный/простой
55 +**Пример использования:**
56 +{{code language="java"}}addParagraph("Текст")
57 +addText("Продолжение текста"){{/code}}
59 59  
60 -**Примеры использования:**
61 61  
62 -{{code language="java"}}
63 -addParagraph("Текст")
64 -addText("Продолжение текста")
65 -{{/code}}
60 +(% class="box infomessage" %)
61 +(((
62 +**addParagraph** - функция создания нового параграфа в документе MS Word (DOCX) с указанием отступа, размера шрифта, и указанием жирный/простой
63 +)))
66 66  
67 -{{code language="java"}}
68 -addParagraph("Текст", 20, 10, true)
69 -addText("Продолжение текста")
70 -{{/code}}
65 +**Пример использования:**
66 +{{code language="java"}}addParagraph("Текст", 20, 10, true)
67 +addText("Продолжение текста"){{/code}}
71 71  
72 72  
73 73  (% class="box infomessage" %)
... ... @@ -76,14 +76,9 @@
76 76  )))
77 77  
78 78  **Пример использования:**
76 +{{code language="java"}}addCenterParagraph("Текст", 10, true){{/code}}
79 79  
80 80  
81 -
82 -{{code language="java"}}
83 -addCenterParagraph("Текст", 10, true)
84 -{{/code}}
85 -
86 -
87 87  (% class="box infomessage" %)
88 88  (((
89 89  **addRightParagraph** - функция создания нового параграфа в документе MS Word (DOCX) с размещением текста справа и с указанием размера шрифта, и указанием жирный/простой
... ... @@ -90,13 +90,9 @@
90 90  )))
91 91  
92 92  **Пример использования:**
85 +{{code language="java"}}addRightParagraph("Текст", 10, true){{/code}}
93 93  
94 94  
95 -{{code language="java"}}
96 -addRightParagraph("Текст", 10, true)
97 -{{/code}}
98 -
99 -
100 100  (% class="box infomessage" %)
101 101  (((
102 102  **addLeftParagraph** - функция создания нового параграфа в документе MS Word (DOCX) с размещением текста слева и с указанием размера шрифта, и указанием жирный/простой
... ... @@ -103,13 +103,9 @@
103 103  )))
104 104  
105 105  **Пример использования:**
94 +{{code language="java"}}addLeftParagraph("Текст", 10, true){{/code}}
106 106  
107 107  
108 -{{code language="java"}}
109 -addLeftParagraph("Текст", 10, true)
110 -{{/code}}
111 -
112 -
113 113  (% class="box infomessage" %)
114 114  (((
115 115  **addTextBreak** - функция перевода каретки указателя на новую строку в документе MS Word (DOCX)
... ... @@ -116,58 +116,47 @@
116 116  )))
117 117  
118 118  **Пример использования:**
103 +{{code language="java"}}file.addTextBreak(){{/code}}
119 119  
120 120  
121 -{{code language="java"}}
122 -file.addTextBreak()
123 -{{/code}}
124 -
125 -
126 126  (% class="box infomessage" %)
127 127  (((
128 -**addText** - функция добавления строки с данным в документ MS Word (DOCX)
108 +**addText** - функция добавления строки с данным в документ MS Word (DOCX) с указанием размера текста и указанием жирный/простой
129 129  )))
130 130  
131 -* с указанием размера текста и указанием жирный/простой
132 -* с опциями (file.addText(Строка, которая появится в файле))
111 +**Пример использования:**
112 +{{code language="java"}}file.addText("Строка, которая появится в файле"), 10, false){{/code}}
133 133  
134 -**Примеры использования:**
135 135  
136 -{{code language="java"}}
137 -file.addText("Строка, которая появится в файле"), 10, false)
138 -{{/code}}
115 +(% class="box infomessage" %)
116 +(((
117 +**addText** - функция добавления строки с данным в текстовый файл с опциями (file.addText(“Строка, которая появится в файле”))
118 +)))
139 139  
140 -{{code language="java"}}
141 -file.addText("Строка, которая появится в файле")
142 -{{/code}}
120 +**Пример использования:**
121 +{{code language="java"}}file.addText("Строка, которая появится в файле"){{/code}}
143 143  
144 144  
145 145  (% class="box infomessage" %)
146 146  (((
126 +
147 147  **addHeaderRow **- функция которая формирует заголовок на странице эксель файла (пример: file.addHeaderRow(“Заголовок 1”, “Заголовок 2”,....”Заголовок N”))
148 148  )))
149 149  
150 150  **Пример использования:**
131 +{{code language="java"}}file.addHeaderRow("Код", "Название", "Ед. изм.", "Кол. во.");{{/code}}
151 151  
152 152  
153 -{{code language="java"}}
154 -file.addHeaderRow("Код", "Название", "Ед. изм.", "Кол. во.");
155 -{{/code}}
156 -
157 -
158 158  (% class="box infomessage" %)
159 159  (((
136 +
160 160  **addRow** - функция которая формирует строку на странице эксель файла (пример: file.addRow(“Данные 1”, “Данные 2”,....”Данные N”))
161 161  )))
162 162  
163 163  **Пример использования:**
141 +{{code language="java"}}file.addRow( row.get("code"), row.get("title"), row.get("units"), row.get("quantityAll"));{{/code}}
164 164  
165 165  
166 -{{code language="java"}}
167 -file.addRow( row.get("code"), row.get("title"), row.get("units"), row.get("quantityAll"));
168 -{{/code}}
169 -
170 -
171 171  (% class="box infomessage" %)
172 172  (((
173 173  **getDocument** - получение интерфейса текущего документа XWPFDocument (docx) (https:~/~/poi.apache.org/apidocs/4.1/org/apache/poi/xwpf/usermodel/XWPFDocument.html), предоставляет полный доступ к инструментарию формирования документа MSWord (полную документацию см. [[https:~~/~~/poi.apache.org/apidocs/4.1/)>>https://poi.apache.org/apidocs/4.1/)]]
... ... @@ -175,11 +175,13 @@
175 175  
176 176  (% class="box infomessage" %)
177 177  (((
151 +
178 178  **getParagraph** - получение интерфейса текущего параграфа XWPFParagraph (https:~/~/poi.apache.org/apidocs/4.1/org/apache/poi/xwpf/usermodel/XWPFParagraph.html) документа MSWord  (полную документацию см. [[https:~~/~~/poi.apache.org/apidocs/4.1/)>>https://poi.apache.org/apidocs/4.1/)]]
179 179  )))
180 180  
181 181  (% class="box infomessage" %)
182 182  (((
157 +
183 183  **getWorkbook** - получение интерфейса текущего табличного документа Workbook (XSSFWorkbook для xlsx и HSSFWorkbook для xls) (https:~/~/poi.apache.org/apidocs/4.1/org/apache/poi/ss/usermodel/Workbook.html), предоставляет полный доступ к инструментарию формирования документа таблицы эксель (полную документацию см. https:~/~/poi.apache.org/apidocs/4.1/)
184 184  )))
185 185  
... ... @@ -188,105 +188,4 @@
188 188  **getSheet** - получение интерфейса текущей страницы с таблицей (https:~/~/poi.apache.org/apidocs/4.1/org/apache/poi/ss/usermodel/Sheet.html) документа таблицы эксель (полную документацию см. https:~/~/poi.apache.org/apidocs/4.1/)
189 189  )))
190 190  
191 -**Общий пример:**
192 -
193 -{{code language="java"}}
194 -def start() {
195 - file.create("XLS");
196 - file.addHeaderRow("Код", "Название", "Ед. изм.", "Кол. во.", "Колонка 5"..);
197 - def data = params.get("data");
198 - for (int i in 0..data.size()-1) {
199 - def row = data.get(i);
200 - file.addRow(
201 - row.get("code"),
202 - row.get("title"),
203 - row.get("units"),
204 - row.get("quantityAll"), );
205 - }
206 -}
207 -{{/code}}
208 -
209 -
210 -**Наименование используемых строк row.get:**
211 -
212 -
213 -(((
214 -(% cellspacing="0" style="border-collapse:collapse; border:none; table-layout:fixed; width:850px" %)
215 -|(% style="border-bottom:1px solid #000000; border-left:1px solid #000000; border-right:1px solid #000000; border-top:1px solid #000000; padding:7px 7px 7px 7px; vertical-align:top" width="NaN" %)(((
216 -(% style="line-height:1.2" %)
217 -(% style="background-color:#ffffff; color:#000000; font-family:Arial; font-size:11pt; font-style:normal; font-variant:normal; font-weight:400; overflow-wrap:break-word; overflow:hidden; text-decoration:none; white-space:pre-wrap" %)pos
218 -)))|(% style="border-bottom:1px solid #000000; border-left:1px solid #000000; border-right:1px solid #000000; border-top:1px solid #000000; padding:7px 7px 7px 7px; vertical-align:top" width="NaN" %)(((
219 -(% style="line-height:1.2" %)
220 -(% style="background-color:#ffffff; color:#000000; font-family:Arial; font-size:10pt; font-style:normal; font-variant:normal; font-weight:400; overflow-wrap:break-word; overflow:hidden; text-decoration:none; white-space:pre-wrap" %)Позиция
221 -)))
222 -|(% style="border-bottom:1px solid #000000; border-left:1px solid #000000; border-right:1px solid #000000; border-top:1px solid #000000; padding:7px 7px 7px 7px; vertical-align:top" width="NaN" %)(((
223 -(% style="line-height:1.2" %)
224 -(% style="background-color:#ffffff; color:#000000; font-family:Arial; font-size:11pt; font-style:normal; font-variant:normal; font-weight:400; overflow-wrap:break-word; overflow:hidden; text-decoration:none; white-space:pre-wrap" %)code
225 -)))|(% style="border-bottom:1px solid #000000; border-left:1px solid #000000; border-right:1px solid #000000; border-top:1px solid #000000; padding:7px 7px 7px 7px; vertical-align:top" width="NaN" %)(((
226 -(% style="line-height:1.2" %)
227 -(% style="background-color:#ffffff; color:#000000; font-family:Arial; font-size:11pt; font-style:normal; font-variant:normal; font-weight:400; overflow-wrap:break-word; overflow:hidden; text-decoration:none; white-space:pre-wrap" %)Обоснование
228 -)))
229 -|(% style="border-bottom:1px solid #000000; border-left:1px solid #000000; border-right:1px solid #000000; border-top:1px solid #000000; padding:7px 7px 7px 7px; vertical-align:top" width="NaN" %)(((
230 -(% style="line-height:1.2" %)
231 -(% style="background-color:#ffffff; color:#000000; font-family:Arial; font-size:11pt; font-style:normal; font-variant:normal; font-weight:400; overflow-wrap:break-word; overflow:hidden; text-decoration:none; white-space:pre-wrap" %)title
232 -)))|(% style="border-bottom:1px solid #000000; border-left:1px solid #000000; border-right:1px solid #000000; border-top:1px solid #000000; padding:7px 7px 7px 7px; vertical-align:top" width="NaN" %)(((
233 -(% style="line-height:1.2" %)
234 -(% style="background-color:#ffffff; color:#000000; font-family:Arial; font-size:11pt; font-style:normal; font-variant:normal; font-weight:400; overflow-wrap:break-word; overflow:hidden; text-decoration:none; white-space:pre-wrap" %)Наименование
235 -)))
236 -|(% style="border-bottom:1px solid #000000; border-left:1px solid #000000; border-right:1px solid #000000; border-top:1px solid #000000; padding:7px 7px 7px 7px; vertical-align:top" width="NaN" %)(((
237 -(% style="line-height:1.2" %)
238 -(% style="background-color:#ffffff; color:#000000; font-family:Arial; font-size:11pt; font-style:normal; font-variant:normal; font-weight:400; overflow-wrap:break-word; overflow:hidden; text-decoration:none; white-space:pre-wrap" %)units
239 -)))|(% style="border-bottom:1px solid #000000; border-left:1px solid #000000; border-right:1px solid #000000; border-top:1px solid #000000; padding:7px 7px 7px 7px; vertical-align:top" width="NaN" %)(((
240 -(% style="line-height:1.2" %)
241 -(% style="background-color:#ffffff; color:#000000; font-family:Arial; font-size:11pt; font-style:normal; font-variant:normal; font-weight:400; overflow-wrap:break-word; overflow:hidden; text-decoration:none; white-space:pre-wrap" %)Единицы измерений
242 -)))
243 -|(% style="border-bottom:1px solid #000000; border-left:1px solid #000000; border-right:1px solid #000000; border-top:1px solid #000000; padding:7px 7px 7px 7px; vertical-align:top" width="NaN" %)(((
244 -(% style="line-height:1.2" %)
245 -(% style="background-color:#ffffff; color:#000000; font-family:Arial; font-size:11pt; font-style:normal; font-variant:normal; font-weight:400; overflow-wrap:break-word; overflow:hidden; text-decoration:none; white-space:pre-wrap" %)quantityPerUnit
246 -)))|(% style="border-bottom:1px solid #000000; border-left:1px solid #000000; border-right:1px solid #000000; border-top:1px solid #000000; padding:7px 7px 7px 7px; vertical-align:top" width="NaN" %)(((
247 -(% style="line-height:1.2" %)
248 -(% style="background-color:#ffffff; color:#000000; font-family:Arial; font-size:11pt; font-style:normal; font-variant:normal; font-weight:400; overflow-wrap:break-word; overflow:hidden; text-decoration:none; white-space:pre-wrap" %)Количество на ед.
249 -)))
250 -|(% style="border-bottom:1px solid #000000; border-left:1px solid #000000; border-right:1px solid #000000; border-top:1px solid #000000; padding:7px 7px 7px 7px; vertical-align:top" width="NaN" %)(((
251 -(% style="line-height:1.2" %)
252 -(% style="background-color:#ffffff; color:#000000; font-family:Arial; font-size:11pt; font-style:normal; font-variant:normal; font-weight:400; overflow-wrap:break-word; overflow:hidden; text-decoration:none; white-space:pre-wrap" %)quantityAll
253 -)))|(% style="border-bottom:1px solid #000000; border-left:1px solid #000000; border-right:1px solid #000000; border-top:1px solid #000000; padding:7px 7px 7px 7px; vertical-align:top" width="NaN" %)(((
254 -(% style="line-height:1.2" %)
255 -(% style="background-color:#ffffff; color:#000000; font-family:Arial; font-size:11pt; font-style:normal; font-variant:normal; font-weight:400; overflow-wrap:break-word; overflow:hidden; text-decoration:none; white-space:pre-wrap" %)Количество всего
256 -)))
257 -|(% style="border-bottom:1px solid #000000; border-left:1px solid #000000; border-right:1px solid #000000; border-top:1px solid #000000; padding:7px 7px 7px 7px; vertical-align:top" width="NaN" %)(((
258 -(% style="line-height:1.2" %)
259 -(% style="background-color:#ffffff; color:#000000; font-family:Arial; font-size:11pt; font-style:normal; font-variant:normal; font-weight:400; overflow-wrap:break-word; overflow:hidden; text-decoration:none; white-space:pre-wrap" %)priceAll
260 -)))|(% style="border-bottom:1px solid #000000; border-left:1px solid #000000; border-right:1px solid #000000; border-top:1px solid #000000; padding:7px 7px 7px 7px; vertical-align:top" width="NaN" %)(((
261 -(% style="line-height:1.2" %)
262 -(% style="background-color:#ffffff; color:#000000; font-family:Arial; font-size:11pt; font-style:normal; font-variant:normal; font-weight:400; overflow-wrap:break-word; overflow:hidden; text-decoration:none; white-space:pre-wrap" %)Стоимость единицы всего
263 -)))
264 -|(% style="border-bottom:1px solid #000000; border-left:1px solid #000000; border-right:1px solid #000000; border-top:1px solid #000000; padding:7px 7px 7px 7px; vertical-align:top" width="NaN" %)(((
265 -(% style="line-height:1.2" %)
266 -(% style="background-color:#ffffff; color:#000000; font-family:Arial; font-size:11pt; font-style:normal; font-variant:normal; font-weight:400; overflow-wrap:break-word; overflow:hidden; text-decoration:none; white-space:pre-wrap" %)unitPrice_1
267 -)))|(% style="border-bottom:1px solid #000000; border-left:1px solid #000000; border-right:1px solid #000000; border-top:1px solid #000000; padding:7px 7px 7px 7px; vertical-align:top" width="NaN" %)(((
268 -(% style="line-height:1.2" %)
269 -(% style="background-color:#ffffff; color:#000000; font-family:Arial; font-size:11pt; font-style:normal; font-variant:normal; font-weight:400; overflow-wrap:break-word; overflow:hidden; text-decoration:none; white-space:pre-wrap" %)Стоимость единицы Осн. з/п
270 -)))
271 -|(% style="border-bottom:1px solid #000000; border-left:1px solid #000000; border-right:1px solid #000000; border-top:1px solid #000000; padding:7px 7px 7px 7px; vertical-align:top" width="NaN" %)(((
272 -(% style="line-height:1.2" %)
273 -(% style="background-color:#ffffff; color:#000000; font-family:Arial; font-size:11pt; font-style:normal; font-variant:normal; font-weight:400; overflow-wrap:break-word; overflow:hidden; text-decoration:none; white-space:pre-wrap" %)unitPrice_2
274 -)))|(% style="border-bottom:1px solid #000000; border-left:1px solid #000000; border-right:1px solid #000000; border-top:1px solid #000000; padding:7px 7px 7px 7px; vertical-align:top" width="NaN" %)(((
275 -(% style="line-height:1.2" %)
276 -(% style="background-color:#ffffff; color:#000000; font-family:Arial; font-size:11pt; font-style:normal; font-variant:normal; font-weight:400; overflow-wrap:break-word; overflow:hidden; text-decoration:none; white-space:pre-wrap" %)Стоимость единицы Эк.маш
277 -)))
278 -|(% style="border-bottom:1px solid #000000; border-left:1px solid #000000; border-right:1px solid #000000; border-top:1px solid #000000; padding:7px 7px 7px 7px; vertical-align:top" width="NaN" %)(((
279 -(% style="line-height:1.2" %)
280 -(% style="background-color:#ffffff; color:#000000; font-family:Arial; font-size:11pt; font-style:normal; font-variant:normal; font-weight:400; overflow-wrap:break-word; overflow:hidden; text-decoration:none; white-space:pre-wrap" %)unitPrice_3
281 -)))|(% style="border-bottom:1px solid #000000; border-left:1px solid #000000; border-right:1px solid #000000; border-top:1px solid #000000; padding:7px 7px 7px 7px; vertical-align:top" width="NaN" %)(((
282 -(% style="line-height:1.2" %)
283 -(% style="background-color:#ffffff; color:#000000; font-family:Arial; font-size:11pt; font-style:normal; font-variant:normal; font-weight:400; overflow-wrap:break-word; overflow:hidden; text-decoration:none; white-space:pre-wrap" %)Стоимость единицы З/пМех
284 -)))
285 -|(% style="border-bottom:1px solid #000000; border-left:1px solid #000000; border-right:1px solid #000000; border-top:1px solid #000000; padding:7px 7px 7px 7px; vertical-align:top" width="NaN" %)(((
286 -(% style="line-height:1.2" %)
287 -(% style="background-color:#ffffff; color:#000000; font-family:Arial; font-size:11pt; font-style:normal; font-variant:normal; font-weight:400; overflow-wrap:break-word; overflow:hidden; text-decoration:none; white-space:pre-wrap" %)unitPrice_4
288 -)))|(% style="border-bottom:1px solid #000000; border-left:1px solid #000000; border-right:1px solid #000000; border-top:1px solid #000000; padding:7px 7px 7px 7px; vertical-align:top" width="NaN" %)(((
289 -(% style="line-height:1.2" %)
290 -(% style="background-color:#ffffff; color:#000000; font-family:Arial; font-size:11pt; font-style:normal; font-variant:normal; font-weight:400; overflow-wrap:break-word; overflow:hidden; text-decoration:none; white-space:pre-wrap" %)Стоимость единицы Мат
291 -)))
292 -)))
166 +