-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathШаблоны1С.st
378 lines (312 loc) · 23.4 KB
/
Шаблоны1С.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
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
{1,
{10,
{"Шаблоны",1,0,"",""},
{0,
{"Запрос",0,0,"Зпр","Запрос = Новый Запрос;
Запрос.Параметры.Вставить(""<?>"",1);
Запрос.Текст =
""""
;"}
},
{0,
{"Процедура",0,0,"Прц","Процедура <?>
Перем Запрос;
Запрос = Новый Запрос;
Запрос.Параметры.Вставить("""",);//+++
Запрос.Текст =
""""
;
КонецПроцедуры"}
},
{0,
{"Функция",0,0,"Фнк","Функция <?>
Перем Рез;
Перем Запрос;
Запрос = Новый Запрос;
Запрос.Параметры.Вставить("""",);
Запрос.Текст =
""""
;
//+++
Возврат Рез;
КонецФункции
"}
},
{0,
{"Выборка",0,0,"вбр","СтрокаРезультата = Запрос.выполнить().Выбрать();
Пока СтрокаРезультата.Следующий() цикл
<?>
//+++
КонецЦикла;
"}
},
{6,
{"Шаблоны модулей от 1С",1,0,"",""},
{0,
{"ОбщийМодуль",0,1,"","// Шаблон (заготовка для копирования) разделов для общих модулей:
//Раздел «Программный интерфейс» содержит экспортные процедуры и функции, предназначенные для использования другими объектами конфигурации или другими программами (например, через внешнее соединение).
//Раздел «Служебный программный интерфейс» предназначен для модулей, которые являются частью некоторой функциональной подсистемы. В нем должны быть размещены экспортные процедуры и функции, которые допустимо вызывать только из других функциональных подсистем этой же библиотеки.
//Раздел «Служебные процедуры и функции» содержит процедуры и функции, составляющие внутреннюю реализацию общего модуля. В тех случаях, когда общий модуль является частью некоторой функциональной подсистемы, включающей в себя несколько объектов метаданных, в этом разделе также могут быть размещены служебные экспортные процедуры и функции, предназначенные только для вызова из других объектов данной подсистемы.
////////////////////////////////////////////////////////////////////////////////
// <Заголовок модуля>
// -<Описание модуля>
//
// Например:
// Клиентские процедуры и функции общего назначения:
// - для работы со списками в формах;
// - для работы с журналом регистрации;
// - для обработки действий пользователя в процессе редактирования
// многострочного текста, например комментария в документах;
// - прочее.
//
////////////////////////////////////////////////////////////////////////////////
#Область ПрограммныйИнтерфейс //Public
// Код процедур и функций
#КонецОбласти //ПрограммныйИнтерфейс
#Область СлужебныйПрограммныйИнтерфейс //Internal
// Код процедур и функций
#КонецОбласти //СлужебныйПрограммныйИнтерфейс
#Область СлужебныеПроцедурыИФункции //Private
// Код процедур и функций
#КонецОбласти //СлужебныеПроцедурыИФункции
"}
},
{0,
{"МодульОбъекта",0,1,"","// https://its.1c.ru/db/v8std#content:455:hdoc
//1.5. Шаблон оформления разделов для модулей объектов, менеджеров, наборов записей, обработок, отчетов и т.п.:
// Раздел «Программный интерфейс» содержит экспортные процедуры и функции, предназначенные для использования в других модулях конфигурации или другими программами (например, через внешнее соединение). Не следует в этот раздел помещать экспортные функции и процедуры, которые предназначены для вызова исключительно из модулей самого объекта, его форм и команд. Например, процедуры заполнения табличной части документа, которые вызываются из обработки заполнения в модуле объекта и из формы документа в обработчике команды формы не являются программным интерфейсом модуля объекта, т.к. вызываются только в самом модуле и из форм этого же объекта. Их следует размещать в разделе «Служебные процедуры и функции».
// Раздел «Обработчики событий» содержит обработчики событий модуля объекта (ПриЗаписи, ПриПроведении и др.)
// Раздел «Служебный программный интерфейс» имеет такое же предназначение, как и в общих модулях.
// Раздел «Служебные процедуры и функции» имеет такое же предназначение, как и в общих модулях.
////////////////////////////////////////////////////////////////////////////////
// <Заголовок модуля>
// -<Описание модуля>
//
// Например:
// Клиентские процедуры и функции общего назначения:
// - для работы со списками в формах;
// - для работы с журналом регистрации;
// - для обработки действий пользователя в процессе редактирования
// многострочного текста, например комментария в документах;
// - прочее.
//
////////////////////////////////////////////////////////////////////////////////
#Область ПрограммныйИнтерфейс //Public
// Код процедур и функций
#КонецОбласти //ПрограммныйИнтерфейс
#Область ОбработчикиСобытий //EventHandlers
// Код процедур и функций
#КонецОбласти //ОбработчикиСобытий //EventHandlers
#Область СлужебныйПрограммныйИнтерфейс //Internal
// Код процедур и функций
#КонецОбласти //СлужебныйПрограммныйИнтерфейс //Internal
#Область СлужебныеПроцедурыИФункции //Private
// Код процедур и функций
#КонецОбласти //СлужебныеПроцедурыИФункции //Private
"}
},
{0,
{"МодульФормы",0,1,"","// https://its.1c.ru/db/v8std#content:455:hdoc
// 1.6. Шаблон оформления разделов для модулей форм:
// Раздел «Обработчики событий формы» содержит процедуры-обработчики событий формы: ПриСозданииНаСервере, ПриОткрытии и т.п.
// Раздел «Обработчики событий элементов шапки формы» содержит процедуры-обработчики элементов, расположенных в основной части формы (все, что не связано с таблицами на форме).
// В разделах «Обработчики событий элементов таблицы формы <имя таблицы формы>» размещаются процедуры-обработчики таблиц формы и элементов таблиц.
// Для процедур-обработчиков каждой таблицы должен быть создан свой раздел.
// Раздел «Обработчики команд формы» содержит процедуры-обработчики команд формы (имена которых задаются в свойстве Действие команд формы).
// Раздел «Служебные процедуры и функции» имеет такое же предназначение, что и в общих модулях.
// См. также: Правила создания модулей форм [https://its.1c.ru/db/content/v8std/src/1%C2%A0100/700/i8100630.htm?_=1570634134]
////////////////////////////////////////////////////////////////////////////////
// <Заголовок модуля>
// -<Описание модуля>
// Для модулей форм в заголовке рекомендуется размещать описание параметров формы.
//
// Например:
// Клиентские процедуры и функции общего назначения:
// - для работы со списками в формах;
// - для работы с журналом регистрации;
// - для обработки действий пользователя в процессе редактирования
// многострочного текста, например комментария в документах;
// - прочее.
//
////////////////////////////////////////////////////////////////////////////////
#Область ОбработчикиСобытийФормы
// Код процедур и функций
#КонецОбласти // Обработчики Событий Формы
#Область ОбработчикиСобытийЭлементовШапкиФормы
// Код процедур и функций
#КонецОбласти // ОбработчикиСобытийЭлементовШапкиФормы //FormHeaderItemsEventHandlers
#Область ОбработчикиСобытийЭлементовТаблицыФормы<ИмяТаблицыФормы> //FormTableItemsEventHandlers
// Код процедур и функций
#КонецОбласти //ОбработчикиСобытийЭлементовТаблицыФормы<ИмяТаблицыФормы> //FormTableItemsEventHandlers
#Область ОбработчикиКомандФормы //FormCommandsEventHandlers
// Код процедур и функций
#КонецОбласти //ОбработчикиКомандФормы //FormCommandsEventHandlers
#Область СлужебныеПроцедурыИФункции //Private
// Код процедур и функций
#КонецОбласти // СлужебныеПроцедурыИФункции //Private
"}
},
{0,
{"МодульКоманды",0,1,"","// https://its.1c.ru/db/v8std#content:455:hdoc
// 1.7. Шаблон оформления разделов для модулей команд:
// Раздел «Обработчики событий» содержит процедуру-обработчик команды ОбработкаКоманды.
// Раздел «Служебные процедуры и функции» имеет такое же предназначение, что и в общих модулях.
////////////////////////////////////////////////////////////////////////////////
// <Заголовок модуля>
// -<Описание модуля>
//
// Например:
// Клиентские процедуры и функции общего назначения:
// - для работы со списками в формах;
// - для работы с журналом регистрации;
// - для обработки действий пользователя в процессе редактирования
// многострочного текста, например комментария в документах;
// - прочее.
//
////////////////////////////////////////////////////////////////////////////////
#Область ОбработчикиСобытий
// Код процедур и функций
#КонецОбласти //ОбработчикиСобытий
#Область СлужебныеПроцедурыИФункции
// Код процедур и функций
#КонецОбласти //СлужебныеПроцедурыИФункции
"}
},
{0,
{"МодульВнешнегоОтчета",0,1,"","#Область СлужебныйПрограммныйИнтерфейс
Функция СведенияОВнешнейОбработке() Экспорт
//Инициализируем структуру с параметрами регистрации
//Определяем список объектов, вызывающих обработку
ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке();
ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительныйОтчет();
ПараметрыРегистрации.Версия = ""0.0.0.1"";
ПараметрыРегистрации.БезопасныйРежим = Ложь;
НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
НоваяКоманда.Представление = НСтр(""ru = '"" + Метаданные().Представление() + ""'"");
НоваяКоманда.Идентификатор = Метаданные().Имя;
НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы();
НоваяКоманда.ПоказыватьОповещение = Ложь;
Возврат ПараметрыРегистрации;
КонецФункции
#КонецОбласти
#Область СлужебныеПроцедурыИФункции //Private
// Код процедур и функций
#КонецОбласти //СлужебныеПроцедурыИФункции
"}
},
{0,
{"МодульВнешнейПечатнойФормы",0,1,"","#Область СлужебныйПрограммныйИнтерфейс
Функция СведенияОВнешнейОбработке() Экспорт
//Инициализируем структуру с параметрами регистрации
//Определяем список объектов, вызывающих обработку
ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке();
ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительныйОтчет();
ПараметрыРегистрации.Версия = ""0.0.0.1"";
ПараметрыРегистрации.БезопасныйРежим = Ложь;
НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
НоваяКоманда.Представление = НСтр(""ru = '"" + Метаданные().Представление() + ""'"");
НоваяКоманда.Идентификатор = Метаданные().Имя;
НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы();
НоваяКоманда.ПоказыватьОповещение = Ложь;
Возврат ПараметрыРегистрации;
КонецФункции
#КонецОбласти
#Область СлужебныеПроцедурыИФункции //Private
// Код процедур и функций
#КонецОбласти //СлужебныеПроцедурыИФункции
"}
}
},
{0,
{"//++",0,0,"//++","// +++ d.neumoychev <?"""", ДатаВремя, ""ДФ=dd.MM.yyyy""> GHRA-716
<?>
// --- d.neumoychev <?"""", ДатаВремя, ""ДФ=dd.MM.yyyy""> GHRA-716"}
},
{0,
{"Запрос.МенеджерВременныхТаблиц.Таблицы[0]",0,0,"","
Запрос.МенеджерВременныхТаблиц.Таблицы[0].ПолучитьДанные().Выгрузить()"}
},
{1,
{"ВнешниеОтчетыИОбработки",1,0,"",""},
{0,
{"ВнешняяПечатнаяФормаБезПараметров(серверный метод)",0,1,"","// https://its.1c.ru/db/bsp313doc#content:53:hdoc:issogl2_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0_%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D0%B4%D1%83%D1%80%D1%8B_%D0%BF%D0%B5%D1%87%D0%B0%D1%82%D1%8C
#Область СлужебныйПрограммныйИнтерфейс
Функция СведенияОВнешнейОбработке() Экспорт
//Инициализируем структуру с параметрами регистрации
//Определяем список объектов, вызывающих обработку
ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке();
ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиПечатнаяФорма();
ПараметрыРегистрации.Версия = ""1.0.0.1"";
ПараметрыРегистрации.БезопасныйРежим = Ложь;
ПараметрыРегистрации.Назначение.Добавить(""Документ."");//+++ заполнить объекты
НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
НоваяКоманда.Представление = НСтр(""ru = '"" + Метаданные().Представление() + ""'"");
НоваяКоманда.Идентификатор = """";//+++
НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();
НоваяКоманда.Модификатор = ""ПечатьMXL"";
Возврат ПараметрыРегистрации;
КонецФункции
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
// Реализация логики команды печати
ПечатнаяФорма = УправлениеПечатью.СведенияОПечатнойФорме(КоллекцияПечатныхФорм, """");//+++ заполнить имя ПФ
Если ПечатнаяФорма <> Неопределено Тогда
ПечатнаяФорма.ТабличныйДокумент = Печать_НаСервере(МассивОбъектов, ОбъектыПечати, Новый Структура);
ПечатнаяФорма.СинонимМакета = НСтр(""ru = ''"");//+++
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область СлужебныйПрограммныйИнтерфейс
Функция Печать_НаСервере(МассивОбъектов, ОбъектыПечати, ДопоплнительныеПараметры)
Перем Рез;
Перем Запрос;
ТабличныйДокумент = Новый ТабличныйДокумент;
ТабличныйДокумент.КлючПараметровПечати = ""ПараметрыПечати_ИмяПечатки""; //+++
// Получаем запросом необходимые данные.
ДанныеДляПечати = ДанныеДляПечати(МассивОбъектов);
ПервыйДокумент = Истина;
Пока ДанныеДляПечати.Следующий() Цикл
Если Не ПервыйДокумент Тогда
// Все документы нужно выводить на разных страницах.
ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;
ПервыйДокумент = Ложь;
// Запомним номер строки, с которой начали выводить текущий документ.
НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1;
//......................
// В табличном документе необходимо задать имя области, в которую был
// выведен объект. Нужно для возможности печати комплектов документов.
УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент,
НомерСтрокиНачало, ОбъектыПечати, Шапка.Ссылка);
КонецЦикла;
Возврат ТабличныйДокумент;
КонецФункции
Функция ДанныеДляПечати(МассивОбъектов)
Перем ДанныеДляПечати;
Запрос = Новый Запрос();//+++
Запрос.УстановитьПараметр(""МассивОбъектов"", МассивОбъектов);
Запрос.Текст =
""ВЫБРАТЬ
| СчетНаОплатуПокупателю.Ссылка КАК Ссылка,
//......................
|ГДЕ
| СчетНаОплатуПокупателю.Ссылка В(&МассивОбъектов)
//......................
|"";
ДанныеДляПечати = Запрос.Выполнить().Выбрать();
Возврат ДанныеДляПечати;
КонецФункции
#КонецОбласти
"}
}
},
{0,
{"Линейка",0,1,"","//23459789012345978901234597890123459789012345978901234597890123459789012345978901234597890123459789012345978901234597890123459789012345978901234597890
// 10 20 30 40 50 60 70 80 90 100 110 120 130 140 150
//23459789112345978921234597893123459789412345978951234597896123459789712345978981234597899123459789A123459789B123459789C123459789D123459789E123459789F
"}
},
{0,
{"ПечатьВорд",0,0,"",""}
}
}
}