Форум программистов, компьютерный форум, киберфорум
Наши страницы
1С: Типовые и стандартные решения
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
dreamstreet
0 / 0 / 2
Регистрация: 10.10.2014
Сообщений: 83
1

Добавление нового блока(колонки) справа к счёту на оплату покупателю

29.03.2016, 17:47. Просмотров 805. Ответов 13
Метки нет (Все метки)

Всем привет. Такой вопрос: нужно изменить макет печатной формы "СчётНаОплатуПокупателю": нужно справа добавить информацию. Я создал новую вертикальную область под эту информацию, написал в этой области информацию, то когда выводить в режиме отладки макет этого документа, то в этой области ничего нету. Я так понимаю вся проблема в границе(на второй картинке). Обведенная область вообще не отображается, как бы я не присоединял её в коде
0
Миниатюры
Добавление нового блока(колонки) справа к счёту на оплату покупателю   Добавление нового блока(колонки) справа к счёту на оплату покупателю  
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.03.2016, 17:47
Ответы с готовыми решениями:

Добавление нового блока, не замещая старый
В чат подгружаются сообщения, $("#chat_content").empty(); ...

Колонки справа налево
Всем привет. Подскажите пожалуйста. В ворде надо что бы колонки шли с права налево. Первая колонка...

Можно ли в представлении с респонсами отобразить справа от них колонки
Подскажите можно ли в представлении, в котором отображается респонсы (т.е. есть иерархия)...

Появление блока справа налево
Как собственно реализовать? Нашел такой код, но у меня не работает, наверное я что-то не так в css...

Содержимое блока разместить справа
http://divanchik72.ru/ Блок меню (div class=menu) не могу сделать, что бы содержимое блока...

13
GreenkA
Форумчанин
Эксперт 1С
2997 / 1928 / 520
Регистрация: 25.06.2009
Сообщений: 6,815
29.03.2016, 17:57 2
dreamstreet, посмотрите для области Сумма может в свойствах выставлено окончание страницы.
0
dreamstreet
0 / 0 / 2
Регистрация: 10.10.2014
Сообщений: 83
30.03.2016, 01:36  [ТС] 3
Нет, это свойство не включено
0
GreenkA
Форумчанин
Эксперт 1С
2997 / 1928 / 520
Регистрация: 25.06.2009
Сообщений: 6,815
30.03.2016, 10:28 4
dreamstreet, напишите код вывода областей макета в табличный документ.

Добавлено через 14 секунд
это УТ?
0
30.03.2016, 10:28
dreamstreet
0 / 0 / 2
Регистрация: 10.10.2014
Сообщений: 83
30.03.2016, 14:55  [ТС] 5
Получилось вывести "Информация", которая находиться в шапке таблицы. Нужно было правильно присоединить и вывести область "ШапкаТаблицы|Область1". Но справа всё равно не выводит, а выводит под элементами табличной части. Конфигурация Бухгалтерия для Украины
0
GreenkA
Форумчанин
Эксперт 1С
2997 / 1928 / 520
Регистрация: 25.06.2009
Сообщений: 6,815
30.03.2016, 15:52 6
Еще раз...
Цитата Сообщение от GreenkO Посмотреть сообщение
dreamstreet, напишите код вывода областей макета в табличный документ.
0
dreamstreet
0 / 0 / 2
Регистрация: 10.10.2014
Сообщений: 83
30.03.2016, 17:52  [ТС] 7
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
  Процедура КнопкаВыполнитьНажатие(Кнопка)
    Перем мВалютаРегламентированногоУчета;
 
    Тип="Счёт";                        
    Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект);
    Запрос.Текст ="
    |ВЫБРАТЬ
    |   Номер,
    |   Дата,
    |   ДоговорКонтрагента,
    |   ДоговорКонтрагента.Дата         КАК ДоговорДата,
    |   ДоговорКонтрагента.Номер        КАК ДоговорНомер,
    |   ДоговорКонтрагента.НаименованиеДляПечати КАК ДоговорНаименованиеДляПечати,
    |   ДоговорКонтрагента.ВидДоговора  КАК ВидДоговораКонтрагента,
    |   Ответственный.ФизЛицо.Наименование КАК Отпустил,
    |   Организация,
    |   Контрагент КАК Покупатель,
    |   Организация КАК Поставщик,
    |   СуммаДокумента,
    |   ВалютаДокумента,
    |   УчитыватьНДС,
    |   СуммаВключаетНДС
    |ИЗ
    |   Документ.СчетНаОплатуПокупателю КАК ЗаказПокупателя
    |
    |ГДЕ
    |   ЗаказПокупателя.Ссылка = &ТекущийДокумент";
 
    Шапка = Запрос.Выполнить().Выбрать();
    Шапка.Следующий();
 
    ТабДокумент = Новый ТабличныйДокумент;
    ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ЗаказПокупателя_СчетЗаказ";
 
    Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект);
    
    ЧастьЗапросаДляВыбораСодержанияУслуг = ФормированиеПечатныхФорм.ПолучитьЧастьЗапросаДляВыбораСодержанияУслуг("ЗаказПокупателя");
    
    Запрос.Текст = "ВЫБРАТЬ
                   |    ВложенныйЗапрос.Номенклатура,
                   |    ВЫРАЗИТЬ(ВложенныйЗапрос.Номенклатура.НаименованиеПолное КАК Строка(1000)) КАК Товар,
                   |    ВложенныйЗапрос.Номенклатура.Артикул КАК Артикул,
                   |    ВложенныйЗапрос.Номенклатура.Код КАК Код,
                   |    ВложенныйЗапрос.Количество,
                   |    ВложенныйЗапрос.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
                   |    ВложенныйЗапрос.Цена,
                   |    ВложенныйЗапрос.СуммаБезСкидки,
                   |    ВложенныйЗапрос.СуммаСкидки,
                   |    ВложенныйЗапрос.Сумма,
                   |    ВложенныйЗапрос.СуммаНДС,
                   |    ВложенныйЗапрос.НомерСтроки КАК НомерСтроки,
                   |    1 КАК ID
                   |ИЗ
                   |    (ВЫБРАТЬ
                   |        ЗаказПокупателя.Номенклатура КАК Номенклатура,
                   |        ЗаказПокупателя.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
                   |        ЗаказПокупателя.Цена КАК Цена,
                   |        СУММА(ЗаказПокупателя.Количество)       КАК Количество,
                   |        СУММА(ЗаказПокупателя.СуммаБезСкидки)   КАК СуммаБезСкидки,
                   |        СУММА(ЗаказПокупателя.СуммаСкидки)      КАК СуммаСкидки,
                   |        СУММА(ЗаказПокупателя.Сумма)            КАК Сумма,
                   |        СУММА(ЗаказПокупателя.СуммаНДС)         КАК СуммаНДС,
                   |        МИНИМУМ(ЗаказПокупателя.НомерСтроки)    КАК НомерСтроки
                   |    ИЗ
                   |        Документ.СчетНаОплатуПокупателю.Товары КАК ЗаказПокупателя
                   |    
                   |    ГДЕ
                   |        ЗаказПокупателя.Ссылка = &ТекущийДокумент
                   |    
                   |    СГРУППИРОВАТЬ ПО
                   |        ЗаказПокупателя.Номенклатура,
                   |        ЗаказПокупателя.ЕдиницаИзмерения,
                   |        ЗаказПокупателя.Цена,
                   |        ЗаказПокупателя.СтавкаНДС) КАК ВложенныйЗапрос
                   |
                   |ОБЪЕДИНИТЬ ВСЕ
                   |
                   |ВЫБРАТЬ
                   |    " + ЧастьЗапросаДляВыбораСодержанияУслуг + ",
                   |    " + ЧастьЗапросаДляВыбораСодержанияУслуг + ",
                   |    ЗаказПокупателя.Номенклатура.Артикул КАК Артикул,
                   |    ЗаказПокупателя.Номенклатура.Код КАК Код,
                   |    ЗаказПокупателя.Количество,
                   |    ЗаказПокупателя.Номенклатура.БазоваяЕдиницаИзмерения.Наименование,
                   |    ЗаказПокупателя.Цена,
                   |    ЗаказПокупателя.СуммаБезСкидки,
                   |    ЗаказПокупателя.СуммаСкидки,
                   |    ЗаказПокупателя.Сумма,
                   |    ЗаказПокупателя.СуммаНДС,
                   |    ЗаказПокупателя.НомерСтроки,
                   |    2
                   |ИЗ
                   |    Документ.СчетНаОплатуПокупателю.Услуги КАК ЗаказПокупателя
                   |
                   |ГДЕ
                   |    ЗаказПокупателя.Ссылка = &ТекущийДокумент
                   |
                   |УПОРЯДОЧИТЬ ПО
                   |    ID,
                   |    НомерСтроки";
    
    ЗапросТовары = Запрос.Выполнить().Выгрузить();
 
    Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект);
    Запрос.Текст = "ВЫБРАТЬ
                   |    ВложенныйЗапрос.Номенклатура,
                   |    ВЫРАЗИТЬ(ВложенныйЗапрос.Номенклатура.НаименованиеПолное КАК Строка(1000)) КАК Товар,
                   |    ВложенныйЗапрос.Номенклатура.Артикул КАК Артикул,
                   |    ВложенныйЗапрос.Номенклатура.Код КАК Код,
                   |    ВложенныйЗапрос.Количество,
                   |    ВложенныйЗапрос.ЕдиницаИзмерения,
                   |    ВложенныйЗапрос.Цена,
                   |    ВложенныйЗапрос.Сумма,
                   |    ВложенныйЗапрос.НомерСтроки КАК НомерСтроки
                   |ИЗ
                   |    (ВЫБРАТЬ
                   |        ЗаказПокупателя.Номенклатура КАК Номенклатура,
                   |        ЗаказПокупателя.Номенклатура.БазоваяЕдиницаИзмерения.Наименование КАК ЕдиницаИзмерения,
                   |        ЗаказПокупателя.Цена КАК Цена,
                   |        СУММА(ЗаказПокупателя.Количество) КАК Количество,
                   |        СУММА(ЗаказПокупателя.Сумма) КАК Сумма,
                   |        МИНИМУМ(ЗаказПокупателя.НомерСтроки) КАК НомерСтроки
                   |    ИЗ
                   |        Документ.СчетНаОплатуПокупателю.ВозвратнаяТара КАК ЗаказПокупателя
                   |    
                   |    ГДЕ
                   |        ЗаказПокупателя.Ссылка = &ТекущийДокумент
                   |    
                   |    СГРУППИРОВАТЬ ПО
                   |        ЗаказПокупателя.Номенклатура,
                   |        ЗаказПокупателя.Цена) КАК ВложенныйЗапрос
                   |
                   |УПОРЯДОЧИТЬ ПО
                   |    НомерСтроки";
    ЗапросТара = Запрос.Выполнить().Выгрузить();    
    
    Макет = ПолучитьМакет("СчетЗаказ");
 
    // печать производится на языке, указанном в настройках пользователя
    КодЯзыкаПечать = Локализация.ПолучитьЯзыкФормированияПечатныхФорм(УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"), "РежимФормированияПечатныхФорм"));
    Макет.КодЯзыкаМакета = КодЯзыкаПечать;
    
    // Выводим шапку накладной
    СведенияОПокупателе = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Покупатель, Шапка.Дата,,,КодЯзыкаПечать);
    СведенияОПоставщике = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Поставщик, Шапка.Дата,,,КодЯзыкаПечать);
    
    Если Тип = "Счет" Тогда
        ОбластьМакета                               = Макет.ПолучитьОбласть("ЗаголовокСчета");
        ОбластьМакета.Параметры.НазваниеОрганизации = СведенияОПоставщике.ПолноеНаименование;
        ОбластьМакета.Параметры.ЕДРПОУОрганизации   = УправлениеКонтактнойИнформацией.ПолучитьКодОрганизации(СведенияОПоставщике);
        Если ТипЗнч(СсылкаНаОбъект.СтруктурнаяЕдиница) = Тип("СправочникСсылка.БанковскиеСчета") Тогда
            Банк        = СсылкаНаОбъект.СтруктурнаяЕдиница.Банк;
            МФО         = СсылкаНаОбъект.СсылкаНаОбъект.Банк.Код;
            НомерСчета  = СсылкаНаОбъект.СтруктурнаяЕдиница.НомерСчета;
        Иначе
            // покажем банковские реквизиты основного счета организации
            Банк        = СведенияОПоставщике.Банк;
            МФО         = СведенияОПоставщике.МФО;
            НомерСчета  = СведенияОПоставщике.НомерСчета;
        КонецЕсли;
        
        ОбластьМакета.Параметры.БанкОрганизации                 = Банк;
        ОбластьМакета.Параметры.МФОБанкаОрганизации             = МФО;
        ОбластьМакета.Параметры.НомерРасчетногоСчетаОрганизации = НомерСчета;
            
        Если  НЕ Шапка.ВидДоговораКонтрагента = Перечисления.ВидыДоговоровКонтрагентов.СКомиссионером  
            И НЕ Шапка.ВалютаДокумента <> мВалютаРегламентированногоУчета Тогда
            ТабДокумент.Вывести(ОбластьМакета);
        КонецЕсли;
    КонецЕсли; 
 
    ОбластьМакета = Макет.ПолучитьОбласть("Заголовок");
    Если Шапка.ВидДоговораКонтрагента = Перечисления.ВидыДоговоровКонтрагентов.СКомиссионером  Тогда
        ОбластьМакета.Параметры.ТекстЗаголовка = ОбщегоНазначения.СформироватьЗаголовокДокумента(Шапка, НСтр("ru='Список товаров на комиссию';uk='Список товарів на комісію'",КодЯзыкаПечать),КодЯзыкаПечать);
    Иначе   
        ОбластьМакета.Параметры.ТекстЗаголовка = ОбщегоНазначения.СформироватьЗаголовокДокумента(Шапка, НСтр("ru='Счет на оплату';uk='Рахунок на оплату'",КодЯзыкаПечать),КодЯзыкаПечать);
    КонецЕсли; 
 
    ТабДокумент.Вывести(ОбластьМакета);
 
    ОбластьМакета = Макет.ПолучитьОбласть("Поставщик");
    ОбластьМакета.Параметры.Заполнить(Шапка);
    ОбластьМакета.Параметры.ПредставлениеПоставщика = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПоставщике, "ПолноеНаименование,",,КодЯзыкаПечать); 
    Если Тип = "Счет" Тогда
        ОбластьМакета.Параметры.РеквизитыПоставщика =  НСтр("ru='Т/с ';uk='П/р '",КодЯзыкаПечать) + НомерСчета + НСтр("ru=', Банк ';uk=', Банк '",КодЯзыкаПечать) + Банк + НСтр("ru=', МФО ';uk=', МФО '",КодЯзыкаПечать) + МФО + Символы.ПС + 
                                                    ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПоставщике, "ЮридическийАдрес,Телефоны,/,КодПоЕДРПОУ,КодПоДРФО,ИНН,НомерСвидетельства,/,ИнформацияОСтатусеПлательщикаНалогов,",,КодЯзыкаПечать);
    КонецЕсли;
    ТабДокумент.Вывести(ОбластьМакета);
    
    ОбластьМакета = Макет.ПолучитьОбласть("Покупатель");
    ОбластьМакета.Параметры.Заполнить(Шапка);
    ОбластьМакета.Параметры.ПредставлениеПокупателя = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПокупателе, "ПолноеНаименование,",,КодЯзыкаПечать);
    ОбластьМакета.Параметры.РеквизитыПокупателя     = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПокупателе,"Телефоны,",,КодЯзыкаПечать);
    ТабДокумент.Вывести(ОбластьМакета);
 
    // Выводим дополнительно информацию о договоре и сделке
    СписокДополнительныхПараметров = "ДоговорНаименованиеДляПечати,";
    МассивСтруктурСтрок = ФормированиеПечатныхФорм.ДополнительнаяИнформация(Шапка,СписокДополнительныхПараметров,КодЯзыкаПечать);
    ОбластьМакета = Макет.ПолучитьОбласть("ДопИнформация");
    Для каждого СтруктураСтроки Из МассивСтруктурСтрок Цикл
        ОбластьМакета.Параметры.Заполнить(СтруктураСтроки);
        ТабДокумент.Вывести(ОбластьМакета);
    КонецЦикла;
0
dreamstreet
0 / 0 / 2
Регистрация: 10.10.2014
Сообщений: 83
30.03.2016, 17:52  [ТС] 8
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
// Вывести табличную часть
    ОбластьИтого = "Итого";
    
    ЕстьСкидки = (ЗапросТовары.Итог("СуммаСкидки") <> 0);
    
    ДопКолонка = Константы.ДополнительнаяКолонкаПечатныхФормДокументов.Получить();
    Если ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Артикул Тогда
        ВыводитьКоды = Истина;
        Колонка = "Артикул";
    ИначеЕсли ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Код Тогда
        ВыводитьКоды = Истина;
        Колонка = "Код";
    Иначе
        ВыводитьКоды = Ложь;
    КонецЕсли;
    
    ОбластьНомера = Макет.ПолучитьОбласть("ШапкаТаблицы|НомерСтроки");
    ОбластьКодов  = Макет.ПолучитьОбласть("ШапкаТаблицы|КолонкаКодов");
    ОбластьДанных = Макет.ПолучитьОбласть("ШапкаТаблицы|Данные");
    ОбластьСкидка = Макет.ПолучитьОбласть("ШапкаТаблицы|Скидка");
    ОбластьСуммы  = Макет.ПолучитьОбласть("ШапкаТаблицы|Сумма");
    ОбластьДодаток2 = Макет.ПолучитьОбласть("ШапкаТаблицы|Додаток2");
    
    ТабДокумент.Вывести(ОбластьНомера);
    Если ВыводитьКоды Тогда
        ОбластьКодов.Параметры.ИмяКолонкиКодов = Колонка;
        ТабДокумент.Присоединить(ОбластьКодов);
    КонецЕсли;
    
    Суффикс = "";
    Если Шапка.УчитыватьНДС Тогда
        Если Шапка.СуммаВключаетНДС Тогда
            Суффикс  = Суффикс  + НСтр("ru=' с ';uk=' з '",КодЯзыкаПечать);
        Иначе   
            Суффикс  = Суффикс  + НСтр("ru=' без ';uk=' без '",КодЯзыкаПечать);
        КонецЕсли;
        Суффикс = Суффикс  + НСтр("ru='НДС';uk='ПДВ'",КодЯзыкаПечать);
    КонецЕсли;
    ОбластьДанных.Параметры.Цена  = НСтр("ru='Цена';uk='Ціна'",КодЯзыкаПечать) + Суффикс;
    ТабДокумент.Присоединить(ОбластьДанных);
    Если ЕстьСкидки Тогда
        ТабДокумент.Присоединить(ОбластьСкидка);
    КонецЕсли;
    
    ОбластьСуммы.Параметры.Сумма = НСтр("ru='Сумма';uk='Сума'",КодЯзыкаПечать)+ Суффикс;
    ТабДокумент.Присоединить(ОбластьСуммы);
    //ТабДокумент.Вывести(ОбластьМакета);
    ТабДокумент.Вывести(ОбластьДодаток2);
    
    ОбластьКолонкаТовар = Макет.Область("Товар");
    Если Не ВыводитьКоды Тогда
        ОбластьКолонкаТовар.ШиринаКолонки = ОбластьКолонкаТовар.ШиринаКолонки + 
                                            Макет.Область("КолонкаКодов").ШиринаКолонки;
    КонецЕсли;
    Если НЕ ЕстьСкидки Тогда
        ОбластьКолонкаТовар.ШиринаКолонки = ОбластьКолонкаТовар.ШиринаКолонки + 
                                            Макет.Область("СуммаБезСкидки").ШиринаКолонки +
                                            Макет.Область("СуммаСкидки").ШиринаКолонки;
    КонецЕсли;
    
    СуммаБезСкидки  = 0;
    СуммаСкидки     = 0;
    Сумма           = 0;
    СуммаНДС        = 0;
    
    ОбластьНомера = Макет.ПолучитьОбласть("Строка|НомерСтроки");
    ОбластьКодов  = Макет.ПолучитьОбласть("Строка|КолонкаКодов");
    ОбластьДанных = Макет.ПолучитьОбласть("Строка|Данные");
    ОбластьСкидки = Макет.ПолучитьОбласть("Строка|Скидка");
    ОбластьСуммы  = Макет.ПолучитьОбласть("Строка|Сумма");
 
    Для каждого ВыборкаСтрокТовары Из ЗапросТовары Цикл 
 
        Если НЕ ЗначениеЗаполнено(ВыборкаСтрокТовары.Номенклатура) Тогда
            Сообщить(НСтр("ru='В одной из строк не заполнено значение номенклатуры - строка при печати пропущена.';uk='В одному з рядків не заповнене значення номенклатури - рядок під час друку буде пропущений.'"), СтатусСообщения.Важное);
            Продолжить;
        КонецЕсли;
 
 
        ОбластьНомера.Параметры.НомерСтроки = ЗапросТовары.Индекс(ВыборкаСтрокТовары) + 1;
        ТабДокумент.Вывести(ОбластьНомера);
        
        Если ВыводитьКоды Тогда
            Если Колонка = "Артикул" Тогда
                ОбластьКодов.Параметры.Артикул = ВыборкаСтрокТовары.Артикул;
            Иначе
                ОбластьКодов.Параметры.Артикул = ВыборкаСтрокТовары.Код;
            КонецЕсли;
            ТабДокумент.Присоединить(ОбластьКодов);
        КонецЕсли;
 
        ОбластьДанных.Параметры.Заполнить(ВыборкаСтрокТовары);
        ОбластьДанных.Параметры.Товар = СокрЛП(ВыборкаСтрокТовары.Товар);
        ТабДокумент.Присоединить(ОбластьДанных);
 
        Если ЕстьСкидки Тогда
            ОбластьСкидки.Параметры.Заполнить(ВыборкаСтрокТовары);
            ТабДокумент.Присоединить(ОбластьСкидки);
        КонецЕсли;
 
        ОбластьСуммы.Параметры.Заполнить(ВыборкаСтрокТовары);
        ТабДокумент.Присоединить(ОбластьСуммы);
        
        СуммаБезСкидки = СуммаБезСкидки + ВыборкаСтрокТовары.СуммаБезСкидки;
        СуммаСкидки    = СуммаСкидки    + ВыборкаСтрокТовары.СуммаСкидки;
        Сумма          = Сумма          + ВыборкаСтрокТовары.Сумма;
        СуммаНДС       = СуммаНДС       + ВыборкаСтрокТовары.СуммаНДС;
 
    КонецЦикла;
 
    // Вывести Итого
    ОбластьНомера = Макет.ПолучитьОбласть("Итого|НомерСтроки");
    ОбластьКодов  = Макет.ПолучитьОбласть("Итого|КолонкаКодов");
    ОбластьДанных = Макет.ПолучитьОбласть("Итого|Данные");
    ОбластьСкидки = Макет.ПолучитьОбласть("Итого|Скидка");
    ОбластьСуммы  = Макет.ПолучитьОбласть("Итого|Сумма");
    
    ТабДокумент.Вывести(ОбластьНомера);
    Если ВыводитьКоды Тогда
        ТабДокумент.Присоединить(ОбластьКодов);
    КонецЕсли;
    ТабДокумент.Присоединить(ОбластьДанных);
    
    Если ЕстьСкидки Тогда
        ОбластьСкидки.Параметры.ВсегоСуммаБезСкидки = ОбщегоНазначения.ФорматСумм(СуммаБезСкидки);      
        ОбластьСкидки.Параметры.ВсегоСуммаСкидки    = ОбщегоНазначения.ФорматСумм(СуммаСкидки);
        ТабДокумент.Присоединить(ОбластьСкидки);
    КонецЕсли;
    
    ОбластьСуммы.Параметры.Всего = ОбщегоНазначения.ФорматСумм(Сумма);
    ТабДокумент.Присоединить(ОбластьСуммы);
 
    // Вывести ИтогоНДС
    Если Шапка.УчитыватьНДС Тогда
        // НДС
        ОбластьМакета = Макет.ПолучитьОбласть("ИтогоНДС");
        ОбластьМакета.Параметры.ВсегоНДС = ОбщегоНазначения.ФорматСумм(СуммаНДС,,"""");
        ОбластьМакета.Параметры.НДС      = ?(Шапка.СуммаВключаетНДС, НСтр("ru='В том числе НДС:';uk='У тому числі ПДВ:'",КодЯзыкаПечать), НСтр("ru='Сумма НДС:';uk='Сума ПДВ:'",КодЯзыкаПечать));
        ТабДокумент.Вывести(ОбластьМакета);
        
        // всего с НДС (если сумма не включает НДС)
        Если НЕ Шапка.СуммаВключаетНДС Тогда
            ОбластьМакета = Макет.ПолучитьОбласть("ИтогоНДС");
            ОбластьМакета.Параметры.ВсегоНДС = ОбщегоНазначения.ФорматСумм(Сумма + СуммаНДС);
            ОбластьМакета.Параметры.НДС      = НСтр("ru='Всего с НДС:';uk='Всього із ПДВ:'",КодЯзыкаПечать);
            ТабДокумент.Вывести(ОбластьМакета);
        КонецЕсли;
    КонецЕсли;
 
    // выведем таблицу с возвратной тарой
    Если ЗапросТара.Количество() > 0 Тогда
        // сделаем отступ от основной таблицы
        ОбластьПробел = Макет.ПолучитьОбласть("Пробел");
        ТабДокумент.Вывести(ОбластьПробел);
        
        ОбластьНомера = Макет.ПолучитьОбласть("ШапкаТаблицыТара|НомерСтрокиТара");
        ОбластьКодов  = Макет.ПолучитьОбласть("ШапкаТаблицыТара|КолонкаКодовТара");
        ОбластьДанных = Макет.ПолучитьОбласть("ШапкаТаблицыТара|ДанныеТара");
        
        ТабДокумент.Вывести(ОбластьНомера);
        Если ВыводитьКоды Тогда
            ОбластьКодов.Параметры.ИмяКолонкиКодов = Колонка;
            ТабДокумент.Присоединить(ОбластьКодов);
        КонецЕсли;
        ТабДокумент.Присоединить(ОбластьДанных);
        
        ОбластьКолонкаТара = Макет.Область("Тара");
        Если Не ВыводитьКоды Тогда
            ОбластьКолонкаТара.ШиринаКолонки = ОбластьКолонкаТара.ШиринаКолонки + 
            Макет.Область("КолонкаКодовТара").ШиринаКолонки;
        КонецЕсли;
        
        ОбластьНомера = Макет.ПолучитьОбласть("СтрокаТара|НомерСтрокиТара");
        ОбластьКодов  = Макет.ПолучитьОбласть("СтрокаТара|КолонкаКодовТара");
        ОбластьДанных = Макет.ПолучитьОбласть("СтрокаТара|ДанныеТара");
        
        СуммаТара    = 0;
        
        Для каждого ВыборкаСтрокТара Из ЗапросТара Цикл 
            
            Если НЕ ЗначениеЗаполнено(ВыборкаСтрокТара.Номенклатура) Тогда
                Сообщить(НСтр("ru='В одной из строк не заполнено значение тары - строка при печати пропущена.';uk='В одному з рядків не заповнене значення тари - рядок під час друку буде пропущений.'"), СтатусСообщения.Важное);
                Продолжить;
            КонецЕсли;
            
            ОбластьНомера.Параметры.НомерСтроки = ЗапросТара.Индекс(ВыборкаСтрокТара) + 1;
            ТабДокумент.Вывести(ОбластьНомера);
            
            Если ВыводитьКоды Тогда
                Если Колонка = "Артикул" Тогда
                    ОбластьКодов.Параметры.Артикул = ВыборкаСтрокТара.Артикул;
                Иначе
                    ОбластьКодов.Параметры.Артикул = ВыборкаСтрокТара.Код;
                КонецЕсли;
                ТабДокумент.Присоединить(ОбластьКодов);
            КонецЕсли;
            
            ОбластьДанных.Параметры.Заполнить(ВыборкаСтрокТара);
            ОбластьДанных.Параметры.Товар = СокрЛП(ВыборкаСтрокТара.Товар);
            ТабДокумент.Присоединить(ОбластьДанных);
        
            СуммаТара = СуммаТара + ВыборкаСтрокТара.Сумма;
            
            
        КонецЦикла;
        
        // Вывести Итого
        ОбластьМакета = Макет.ПолучитьОбласть("ИтогоТара");
        ОбластьМакета.Параметры.Всего = ОбщегоНазначения.ФорматСумм(СуммаТара);
        ТабДокумент.Вывести(ОбластьМакета);
        
        // сделаем отступ 
        ТабДокумент.Вывести(ОбластьПробел);
    КонецЕсли;
    
    // Вывести Сумму прописью
    ОбластьМакета = Макет.ПолучитьОбласть("СуммаПрописью");
    СуммаКПрописи = Сумма + ?(Шапка.СуммаВключаетНДС, 0, СуммаНДС);
    ОбластьМакета.Параметры.ИтоговаяСтрока = НСтр("ru='Всего наименований ';uk='Всього найменувань '",КодЯзыкаПечать) + ЗапросТовары.Количество() + "," +
                                             НСтр("ru=' на сумму ';uk=' на суму '",КодЯзыкаПечать)  + ОбщегоНазначения.ФорматСумм(СуммаКПрописи, Шапка.ВалютаДокумента)
                                             + ?(ЗапросТара.Количество() = 0, "",  НСтр("ru='; возвратная тара ';uk='; зворотна тара '",КодЯзыкаПечать) + ЗапросТара.Количество() + НСтр("ru=', на сумму ';uk=', на суму '",КодЯзыкаПечать) + ОбщегоНазначения.ФорматСумм(СуммаТара, Шапка.ВалютаДокумента)) + ".";
                                             
    ОбластьМакета.Параметры.СуммаПрописью  = ОбщегоНазначения.СформироватьСуммуПрописью(СуммаКПрописи, Шапка.ВалютаДокумента,КодЯзыкаПечать)
                                             + ?(НЕ Шапка.УчитыватьНДС, "", Символы.ПС + НСтр("ru='В т.ч. НДС: ';uk='У т.ч. ПДВ: '",КодЯзыкаПечать) + ОбщегоНазначения.СформироватьСуммуПрописью(СуммаНДС, Шапка.ВалютаДокумента, КодЯзыкаПечать));
 
    ТабДокумент.Вывести(ОбластьМакета);
 
    // Вывести подписи
    ОбластьМакета = Макет.ПолучитьОбласть("Подписи");
    ОбластьМакета.Параметры.Заполнить(Шапка);
    ТабДокумент.Вывести(ОбластьМакета);
    ТабДокумент.Показать();
0
GreenkA
Форумчанин
Эксперт 1С
2997 / 1928 / 520
Регистрация: 25.06.2009
Сообщений: 6,815
30.03.2016, 19:02 9
dreamstreet, почему в коде вообще не фигурирует ваша новая Область макета - Область1? Где ее вывод?
0
dreamstreet
0 / 0 / 2
Регистрация: 10.10.2014
Сообщений: 83
30.03.2016, 22:18  [ТС] 10
Чёрт. Извиняюсь. Там нужно заменить строки:
1C
1
ОбластьДодаток2 = Макет.ПолучитьОбласть("ШапкаТаблицы|Додаток2");
На
1C
1
Область1 = Макет.ПолучитьОбласть("ШапкаТаблицы|Область1 ");
И
1C
1
 ТабДокумент.Вывести(ОбластьДодаток2);
На
1C
1
 ТабДокумент.Вывести(Область1);
Именно такой код был с учётом этих замен.
0
GreenkA
Форумчанин
Эксперт 1С
2997 / 1928 / 520
Регистрация: 25.06.2009
Сообщений: 6,815
30.03.2016, 22:43 11
dreamstreet, так у вас только вывод шапки. В чем проблема сделать аналогично для строки и выводить? Я думала, у вас в коде все прописано, просто на макете не выводит...
0
dreamstreet
0 / 0 / 2
Регистрация: 10.10.2014
Сообщений: 83
30.03.2016, 23:37  [ТС] 12
Вот кусок кода, где получаю эти области, а потом вывожу
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
ОбластьНомера = Макет.ПолучитьОбласть("ШапкаТаблицы|НомерСтроки");
    ОбластьКодов  = Макет.ПолучитьОбласть("ШапкаТаблицы|КолонкаКодов");
    ОбластьДанных = Макет.ПолучитьОбласть("ШапкаТаблицы|Данные");
    ОбластьСкидка = Макет.ПолучитьОбласть("ШапкаТаблицы|Скидка");
    ОбластьСуммы  = Макет.ПолучитьОбласть("ШапкаТаблицы|Сумма");
    ОбластьОбласть1 = Макет.ПолучитьОбласть("ШапкаТаблицы|Область1");
    ОбластьПромежность1 = Макет.ПолучитьОбласть("Промежность1|Область1");
    ОбластьСтрока = Макет.ПолучитьОбласть("Строка|Область1");
    ОбластьПромежность2 = Макет.ПолучитьОбласть("Промежность1|Область1");
 
    
    ТабДокумент.Вывести(ОбластьНомера);
    Если ВыводитьКоды Тогда
        ОбластьКодов.Параметры.ИмяКолонкиКодов = Колонка;
        ТабДокумент.Присоединить(ОбластьКодов);
    КонецЕсли;
    
    Суффикс = "";
    Если Шапка.УчитыватьНДС Тогда
        Если Шапка.СуммаВключаетНДС Тогда
            Суффикс  = Суффикс  + НСтр("ru=' с ';uk=' з '",КодЯзыкаПечать);
        Иначе   
            Суффикс  = Суффикс  + НСтр("ru=' без ';uk=' без '",КодЯзыкаПечать);
        КонецЕсли;
        Суффикс = Суффикс  + НСтр("ru='НДС';uk='ПДВ'",КодЯзыкаПечать);
    КонецЕсли;
    ОбластьДанных.Параметры.Цена  = НСтр("ru='Цена';uk='Ціна'",КодЯзыкаПечать) + Суффикс;
    ТабДокумент.Присоединить(ОбластьДанных);
    Если ЕстьСкидки Тогда
        ТабДокумент.Присоединить(ОбластьСкидка);
    КонецЕсли;
    
    ОбластьСуммы.Параметры.Сумма = НСтр("ru='Сумма';uk='Сума'",КодЯзыкаПечать)+ Суффикс;
    ТабДокумент.Присоединить(ОбластьСуммы);
    //ТабДокумент.Вывести(ОбластьМакета);
    ТабДокумент.Вывести(ОбластьОбласть1);
    ТабДокумент.Вывести(ОбластьПромежность1);
    ТабДокумент.Вывести(ОбластьСтрока);
    ТабДокумент.Вывести(ОбластьПромежность2);
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// Вывести Итого
    ОбластьНомера = Макет.ПолучитьОбласть("Итого|НомерСтроки");
    ОбластьКодов  = Макет.ПолучитьОбласть("Итого|КолонкаКодов");
    ОбластьДанных = Макет.ПолучитьОбласть("Итого|Данные");
    ОбластьСкидки = Макет.ПолучитьОбласть("Итого|Скидка");
    ОбластьСуммы  = Макет.ПолучитьОбласть("Итого|Сумма");
    ОбластьИтогоДодаток = Макет.ПолучитьОбласть("Итого|Область1");  
    ТабДокумент.Вывести(ОбластьНомера);
    Если ВыводитьКоды Тогда
        ТабДокумент.Присоединить(ОбластьКодов);
    КонецЕсли;
    ТабДокумент.Присоединить(ОбластьДанных);
    
    Если ЕстьСкидки Тогда
        ОбластьСкидки.Параметры.ВсегоСуммаБезСкидки = ОбщегоНазначения.ФорматСумм(СуммаБезСкидки);      
        ОбластьСкидки.Параметры.ВсегоСуммаСкидки    = ОбщегоНазначения.ФорматСумм(СуммаСкидки);
        ТабДокумент.Присоединить(ОбластьСкидки);
    КонецЕсли;
    
    ОбластьСуммы.Параметры.Всего = ОбщегоНазначения.ФорматСумм(Сумма);
    ТабДокумент.Присоединить(ОбластьСуммы);
    ТабДокумент.Вывести(ОбластьИтогоДодаток);
Интересует, почему часть "Информации" появляется под шапкой таблицы?
0
Миниатюры
Добавление нового блока(колонки) справа к счёту на оплату покупателю   Добавление нового блока(колонки) справа к счёту на оплату покупателю  
GreenkA
Форумчанин
Эксперт 1С
2997 / 1928 / 520
Регистрация: 25.06.2009
Сообщений: 6,815
31.03.2016, 10:04 13
dreamstreet, вы выкладываете все какие-то непонятные куски кода, неужели нельзя выложить код всей печати? С реальным макетом...

Попробуйте сделать печать следующим образом:
- Создаете основной Табличный документ - ТабДок, в него будет производиться печать шапки и всех последующих областей и дополнительных табличных документов(об этом ниже).
- Там, где у вас начинается таблица - создаете второй табличный документ - ТабДок2. В него выводите колонку Номеров, Кодов, Данных, Суммы и <Вашу шапку>. Первую область выводим через Вывести(), остальные - Присоединить(). После создания такой шапки во втором табдоке делаете вывод его в основной - ТабДок.Вывести(ТабДок2).
- Точно также поступаете со строками - создаете табличный документ(можно очистить ТабДок2 и выводить в него). Выводите(Вывести()) первую колонку данных строки, далее через Присоединить() выводите остальные колонки, вашу новую в т.ч. И выводите ТабДок2 заново заполненный в основной - ТабДок.Вывести(ТабДок2).
0
dreamstreet
0 / 0 / 2
Регистрация: 10.10.2014
Сообщений: 83
13.04.2016, 21:51  [ТС] 14
Решил задачу следующим банальным образом..(кстати, суть задачи в том, чтобы добавить информационный блок справа и основная проблема была в том, что при увеличении количества строк табличной части строки информационного блока после шапки табличной части смещаются). Строки информационного блока после шапки таблицы забил в массив, создал параметры на макете печатной формы для вывода строк массив, и в зависимости от количества строк в выборке выводил присоединял области. Получилось много использования Если ИначеЕсли Иначе, это первое, что на мысль пришло.. Если в документе будет присутствовать Возвратная Тара, то всё же вывод табличного документа будет "кривой". Но тот кому делалась печатная форма не будет использовать её.. Тему можно закрыть, спасибо за помощь.
0
13.04.2016, 21:51
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.04.2016, 21:51

Размещение контента справа и слева от блока
Доброго времени суток! Нужна помощь. Есть вот такая страничка: &lt;!DOCTYPE html&gt; &lt;html&gt;...

Выглядывание блока справа на 10px независимо от его ширины
суть задачи на картинке

Использовать номер колонки для блока With
Доброго времени суток. у меня буквально короткий вопрос. Есть переменная FindBegin за которой...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru