forked from artbear/template1c
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathartbear-snippets.st
4477 lines (3472 loc) · 267 KB
/
artbear-snippets.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
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
{1,
{22,
{"artbear",1,0,"",""},
{3,
{"Комментарии",1,0,"",""},
{0,
{"Комментарии",0,1,"арт","// -- Артур -- <?"""", ДатаВремя, ""ДЛФ=D"">
<?>
// --завершение"}
},
{0,
{"Коммент_Метаданные",0,1,"артмета","// -- Артур -- TODO_МЕТАДАННЫЕ - <?> <?"""", ДатаВремя, ""ДЛФ=D"">"}
},
{0,
{"Вставка <"" + ? +"">",0,1,"<>","<"" + <?> + "">"}
}
},
{0,
{"Отладка",0,1,"отл","Сообщить(""<?""Введите переменную""> = <""+?(<?""Введите переменную""> = Неопределено, ""Неопределено"", <?""Введите переменную"">)+"">"");<?>"}
},
{1,
{"TormozIT",1,0,"",""},
{0,
{"Лкс<?""Объект""><?><?""Событие"">()",0,1,"лксОбъект","// Процедура - обработчик события ""<?""Событие"">"" элемента формы ""<?""Объект"">"".
//
<?>Процедура Лкс<?""Объект""><?><?""Событие"">()
<?>
Выполнить(ЛксПолучитьСтароеДействиеФормы(ЭтаФорма, ""<?""Событие"">"", ""<?""Объект"">""));
КонецПроцедуры // Лкс<?""Объект""><?><?""Событие"">()
ЛксУстановитьДействиеФормы(ЭтаФорма, ""<?""Событие"">"", ""<?""Объект"">"");"}
}
},
{0,
{"Выбор периода",0,1,"ВыборП[ериода]","НастройкаПериода = Новый НастройкаПериода;
НастройкаПериода.РедактироватьКакИнтервал = Истина;
НастройкаПериода.РедактироватьКакПериод = Истина;
НастройкаПериода.ВариантНастройки = ВариантНастройкиПериода.Период;
НастройкаПериода.УстановитьПериод(<?""Введите перем. - дату начала"">, <?""Введите перем. - дату окончания"">);
Если НастройкаПериода.Редактировать() Тогда
<?""Введите перем. - дату начала""> = НастройкаПериода.ПолучитьДатуНачала();
<?""Введите перем. - дату окончания""> = НастройкаПериода.ПолучитьДатуОкончания();
КонецЕсли;
"}
},
{7,
{"Запросы",1,0,"",""},
{0,
{"Заполнить временную таблицу из внешнего источника",0,1,"","// Сначала помещаем ТЗ во временную таблицу
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Запрос.Текст = ""ВЫБРАТЬ * ПОМЕСТИТЬ ВТ_Таб ИЗ &Таб КАК Таб"";
Запрос.УстановитьПараметр(""Таб"", Таб);
Запрос.Выполнить();
// Теперь ТЗ можно использовать в запросе:
Запрос.Текст = ""
|ВЫБРАТЬ
| ТЗ.Номенклатура,
| Остатки.КоличествоОстаток
|ИЗ
| ВТ_Таб КАК ТЗ
|ЛЕВОЕ СОЕДИНЕНИЕ
| РегистрНакопления.ТоварыНаСкладах.Остатки() КАК Остатки
|ПО
| ТЗ.Номенклатура=Остатки.Номенклатура"";
Выборка = Запрос.Выполнить().Выбрать();"}
},
{0,
{"Процедура - Создать временную таблицу",0,0,"","Процедура СоздатьВременнуюТаблицу(Источник, имяВременнойТаблицы, МенеджерВременныхТаблиц)
//артТесты.ПроверитьЗаполненность(Источник, ""Источник"");
//артТесты.ПроверитьЗаполненность(МенеджерВременныхТаблиц, ""МенеджерВременныхТаблиц"");
// Сначала помещаем ТЗ во временную таблицу
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
Запрос.Текст = ""ВЫБРАТЬ * ПОМЕСТИТЬ ""+имяВременнойТаблицы+"" ИЗ &Источник КАК Источник"";
Запрос.УстановитьПараметр(""Источник"", Источник);
Запрос.Выполнить();
КонецПроцедуры
"}
},
{0,
{"Процедура - Уничтожить временную таблицу",0,0,"","Процедура УничтожитьВременнуюТаблицу(имяВременнойТаблицы, МенеджерВременныхТаблиц)
артТесты.ПроверитьЗаполненность(МенеджерВременныхТаблиц, ""МенеджерВременныхТаблиц"");
// Сначала помещаем ТЗ во временную таблицу
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
Запрос.Текст = ""Уничтожить ""+имяВременнойТаблицы;
Попытка
Запрос.Выполнить();
Исключение
КонецПопытки;
КонецПроцедуры
"}
},
{0,
{"Отладка запроса 8.2",0,0,"","ВнешниеОбработки.Создать(""W:\Запросы\УКО_82\UCR_82.epf"").ОткрытьДляОтладки(Запрос)"}
},
{0,
{"Отладка запроса 8.1",0,0,"","ВнешниеОбработки.Создать(""W:\Запросы\УКО\UCR.epf"").ОткрытьДляОтладки(Запрос)"}
},
{0,
{"ЕСТЬNULL(<?>, 0)",0,0,"","<%Макрос ""Запросы: ЕСТЬNULL(<?>, 0)"">
ЕСТЬNULL(<?>, 0)"}
},
{0,
{"ЕСТЬNULL(<?>, |)",0,0,"","<%Макрос ""Запросы: ЕСТЬNULL(<?>, |)"">
ЕСТЬNULL(<?>, <?""|Условие"">)"}
}
},
{12,
{"Тестирование",1,0,"",""},
{0,
{"xUnitFor1C - Тестовый метод",0,1,"Проц[едураТест]","Процедура ТестДолжен_<?>() Экспорт
ВызватьИсключение ""Тест не реализован"";
КонецПроцедуры"}
},
{0,
{"xUnitFor1C - Вставить тестовый метод",0,1,"юнит","Процедура ТестДолжен_<?>() Экспорт
ВызватьИсключение ""Тест не реализован"";
КонецПроцедуры"}
},
{0,
{"xUnitFor1C - шаблон тестового набора ( модуль )",0,1,"юнит","Перем КонтекстЯдра;
Перем Ожидаем;
Перем Утверждения;
Перем ГенераторТестовыхДанных;
Перем ЗапросыИзБД;
Перем УтвержденияПроверкаТаблиц;
//{ основные процедуры для юнит-тестирования xUnitFor1C
Процедура Инициализация(КонтекстЯдраПараметр) Экспорт
КонтекстЯдра = КонтекстЯдраПараметр;
Ожидаем = КонтекстЯдра.Плагин(""УтвержденияBDD"");
Утверждения = КонтекстЯдра.Плагин(""БазовыеУтверждения"");
ГенераторТестовыхДанных = КонтекстЯдра.Плагин(""СериализаторMXL"");
ЗапросыИзБД = КонтекстЯдра.Плагин(""ЗапросыИзБД"");
УтвержденияПроверкаТаблиц = КонтекстЯдра.Плагин(""УтвержденияПроверкаТаблиц"");
КонецПроцедуры
Процедура ЗаполнитьНаборТестов(НаборТестов) Экспорт
//НаборТестов.НачатьГруппу(""Сценарный тест"", Истина);
//НаборТестов.Добавить(""ПараметрическийТест"", НаборТестов.ПараметрыТеста(5, 7), ""Тест должен показать использование представления теста"");
//Тест = НаборТестов.Добавить(""ПараметрическийТест2"");
//Тест.Параметры.Добавить(12);
НаборТестов.Добавить(""<?>ТестДолжен_"");
КонецПроцедуры
//}
//{ блок юнит-тестов - сами тесты
Процедура ПередЗапускомТеста() Экспорт
НачатьТранзакцию();
КонецПроцедуры
Процедура ПослеЗапускаТеста() Экспорт
Если ТранзакцияАктивна() Тогда
ОтменитьТранзакцию();
КонецЕсли;
КонецПроцедуры
Процедура <?>ТестДолжен_() Экспорт
ВызватьИсключение ""Тест не реализован"";
КонецПроцедуры
//}
"}
},
{0,
{"xUnitFor1C - шаблон тестового набора ( УФ ) ",0,1,"юнит","&НаКлиенте
Перем КонтекстЯдра;
&НаКлиенте
Перем Ожидаем;
&НаКлиенте
Перем Утверждения;
&НаКлиенте
Перем ГенераторТестовыхДанных;
&НаКлиенте
Перем ЗапросыИзБД;
&НаКлиенте
Перем УтвержденияПроверкаТаблиц;
//{ основная процедура для юнит-тестирования xUnitFor1C
&НаКлиенте
Процедура Инициализация(КонтекстЯдраПараметр) Экспорт
КонтекстЯдра = КонтекстЯдраПараметр;
Ожидаем = КонтекстЯдра.Плагин(""УтвержденияBDD"");
Утверждения = КонтекстЯдра.Плагин(""БазовыеУтверждения"");
ГенераторТестовыхДанных = КонтекстЯдра.Плагин(""СериализаторMXL"");
ЗапросыИзБД = КонтекстЯдра.Плагин(""ЗапросыИзБД"");
УтвержденияПроверкаТаблиц = КонтекстЯдра.Плагин(""УтвержденияПроверкаТаблиц"");
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьНаборТестов(НаборТестов) Экспорт
//НаборТестов.НачатьГруппу(""Сценарный тест"", Истина);
НаборТестов.Добавить(""<?>ТестДолжен_"");
КонецПроцедуры
//}
//{ блок юнит-тестов - сами тесты
&НаКлиенте
Процедура ПередЗапускомТеста() Экспорт
ОбновитьПовторноИспользуемыеЗначения();
КонецПроцедуры
&НаКлиенте
Процедура ПослеЗапускаТеста() Экспорт
КонецПроцедуры
&НаКлиенте
Процедура ТестДолжен_<?>() Экспорт
ВызватьИсключение ""Тест не реализован"";
КонецПроцедуры
//} конец блока юнит-тестов
"}
},
{0,
{"xUnitFor1C - шаблон тестового набора ( модуль ) v3",0,0,"юнит","
//{ основная процедура для юнит-тестирования xUnitFor1C
Перем ЮТест;
Функция ПолучитьСписокТестов(ЮнитТестирование) Экспорт
ЮТест = ЮнитТестирование;
ВсеТесты = Новый Массив;
//ЮТест.ДобавитьПростыеТестыИзОбъекта(ВсеТесты, ЭтотОбъект);
//параметрыТеста = Новый Структура();
//описаниеТеста = Новый Структура(""ИмяТеста,Параметр"", ""ПараметрическийТест"", параметрыТеста);
//ВсеТесты.Добавить(описаниеТеста);
ВсеТесты.Добавить(""ТестДолжен_"");
Возврат ВсеТесты;
КонецФункции
//}
//{ блок юнит-тестов - сами тесты
Процедура ПередЗапускомТеста() Экспорт
НачатьТранзакцию();
КонецПроцедуры
Процедура ПослеЗапускаТеста() Экспорт
Если ТранзакцияАктивна() Тогда
ОтменитьТранзакцию();
КонецЕсли;
КонецПроцедуры
Процедура ТестДолжен_() Экспорт
ВызватьИсключение ""Тест не реализован"";
КонецПроцедуры
//} "}
},
{0,
{"xUnitFor1C - шаблон тестового набора ( УФ ) v3",0,0,"юнит","&НаКлиенте
Перем ЮТест; // для тестирования
//{ основная процедура для юнит-тестирования xUnitFor1C
&НаКлиенте
Функция ПолучитьСписокТестов(ЮнитТестирование) Экспорт
ЮТест = ЮнитТестирование;
ВсеТесты = Новый Массив;
ВсеТесты.Добавить(""ТестДолжен_"");
Возврат ВсеТесты;
КонецФункции
//}
//{ блок юнит-тестов - сами тесты
&НаКлиенте
Процедура ПередЗапускомТеста() Экспорт
ОбновитьПовторноИспользуемыеЗначения();
КонецПроцедуры
&НаКлиенте
Процедура ПослеЗапускаТеста() Экспорт
КонецПроцедуры
&НаКлиенте
Процедура ТестДолжен_<?>() Экспорт
ВызватьИсключение ""Тест не реализован"";
КонецПроцедуры
//} конец блока юнит-тестов
"}
},
{0,
{"xUnitFor1C - шаблон теста-сценария GUI для 8.3 v3",0,0,"юнит","&НаКлиенте
Перем юТест; // для тестирования
&НаКлиенте
Перем массивТестовыхПриложений;
//{ основная процедура для юнит-тестирования xUnitFor1C
&НаКлиенте
Функция ПолучитьСписокТестов(ЮнитТестирование) Экспорт
юТест = ЮнитТестирование;
ВсеТесты = Новый Массив;
ВсеТесты.Добавить(""ТестДолжен_ВыполнитьСценарныйТест_ГУИ_83"");
//ВсеТесты.Добавить(""ТестДолжен_ВыполнитьСценарныйТест_ГУИ_83_ДваПриложения"");
//параметрыТеста = Новый Структура(""ВерсияПлатформы,путь1С,Транзакция"", ""8.3.3.641"", ""C:\Program Files (x86)\1cv8\8.3.3.641\bin\1cv8.exe"",Истина);
//описаниеТеста = Новый Структура(""ИмяТеста,Параметр"", ""ОТест_ОпределитьПравильныйПутьКПлатформеПоВерсииПлатформы"", параметрыТеста);
//ВсеТесты.Добавить(описаниеТеста);
Возврат ВсеТесты;
КонецФункции
//{ БЛОК ЮНИТ-ТЕСТОВ - сами тесты
&НаКлиенте
Процедура ПередЗапускомТеста() Экспорт
юТест.ВывестиСообщение(""Перед запуском теста"");
массивТестовыхПриложений = Новый Массив;
КонецПроцедуры
&НаКлиенте
Процедура ПослеЗапускаТеста() Экспорт
юТест.ВывестиСообщение(""После запуска теста"");
ЗавершитьВсеСеансыРаботыСТестовымиПриложениями();
КонецПроцедуры
&НаКлиенте
Процедура ТестДолжен_ВыполнитьСценарныйТест_ГУИ_83() Экспорт
//Предупреждение(массивТестовыхПриложений.Количество(), 1);
имяПользователя = ""Роль1"";
Порт = 1577;
ТаймаутОжиданияПриложенияВСекундах = 20;
тестовоеПриложение = ЗапуститьТестовоеПриложение(имяПользователя, Порт, ТаймаутОжиданияПриложенияВСекундах);
//ТестовыйСценарий_25_09_2013(тестовоеПриложение);
КонецПроцедуры
&НаКлиенте
Функция ЗапуститьТестовоеПриложение(ИмяПользователя, Порт, ТаймаутОжиданияПриложенияВСекундах)
Перем тестовоеПриложение;
строкаЗапуска = ПолучитьСтрокуЗапуска(ИмяПользователя, Порт);
//Предупреждение(""строкаЗапуска ""+Символы.ПС+строкаЗапуска, 3);
//Предупреждение(""Порт ""+Порт);
ЗапуститьПриложение(строкаЗапуска);
тестовоеПриложение = Новый ТестируемоеПриложение(, XMLСтрока(Порт));
Подключен = Ложь;
ВремяОкончанияОжидания = ТекущаяДата() + ТаймаутОжиданияПриложенияВСекундах; //60;
ОписаниеОшибкиСоединения = """";
Пока Не ТекущаяДата() >= ВремяОкончанияОжидания Цикл
Попытка
тестовоеПриложение.УстановитьСоединение();
Подключен = Истина;
Прервать;
Исключение
ОписаниеОшибкиСоединения = ОписаниеОшибки();
КонецПопытки;
КонецЦикла;
сообщениеОшибки = ""Не смогли установить соединение с тестовым приложением для пользователя ""+ИмяПользователя+"" !"" + Символы.ПС + ОписаниеОшибкиСоединения;
//юТест.ПроверитьИстину(Подключен, сообщениеОшибки);
Если Не Подключен Тогда
тестовоеПриложение = Неопределено;
ВызватьИсключение сообщениеОшибки;
КонецЕсли;
массивТестовыхПриложений.Добавить(тестовоеПриложение);
Возврат тестовоеПриложение;
КонецФункции
&НаКлиенте
Процедура ЗавершитьВсеСеансыРаботыСТестовымиПриложениями()
Если массивТестовыхПриложений.Количество() <> 0 Тогда
Для Каждого Подопытный Из массивТестовыхПриложений Цикл
Подопытный.РазорватьСоединение();
КонецЦикла;
ЗавершитьВсеТестовыеПриложенияПринудительно();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ЗавершитьВсеТестовыеПриложенияПринудительно()
юТест.ПроверитьЗаполненность(массивТестовыхПриложений.Количество(), ""массивТестовыхПриложений.Количество()"");
Scr = Новый COMОбъект(""MSScriptControl.ScriptControl"");
Scr.Language = ""vbscript"";
Scr.AddCode(""
|Option Explicit
|
|Dim objWMIService, objProcess, colProcess
|
|Set objWMIService = GetObject(""""winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2"""")
|
|Set colProcess = objWMIService.ExecQuery(""""Select * from Win32_Process Where (CommandLine Like '%/TESTCLIENT%' And ExecutablePath Like '%1cv8c%')"""")
|
|For Each objProcess in colProcess
| objProcess.Terminate()
|Next
|"");
КонецПроцедуры
&НаКлиенте
Функция ПолучитьСтрокуЗапуска(ИмяПользователя = """", Порт = """")
//Если Не ЗначениеЗаполнено(ИмяПользователя) Тогда
// ИмяПользователя = ""Администратор"";
//КонецЕсли;
Результат = КаталогПрограммы() + ""1cv8c.exe ENTERPRISE "" +
""/IBConnectionString"""""" + СтрЗаменить(СтрокаСоединенияИнформационнойБазы(), """""""", """""""""""") + """""""" +
""/N"""""" + ИмяПользователя + """""""" +
"" /TESTCLIENT -TPort"" + XMLСтрока(Порт);
Возврат Результат;
КонецФункции
//} КОНЕЦ БЛОКА ЮНИТ-ТЕСТОВ"}
},
{0,
{"xUnitFor1C - в рабочую обработку шаблон тестового набора ( модуль ) v3",0,0,"юнит","
//{ основная процедура для юнит-тестирования xUnitFor1C
Перем _тестируем; // для тестирования
Перем ЮТест;
Функция ПолучитьСписокТестов(ЮнитТестирование) Экспорт
ЮТест = ЮнитТестирование;
ВсеТесты = Новый Массив;
//ЮТест.ДобавитьПростыеТестыИзОбъекта(ВсеТесты, ЭтотОбъект);
//параметрыТеста = Новый Структура(""ВерсияПлатформы,путь1С,Транзакция"", ""8.3.3.641"", ""C:\Program Files (x86)\1cv8\8.3.3.641\bin\1cv8.exe"",Истина);
//описаниеТеста = Новый Структура(""ИмяТеста,Параметр"", ""ОТест_ОпределитьПравильныйПутьКПлатформеПоВерсииПлатформы"", параметрыТеста);
//ВсеТесты.Добавить(описаниеТеста);
ВсеТесты.Добавить(""ТестДолжен_"");
Возврат ВсеТесты;
КонецФункции
//}
//{ основной блок
//}
//{ блок юнит-тестов - сами тесты
Процедура ПередЗапускомТеста() Экспорт
_тестируем = Истина;
НачатьТранзакцию();
КонецПроцедуры
Процедура ПослеЗапускаТеста() Экспорт
_тестируем = Ложь;
Если ТранзакцияАктивна() Тогда
ОтменитьТранзакцию();
КонецЕсли;
КонецПроцедуры
Процедура ТестДолжен_() Экспорт
ВызватьИсключение ""Тест не реализован"";
КонецПроцедуры
_тестируем = Ложь;
//} "}
},
{0,
{"FuncTest Шаблон произвольной обработки / отчета",0,0,"","Перем _выполняемТест;
// ============================ ============================ ============================
//
// Блок для тестирования обработки/отчета в FunctTest
//
// ============================ ============================ ============================
// начальное заполнение данных при создании теста - необязательный метод
Функция ПервоначальноеЗаполнениеДанныхТеста(данныеДляТестирования) Экспорт
тест = данныеДляТестирования.Тест;
//тест.УстановитьУсловиеЕслиОноНеЗаполнено(""ВыбДата1"", '00010101');
//тест.УстановитьУсловиеЕслиОноНеЗаполнено(""ВыбДата2"", '00010101');
//тест.УстановитьУсловиеЕслиОноНеЗаполнено(""ВыбКлиент"", Справочники.Контрагенты.ПустаяСсылка());
//тест.УстановитьУсловие(""ВыбСчет"", ПланыСчетов.Хозрасчетный.ПустаяСсылка());
//тест.УстановитьУсловиеЕслиОноНеЗаполнено(""_ВыбранныйВариантОтчета"", ""Кратко"");
Возврат Истина;
КонецФункции
// выполнить перед тестированием какие-то начальные действия, инициализацию, открыть ресурсы (например, создать файлы)
Функция Инит(данныеДляТестирования) Экспорт
//тест = данныеДляТестирования.тест;
// артТесты.ПроверитьЗаполненность(тест, ""тест"");
_выполняемТест = Истина;
Возврат Истина;
КонецФункции
// после тестирования завершить действия, закрыть ресурсы (например, удалить файлы)
Функция Сброс() Экспорт
_выполняемТест = Ложь;
Возврат Истина;
КонецФункции
// основной метод - должен вернуть таблицу значений
Функция ПолучитьОжидания(данныеДляТестирования) Экспорт
//таблицаЗначений = Новый ТаблицаЗначений;
тест = данныеДляТестирования.тест;
// артТесты.ПроверитьЗаполненность(тест, ""тест"");
тест.ЗаполнитьРеквизитыПриемникаУсловиямиТеста(ЭтотОбъект);
//выбСклад1 = тест.ПолучитьУсловие(""ВыбСклады""); // для списка значений
//Если ЗначениеЗаполнено(выбСклад1) Тогда
// ЭтотОбъект.ВыбСклады.Добавить(выбСклад1);
//КонецЕсли;
табДок = Неопределено;
вариантОтчета = тест.ПолучитьУсловие(""_ВыбранныйВариантОтчета"");
Если вариантОтчета = ""Кратко"" Тогда
// табДок = ЭтотОбъект.Кратко();
КонецЕсли;
Возврат Неопределено; //если табличный документ просто выводится на экран
//Возврат табДок; // если получаю сам табличный документ
КонецФункции
// необязательная виртуальная функция-событие - вызывается при начале выбора условия тестирования в браузере тестов
// класс-наследник может выполнить при этом некие действия
// Если класс не обрабатывает это событие, тогда он должен вернуть Ложь
// Если класс обрабатывает событие, тогда он должен вернуть Истина
// В этом случае в параметре СтандартнаяОбработка нужно вернуть значение, должна ли система обработать это событие или нет
// т.е. значение параметра возвращается в событие НачалоВыбора(Элемент, СтандартнаяОбработка)
Функция ИзменитьЭлементУправления_ЗначениеУсловияТестирования(Тест, СтандартнаяОбработка, НаименованиеУсловия, ЭлементУправления_ВходныеУсловияТеста_КолонкаЗначение) Экспорт
//Если НаименованиеУсловия <> ИмяУсловия_ФайлОбработки Тогда
// Возврат Ложь;
//КонецЕсли;
//
//ЭлементУправления_ВходныеУсловияТеста_КолонкаЗначение.Значение = Неопределено;
//ЭлементУправления_ВходныеУсловияТеста_КолонкаЗначение.ОграничениеТипа = Новый ОписаниеТипов(Новый Массив);
//ЭлементУправления_ВходныеУсловияТеста_КолонкаЗначение.Значение = Неопределено;
//
//ЭлементУправления_ВходныеУсловияТеста_КолонкаЗначение.КнопкаОткрытия = Истина;
//ЭлементУправления_ВходныеУсловияТеста_КолонкаЗначение.КнопкаОчистки = Ложь;
//ЭлементУправления_ВходныеУсловияТеста_КолонкаЗначение.КнопкаВыбора = Ложь;
//ЭлементУправления_ВходныеУсловияТеста_КолонкаЗначение.ВыбиратьТип = Ложь;
//ЭлементУправления_ВходныеУсловияТеста_КолонкаЗначение.АвтоОтметкаНезаполненного = Истина;
////ЭлементУправления_ВходныеУсловияТеста_КолонкаЗначение.ТолькоПросмотр = Истина;
//ЭлементУправления_ВходныеУсловияТеста_КолонкаЗначение.РедактированиеТекста = Ложь;
//
//ЭлементУправления_ВходныеУсловияТеста_КолонкаЗначение.КнопкаСпискаВыбора = Истина;
//ЭлементУправления_ВходныеУсловияТеста_КолонкаЗначение.РежимВыбораИзСписка = Истина;
//
//ЭлементУправления_ВходныеУсловияТеста_КолонкаЗначение.СписокВыбора = ПолучитьДанныеПечатныхФорм(Тест).Список;
Возврат Истина;
КонецФункции
// примерный метод для вывода сообщений об ошибках в лог тестирования
Процедура СообщитьОбОшибкеТестирования(Сообщение)
//Если ТекстЛог = Неопределено Тогда
// Сообщить(Сообщение, СтатусСообщения.ОченьВажное);
//Иначе
// ТекстЛог.ДобавитьСтроку(Сообщение);
// ТекстЛог.ДобавитьСтроку(Символы.ПС);
//КонецЕсли;
КонецПроцедуры
//
// конец блока тестирования обработки/отчета в FunctTest
//
// ============================ ============================ ============================
_выполняемТест = Ложь;
"}
},
{0,
{"ПолучитьСписокТестов() SnowTest",0,0,"","Перем _тестируем; // для тестирования
// основная процедура для юнит-тестирования SnowTest
Функция ПолучитьСписокТестов() Экспорт
Результат = Я_Тест.Новый_НаборТестов();
#Если Клиент Тогда
Я_Тест.НаборТестов_Добавить(Результат, ""Тесты_<?>"");
//Я_Тест.НаборТестов_Добавить(Результат, ""Тесты_<?>"", ""_тест_Инит"", ""_тест_Сброс"");
#КонецЕсли
Возврат Результат;
КонецФункции
//{ ======================= ОСНОВНОЙ БЛОК ======================= ================================
//
// ======================= ======================= ======================= =======================
// ======================= КОНЕЦ ОСНОВНОГО БЛОКА ======================= =========================
//
// ======================= ======================= ======================= ======================= }
//{ ======================= БЛОК ЮНИТ-ТЕСТОВ - сами тесты ========================================
//
// ======================= ======================= ======================= =======================
#Если Клиент Тогда
Процедура Тесты_<?>() Экспорт
КонецПроцедуры
Процедура _тест_Инит(докСсылка = Истина) Экспорт // докСсылка = Истина чтобы не передавать неопределено (это ошибка)
_тестируем = Истина;
//глОбщиеЗначения.Вставить(""глТестированиеЗапущено"", Истина);
артТесты.ПроверитьЗаполненность(докСсылка, ""_тест_Инит докСсылка"");
//Если докСсылка = Истина Тогда докСсылка = Неопределено; КонецЕсли;
//Если НЕ ЗначениеЗаполнено(докСсылка) Тогда
// лДокРН = Документы.РасходнаяНакладная.НайтиПоНомеру(""_00000008"", '20120216');
// артТесты.ПроверитьЗаполненность(лДокРН, ""_тест_Инит лДокРН"");
//Иначе
// лДокРН = докСсылка;
//КонецЕсли;
КонецПроцедуры
Процедура _тест_Сброс() Экспорт
_тестируем = Ложь;
//глОбщиеЗначения.Вставить(""глТестированиеЗапущено"", Ложь);
КонецПроцедуры
#КонецЕсли
_тестируем = Ложь;
// ======================= ======================= ======================= =======================
//
// КОНЕЦ БЛОКА ЮНИТ-ТЕСТОВ
//
// ======================= ======================= ======================= ======================= }
"}
},
{22,
{"Утверждения",1,0,"",""},
{0,
{"ПроверитьРавенство",0,0,"утв","Утверждения.ПроверитьРавенство(<?>, , """");"}
},
{0,
{"Проверить Неравенство",0,0,"утв","Утверждения.ПроверитьНеРавенство(<?>, , """");"}
},
{0,
{"Проверить",0,0,"утв","Утверждения.Проверить(<?>Истина, """");"}
},
{0,
{"ПроверитьБольше",0,0,"утв","Утверждения.ПроверитьБольше(<?>Больше, ?Меньше, """");"}
},
{0,
{"ПроверитьЗаполненность",0,0,"утв","Утверждения.ПроверитьЗаполненность(<?>, """");"}
},
{0,
{"ПроверитьЛожь",0,0,"утв","Утверждения.ПроверитьЛожь(<?>Ложь, """");"}
},
{0,
{"ПроверитьДату",0,0,"утв","Утверждения.ПроверитьДату(<?>Дата, ?Период, """");"}
},
{0,
{"ПроверитьРавенствоДатСТочностью2Секунды",0,0,"утв","Утверждения.ПроверитьРавенствоДатСТочностью2Секунды(<?>Дата1, ?Дата2, """");"}
},
{0,
{"ПроверитьБольшеИлиРавно",0,0,"утв","Утверждения.ПроверитьБольше(<?>Больше, ?Меньше, """");"}
},
{0,
{"ПроверитьМеньше",0,0,"утв","Утверждения.ПроверитьМеньшеИлиРавно(<?>Меньше, ?Больше, """");"}
},
{0,
{"ПроверитьМеньшеИлиРавно",0,0,"утв","Утверждения.ПроверитьМеньшеИлиРавно(<?>Меньше, ?Больше, """");"}
},
{0,
{"ПроверитьВыполнилось",0,0,"утв","Утверждения.ПроверитьВыполнилось(""<?>СтрокаВыполнения"", ?ПараметрыИлиДопСообщениеОшибки, """");"}
},
{0,
{"ПроверитьМетодВыполнился",0,0,"утв","Утверждения.ПроверитьМетодВыполнился(<?>Объект, ""ИмяМетода"", ?ПараметрыИлиДопСообщениеОшибки, """");"}
},
{0,
{"ПроверитьНеВыполнилось",0,0,"утв","Утверждения.ПроверитьНеВыполнилось(""<?>СтрокаВыполнения"", ?ПараметрыИлиОжидаемоеОписаниеОшибки, ?ОжидаемоеОписаниеОшибкиИлиДопСообщениеОшибки, """");"}
},
{0,
{"ПроверитьМетодНеВыполнился",0,0,"утв","Утверждения.ПроверитьМетодНеВыполнился(<?>Объект, ""ИмяМетода"", ?ПараметрыИлиОжидаемоеОписаниеОшибки, ?ОжидаемоеОписаниеОшибкиИлиДопСообщениеОшибки, """");"}
},
{0,
{"ПроверитьНеЗаполненность",0,0,"утв","Утверждения.ПроверитьЗаполненность(<?>, """");"}
},
{0,
{"ПроверитьТип",0,0,"утв","Утверждения.ПроверитьТип(<?>, ?ТипИлиИмяТипа, """");"}
},
{0,
{"ПроверитьВхождение",0,0,"утв","Утверждения.ПроверитьВхождение(<?>, ?ПодстрокаПоиска, """");"}
},
{0,
{"ПроверитьВхождениеВКоллекцию",0,0,"утв","Утверждения.ПроверитьВхождениеВКоллекцию(<?>, ?Коллекция, """");"}
},
{0,
{"ПроверитьВалидностьЗапросаСКД",0,0,"утв","Утверждения.ПроверитьВалидностьЗапросаСКД(<?>, """");"}
},
{0,
{"ПроверитьНаличиеОбъектаИБ",0,0,"утв","Утверждения.ПроверитьНаличиеОбъектаИБ(<?>, """");"}
},
{0,
{"ПроверитьРавенствоФайлов",0,0,"утв","Утверждения.ПроверитьРавенствоФайлов(?ПутьФайла1, ?ПутьФайла2, ?ДопСообщениеОшибки = """", ?ПарамСравнениеФайлов = Неопределено, ?ПоказатьРазличия = Ложь);"}
}
},
{22,
{"Утверждения v3",1,0,"",""},
{0,
{"ПроверитьРавенство",0,0,"пров","юТест.ПроверитьРавенство(<?>, , """");"}
},
{0,
{"Проверить Неравенство",0,0,"пров","юТест.ПроверитьНеРавенство(<?>, , """");"}
},
{0,
{"Проверить",0,0,"пров","юТест.Проверить(<?>Истина, """");"}
},
{0,
{"ПроверитьБольше",0,0,"пров","юТест.ПроверитьБольше(<?>Больше, ?Меньше, """");"}
},
{0,
{"ПроверитьЗаполненность",0,0,"пров","юТест.ПроверитьЗаполненность(<?>, """");"}
},
{0,
{"ПроверитьЛожь",0,0,"пров","юТест.ПроверитьЛожь(<?>Ложь, """");"}
},
{0,
{"ПроверитьДату",0,0,"пров","юТест.ПроверитьДату(<?>Дата, ?Период, """");"}
},
{0,
{"ПроверитьРавенствоДатСТочностью2Секунды",0,0,"пров","юТест.ПроверитьРавенствоДатСТочностью2Секунды(<?>Дата1, ?Дата2, """");"}
},
{0,
{"ПроверитьБольшеИлиРавно",0,0,"пров","юТест.ПроверитьБольше(<?>Больше, ?Меньше, """");"}
},
{0,
{"ПроверитьМеньше",0,0,"пров","юТест.ПроверитьМеньшеИлиРавно(<?>Меньше, ?Больше, """");"}
},
{0,
{"ПроверитьМеньшеИлиРавно",0,0,"пров","юТест.ПроверитьМеньшеИлиРавно(<?>Меньше, ?Больше, """");"}
},
{0,
{"ПроверитьВыполнилось",0,0,"пров","юТест.ПроверитьВыполнилось(""<?>СтрокаВыполнения"", ?ПараметрыИлиДопСообщениеОшибки, """");"}
},
{0,
{"ПроверитьМетодВыполнился",0,0,"пров","юТест.ПроверитьМетодВыполнился(<?>Объект, ""ИмяМетода"", ?ПараметрыИлиДопСообщениеОшибки, """");"}
},
{0,
{"ПроверитьНеВыполнилось",0,0,"пров","юТест.ПроверитьНеВыполнилось(""<?>СтрокаВыполнения"", ?ПараметрыИлиОжидаемоеОписаниеОшибки, ?ОжидаемоеОписаниеОшибкиИлиДопСообщениеОшибки, """");"}
},
{0,
{"ПроверитьМетодНеВыполнился",0,0,"пров","юТест.ПроверитьМетодНеВыполнился(<?>Объект, ""ИмяМетода"", ?ПараметрыИлиОжидаемоеОписаниеОшибки, ?ОжидаемоеОписаниеОшибкиИлиДопСообщениеОшибки, """");"}
},
{0,
{"ПроверитьНеЗаполненность",0,0,"пров","юТест.ПроверитьЗаполненность(<?>, """");"}
},
{0,
{"ПроверитьТип",0,0,"пров","юТест.ПроверитьТип(<?>, ?ТипИлиИмяТипа, """");"}
},
{0,
{"ПроверитьВхождение",0,0,"пров","юТест.ПроверитьВхождение(<?>, ?ПодстрокаПоиска, """");"}
},
{0,
{"ПроверитьВхождениеВКоллекцию",0,0,"пров","юТест.ПроверитьВхождениеВКоллекцию(<?>, ?Коллекция, """");"}
},
{0,
{"ПроверитьВалидностьЗапросаСКД",0,0,"пров","юТест.ПроверитьВалидностьЗапросаСКД(<?>, """");"}
},
{0,
{"ПроверитьНаличиеОбъектаИБ",0,0,"пров","юТест.ПроверитьНаличиеОбъектаИБ(<?>, """");"}
},
{0,
{"ПроверитьРавенствоФайлов",0,0,"пров","юТест.ПроверитьРавенствоФайлов(?ПутьФайла1, ?ПутьФайла2, ?ДопСообщениеОшибки = """", ?ПарамСравнениеФайлов = Неопределено, ?ПоказатьРазличия = Ложь);"}
}
}
},
{3,
{"Отчеты",1,0,"",""},
{0,
{"ПроверкаПериода",0,0,"","//Если НЕ ПроверитьПериод() Тогда
// Возврат;
//КонецЕсли;
Функция ПроверитьПериод()
Если Не ЗначениеЗаполнено(ВыбДата1) Тогда
Сообщить(""Не выбрана дата начала периода"");
Возврат Ложь;
КонецЕсли;
Если Не ЗначениеЗаполнено(ВыбДата2) Тогда
Сообщить(""Не выбрана дата окончания периода"");
Возврат Ложь;
КонецЕсли;
Если ВыбДата1 > ВыбДата2 Тогда
Сообщить(""Задан неверный период"");
Возврат Ложь;
КонецЕсли;
Возврат Истина;
КонецФункции
"}
},
{0,
{"Генерирование кнопочек для управления уровнями группировки в отчетах",0,0,"","//Программное генерирование кнопочек для удобного управления уровнями группировки в отчетах (версия 2).
//http://infostart.ru/public/83915/
//09.04.2011 23:57 [10.04.2011 16:28] mtv:) 29 [+] [−]
//Алгоритм для 1С: Предприятие 8.1; 1С: Предприятие 8.2
// В табличных документах 1С 8 имеется отличная возможность использования группировок. Но управление уровнями группировок через контекстное меню не очень удобное.
// В свои отчетах, для управления уровнями группировок, я использую маленькие кнопочки на поле табличного документа. Это намного удобнее и быстрее, чем через контексное меню.
//
//Кнопочки для управления уровнями группировок генерируются программно.
//Для этогов модуле формы, в самом конце процедуры формирования отчета нужно вызвать процедуру СгенерироватьКнопкиУправленияГруппировкой().
//В модуль формы нужно добавить две процедуры, где ""ПолеТабДок"" - это поле табличного документа, в которое выводится отчет:
Процедура СгенерироватьКнопкиУправленияГруппировкой()
НачалоВерх = ЭлементыФормы.ПолеТабДок.Верх + 3; // Привязка к верхнему левому углу ПоляТабличногоДокумента
НачалоЛево = ЭлементыФормы.ПолеТабДок.Лево + 3; // Привязка к верхнему левому углу ПоляТабличногоДокумента
ШагКнопок = 13;
ПрефиксИмениКн = ""КнГр_"";
// Удалить старые кнопки
Сч = 0;
Пока Сч < ЭлементыФормы.Количество() Цикл
ТекЭлемент = ЭлементыФормы.Получить(Сч);
Если Найти(ТекЭлемент.Имя, ПрефиксИмениКн) > 0 Тогда
ЭлементыФормы.Удалить(ТекЭлемент);
Иначе
Сч = Сч + 1;
КонецЕсли;
КонецЦикла;
// Добавть новые кнопки по количеству группировок
КоличествоГруппировок = ЭлементыФормы.ПолеТабДок.КоличествоУровнейГруппировокСтрок();
Для Сч = 1 По КоличествоГруппировок Цикл
НоваяКнопка = ЭлементыФормы.Добавить(Тип(""Кнопка""), ПрефиксИмениКн + Сч);
НоваяКнопка.Верх = НачалоВерх;
НоваяКнопка.Лево = НачалоЛево + (ШагКнопок * (Сч - 1));
НоваяКнопка.Высота = 11;
НоваяКнопка.Ширина = 11;
НоваяКнопка.Шрифт = Новый Шрифт(""Шрифт диалогов и меню"", 6);
НоваяКнопка.Заголовок = """" + Сч;
НоваяКнопка.УстановитьДействие(""Нажатие"", Новый Действие(""СвернутьДоУровня""));
КонецЦикла;
КонецПроцедуры //СгенерироватьКнопкиУправленияГруппировкой()
// Вызывется при нажатии кнопочек ""1"", ""2"" и т.д. (для сворачивания группировок)
Процедура СвернутьДоУровня(Элемент)
Уровень = Число(Элемент.Заголовок); // здесь записан нужный уровень
ЭлементыФормы.ПолеТабДок.ПоказатьУровеньГруппировокСтрок(Уровень - 1);
КонецПроцедуры //СвернутьДоУровня()"}
},
{0,
{"Табличный документ из разных макетов",0,0,"","// Производит соединение разных по форматированию табличных документов
// ТДПриемник - табличный документ, в кот. устанавливается новый формат
// Отчет - табличный документ, на основании кот. будет установлен новый формат
// http://forum.mista.ru/topic.php?id=576103
// // довольно коряво получается - портретный и ландшафтный вариант очень плохо получаются :( Артур
Процедура ДобавитьОтчет(ТДПриемник, Отчет, ВыводитьРазделительСтраниц = Ложь) Экспорт
Если ВыводитьРазделительСтраниц Тогда
ТДПриемник.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;
НачалоНовогоФорматаСтрок = ТДПриемник.ВысотаТаблицы + 1;
ОбластьПрямоугольная = Отчет.Область(1, , Отчет.ВысотаТаблицы, );
ТДПриемник.ВставитьОбласть(ОбластьПрямоугольная, ТДПриемник.Область(НачалоНовогоФорматаСтрок, 1));
ТДПриемник.Область(НачалоНовогоФорматаСтрок, , НачалоНовогоФорматаСтрок + Отчет.ВысотаТаблицы - 1, ).СоздатьФорматСтрок();
// назначим ширину колонок у новой области формата строк
Для Счетчик = 1 По Отчет.ШиринаТаблицы Цикл
ТДПриемник.Область(НачалоНовогоФорматаСтрок, Счетчик).ШиринаКолонки = Отчет.Область(1, Счетчик, 1, Счетчик).ШиринаКолонки;
КонецЦикла;
КонецПроцедуры // ДобавитьОтчет"}
}
},
{10,
{"Шаблоны модулей",1,0,"",""},
{5,
{"Документы",1,0,"",""},
{0,
{"Модуль документа",0,0,"","////////////////////////////////////////////////////////////////////////////////
// ЭКСПОРТНЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ ДОКУМЕНТА
#Если Клиент Тогда
// Процедура осуществляет печать документа. Можно направить печать на
// экран или принтер, а также распечатать необходмое количество копий.
//
// Название макета печати передается в качестве параметра,
// по переданному названию находим имя макета в соответствии.
//
// Параметры:
// НазваниеМакета - строка, название макета.
//
Процедура Печать(ИмяМакета, КоличествоЭкземпляров = 1, НаПринтер = Ложь, НепосредственнаяПечать = Ложь) Экспорт
Если ЭтоНовый() Тогда
Предупреждение(""Документ можно распечатать только после его записи"");
Возврат;
КонецЕсли;
Если Не РаботаСДиалогами.ПроверитьМодифицированность(ЭтотОбъект) Тогда
Возврат;
КонецЕсли;
Если ТипЗнч(ИмяМакета) = Тип(""ДвоичныеДанные"") Тогда
ТабДокумент = УниверсальныеМеханизмы.НапечататьВнешнююФорму(Ссылка, ИмяМакета);
Если ТабДокумент = Неопределено Тогда
Возврат
КонецЕсли;
КонецЕсли;
ТабДокумент = Неопределено;
//Если ИмяМакета = ""Печать"" Тогда
// // Получить экземпляр документа на печать
// //ТабДокумент = ПечатьВозвратаОтПокупателя();
//КонецЕсли;
УниверсальныеМеханизмы.НапечататьДокумент(ТабДокумент, КоличествоЭкземпляров, НаПринтер, ОбщегоНазначения.СформироватьЗаголовокДокумента(ЭтотОбъект), НепосредственнаяПечать);
//ниже код из БП 2.0
//УниверсальныеМеханизмы.НапечататьДокумент(ТабДокумент, КоличествоЭкземпляров, НаПринтер, ОбщегоНазначения.СформироватьЗаголовокДокумента(ЭтотОбъект), Ссылка);
КонецПроцедуры // Печать
#КонецЕсли
// Возвращает доступные варианты печати документа
//
// Возвращаемое значение:
// Структура, каждая строка которой соответствует одному из вариантов печати
//
Функция ПолучитьСтруктуруПечатныхФорм() Экспорт
Возврат Новый Структура(); //""Печать"",""Печать"");
КонецФункции // ПолучитьСтруктуруПечатныхФорм()
"}
},
{0,
{"Модуль формы документа",0,0,"","////////////////////////////////////////////////////////////////////////////////
// ПЕРЕМЕННЫЕ МОДУЛЯ
// Хранит текущую дату документа - для проверки перехода документа в другой период установки номера
Перем мТекущаяДатаДокумента;
// Хранит дерево макетов печатных форм
Перем мДеревоМакетов;
// Хранит элемент управления подменю печати
Перем мПодменюПечати;
// Хранит элемент управления кнопку печать по умолчанию
Перем мПечатьПоУмолчанию;
// Хранит дерево кнопок подменю заполнение ТЧ
Перем мКнопкиЗаполненияТЧ;
/////////////////////////////////////////////////////////////////////////////////
// ПРОЦЕДУРЫ И ФУНКЦИИ МЕХАНИЗМА УПРАВЛЕНИЯ ВИДИМОСТЬЮ, ДОСТУПНОСТЬЮ И ТОЛЬКО ПРОСМОТР
// Процедура устанавливает подменю ""Заполнить"" в командных панелях ТЧ документа при необходимости
//
Процедура УстановитьКнопкиПодменюЗаполненияТЧ()