|
|
|
Внешняя печатная форма (спецификация) цены встают без учета скидки | ☑ | ||
|---|---|---|---|---|
|
0
emptycolor
30.01.13
✎
08:48
|
Добрый день. В 1С работаю всего 5й день и появилась задача:
При печати спецификации из документа Заказ покупателя итоговая сумма встает правильная, а цены встают без учета скидки. Как это можно реализовать? |
|||
|
1
Галахад
гуру
30.01.13
✎
08:49
|
1. Нуно почитать текст модуля.
|
|||
|
2
Balabass
30.01.13
✎
08:51
|
1. Мужской
2. Не сработаемся |
|||
|
3
Balabass
30.01.13
✎
08:51
|
А вообще посмотреть как формируется эта цена, и как формируется та, что тебе нужна.
|
|||
|
4
Azverin
30.01.13
✎
08:55
|
(0) давай кусок кода, где выводится строка табл части в макет
|
|||
|
5
emptycolor
30.01.13
✎
09:16
|
Функция ПечатьСпецификации(ДанныеДляПечати)
ТабДокумент = Новый ТабличныйДокумент; ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_Спецификация"; Макет = ПолучитьМакет("Спецификация"); // Выводим шапку спецификации ОбластьМакета = Макет.ПолучитьОбласть("Шапка"); ОбластьМакета.Параметры.Заполнить(ДанныеДляПечати); ОбластьМакета.Параметры.ДатаДоговора = Формат(ДанныеДляПечати.ДатаДоговора,"ДЛФ=DD"); ОбластьМакета.Параметры.ДатаДокумента = Формат(ДанныеДляПечати.ДатаДокумента,"ДЛФ=DD"); ОбластьМакета.Параметры.НомерСпецификации = ПолучитьНомерСпецификации(ДанныеДляПечати.Спецификация); ТабДокумент.Вывести(ОбластьМакета); ОбластьМакета = Макет.ПолучитьОбласть("ЗаголовокТаблицы"); ТабДокумент.Вывести(ОбластьМакета); ОбластьМакета = Макет.ПолучитьОбласть("Строка"); НПП = 0; ВыборкаСтрокТовары = ДанныеДляПечати.ТабличнаяЧасть; СуммаНДС = 0; Сумма = 0; Для Каждого Строчка Из ВыборкаСтрокТовары Цикл Если Строчка.Количество <= 0 Тогда Продолжить; КонецЕсли; НПП = НПП + 1; ОбластьМакета.Параметры.Заполнить(Строчка); ОбластьМакета.Параметры.НПП = НПП; ТабДокумент.Вывести(ОбластьМакета); СуммаНДС = СуммаНДС + Строчка.СуммаНДС; Сумма = Сумма + Строчка.Сумма; КонецЦикла; ОбластьМакета = Макет.ПолучитьОбласть("Итого"); СуммаПрописью = ОбщегоНазначения.СформироватьСуммуПрописью(Сумма, ДанныеДляПечати.Валюта); ОбластьМакета.Параметры.СуммаПрописью = СуммаПрописью; ОбластьМакета.Параметры.СуммаНДС = СуммаНДС; ОбластьМакета.Параметры.Сумма = Сумма; ТабДокумент.Вывести(ОбластьМакета); ОбластьМакета = Макет.ПолучитьОбласть("Подвал"); ОбластьМакета.Параметры.Заполнить(ДанныеДляПечати); ОбластьМакета.Параметры.Дата1 = Формат(Дата1,"ДФ=dd.MM.yy"); ОбластьМакета.Параметры.Дата2 = Формат(Дата2,"ДФ=dd.MM.yy"); ТабДокумент.Вывести(ОбластьМакета); ТабДокумент.ПолеСверху = 0; ТабДокумент.ПолеСлева = 0; ТабДокумент.ПолеСнизу = 0; ТабДокумент.ПолеСправа = 0; ТабДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Портрет; ТабДокумент.АвтоМасштаб = Истина; Возврат ТабДокумент; КонецФункции // ПечатьАкта() Функция Печать() Экспорт ТипОснования = ТипЗнч(СсылкаНаОбъект); ДанныеДляПечати = Неопределено; Если ТипОснования = Тип("ДокументСсылка.ЗаказПокупателя") Тогда ЧастьДаты = ЧастиДаты.Дата; ВвестиДату(Дата1, "Введите срок оплаты:", ЧастьДаты); ВвестиДату(Дата2, "Введите срок поставки:", ЧастьДаты); ДанныеДляПечати = СобратьДанныеПоЗаказу(СсылкаНаОбъект); КонецЕсли; Если ДанныеДляПечати = Неопределено Тогда Возврат NULL; КонецЕсли; Возврат ПечатьСпецификации(ДанныеДляПечати); КонецФункции // Печать |
|||
|
6
Balabass
30.01.13
✎
09:22
|
ОбластьМакета.Параметры.Заполнить(Строчка);
Вот эта строка заполняюет твою цену. Берет она свои данные из выборки: Для Каждого Строчка Из ВыборкаСтрокТовары Цикл Тебе нужно теперь предоставить запрос - который выгружается в ВыборкаСтрокТовары. |
|||
|
7
Balabass
30.01.13
✎
09:28
|
Кстати ВыборкаСтрокТовары = ДанныеДляПечати.ТабличнаяЧасть;
Тебе надо посмотреть что выгружается в данныедляпечати |
|||
|
8
emptycolor
30.01.13
✎
09:31
|
По ДаннымДляПечати
Функция СобратьДанныеПоЗаказу(Основание) Запрос = Новый Запрос("ВЫБРАТЬ | ЗаказПокупателя.Дата КАК ДатаДокумента, | ЗаказПокупателя.ДоговорКонтрагента.Дата КАК ДатаДоговора, | ЗаказПокупателя.ДоговорКонтрагента.Номер КАК НомерДоговора, | ЗаказПокупателя.Акция КАК Акция, | ЗаказПокупателя.Организация.НаименованиеПолное КАК ПредставлениеПоставщика, | ЗаказПокупателя.Контрагент.НаименованиеПолное КАК ПредставлениеПокупателя, | ЗаказПокупателя.СуммаДокумента, | ЗаказПокупателя.ТипДоставки, | ЗаказПокупателя.ВалютаДокумента КАК Валюта, | ЗаказПокупателя.Организация, | ЗаказПокупателя.Организация.Наименование КАК ПредставлениеОрганизации, | КонтактныеЛицаКонтрагентов.Наименование КАК ФИОДиректораПокупателя, | ЗаказПокупателя.Регион.Наименование |ИЗ | Документ.ЗаказПокупателя КАК ЗаказПокупателя | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.КонтактныеЛицаКонтрагентов КАК КонтактныеЛицаКонтрагентов | ПО ЗаказПокупателя.Контрагент = КонтактныеЛицаКонтрагентов.Владелец | И (КонтактныеЛицаКонтрагентов.РольКонтактногоЛица = &Директор) |ГДЕ | ЗаказПокупателя.Ссылка = &ДокументОснование"); Запрос.УстановитьПараметр("ДокументОснование", Основание); Запрос.УстановитьПараметр("Директор", Справочники.РолиКонтактныхЛиц.Директор); Шапка = Запрос.Выполнить().Выбрать(); Шапка.Следующий(); ДанныеДляПечати = Новый Структура(); ДанныеДляПечати.Вставить("ДатаДокумента", Шапка.ДатаДокумента); ДанныеДляПечати.Вставить("ДатаДоговора", Шапка.ДатаДоговора); ДанныеДляПечати.Вставить("НомерДоговора", Шапка.НомерДоговора); ДанныеДляПечати.Вставить("Спецификация", ?(Шапка.Акция = Неопределено, Неопределено, ?(Шапка.Акция.АкцияКДоговоруСоСпецификацией, Шапка.Акция, Неопределено))); ДанныеДляПечати.Вставить("ПредставлениеПоставщика", Шапка.ПредставлениеПоставщика); ДанныеДляПечати.Вставить("ПредставлениеПокупателя", Шапка.ПредставлениеПокупателя); ДанныеДляПечати.Вставить("СуммаДокумента", Шапка.СуммаДокумента); ДанныеДляПечати.Вставить("ТипДоставки", Шапка.ТипДоставки); ДанныеДляПечати.Вставить("Валюта", Шапка.Валюта); ДанныеДляПечати.Вставить("Дата1", Дата1); ДанныеДляПечати.Вставить("Дата2", Дата2); ДанныеДляПечати.Вставить("ПредставлениеОрганизации", Шапка.ПредставлениеОрганизации); ФИОДиректораПокупателя = ?(ЗначениеЗаполнено(Шапка.ФИОДиректораПокупателя), ПолучитьСокращенноеФИО(Шапка.ФИОДиректораПокупателя), " "); ДанныеДляПечати.Вставить("ФИОДиректораПокупателя", ФИОДиректораПокупателя); Если Шапка.ТипДоставки = Перечисления.НикольТипДоставки.Самовывоз Тогда СпособДоставки = "Передача Товара уполномоченному Покупателем экспедитору/ перевозчику на складе Поставщика в г.Омск"; ИначеЕсли Шапка.ТипДоставки = Перечисления.НикольТипДоставки.ДоставкаНашимТранспортомПоГороду Тогда СпособДоставки = "Доставка товара до склада покупателя в г.Омск"; Иначе РегионНаименование = ?(ЗначениеЗаполнено(Шапка.РегионНаименование), ПолучитьРегион(Шапка.РегионНаименование), " "); СпособДоставки = "Доставка товара до склада покупателя в " + РегионНаименование; КонецЕсли; ДанныеДляПечати.Вставить("СпособДоставки", СпособДоставки); Руководители = РегламентированнаяОтчетность.ОтветственныеЛицаОрганизации(Шапка.Организация, СсылкаНаОбъект.Дата); ДанныеДляПечати.Вставить("ФИОРуководителя", Руководители.Руководитель); //ЗапросТовары = Новый Запрос("ВЫБРАТЬ // | ЗаказПокупателяТовары.ЕдиницаИзмерения, // | ЗаказПокупателяТовары.Количество, // | ЗаказПокупателяТовары.Цена, // | ЗаказПокупателяТовары.Сумма КАК Стоимость, // | ЗаказПокупателяТовары.Номенклатура.Наименование КАК ТоварНаименование, // | ЗаказПокупателяТовары.СуммаНДС // |ИЗ // | Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары // |ГДЕ // | ЗаказПокупателяТовары.Ссылка = &ДокументОснование"); ЗапросТовары = Новый Запрос("ВЫБРАТЬ | ВЫРАЗИТЬ(ВложенныйЗапрос.Номенклатура.НаименованиеПолное КАК СТРОКА(100)) КАК ТоварНаименование, | ВложенныйЗапрос.Количество, | ВложенныйЗапрос.ЕдиницаИзмерения.Представление КАК ЕдиницаИзмерения, | ВложенныйЗапрос.ПроцентСкидкиНаценки + ВложенныйЗапрос.ПроцентАвтоматическихСкидок КАК Скидка, | ВложенныйЗапрос.Цена, | ВложенныйЗапрос.Сумма, | ВложенныйЗапрос.СуммаНДС, | ВложенныйЗапрос.Характеристика, | NULL КАК Серия |ИЗ | (ВЫБРАТЬ | ВЛОЖЕННЫЙЗАПРОС1.Номенклатура КАК Номенклатура, | ВЛОЖЕННЫЙЗАПРОС1.ЕдиницаИзмерения КАК ЕдиницаИзмерения, | ВЛОЖЕННЫЙЗАПРОС1.ПроцентСкидкиНаценки КАК ПроцентСкидкиНаценки, | ВЛОЖЕННЫЙЗАПРОС1.ПроцентАвтоматическихСкидок КАК ПроцентАвтоматическихСкидок, | ВЛОЖЕННЫЙЗАПРОС1.Цена КАК Цена, | СУММА(ВЛОЖЕННЫЙЗАПРОС1.Количество) КАК Количество, | СУММА(ВЛОЖЕННЫЙЗАПРОС1.Сумма) КАК Сумма, | СУММА(ВЛОЖЕННЫЙЗАПРОС1.СуммаНДС) КАК СуммаНДС, | ВЛОЖЕННЫЙЗАПРОС1.Характеристика КАК Характеристика | ИЗ | (ВЫБРАТЬ | ЗаказПокупателя.Номенклатура КАК Номенклатура, | ЗаказПокупателя.ЕдиницаИзмерения КАК ЕдиницаИзмерения, | ЗаказПокупателя.ПроцентСкидкиНаценки КАК ПроцентСкидкиНаценки, | ЗаказПокупателя.ПроцентАвтоматическихСкидок КАК ПроцентАвтоматическихСкидок, | ЗаказПокупателя.Цена КАК Цена, | СУММА(ЗаказПокупателя.Количество) КАК Количество, | СУММА(ЗаказПокупателя.Сумма) КАК Сумма, | СУММА(ЗаказПокупателя.СуммаНДС) КАК СуммаНДС, | ЗаказПокупателя.ХарактеристикаНоменклатуры КАК Характеристика | ИЗ | Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателя | ГДЕ | ЗаказПокупателя.Ссылка = &ДокументОснование | | СГРУППИРОВАТЬ ПО | ЗаказПокупателя.Номенклатура, | ЗаказПокупателя.ЕдиницаИзмерения, | ЗаказПокупателя.ПроцентСкидкиНаценки, | ЗаказПокупателя.ПроцентАвтоматическихСкидок, | ЗаказПокупателя.Цена, | ЗаказПокупателя.ХарактеристикаНоменклатуры | | ОБЪЕДИНИТЬ ВСЕ | | ВЫБРАТЬ | КорректировкаЗаказаПокупателяТовары.Номенклатура, | КорректировкаЗаказаПокупателяТовары.ЕдиницаИзмерения, | КорректировкаЗаказаПокупателяТовары.ПроцентСкидкиНаценки, | КорректировкаЗаказаПокупателяТовары.ПроцентАвтоматическихСкидок, | КорректировкаЗаказаПокупателяТовары.Цена, | СУММА(КорректировкаЗаказаПокупателяТовары.Количество), | СУММА(КорректировкаЗаказаПокупателяТовары.Сумма), | СУММА(КорректировкаЗаказаПокупателяТовары.СуммаНДС), | КорректировкаЗаказаПокупателяТовары.ХарактеристикаНоменклатуры | ИЗ | Документ.КорректировкаЗаказаПокупателя.Товары КАК КорректировкаЗаказаПокупателяТовары | ГДЕ | КорректировкаЗаказаПокупателяТовары.Ссылка.Проведен = ИСТИНА | И КорректировкаЗаказаПокупателяТовары.Ссылка.ЗаказПокупателя = &ДокументОснование | | СГРУППИРОВАТЬ ПО | КорректировкаЗаказаПокупателяТовары.Номенклатура, | КорректировкаЗаказаПокупателяТовары.ЕдиницаИзмерения, | КорректировкаЗаказаПокупателяТовары.ХарактеристикаНоменклатуры, | КорректировкаЗаказаПокупателяТовары.ПроцентСкидкиНаценки, | КорректировкаЗаказаПокупателяТовары.ПроцентАвтоматическихСкидок, | КорректировкаЗаказаПокупателяТовары.Цена) КАК ВЛОЖЕННЫЙЗАПРОС1 | | СГРУППИРОВАТЬ ПО | ВЛОЖЕННЫЙЗАПРОС1.Номенклатура, | ВЛОЖЕННЫЙЗАПРОС1.ЕдиницаИзмерения, | ВЛОЖЕННЫЙЗАПРОС1.ПроцентСкидкиНаценки, | ВЛОЖЕННЫЙЗАПРОС1.ПроцентАвтоматическихСкидок, | ВЛОЖЕННЫЙЗАПРОС1.Цена, | ВЛОЖЕННЫЙЗАПРОС1.Характеристика) КАК ВложенныйЗапрос | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | ВЫБОР | КОГДА ЗаказПокупателя.Содержание ЕСТЬ NULL | ИЛИ ЗаказПокупателя.Содержание ПОДОБНО """" | ТОГДА ВЫРАЗИТЬ(ЗаказПокупателя.Номенклатура.НаименованиеПолное КАК СТРОКА(1000)) | ИНАЧЕ ЗаказПокупателя.Содержание | КОНЕЦ, | ЗаказПокупателя.Количество, | ЗаказПокупателя.Номенклатура.ЕдиницаХраненияОстатков, | ЗаказПокупателя.ПроцентСкидкиНаценки, | ЗаказПокупателя.Цена, | ЗаказПокупателя.Сумма, | ЗаказПокупателя.СуммаНДС, | NULL, | NULL |ИЗ | Документ.ЗаказПокупателя.Услуги КАК ЗаказПокупателя |ГДЕ | ЗаказПокупателя.Ссылка = &ДокументОснование"); ЗапросТовары.УстановитьПараметр("ДокументОснование", Основание); Товары = ЗапросТовары.Выполнить().Выгрузить(); ДанныеДляПечати.Вставить("ТабличнаяЧасть", Товары); Возврат ДанныеДляПечати; КонецФункции |
|||
|
9
Галахад
гуру
30.01.13
✎
09:33
|
ОбластьМакета.Параметры.Заполнить(Строчка);
ОбластьМакета.Параметры.Цена = Строчка.Сумма / Сторчка.Количество; |
|||
|
10
emptycolor
30.01.13
✎
10:34
|
Не удалось сформировать внешнюю печатную форму!
Ошибка при вызове метода контекста (Выполнить): {(17, 20)}: Поле не найдено "ВЛОЖЕННЫЙЗАПРОС1.а" ВЛОЖЕННЫЙЗАПРОС1.<<?>>а КАК Цена, |
|||
|
11
emptycolor
30.01.13
✎
11:00
|
всем спасибо!!! разобрался где проблема)
задача решена |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |