Форум программистов, компьютерный форум, киберфорум
Наши страницы
Войти
Регистрация
Восстановить пароль
Другие темы раздела
1С Написать функцию не могу понять этот язык! http://www.cyberforum.ru/1c/thread943191.html
Задание такое : ФАМИЛИЯ ИМЯ ОТЧЕСТВО написано в верхнем регистре. Написать функцию, которая будет приводить к виду Фамилия И. О. используя функции ПОКА, ЕСЛИ, ПодСтрока, ВНИЗ . Решить надо циклом...
1С Внешняя печатная форма на несколько страниц Здравствуйте, есть такая задача. Документ ОтпускаОрганизации, там шапка и табличная часть в которой список сотрудников. Вот для каждого сотрудника нужно вывести печатную форму, похожую на заявление.... http://www.cyberforum.ru/1c/thread943121.html
Где искать загруженную в 1с розница (ут) ред. 1 (2) обработку? 1С
Друзья, был бы очень благодарен за помощь. Работаю с 1с, но не плавают в нем как рыба в воде. Решаю проблему с работой термопринтера mercury r58. Проблема в том, что он не печатает цифры, после...
1С Невозможно добавить реквизиты!
Здравствуйте! У меня появился такой глюк в 8.2 версии: Поставил 10.77. Сначала всё нормально работало. После 2 месяцев работы после инсталляции сегодня при попытке добавить новый реквизит в документ...
1С Заполнение ТЧ Документа из Реквизитов справочника http://www.cyberforum.ru/1c/thread942459.html
нужно заполнить ТЧ документа из Реквизита справочника. &НаКлиенте Процедура КлиентПриИзменении(Элемент) Объект.Телефоны = ПолучитьТелефоны(Объект.Клиент); ЗаполнениеТабЧасти(); КонецПроцедуры...
1С Работа с Датой Подскажите есть реквизит Тип: Дата. Мне нужно когда пользователь выбирает дату любую с 1 января по 30 марта то значение чтобы выводила 1 квартал, если выбирает с 1 апреля по 30 июня то значение 2... подробнее
Chessy
7 / 7 / 2
Регистрация: 04.11.2012
Сообщений: 47
0

ВПФ для ПТУ

25.08.2013, 13:47. Просмотров 638. Ответов 1
Метки (Все метки)

Здравствуйте, уважаемые форумчане. Такой вопрос - надо сделать доп форму в 11 УТ, чтобы там были и розничные цены и цены поступления, да еще и наценка... Сделал розничные цены, не знаю как вытащить наценку. Вот функция формирвания табдока
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
Функция СформироватьПечатнуюФормуПоступлениеТоваров(Тип, МассивОбъектов, ОбъектыПечати)
    
    УстановитьПривилегированныйРежим(Истина);
    ВалютаРеглУчета = Константы.ВалютаРегламентированногоУчета.Получить();
 
    ТабличныйДокумент = Новый ТабличныйДокумент;
    ТабличныйДокумент.АвтоМасштаб = Истина;
    ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ПоступлениеТоваровУслуг_ПриходнаяНакладная";
    
    КолонкаКодов = ФормированиеПечатныхФорм.ИмяДополнительнойКолонки();
    ИспользованиеУпаковок = ПолучитьФункциональнуюОпцию("ИспользоватьУпаковкиНоменклатуры");
    
    Запрос = Новый Запрос(
    "ВЫБРАТЬ РАЗЛИЧНЫЕ
    |   Документы.Ссылка КАК Ссылка,
    |   Документы.Организация КАК Организация,
    |   Документы.Контрагент КАК Контрагент,
    |   Документы.Номер КАК Номер,
    |   Документы.Дата КАК Дата,
    |   Документы.Организация.Префикс КАК Префикс
    |ИЗ
    |   Документ.ПоступлениеТоваровУслуг КАК Документы
    |ГДЕ
    |   Документы.Ссылка В(&МассивОбъектов)
    |
    |УПОРЯДОЧИТЬ ПО
    |   Ссылка
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ РАЗЛИЧНЫЕ
    |   ПоступлениеТоваровУслугТовары.Номенклатура,
    |   ПоступлениеТоваровУслугТовары.Характеристика,
    |   ПоступлениеТоваровУслугТовары.Упаковка,
    |   ПоступлениеТоваровУслугТовары.Ссылка
    |ПОМЕСТИТЬ ВТНужныеТовары
    |ИЗ
    |   Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
    |ГДЕ
    |   ПоступлениеТоваровУслугТовары.Ссылка В(&МассивОбъектов)
    |
    |СГРУППИРОВАТЬ ПО
    |   ПоступлениеТоваровУслугТовары.Характеристика,
    |   ПоступлениеТоваровУслугТовары.Номенклатура,
    |   ПоступлениеТоваровУслугТовары.Упаковка,
    |   ПоступлениеТоваровУслугТовары.Ссылка
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |   ЦеныНоменклатуры.Период,
    |   ЦеныНоменклатуры.Номенклатура,
    |   ЦеныНоменклатуры.ВидЦены,
    |   ЦеныНоменклатуры.Характеристика,
    |   ЦеныНоменклатуры.Цена,
    |   ЦеныНоменклатуры.Упаковка,
    |   ЦеныНоменклатуры.Упаковка.Коэффициент КАК УпаковкаКоэффициент
    |ПОМЕСТИТЬ РозничныеЦены
    |ИЗ
    |   ВТНужныеТовары КАК ВТНужныеТовары
    |       ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
    |       ПО ВТНужныеТовары.Номенклатура = ЦеныНоменклатуры.Номенклатура
    |           И ВТНужныеТовары.Характеристика = ЦеныНоменклатуры.Характеристика
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |   Товары.НомерСтроки,
    |   Товары.Ссылка КАК Ссылка,
    |   Товары.Склад КАК Склад,
    |   ВЫБОР
    |       КОГДА Товары.Упаковка = ЗНАЧЕНИЕ(Справочник.УпаковкиНоменклатуры.ПустаяСсылка)
    |           ТОГДА ПРЕДСТАВЛЕНИЕ(Товары.Номенклатура.ЕдиницаИзмерения)
    |       ИНАЧЕ ПРЕДСТАВЛЕНИЕ(Товары.Упаковка.ЕдиницаИзмерения)
    |   КОНЕЦ КАК ПредставлениеЕдининицыИзмеренияУпаковки,
    |   ПРЕДСТАВЛЕНИЕ(Товары.Номенклатура.ЕдиницаИзмерения) КАК ПредставлениеБазовойЕдиницыИзмерения,
    |   Товары.КоличествоУпаковок КАК КоличествоУпаковок,
    |   Товары.Количество КАК Количество,
    |   Товары.Номенклатура.Код КАК Код,
    |   Товары.Номенклатура.НаименованиеПолное КАК Номенклатура,
    |   Товары.Номенклатура КАК НоменклатураСсылка,
    |   Товары.Характеристика КАК ХарактеристикаСсылка,
    |   Товары.Характеристика.НаименованиеПолное КАК Характеристика,
    |   ВЫБОР
    |       КОГДА ЕСТЬNULL(Товары.Упаковка.Коэффициент, 1) = 1
    |           ТОГДА НЕОПРЕДЕЛЕНО
    |       ИНАЧЕ Товары.Упаковка.Наименование
    |   КОНЕЦ КАК Упаковка,
    |   МАКСИМУМ(РозничныеЦены.Период) КАК Период,
    |   Товары.Упаковка.Коэффициент КАК УпаковкаКоэффициент
    |ПОМЕСТИТЬ ВТТовары
    |ИЗ
    |   Документ.ПоступлениеТоваровУслуг.Товары КАК Товары
    |       ЛЕВОЕ СОЕДИНЕНИЕ ВТНужныеТовары КАК ВТНужныеТовары
    |       ПО Товары.Ссылка = ВТНужныеТовары.Ссылка
    |       ЛЕВОЕ СОЕДИНЕНИЕ РозничныеЦены КАК РозничныеЦены
    |       ПО Товары.Номенклатура = РозничныеЦены.Номенклатура
    |           И Товары.Характеристика = РозничныеЦены.Характеристика
    |           И КОНЕЦПЕРИОДА(Товары.Ссылка.Дата, ДЕНЬ) >= РозничныеЦены.Период
    |ГДЕ
    |   Товары.Ссылка В(&МассивОбъектов)
    |   И Товары.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар)
    |СГРУППИРОВАТЬ ПО
    |   Товары.Ссылка,
    |   Товары.Склад,
    |   Товары.КоличествоУпаковок,
    |   Товары.Номенклатура.Код,
    |   Товары.Количество,
    |   Товары.Номенклатура.НаименованиеПолное,
    |   Товары.Характеристика.НаименованиеПолное,
    |   Товары.Номенклатура,
    |   Товары.Характеристика,
    |   Товары.НомерСтроки,
    |   ВЫБОР
    |       КОГДА ЕСТЬNULL(Товары.Упаковка.Коэффициент, 1) = 1
    |           ТОГДА НЕОПРЕДЕЛЕНО
    |       ИНАЧЕ Товары.Упаковка.Наименование
    |   КОНЕЦ,
    |   ВЫБОР
    |       КОГДА Товары.Упаковка = ЗНАЧЕНИЕ(Справочник.УпаковкиНоменклатуры.ПустаяСсылка)
    |           ТОГДА ПРЕДСТАВЛЕНИЕ(Товары.Номенклатура.ЕдиницаИзмерения)
    |       ИНАЧЕ ПРЕДСТАВЛЕНИЕ(Товары.Упаковка.ЕдиницаИзмерения)
    |   КОНЕЦ,
    |   ПРЕДСТАВЛЕНИЕ(Товары.Номенклатура.ЕдиницаИзмерения),
    |   Товары.Упаковка.Коэффициент
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |   Товары.Ссылка КАК Ссылка,
    |   Товары.Склад КАК Склад,
    |   Товары.ПредставлениеЕдининицыИзмеренияУпаковки,
    |   Товары.ПредставлениеБазовойЕдиницыИзмерения,
    |   Товары.КоличествоУпаковок КАК КоличествоУпаковок,
    |   Товары.Количество КАК Количество,
    |   Товары.Код КАК Код,
    |   Товары.Номенклатура КАК Номенклатура,
    |   Товары.Характеристика КАК Характеристика,
    |   Товары.Упаковка,
    |   ВЫРАЗИТЬ(ЕСТЬNULL(РозничныеЦены.Цена, 0)
    |           / ЕСТЬNULL(РозничныеЦены.УпаковкаКоэффициент, 1)
    |           * ЕСТЬNULL(Товары.УпаковкаКоэффициент, 1)
    |       КАК ЧИСЛО(15,2)) * Товары.КоличествоУпаковок КАК Сумма,
    |
    |   ВЫРАЗИТЬ(ЕСТЬNULL(РозничныеЦены.Цена, 0)
    |           / ЕСТЬNULL(РозничныеЦены.УпаковкаКоэффициент, 1)
    |           * ЕСТЬNULL(Товары.УпаковкаКоэффициент, 1)
    |       КАК ЧИСЛО(15,2)) КАК Цена
    |
    |ИЗ
    |   ВТТовары КАК Товары
    |       ЛЕВОЕ СОЕДИНЕНИЕ РозничныеЦены КАК РозничныеЦены
    |       ПО Товары.НоменклатураСсылка = РозничныеЦены.Номенклатура
    |           И Товары.ХарактеристикаСсылка = РозничныеЦены.Характеристика
    |           И Товары.Период = РозничныеЦены.Период
    |
    |УПОРЯДОЧИТЬ ПО
    |   Ссылка,
    |   Склад,
    |   Товары.НомерСтроки
    |ИТОГИ ПО
    |   Ссылка,
    |   Склад");
    
    Запрос.УстановитьПараметр("МассивОбъектов", МассивОбъектов);
                
    Макет = ПолучитьМакет("Макет");
    
    Смещать = ТипСмещенияТабличногоДокумента.ПоВертикали;
            
    ПакетЗапросов = Запрос.ВыполнитьПакет();
    ДанныеПечати = ПакетЗапросов[0].Выбрать();
    ВыборкаПоДокументам = ПакетЗапросов[4].Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    
    // Создание массива для проверки: какие из докуметов не попали в выборку
    МассивПроверки = Новый Массив;
    Для Каждого Ссылка Из МассивОбъектов Цикл
        МассивПроверки.Добавить(Ссылка);
    КонецЦикла;
    
    РеквизитыДокумента = Новый Структура("Номер, Дата, Префикс, Представление, ПредставлениеРаспоряжения, ПредставлениеОрганизации, ПредставлениеПартнера, Склад, ЦенаЗакупки, СуммаНДС, СуммаСНДС, СтавкаНДС");
    //РеквизитыДокумента.Вставить("ТекстЗаголовка", НСтр("ru='Приходная накладная'"));
    ПервыйДокумент = Истина;
    
    Пока ДанныеПечати.Следующий() Цикл
        
        Если НЕ ВыборкаПоДокументам.НайтиСледующий(Новый Структура("Ссылка", ДанныеПечати.Ссылка)) Тогда
            Продолжить;
        КонецЕсли;
        
        МассивПроверки.Удалить(МассивПроверки.Найти(ДанныеПечати.Ссылка));
        
        НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы;
        
        ЗаполнитьЗначенияСвойств(РеквизитыДокумента, ДанныеПечати);
        РеквизитыДокумента.ПредставлениеОрганизации = ФормированиеПечатныхФорм.ОписаниеОрганизации(
        ФормированиеПечатныхФорм.СведенияОЮрФизЛице(
        ДанныеПечати.Организация,
        ДанныеПечати.Дата
        ),
        "ПолноеНаименование"
        );
        РеквизитыДокумента.ПредставлениеПартнера = ФормированиеПечатныхФорм.ОписаниеОрганизации(
        ФормированиеПечатныхФорм.СведенияОЮрФизЛице(
        ДанныеПечати.Контрагент,
        ДанныеПечати.Дата
        ),
        "ПолноеНаименование"
        );
        
        ПолучитьЦены(РеквизитыДокумента);
        ВыборкаПоСкладам = ВыборкаПоДокументам.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
        Пока ВыборкаПоСкладам.Следующий() Цикл
            
            Если Не ПервыйДокумент Тогда
                ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
            КонецЕсли;
            
            ПервыйДокумент = Ложь;
            
            
            
            ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
            //ОбластьЗаголовок.Параметры.Склад = Объект.Склад;
            ОбластьЗаголовок.Параметры.Заполнить(РеквизитыДокумента);
            ТабличныйДокумент.Вывести(ОбластьЗаголовок);
                        
            Область = Макет.ПолучитьОбласть("Поставщик");
            Область.Параметры.Заполнить(РеквизитыДокумента);
            ТабличныйДокумент.Вывести(Область);
            
            ТабличныйДокумент.Вывести(Макет.ПолучитьОбласть("ШапкаТаблицы"));
            
            СчетСтрок = 1;
            СуммаБезНДС = 0;
            ВсегоСумма = 0;
            ВсегоКоличество = 0;
 
            ВыборкаПоТоварам = ВыборкаПоСкладам.Выбрать();
            Пока ВыборкаПоТоварам.Следующий() Цикл
                
                ВсегоСумма = ВсегоСумма + ВыборкаПоТоварам.Сумма;
                ВсегоКоличество = ВсегоКоличество + ВыборкаПоТоварам.Количество;
                СуммаСНДС = ВыборкаПоТоварам.Количество * ВыборкаПоТоварам.Цена;
                
                ОбластьСтрока = Макет.ПолучитьОбласть("СтрокаТаблицы");
                ОбластьСтрока.Параметры.НомерСтроки = СчетСтрок;
                //ОбластьСтрока.Параметры.СуммаСНДС = СуммаСНДС;
                //ОбластьСтрока.Параметры.СтавкаНДС = ВыборкаПоТоварам.СтавкаНДС;
                СчетСтрок = СчетСтрок + 1;
                ОбластьСтрока.Параметры.Заполнить(ВыборкаПоТоварам);
                ТабличныйДокумент.Вывести(ОбластьСтрока);
                
            КонецЦикла;
            
            Область = Макет.ПолучитьОбласть("Итого");
            Область.Параметры.ВсегоСумма = ФормированиеПечатныхФорм.ФорматСумм(ВсегоСумма);
            Область.Параметры.ВсегоКоличество = ВсегоКоличество;
            ТабличныйДокумент.Вывести(Область);
            
            ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы");
            ИтоговаяСтрока = НСтр("ru='Из %КоличествоНаименований% наименований всего %ВсегоКоличество% штук.'");
            ИтоговаяСтрока = СтрЗаменить(ИтоговаяСтрока, "%КоличествоНаименований%", СчетСтрок-1);
            ИтоговаяСтрока = СтрЗаменить(ИтоговаяСтрока, "%ВсегоКоличество%", ВсегоКоличество);
            ОбластьПодвалТаблицы.Параметры.ИтоговаяСтрока = ИтоговаяСтрока;
            //ЦеныПрихода = НСтр("ru='Сумма накладной в ценах прихода без НДС %СуммаБезНДС% р. Наценка   р.'");
            //ЦеныПрихода = СтрЗаменить(ЦеныПрихода, "%СуммаБезНДС%", СуммаБезНДС);
 
            ТабличныйДокумент.Вывести(ОбластьПодвалТаблицы);
 
                                    
            ОбластьСуммаПрописью = Макет.ПолучитьОбласть("СуммаПрописью");
            СуммаКПрописи = ВсегоСумма;
            
            //ИтоговаяСтрока = СтрЗаменить(ИтоговаяСтрока, "%СуммаДокумента%", ФормированиеПечатныхФорм.ФорматСумм(СуммаКПрописи, ВалютаРеглУчета));
            
            ОбластьСуммаПрописью.Параметры.СуммаПрописью  = РаботаСКурсамиВалют.СформироватьСуммуПрописью(СуммаКПрописи, ВалютаРеглУчета);
            ТабличныйДокумент.Вывести(ОбластьСуммаПрописью);
 
                        
            ОбластьПодписи = Макет.ПолучитьОбласть("Подписи");
            //
            //
            ТабличныйДокумент.Вывести(ОбластьПодписи);
            
        КонецЦикла;
        УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент, НомерСтрокиНачало, ОбъектыПечати, ДанныеПечати.Ссылка);
        
    КонецЦикла;
    
    Для Каждого Ссылка Из МассивПроверки Цикл
        ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
        СтрЗаменить(
        НСтр("ru = 'В документе %Ссылка% отсутствуют товары. Печать приходной накладной не требуется.'"),
        "%Ссылка%",
        Ссылка
        ),
        Ссылка
        );
    КонецЦикла;
    
    Если ПривилегированныйРежим() Тогда
        УстановитьПривилегированныйРежим(Ложь);
    КонецЕсли;
    
    Возврат ТабличныйДокумент;
    
КонецФункции      //СформироватьПечатнуюФормуПоступлениеТоваров


Вернуться к обсуждению:
ВПФ для ПТУ
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.08.2013, 13:47
Готовые ответы и решения:

Из модуля ВПФ открыть форму ВПФ
Добрый день. Подскажите каким макаром открыть форму внешней печтаной формы (далее ВПФ) из модуля...

ВПФ для РеализацииТоваровУслуг
Здравствуйте! Делаю ВПФ для Реализации. Конфа БП 3.0. Раньше никогда не работал с упр. приложением....

Создание ВПФ Счет на оплату для УТ 11
Тренируюсь на создании ВПФ. Делаю Счет на оплату для УТ 11 под УП. Дошел до момента //Вывести...

Нужна помощь в создании ВПФ для УТ 8.1 ред.10.3 - Расходная накладная
Необходимо создать для УТ 8.1 (версия 10.3.1.17) внешнюю печатную форму для документа «Реализация...

ВПФ Счет-фактуры
Проблема с печатной формой. Выводится на 2-ую страницу шапка таблицы после строки (на скрине...

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