Форум программистов, компьютерный форум, киберфорум
1С: Типовые и стандартные решения
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/46: Рейтинг темы: голосов - 46, средняя оценка - 4.76
0 / 0 / 0
Регистрация: 17.05.2012
Сообщений: 13
1
1C 8.x (тонкий)

Бухгалтерия 8.3 Не удается создать внешнюю печатную форму

14.05.2014, 15:33. Показов 8344. Ответов 11

Author24 — интернет-сервис помощи студентам
Помогите пожалуйста найти ошибку.
Пытаюсь сделать внешнюю печатную форму Счета на оплату
Ошибка при запуске- недостаточно фактических параметров
Подозреваю что ошибка в Процедуре "Печать"


1C
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
Функция СведенияОВнешнейОбработке() Экспорт
 
ПараметрыРегистрации = Новый Структура;
 
МассивНазначений = Новый Массив;
МассивНазначений.Добавить("Документ.СчетНаОплатуПокупателю");
 
ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма"); //возможны варианты - ЗаполнениеОбъекта, ДополнительныйОтчет, СозданиеСвязанныхОбъектов, 
ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
ПараметрыРегистрации.Вставить("Наименование", "СчетНовый"); //имя под kt обработка зарегистрирована будет в справочнике внешних обработок
ПараметрыРегистрации.Вставить("Версия", "1.1");
ПараметрыРегистрации.Вставить("БезопасныйРежим", ЛОЖЬ);
ПараметрыРегистрации.Вставить("Информация", "Дополнительная печатная форма к документу Счет ");
 
//команды
ТаблицаКоманд = Новый ТаблицаЗначений;
ТаблицаКоманд.Колонки.Добавить("Представление"); //как будет выглядеть описание печ.формы для пользователя
ТаблицаКоманд.Колонки.Добавить("Идентификатор"); //имя нашего макета
ТаблицаКоманд.Колонки.Добавить("Использование"); //ВызовСерверногоМетода
ТаблицаКоманд.Колонки.Добавить("ПоказыватьОповещение"); //Истина
ТаблицаКоманд.Колонки.Добавить("Модификатор"); //ПечатьМХL
 
НоваяКоманда = ТаблицаКоманд.Добавить();
НоваяКоманда.Представление = "Счет";
НоваяКоманда.Идентификатор = "СчетНаОплатуПокупателю"; //Внешняя печатная форма
НоваяКоманда.Использование = "ВызовСерверногоМетода"; //здесь можно прописать использование как серверного так и клиентского, отличие в том, что серверный метод будет обращаться к экспортной процедуре из модуля объекта, клиентский - к экспортной процедуре из модуля формы объекта
НоваяКоманда.ПоказыватьОповещение = Истина;
НоваяКоманда.Модификатор = "ПечатьMXL";
 
ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
 
Возврат ПараметрыРегистрации;
 
КонецФункции
 
 
 
 
Процедура Печать(МассивОбъектов,  ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
         СсылкаНаОбъект = МассивОбъектов[0];
 
    ПараметрыВывода.ДоступнаПечатьПоКомплектно = Истина;
    
    Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ПредварительныйПросмотрПечатнойФормыСчетНаОплату") Тогда
        УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ПредварительныйПросмотрПечатнойФормыСчетНаОплату", "Счет на оплату", 
        ПечатьПредварительныйПросмотрСчетаНаОплату(ПараметрыПечати.Организация, ОбъектыПечати, "СчетЗаказ"));
        ЗаполнитьПараметрыЭлектроннойПочты = Ложь;
    КонецЕсли;
    
    Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "СчетЗаказ") Тогда
        ТаблицаСведенийСчетНаОплату = ПолучитьТаблицуСведенийСчетаНаОплату( СсылкаНаОбъект);
        УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "СчетЗаказ", "Счет на оплату", 
        ПечатьСчетаНаОплату(ТаблицаСведенийСчетНаОплату, ОбъектыПечати),,"ПФ_MXL_СчетЗаказ");
    КонецЕсли;
    
    Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "СчетЗаказСПечатью") Тогда
        ТаблицаСведенийСчетНаОплату = ПолучитьТаблицуСведенийСчетаНаОплату(МассивОбъектов);
        УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "СчетЗаказСПечатью", "Счет на оплату", 
        ПечатьСчетаНаОплату(ТаблицаСведенийСчетНаОплату, ОбъектыПечати, Истина),,"ПФ_MXL_СчетЗаказ");
    КонецЕсли;
    
    ОбщегоНазначенияБП.ЗаполнитьДополнительныеПараметрыПечати(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);    
    
КонецПроцедуры
 
Функция ПечатьПредварительныйПросмотрСчетаНаОплату(Организация, ОбъектыПечати, ИмяМакета) Экспорт
    
    ТабличныйДокумент = Новый ТабличныйДокумент;
    
    ЗначениеДаты = ТекущаяДатаСеанса();
    НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1;
    ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_" + ИмяМакета + "_" + ИмяМакета;
    Макет = ЭтотОбъект.ПолучитьМакет("ПФ_MXL_СчетЗаказ");
 
    
    ВывестиЗаголовокПредупреждение(Организация, ТабличныйДокумент, Макет);
    
    ОбластьМакета = Макет.ПолучитьОбласть("ЗаголовокСчета");
    СведенияОПолучателе = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛице(Организация, ЗначениеДаты);
    ОбластьМакета.Параметры.ИННПолучателя = СведенияОПолучателе.ИНН;
    ОбластьМакета.Параметры.КПППолучателя = СведенияОПолучателе.КПП;
    ОбластьМакета.Параметры.БИКБанкаПолучателя = СведенияОПолучателе.БИК;
    ОбластьМакета.Параметры.БанкПолучателяПредставление = СведенияОПолучателе.Банк;
    ОбластьМакета.Параметры.СчетБанкаПолучателяПредставление = СведенияОПолучателе.КоррСчет;
    ОбластьМакета.Параметры.ПредставлениеПолучателя = СведенияОПолучателе.НаименованиеДляПечатныхФорм;
    Если ЗначениеЗаполнено(Организация.ОсновнойБанковскийСчет) Тогда 
        ОбластьМакета.Параметры.СчетПолучателяПредставление = Организация.ОсновнойБанковскийСчет.НомерСчета;
    КонецЕсли;
    ТабличныйДокумент.Вывести(ОбластьМакета);
    
    ОбластьМакета = Макет.ПолучитьОбласть("Заголовок");
    ОбластьМакета.Параметры.ТекстЗаголовка = ОбщегоНазначенияБПВызовСервера.СформироватьЗаголовокДокумента(Неопределено, "Счет на оплату");
    ТабличныйДокумент.Вывести(ОбластьМакета);
 
    ОбластьМакета = Макет.ПолучитьОбласть("Поставщик");
    СведенияОбОрганизации    = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛице(Организация, ЗначениеДаты);
    ОбластьМакета.Параметры.ПредставлениеПоставщика = ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(
        СведенияОбОрганизации, "НаименованиеДляПечатныхФорм,ИНН,КПП,ЮридическийАдрес,Телефоны,");
    ТабличныйДокумент.Вывести(ОбластьМакета);
 
    ОбластьМакета = Макет.ПолучитьОбласть("Покупатель");
    ОбластьМакета.Параметры.ПредставлениеПокупателя = "Контрагент, ИНН 1111111111, КПП 222222222";
    ТабличныйДокумент.Вывести(ОбластьМакета);
    
    ОбластьМакета = Макет.ПолучитьОбласть("ШапкаТаблицы");
    ТабличныйДокумент.Вывести(ОбластьМакета);
    
    ОбластьМакета = Макет.ПолучитьОбласть("Строка");
    ОбластьМакета.Параметры.ЕдиницаИзмерения = "шт";
    ОбластьМакета.Параметры.Товар = "Товар";
    ОбластьМакета.Параметры.Цена = 118;
    ОбластьМакета.Параметры.Количество = 10;
    ОбластьМакета.Параметры.Сумма = 1180;
    ОбластьМакета.Параметры.Номенклатура = "Товар";
    ОбластьМакета.Параметры.НомерСтроки = 1;
    ОбластьМакета.Параметры.Артикул = "А-00001";
    ТабличныйДокумент.Вывести(ОбластьМакета);
    
    ОбластьМакета = Макет.ПолучитьОбласть("Итого");
    ОбластьМакета.Параметры.Всего = "1180,00";
    ТабличныйДокумент.Вывести(ОбластьМакета);
    
    ОбластьМакета = Макет.ПолучитьОбласть("ИтогоНДС");
    ОбластьМакета.Параметры.ВсегоНДС = "180,00";;
    ОбластьМакета.Параметры.НДС = "В том числе НДС";
    ТабличныйДокумент.Вывести(ОбластьМакета);
    
    ОбластьМакета = Макет.ПолучитьОбласть("ИтогоКОплате");
    ОбластьМакета.Параметры.ИтогоКОплате = "1180,00";;
    ТабличныйДокумент.Вывести(ОбластьМакета);
    
    ОбластьМакета = Макет.ПолучитьОбласть("СуммаПрописью");
    ОбластьМакета.Параметры.ИтоговаяСтрока = "Всего наименований 10, на сумму 1180 рублей";
    ОбластьМакета.Параметры.СуммаПрописью = "Одна тысяча сто восемьдесят рублей 00 копеек";
    ТабличныйДокумент.Вывести(ОбластьМакета);
 
    ДанныеКартинки = РаботаСФайламиСлужебныйВызовСервера.ПолучитьДанныеФайлаИДвоичныеДанные(Организация.ФайлФаксимильнаяПечать);
    Если ЗначениеЗаполнено(ДанныеКартинки.ДвоичныеДанные) Тогда
        ОбластьМакета = Макет.ПолучитьОбласть("ПодвалСчетаСФаксимильнойПечатью");
        ОбластьМакета.Рисунки.ФаксимильнаяПечать.Картинка = Новый Картинка(ДанныеКартинки.ДвоичныеДанные);
    Иначе
        Если Организация.ЮридическоеФизическоеЛицо = Перечисления.ЮридическоеФизическоеЛицо.ЮридическоеЛицо Тогда 
            ОбластьМакета = Макет.ПолучитьОбласть("ПодвалСчета");
        Иначе
            ОбластьМакета = Макет.ПолучитьОбласть("ПодвалСчетаПредприниматель");
        КонецЕсли;
    КонецЕсли;
    ТабличныйДокумент.Вывести(ОбластьМакета);
    
    ТабличныйДокумент.АвтоМасштаб = Истина;
    Возврат ТабличныйДокумент;
    
КонецФункции //ПечатьПредварительныйПросмотрСчетаНаОплату()
 
 
 
Функция ПолучитьТаблицуСведенийСчетаНаОплату(Знач МассивДокументов) Экспорт
    
    ТаблицаСведений = ПечатьТорговыхДокументов.ПолучитьОписаниеСчетаНаОплату();
    
    Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("МассивДокументов", МассивДокументов);
    Запрос.УстановитьПараметр("ДополнительнаяКолонкаПечатныхФормДокументов", Константы.ДополнительнаяКолонкаПечатныхФормДокументов.Получить());
    Запрос.Текст = ПолучитьТекстЗапросаДляФормированияТаблицыСведенийСчетаНаОплату();
    
    РезультатЗапроса = Запрос.ВыполнитьПакет();
    
    Выборка = РезультатЗапроса[1].Выбрать();
    СтрокиДокументов = РезультатЗапроса[2].Выгрузить();
    СтрокиДокументов.Индексы.Добавить("Документ");
    
    Пока Выборка.Следующий() Цикл
        
        СведенияОДокументе = ТаблицаСведений.Добавить();
        ЗаполнитьЗначенияСвойств(СведенияОДокументе, Выборка);
        
        ТаблицаДокумента = ПечатьТорговыхДокументов.ПолучитьОписаниеТаблицыСчетаНаОплату();
        
        Отбор = Новый Структура("Документ", Выборка.Документ);
        СтрокиДокумента = СтрокиДокументов.НайтиСтроки(Отбор);
        
        Для Каждого Строка Из СтрокиДокумента Цикл
            
            СтрокаТаблицыДокумента = ТаблицаДокумента.Добавить();
            ЗаполнитьЗначенияСвойств(СтрокаТаблицыДокумента, Строка);
            
        КонецЦикла;
        
        СведенияОДокументе.ТаблицаДокумента = ТаблицаДокумента;
        
        
        ПорядокЗаполнения = Новый Структура("ЗаполнятьРуководителя, ЗаполнятьГлавногоБухгалтера");
        ПечатьТорговыхДокументов.ЗаполнитьДанныеОтветственныхЛиц(СведенияОДокументе, ПорядокЗаполнения);
        
    КонецЦикла;
    
    Возврат ТаблицаСведений;
    
КонецФункции
Процедура ВывестиЗаголовокПредупреждение(Организация, ТабличныйДокумент, Макет)
    
    Если Не ЗначениеЗаполнено(Макет.Области.Найти("ЗаголовокПредупреждениеСЛоготипом")) Тогда 
        Возврат;
    КонецЕсли;
    
    Если ТипЗнч(Организация) <> Тип("СправочникСсылка.Организации") Тогда
        Возврат;
    КонецЕсли;
        
    ДанныеКартинки = РаботаСФайламиСлужебныйВызовСервера.ПолучитьДанныеФайлаИДвоичныеДанные(Организация.ФайлЛоготип);
    Если ЗначениеЗаполнено(ДанныеКартинки.ДвоичныеДанные) Тогда
        ОбластьМакета = Макет.ПолучитьОбласть("ЗаголовокПредупреждениеСЛоготипом");
        Попытка
            ОбластьМакета.Рисунки.Логотип.Картинка = Новый Картинка(ДанныеКартинки.ДвоичныеДанные);
        Исключение
        КонецПопытки;
        ТабличныйДокумент.Вывести(ОбластьМакета);
    Иначе
        ОбластьМакета = Макет.ПолучитьОбласть("ЗаголовокПредупреждение");
        ТабличныйДокумент.Вывести(ОбластьМакета);
    КонецЕсли;
 
КонецПроцедуры
 
Функция ПечатьСчетаНаОплату(СведенияСчетаНаОплату, ОбъектыПечати, СПечатью = Ложь) Экспорт
 
    Перем ПодразделениеОтветственныхЛиц;
    
    УстановитьПривилегированныйРежим(Истина);
    
    ТабличныйДокумент = Новый ТабличныйДокумент;
    ТабличныйДокумент.АвтоМасштаб           = Истина;
    ТабличныйДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Портрет;
    ТабличныйДокумент.ИмяПараметровПечати   = "ПАРАМЕТРЫ_ПЕЧАТИ_ЗаказПокупателя_СчетЗаказ";
    
    ДополнительнаяКолонкаПечатныхФормДокументов = Константы.ДополнительнаяКолонкаПечатныхФормДокументов.Получить();
    Если НЕ ЗначениеЗаполнено(ДополнительнаяКолонкаПечатныхФормДокументов) Тогда
        ДополнительнаяКолонкаПечатныхФормДокументов = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.НеВыводить;
    КонецЕсли;
    ВыводитьКоды = ДополнительнаяКолонкаПечатныхФормДокументов <> Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.НеВыводить;
    
    ПервыйДокумент = Истина;
    
    Для Каждого СведенияОДокументе Из СведенияСчетаНаОплату Цикл
        
        Макет = ЭтотОбъект.ПолучитьМакет("ПФ_MXL_СчетЗаказ");
 
        Если НЕ ПервыйДокумент Тогда
            ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
        КонецЕсли;
        
        ПервыйДокумент = Ложь;
        
        // Запомним номер строки, с которой начали выводить текущий документ.
        НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1;
        
        // Выводим шапку счета
        ВывестиЗаголовокПредупреждение(СведенияОДокументе.Получатель, ТабличныйДокумент, Макет);
 
        СведенияОПолучателе = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛице(СведенияОДокументе.Получатель, СведенияОДокументе.ДатаДляПолученияСведений);
        ОбластьМакета       = Макет.ПолучитьОбласть("ЗаголовокСчета");
        ОбластьМакета.Параметры.Заполнить(СведенияОДокументе);
        ОбластьМакета.Параметры.ИННПолучателя = СведенияОПолучателе.ИНН;
        ОбластьМакета.Параметры.КПППолучателя = СведенияОПолучателе.КПП;
        Если ТипЗнч(СведенияОДокументе.БанковскийСчетПродавца) = Тип("СправочникСсылка.БанковскиеСчета") Тогда
            ОбластьМакета.Параметры.БИКБанкаПолучателя               = СведенияОДокументе.БикБанкаПолучателя;
            ОбластьМакета.Параметры.БанкПолучателя                   = СведенияОДокументе.БанкПолучателя;
            ОбластьМакета.Параметры.БанкПолучателяПредставление      = СокрЛП(СведенияОДокументе.НаименованиеБанкаПолучателя);
            ОбластьМакета.Параметры.СчетБанкаПолучателя              = СведенияОДокументе.СчетБанкаПолучателя;
            ОбластьМакета.Параметры.СчетБанкаПолучателяПредставление = СведенияОДокументе.СчетБанкаПолучателя;
            ОбластьМакета.Параметры.СчетПолучателяПредставление      = СведенияОДокументе.НомерСчетаПолучателя;
            ОбластьМакета.Параметры.СчетПолучателя                   = СведенияОДокументе.НомерСчетаПолучателя;
        КонецЕсли;
        
        ОбластьМакета.Параметры.ПредставлениеПолучателя = УчетДенежныхСредствБП.СформироватьТекстНаименованияПлательщикаПолучателя(, СведенияОДокументе.Получатель, СведенияОДокументе.БанковскийСчетПродавца);
        
        ТабличныйДокумент.Вывести(ОбластьМакета);
 
        ОбластьМакета = Макет.ПолучитьОбласть("Заголовок");
        
        ТекстЗаголовка = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='Счет на оплату № %1 от %2 г.'"), 
                СведенияОДокументе.НомерДокумента, Формат(СведенияОДокументе.ДатаДокумента, "ДФ='дд ММММ гггг'"));
        
        ОбластьМакета.Параметры.ТекстЗаголовка = ТекстЗаголовка;
        
        ТабличныйДокумент.Вывести(ОбластьМакета);
 
        ОбластьМакета = Макет.ПолучитьОбласть("Поставщик");
        ОбластьМакета.Параметры.Заполнить(СведенияОДокументе);
        СведенияОбОрганизации    = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛице(СведенияОДокументе.Поставщик, СведенияОДокументе.ДатаДляПолученияСведений);
        ОбластьМакета.Параметры.ПредставлениеПоставщика = ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(
            СведенияОбОрганизации, "НаименованиеДляПечатныхФорм,ИНН,КПП,ЮридическийАдрес,Телефоны,");
        ТабличныйДокумент.Вывести(ОбластьМакета);
 
        ОбластьМакета = Макет.ПолучитьОбласть("Покупатель");
        ОбластьМакета.Параметры.Заполнить(СведенияОДокументе);
        СведенияОПокупателе     = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛице(СведенияОДокументе.Покупатель, СведенияОДокументе.ДатаДляПолученияСведений);
        ОбластьМакета.Параметры.ПредставлениеПокупателя = ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(
            СведенияОПокупателе, "НаименованиеДляПечатныхФорм,ИНН,КПП,ЮридическийАдрес,Телефоны,");
        ТабличныйДокумент.Вывести(ОбластьМакета);
 
        ОбластьНомера = Макет.ПолучитьОбласть("ШапкаТаблицы|НомерСтроки");
        ОбластьКодов  = Макет.ПолучитьОбласть("ШапкаТаблицы|КолонкаКодов");
        ОбластьДанных = Макет.ПолучитьОбласть("ШапкаТаблицы|Данные");
        ОбластьСуммы  = Макет.ПолучитьОбласть("ШапкаТаблицы|Сумма");
 
        ТабличныйДокумент.Вывести(ОбластьНомера);
        Если ВыводитьКоды Тогда
            Если ДополнительнаяКолонкаПечатныхФормДокументов = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Артикул Тогда
                ОбластьКодов.Параметры.ИмяКолонкиКодов = "Артикул";
            ИначеЕсли ДополнительнаяКолонкаПечатныхФормДокументов = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Код Тогда
                ОбластьКодов.Параметры.ИмяКолонкиКодов = "Код";
            КонецЕсли;
            ТабличныйДокумент.Присоединить(ОбластьКодов);
        КонецЕсли;
        ТабличныйДокумент.Присоединить(ОбластьДанных);
        ТабличныйДокумент.Присоединить(ОбластьСуммы);
 
        ОбластьКолонкаТовар = Макет.Область("Товар");
        Если Не ВыводитьКоды Тогда
            ОбластьКолонкаТовар.ШиринаКолонки = ОбластьКолонкаТовар.ШиринаКолонки + Макет.Область("КолонкаКодов").ШиринаКолонки;
        КонецЕсли;
 
        ОбластьНомера = Макет.ПолучитьОбласть("Строка|НомерСтроки");
        ОбластьКодов  = Макет.ПолучитьОбласть("Строка|КолонкаКодов");
        ОбластьДанных = Макет.ПолучитьОбласть("Строка|Данные");
        ОбластьСуммы  = Макет.ПолучитьОбласть("Строка|Сумма");
 
        Сумма    = 0;
        СуммаНДС = 0;
        ВсегоСкидок    = 0;
        ВсегоБезСкидок = 0;
        НомерСтроки    = 0;
        
        Для Каждого Строка Из СведенияОДокументе.ТаблицаДокумента Цикл
            
            Если НЕ ЗначениеЗаполнено(Строка.Сумма) Тогда 
                Продолжить;
            КонецЕсли;
            
            НомерСтроки = НомерСтроки + 1;
            ОбластьНомера.Параметры.НомерСтроки = НомерСтроки;
            ТабличныйДокумент.Вывести(ОбластьНомера);
 
            Если ВыводитьКоды Тогда
                ОбластьКодов.Параметры.Артикул = Строка.НоменклатураАртикул;
                ТабличныйДокумент.Присоединить(ОбластьКодов);
            КонецЕсли;
            
            ОбластьДанных.Параметры.Товар            = СокрЛП(Строка.НоменклатураНаименование);
            ОбластьДанных.Параметры.Количество       = Строка.Количество;
            ОбластьДанных.Параметры.ЕдиницаИзмерения = Строка.ЕдиницаИзмеренияНаименование;
            ОбластьДанных.Параметры.Цена             = Строка.Цена;
            
            ТабличныйДокумент.Присоединить(ОбластьДанных);
            
            ОбластьСуммы.Параметры.Сумма = Строка.Сумма;
            
            ТабличныйДокумент.Присоединить(ОбластьСуммы);
            Сумма    = Сумма    + Строка.Сумма;
            СуммаНДС = СуммаНДС + Строка.СуммаНДС;
            
        КонецЦикла;
        
        // Вывести Итого
        ОбластьНомера = Макет.ПолучитьОбласть("Итого|НомерСтроки");
        ОбластьКодов  = Макет.ПолучитьОбласть("Итого|КолонкаКодов");
        ОбластьДанных = Макет.ПолучитьОбласть("Итого|Данные");
        ОбластьСуммы  = Макет.ПолучитьОбласть("Итого|Сумма");
 
        ТабличныйДокумент.Вывести(ОбластьНомера);
        Если ВыводитьКоды Тогда
            ТабличныйДокумент.Присоединить(ОбластьКодов);
        КонецЕсли;
        ТабличныйДокумент.Присоединить(ОбластьДанных);
        ОбластьСуммы.Параметры.Всего = ОбщегоНазначенияБПВызовСервера.ФорматСумм(Сумма);
        ТабличныйДокумент.Присоединить(ОбластьСуммы);
 
        // Вывести ИтогоНДС
        ОбластьНомера = Макет.ПолучитьОбласть("ИтогоНДС|НомерСтроки");
        ОбластьКодов  = Макет.ПолучитьОбласть("ИтогоНДС|КолонкаКодов");
        ОбластьДанных = Макет.ПолучитьОбласть("ИтогоНДС|Данные");
        ОбластьСуммы  = Макет.ПолучитьОбласть("ИтогоНДС|Сумма");
        
        ТабличныйДокумент.Вывести(ОбластьНомера);
        Если ВыводитьКоды Тогда
            ТабличныйДокумент.Присоединить(ОбластьКодов);
        КонецЕсли;
        Если СуммаНДС <> 0 Тогда
            ОбластьДанных.Параметры.НДС     = ?(СведенияОДокументе.СуммаВключаетНДС, "В том числе НДС:", "Сумма НДС:");
            ОбластьСуммы.Параметры.ВсегоНДС = ОбщегоНазначенияБПВызовСервера.ФорматСумм(СуммаНДС);
        Иначе
            ОбластьДанных.Параметры.НДС     = "Без налога (НДС)";
            ОбластьСуммы.Параметры.ВсегоНДС = "-";
        КонецЕсли;
        ТабличныйДокумент.Присоединить(ОбластьДанных);
        
        ТабличныйДокумент.Присоединить(ОбластьСуммы);
        
        // Вывести ИтогоКОплате
        ОбластьНомера = Макет.ПолучитьОбласть("ИтогоКОплате|НомерСтроки");
        ОбластьКодов  = Макет.ПолучитьОбласть("ИтогоКОплате|КолонкаКодов");
        ОбластьДанных = Макет.ПолучитьОбласть("ИтогоКОплате|Данные");
        ОбластьСуммы  = Макет.ПолучитьОбласть("ИтогоКОплате|Сумма");
        ТабличныйДокумент.Вывести(ОбластьНомера);
        Если ВыводитьКоды Тогда
            ТабличныйДокумент.Присоединить(ОбластьКодов);
        КонецЕсли;
        ТабличныйДокумент.Присоединить(ОбластьДанных);
        СуммаКОплате = Сумма + ?(СведенияОДокументе.СуммаВключаетНДС, 0, СуммаНДС);
        ОбластьСуммы.Параметры.ИтогоКОплате = ОбщегоНазначенияБПВызовСервера.ФорматСумм(СуммаКОплате);
        ТабличныйДокумент.Присоединить(ОбластьСуммы);
        
        // Вывести Сумму прописью
        ОбластьМакета = Макет.ПолучитьОбласть("СуммаПрописью");
        СуммаКПрописи = Сумма + ?(СведенияОДокументе.СуммаВключаетНДС, 0, СуммаНДС);
        ОбластьМакета.Параметры.ИтоговаяСтрока = "Всего наименований " + НомерСтроки
            + ", на сумму " + ОбщегоНазначенияБПВызовСервера.ФорматСумм(СуммаКПрописи, СведенияОДокументе.Валюта);
        ОбластьМакета.Параметры.СуммаПрописью = ОбщегоНазначенияБПВызовСервера.СформироватьСуммуПрописью(СуммаКПрописи, СведенияОДокументе.Валюта);
        ТабличныйДокумент.Вывести(ОбластьМакета);
 
        // Вывести подписи
        Если СПечатью Тогда 
            ДанныеКартинки = РаботаСФайламиСлужебныйВызовСервера.ПолучитьДанныеФайлаИДвоичныеДанные(СведенияОДокументе.Получатель.ФайлФаксимильнаяПечать);
            Если ЗначениеЗаполнено(ДанныеКартинки) Тогда 
                ДанныеКартинки = ДанныеКартинки.ДвоичныеДанные;
            КонецЕсли;
        Иначе
            ДанныеКартинки = Неопределено;
        КонецЕсли;
        
        Если ЗначениеЗаполнено(ДанныеКартинки) 
            И ЗначениеЗаполнено(Макет.Области.Найти("ПодвалСчетаСФаксимильнойПечатью")) Тогда 
            ОбластьМакета = Макет.ПолучитьОбласть("ПодвалСчетаСФаксимильнойПечатью");
            ОбластьМакета.Рисунки.ФаксимильнаяПечать.Картинка = Новый Картинка(ДанныеКартинки);
        Иначе 
            Если ОбщегоНазначения.ЗначениеРеквизитаОбъекта(СведенияОДокументе.Получатель, "ЮридическоеФизическоеЛицо")
                = Перечисления.ЮридическоеФизическоеЛицо.ЮридическоеЛицо Тогда
                ОбластьМакета = Макет.ПолучитьОбласть("ПодвалСчета");
                
                ОбластьМакета.Параметры.ФИОРуководителя = СведенияОДокументе.РуководительФИО;
                ОбластьМакета.Параметры.ФИОБухгалтера   = СведенияОДокументе.ГлавныйБухгалтерФИО;
                ЗаполнитьЗначенияСвойств(ОбластьМакета.Параметры, СведенияОДокументе);
            Иначе
                ОбластьМакета = Макет.ПолучитьОбласть("ПодвалСчетаПредприниматель");
                
                ОбластьМакета.Параметры.ФИОПредпринимателя = СведенияОПолучателе.ФИОПБОЮЛ;
                
            КонецЕсли;
        КонецЕсли;
 
        ОбластьМакета.Параметры.Заполнить(СведенияОДокументе);
        ТабличныйДокумент.Вывести(ОбластьМакета);
        
        // В табличном документе зададим имя области, в которую был 
        // выведен объект. Нужно для возможности печати покомплектно.
        УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент, 
            НомерСтрокиНачало, ОбъектыПечати, СведенияОДокументе.Документ);
 
    КонецЦикла;
 
    Возврат ТабличныйДокумент;
 
КонецФункции
Функция ПолучитьТекстЗапросаДляФормированияТаблицыСведенийСчетаНаОплату()
    
    ЧастьЗапросаДляВыбораСодержанияУслуг = ОбщегоНазначенияБПВызовСервера.ПолучитьЧастьЗапросаДляВыбораСодержанияУслуг("СчетНаОплату");
    
    ТекстЗапроса =
    "ВЫБРАТЬ
    |   СчетНаОплату.Ссылка КАК Ссылка,
    |   СчетНаОплату.Дата КАК ДатаДокумента,
    |   СчетНаОплату.СуммаВключаетНДС КАК СуммаВключаетНДС
    |ПОМЕСТИТЬ ДокументыДляПечати
    |ИЗ
    |   Документ.СчетНаОплатуПокупателю КАК СчетНаОплату
    |ГДЕ
    |   СчетНаОплату.Ссылка В(&МассивДокументов)
    |
    |ИНДЕКСИРОВАТЬ ПО
    |   Ссылка
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |   СчетНаОплату.Ссылка КАК Документ,
    |   СчетНаОплату.Дата КАК ДатаДляПолученияСведений,
    |   ДанныеПервичныхДокументов.Номер КАК НомерДокумента,
    |   ДанныеПервичныхДокументов.Дата КАК ДатаДокумента,
    |   СчетНаОплату.ВалютаДокумента КАК Валюта,
    |   СчетНаОплату.ВалютаДокумента.Код КАК ВалютаКод,
    |   СчетНаОплату.ВалютаДокумента.Наименование КАК ВалютаНаименование,
    |   СчетНаОплату.СуммаДокумента КАК СуммаДокумента,
    |   СчетНаОплату.КратностьВзаиморасчетов КАК КратностьВзаиморасчетов,
    |   СчетНаОплату.КурсВзаиморасчетов КАК КурсВзаиморасчетов,
    |   СчетНаОплату.СуммаВключаетНДС КАК СуммаВключаетНДС,
    |   СчетНаОплату.Организация КАК Организация,
    |   СчетНаОплату.ПодразделениеОрганизации КАК Подразделение,
    |   СчетНаОплату.Организация КАК Поставщик,
    |   СчетНаОплату.Организация КАК Руководители,
    |   СчетНаОплату.ОрганизацияПолучатель КАК Получатель,
    |   СчетНаОплату.Контрагент КАК Покупатель,
    |   СчетНаОплату.ДоговорКонтрагента КАК ДоговорКонтрагента,
    |   СчетНаОплату.СтруктурнаяЕдиница КАК БанковскийСчетПродавца,
    |   СчетНаОплату.СтруктурнаяЕдиница.ТекстКорреспондента КАК ТекстКорреспондента,
    |   СчетНаОплату.СтруктурнаяЕдиница.БанкДляРасчетов КАК БанкДляРасчетов,
    |   СчетНаОплату.Руководитель КАК Руководитель,
    |   СчетНаОплату.ГлавныйБухгалтер КАК ГлавныйБухгалтер,
    |   СчетНаОплату.ЗаРуководителяПоПриказу КАК ЗаРуководителяПоПриказу,
    |   СчетНаОплату.ЗаГлавногоБухгалтераПоПриказу КАК ЗаГлавногоБухгалтераПоПриказу,
    |   ВЫБОР
    |       КОГДА СчетНаОплату.СтруктурнаяЕдиница.БанкДляРасчетов <> ЗНАЧЕНИЕ(Справочник.Банки.ПустаяСсылка)
    |           ТОГДА СчетНаОплату.СтруктурнаяЕдиница.БанкДляРасчетов.Наименование + "" "" + СчетНаОплату.СтруктурнаяЕдиница.БанкДляРасчетов.Город
    |       ИНАЧЕ СчетНаОплату.СтруктурнаяЕдиница.Банк.Наименование + "" "" + СчетНаОплату.СтруктурнаяЕдиница.Банк.Город
    |   КОНЕЦ КАК НаименованиеБанкаПолучателя,
    |   ВЫБОР
    |       КОГДА СчетНаОплату.СтруктурнаяЕдиница.БанкДляРасчетов <> ЗНАЧЕНИЕ(Справочник.Банки.ПустаяСсылка)
    |           ТОГДА СчетНаОплату.СтруктурнаяЕдиница.БанкДляРасчетов
    |       ИНАЧЕ СчетНаОплату.СтруктурнаяЕдиница.Банк
    |   КОНЕЦ КАК БанкПолучателя,
    |   ВЫБОР
    |       КОГДА СчетНаОплату.СтруктурнаяЕдиница.БанкДляРасчетов <> ЗНАЧЕНИЕ(Справочник.Банки.ПустаяСсылка)
    |           ТОГДА СчетНаОплату.СтруктурнаяЕдиница.БанкДляРасчетов.Код
    |       ИНАЧЕ СчетНаОплату.СтруктурнаяЕдиница.Банк.Код
    |   КОНЕЦ КАК БикБанкаПолучателя,
    |   ВЫБОР
    |       КОГДА СчетНаОплату.СтруктурнаяЕдиница.БанкДляРасчетов <> ЗНАЧЕНИЕ(Справочник.Банки.ПустаяСсылка)
    |           ТОГДА СчетНаОплату.СтруктурнаяЕдиница.БанкДляРасчетов.КоррСчет
    |       ИНАЧЕ СчетНаОплату.СтруктурнаяЕдиница.Банк.КоррСчет
    |   КОНЕЦ КАК СчетБанкаПолучателя,
    |   ВЫБОР
    |       КОГДА СчетНаОплату.СтруктурнаяЕдиница.БанкДляРасчетов <> ЗНАЧЕНИЕ(Справочник.Банки.ПустаяСсылка)
    |           ТОГДА СчетНаОплату.СтруктурнаяЕдиница.БанкДляРасчетов.Город
    |       ИНАЧЕ СчетНаОплату.СтруктурнаяЕдиница.Банк.Город
    |   КОНЕЦ КАК ГородБанкаПолучателя,
    |   ВЫБОР
    |       КОГДА СчетНаОплату.СтруктурнаяЕдиница.БанкДляРасчетов <> ЗНАЧЕНИЕ(Справочник.Банки.ПустаяСсылка)
    |           ТОГДА СчетНаОплату.СтруктурнаяЕдиница.Банк.КоррСчет
    |       ИНАЧЕ СчетНаОплату.СтруктурнаяЕдиница.НомерСчета
    |   КОНЕЦ КАК НомерСчетаПолучателя,
    |   ВЫБОР
    |       КОГДА СчетНаОплату.СтруктурнаяЕдиница.БанкДляРасчетов <> ЗНАЧЕНИЕ(Справочник.Банки.ПустаяСсылка)
    |           ТОГДА "" р/с "" + СчетНаОплату.СтруктурнаяЕдиница.НомерСчета + "" в "" + СчетНаОплату.СтруктурнаяЕдиница.Банк.Наименование + "" "" + СчетНаОплату.СтруктурнаяЕдиница.Банк.Город
    |   КОНЕЦ КАК БанкТекстКорресподента,
    |   СчетНаОплату.СтруктурнаяЕдиница.НомерСчета КАК НомерСчета,
    |   СчетНаОплату.СтруктурнаяЕдиница.Банк.Наименование КАК БанкНаименование,
    |   СчетНаОплату.СтруктурнаяЕдиница.Банк.Код КАК БИК,
    |   СчетНаОплату.СтруктурнаяЕдиница.Банк.КоррСчет КАК КоррСчет
    |ИЗ
    |   Документ.СчетНаОплатуПокупателю КАК СчетНаОплату
    |       ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДанныеПервичныхДокументов КАК ДанныеПервичныхДокументов
    |       ПО СчетНаОплату.Ссылка = ДанныеПервичныхДокументов.Документ
    |           И СчетНаОплату.Организация = ДанныеПервичныхДокументов.Организация
    |ГДЕ
    |   СчетНаОплату.Ссылка В
    |           (ВЫБРАТЬ
    |               ДокументыДляПечати.Ссылка
    |           ИЗ
    |               ДокументыДляПечати КАК ДокументыДляПечати)
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |   СчетНаОплату.Ссылка КАК Документ,
    |   ДокументыДляПечати.ДатаДокумента КАК ДатаДокумента,
    |   ЗНАЧЕНИЕ(Перечисление.ТабличныеЧастиДокументов.Товары) КАК ТабличнаяЧасть,
    |   1 КАК ПорядокТабличнойЧасти,
    |   СчетНаОплату.НомерСтроки КАК НомерСтроки,
    |   СчетНаОплату.Номенклатура КАК Номенклатура,
    |   ВЫБОР
    |       КОГДА &ДополнительнаяКолонкаПечатныхФормДокументов = ЗНАЧЕНИЕ(Перечисление.ДополнительнаяКолонкаПечатныхФормДокументов.Код)
    |           ТОГДА СчетНаОплату.Номенклатура.Код
    |       КОГДА &ДополнительнаяКолонкаПечатныхФормДокументов = ЗНАЧЕНИЕ(Перечисление.ДополнительнаяКолонкаПечатныхФормДокументов.Артикул)
    |           ТОГДА СчетНаОплату.Номенклатура.Артикул
    |       ИНАЧЕ """"
    |   КОНЕЦ КАК НоменклатураАртикул,
    |   СчетНаОплату.Номенклатура.НаименованиеПолное КАК НоменклатураНаименование,
    |   """" КАК Содержание,
    |   ЕСТЬNULL(СчетНаОплату.Номенклатура.ЕдиницаИзмерения, ЗНАЧЕНИЕ(Справочник.КлассификаторЕдиницИзмерения.ПустаяСсылка)) КАК ЕдиницаИзмерения,
    |   ЕСТЬNULL(СчетНаОплату.Номенклатура.ЕдиницаИзмерения.Код, """") КАК ЕдиницаИзмеренияКод,
    |   ЕСТЬNULL(СчетНаОплату.Номенклатура.ЕдиницаИзмерения.Наименование, """") КАК ЕдиницаИзмеренияНаименование,
    |   ЕСТЬNULL(СчетНаОплату.Номенклатура.ЕдиницаИзмерения.НаименованиеПолное, """") КАК ЕдиницаИзмеренияНаименованиеПолное,
    |   СчетНаОплату.Количество КАК Количество,
    |   СчетНаОплату.Цена КАК Цена,
    |   СчетНаОплату.Сумма КАК Сумма,
    |   СчетНаОплату.СтавкаНДС КАК СтавкаНДС,
    |   СчетНаОплату.СуммаНДС КАК СуммаНДС
    |ИЗ
    |   Документ.СчетНаОплатуПокупателю.Товары КАК СчетНаОплату
    |       ВНУТРЕННЕЕ СОЕДИНЕНИЕ ДокументыДляПечати КАК ДокументыДляПечати
    |       ПО СчетНаОплату.Ссылка = ДокументыДляПечати.Ссылка
    |
    |ОБЪЕДИНИТЬ ВСЕ
    |
    |ВЫБРАТЬ
    |   СчетНаОплату.Ссылка,
    |   ДокументыДляПечати.ДатаДокумента,
    |   ЗНАЧЕНИЕ(Перечисление.ТабличныеЧастиДокументов.Услуги),
    |   2,
    |   СчетНаОплату.НомерСтроки,
    |   СчетНаОплату.Номенклатура,
    |   ВЫБОР
    |       КОГДА &ДополнительнаяКолонкаПечатныхФормДокументов = ЗНАЧЕНИЕ(Перечисление.ДополнительнаяКолонкаПечатныхФормДокументов.Код)
    |           ТОГДА СчетНаОплату.Номенклатура.Код
    |       КОГДА &ДополнительнаяКолонкаПечатныхФормДокументов = ЗНАЧЕНИЕ(Перечисление.ДополнительнаяКолонкаПечатныхФормДокументов.Артикул)
    |           ТОГДА СчетНаОплату.Номенклатура.Артикул
    |       ИНАЧЕ """"
    |   КОНЕЦ,
    |" + ЧастьЗапросаДляВыбораСодержанияУслуг + ",
    |" + ЧастьЗапросаДляВыбораСодержанияУслуг + ",
    |   ЕСТЬNULL(СчетНаОплату.Номенклатура.ЕдиницаИзмерения, ЗНАЧЕНИЕ(Справочник.КлассификаторЕдиницИзмерения.ПустаяСсылка)),
    |   ЕСТЬNULL(СчетНаОплату.Номенклатура.ЕдиницаИзмерения.Код, """"),
    |   ЕСТЬNULL(СчетНаОплату.Номенклатура.ЕдиницаИзмерения.Наименование, """"),
    |   ЕСТЬNULL(СчетНаОплату.Номенклатура.ЕдиницаИзмерения.НаименованиеПолное, """"),
    |   СчетНаОплату.Количество,
    |   СчетНаОплату.Цена,
    |   СчетНаОплату.Сумма,
    |   СчетНаОплату.СтавкаНДС,
    |   СчетНаОплату.СуммаНДС
    |ИЗ
    |   Документ.СчетНаОплатуПокупателю.Услуги КАК СчетНаОплату
    |       ВНУТРЕННЕЕ СОЕДИНЕНИЕ ДокументыДляПечати КАК ДокументыДляПечати
    |       ПО СчетНаОплату.Ссылка = ДокументыДляПечати.Ссылка
    |
    |УПОРЯДОЧИТЬ ПО
    |   ДатаДокумента,
    |   Документ,
    |   ПорядокТабличнойЧасти,
    |   НомерСтроки";
    
    Возврат ТекстЗапроса;
    
КонецФункции
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.05.2014, 15:33
Ответы с готовыми решениями:

Как создать внешнюю печатную форму на основе имеющегося макета под обычное приложение?
Платформа: 1С:Предприятие 8.3. Конфигурация: Бухгалтерия предприятия 3.0.33.20 Как создать...

Как подвесить внешнюю печатную форму?
Напшел внешнюю печатную форму, как ее подвесит в камин к кнопке печать?

Добавление реквизитов во внешнюю печатную форму
Добрый вечер! Суть проблемы...Создал внешнюю печатную форму для Транспортной накладной ,все...

ЗУП 3.1. Необходимо доработать внешнюю печатную форму
Здравствуйте. Имеется ВПФ, необходимо её доработать так, чтобы сначала открывалась форма,...

11
о_____О
Эксперт 1С
224 / 223 / 37
Регистрация: 19.11.2010
Сообщений: 1,062
14.05.2014, 16:20 2
Если грешите на "Печать", посмотрите с какими параметрами она вызывается.
0
286 / 186 / 18
Регистрация: 20.02.2012
Сообщений: 925
14.05.2014, 17:55 3
1C
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
Процедура Печать( МассивОбъектовНазначения, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода ) Экспорт
    
    //Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ПФ_MXL_ТТН") Тогда
    //  УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм,
    //  "ТТН","Товарно-транспортнаяНакладная", СформироватьПечатнуюФормуТТН(КоллекцияПечатныхФорм, ПараметрыИсточника, 
    //  ПараметрыВывода));  
    //КонецЕсли;
    
    //++рзд
    Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ТовТранспНаклад") Тогда
        
        ТабличныйДокумент = СформироватьПечатнуюФормуТТН(МассивОбъектовНазначения,ОбъектыПечати);
        
        УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
        КоллекцияПечатныхФорм,
        "ТовТранспНаклад",
        "ТовТранспНаклад",
        ТабличныйДокумент
        );
        
    КонецЕсли;
 
 
    
КонецПроцедуры
как пример. всего 4 параметра а не 5
0
0 / 0 / 0
Регистрация: 17.05.2012
Сообщений: 13
15.05.2014, 09:44  [ТС] 4
Спасибо Вам за ответы, но я уже пыталась убрать параметр ПараметрыПечати а вместе с ним и блок (т.к там ссылка на этот параметр)

Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ПредварительныйПросмотрПечатнойФормыСчетНаОплату") Тогда
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ПредварительныйПросмотрПечатнойФормыСчетНаОплату", "Счет на оплату",
ПечатьПредварительныйПросмотрСчетаНаОплату(ПараметрыПечати.Организация, ОбъектыПечати, "СчетЗаказ"));
ЗаполнитьПараметрыЭлектроннойПочты = Ложь;
КонецЕсли;

но в результате выдается ошибка "невозможно сформировать печатную форму"

Добавлено через 15 часов 42 минуты
Точнее ошибка:
В обработчике печати не был сформирован Табличный документ.
Я так понимаю что у меня проблема при выводе на просмотр?
0
286 / 186 / 18
Регистрация: 20.02.2012
Сообщений: 925
15.05.2014, 10:26 5
Отладчиком поймай в какой строке застревает. Так трудно сказать в чем дело
0
0 / 0 / 0
Регистрация: 17.05.2012
Сообщений: 13
15.05.2014, 10:31  [ТС] 6
Переделала процедуру печать. Все эти ошибки исчезли.
Появились новые ;-(((( Поле объекта не обнаружено (Получатель)
Пожалуйста посоветуйте в каком месте искать
0
286 / 186 / 18
Регистрация: 20.02.2012
Сообщений: 925
15.05.2014, 10:34 7
Уже совсем другое, смотрите запрос , или вывод в макет, возможно нет параметра "Получатель"

Добавлено через 54 секунды
1C
1
Функция ПечатьСчетаНаОплату
поиском тут нашел
0
0 / 0 / 0
Регистрация: 17.05.2012
Сообщений: 13
15.05.2014, 10:57  [ТС] 8
Ну да, у меня нет параметра Получатель ни в самом макете ни в функции вывода на макет.
Не могу понять откуда он берется ;-((
0
286 / 186 / 18
Регистрация: 20.02.2012
Сообщений: 925
15.05.2014, 11:02 9
попробуй его затереть, без него вывести отчет

Добавлено через 4 минуты
однако в запросе он есть
1C
1
    |   СчетНаОплату.ОрганизацияПолучатель КАК Получатель,
0
0 / 0 / 0
Регистрация: 17.05.2012
Сообщений: 13
15.05.2014, 12:41  [ТС] 10
А вот кроме как в запросе его нигде нет- тут я его затерла- ничего не поменялось
видимо проблема где-то в другом месте

Добавлено через 1 час 6 минут
Если прогнать отладчиком то получается вот это:

{ВнешняяОбработка.СчетАнглийский.МодульОбъекта(248)}: Поле объекта не обнаружено (Получатель)
СведенияОПолучателе = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛице(СведенияОДокументе.Получате ль, СведенияОДокументе.ДатаДляПолученияСведений);

Где это можно исправить?
0
21 / 21 / 3
Регистрация: 22.04.2014
Сообщений: 112
15.05.2014, 13:05 11
User17, Попробуйте закомментировать эту строку
1C
1
//СведенияОПолучателе = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛице(СведенияОДокументе.Получатель, СведенияОДокументе.ДатаДляПолученияСведений);

А нет стоп не надо, у вас там от неё все пляшет
0
0 / 0 / 0
Регистрация: 17.05.2012
Сообщений: 13
15.05.2014, 13:11  [ТС] 12
Ну да, это же все перенесено из конфигурации- и там оно работает- а у меня почему-то нет..
0
15.05.2014, 13:11
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.05.2014, 13:11
Помогаю со студенческими работами здесь

Как сделать внешнюю печатную форму из стандартной в 1С
Всем привет! Как можно сделать из печатной формы &quot;Отчет о розничных продажах&quot; сделать внешнюю...

V8.3: Как программно сформировать внешнюю печатную форму документа
Доброго дня, всем. Имеется обработка в которой есть реквизит Объект.ПрихНакл, в которой хранится...

Как вывести во внешнюю печатную форму сумму с проводки документа
Добрый день! Подскажите, как вывести во внешнюю печатную форму сумму с проводки документа...

Обращение к реквизиту формы документа через внешнюю печатную форму.
Здравствуйте Есть внешняя печатная форма и документ &quot;Договор&quot;. У документа есть на форме реквизит...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru