|
ВнешняяПечатнаяФорма СчетНаОплату | ☑ | ||
---|---|---|---|---|
0
1Сnewk
21.05.24
✎
14:15
|
Подскажите пожалуйста!
В Счете на оплату хочу вместо номенклатуры вывести Номенклатура партнера. Из типовой взяла печатную форму, переделала во внешнюю ПФ, добавила запрос - выводит, но в отдельной строке. Как сделать, чтобы он заменил всю номенклатуру на НоменклатуруПартнера? (желательно если оно не пустое (это наверно уже через "?(ЗначениеЗаполнено(Наименование), 1, 0);"?
|
|||
1
1Сnewk
21.05.24
✎
14:32
|
ПодробностиПроцедура ЗаполнитьТабличныйДокументСчетаНаОплату(ТабличныйДокумент, ДанныеДляПечати, ОбъектыПечати, ПараметрыПечати) ШаблоныОшибок = Новый Структура; ШаблоныОшибок.Вставить("Товары", НСтр("ru = 'В документе %1 отсутствуют товары. Печать счета на оплату не требуется'")); ШаблоныОшибок.Вставить("ЗаменяющиеТовары", НСтр("ru = 'В документе %1 отсутствуют заменяющие товары. Печать счета на оплату не требуется'")); ШаблоныОшибок.Вставить("Этапы", НСтр("ru = 'В документе %1 отсутствуют этапы оплаты. Печать счета на оплату не требуется'")); ИспользуетсяУчетНДС = ПолучитьФункциональнуюОпцию("ИспользоватьУчетНДС"); ИспользоватьРучныеСкидки = ПолучитьФункциональнуюОпцию("ИспользоватьРучныеСкидкиВПродажах"); ИспользоватьАвтоматическиеСкидки = ПолучитьФункциональнуюОпцию("ИспользоватьАвтоматическиеСкидкиВПродажах"); КолонкаКодов = ФормированиеПечатныхФорм.ДополнительнаяКолонкаПечатныхФормДокументов(); ИмяКолонкиКодов = КолонкаКодов.ИмяКолонки; ПредставлениеКолонкиКодов = КолонкаКодов.ПредставлениеКолонки; СтруктураИмяДопКолонки = Новый Структура("ИмяКолонкиКодов, ПредставлениеКолонкиКодов", ИмяКолонкиКодов, ПредставлениеКолонкиКодов); ДанныеПечати = ДанныеДляПечати.РезультатПоШапке.Выбрать(); ЭтапыОплаты = ДанныеДляПечати.РезультатПоЭтапамОплаты.Выгрузить(); Товары = ДанныеДляПечати.РезультатПоТабличнойЧасти.Выгрузить(); ЭтапыЗалоговойТары = ЭтапыОплаты.НайтиСтроки(Новый Структура("ЭтоЗалогЗаТару", Истина)); ТолькоЗалогЗаТару = ЭтапыЗалоговойТары.Количество() = ЭтапыОплаты.Количество() И ЭтапыЗалоговойТары.Количество() > 0; Если Товары.Колонки.Найти("Содержание")=Неопределено Тогда ЕстьСодержание = Ложь; Иначе ЕстьСодержание = Истина; КонецЕсли; ПоказыватьНДС = Константы.ВыводитьДопКолонкиНДС.Получить(); ПервыйДокумент = Истина; Пока ДанныеПечати.Следующий() Цикл Отказ = Ложь; СтруктураПоиска = Новый Структура("Ссылка", ДанныеПечати.Ссылка); ИспользоватьНаборы = Ложь; Если Товары.Колонки.Найти("ЭтоНабор") <> Неопределено Тогда ИспользоватьНаборы = Истина; КонецЕсли; ТаблицаТовары = Товары.НайтиСтроки(СтруктураПоиска); ТаблицаЭтапыОплаты = ЭтапыОплаты.НайтиСтроки(СтруктураПоиска); ПроверкаЗаполненияДокумента(ДанныеПечати, ТаблицаТовары, ТаблицаЭтапыОплаты, ШаблоныОшибок, Отказ, Истина); Если Отказ Тогда Продолжить; КонецЕсли; Если ПервыйДокумент Тогда ПервыйДокумент = Ложь; Иначе ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц(); КонецЕсли; НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1; ЗаголовокСкидки = ФормированиеПечатныхФорм.НужноВыводитьСкидки(ТаблицаТовары, ИспользоватьРучныеСкидки Или ИспользоватьАвтоматическиеСкидки); ЕстьСкидки = ЗаголовокСкидки.ЕстьСкидки; НазванияОбластей = НазванияОбластей(ДанныеПечати.УчитыватьНДС И НЕ ТолькоЗалогЗаТару И ПоказыватьНДС, ЕстьСкидки); Макет = Новый ТабличныйДокумент; ЗаполнитьРеквизитыШапкиСчетаНаОплату(ДанныеПечати, Макет, ТабличныйДокумент, ТаблицаЭтапыОплаты, ТаблицаТовары); Если ДанныеПечати.ЧастичнаяОплата ИЛИ ТипЗнч(ДанныеПечати.ДокументОснование) = Тип("ДокументСсылка.ОтчетКомитенту") Тогда ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицыЧастичнаяОплата"); ТабличныйДокумент.Вывести(ОбластьШапкаТаблицы); ОбластьСтрокаТаблицы = Макет.ПолучитьОбласть("СтрокаТаблицыЧастичнаяОплата"); ОбластьСтрокаТаблицы.Параметры.Заполнить(ДанныеПечати); ОбластьСтрокаТаблицы.Параметры.НомерСтроки = 1; ТабличныйДокумент.Вывести(ОбластьСтрокаТаблицы); ОбластьИтого = Макет.ПолучитьОбласть("ПодвалТаблицыЧастичнаяОплата"); СтруктураДанныхИтого = Новый Структура; СтруктураДанныхИтого.Вставить("Всего", ДанныеПечати.СуммаДокумента); ОбластьИтого.Параметры.Заполнить(СтруктураДанныхИтого); ОбластьИтого.Параметры.Заполнить(ДанныеПечати); ТабличныйДокумент.Присоединить(ОбластьИтого); // Вывести ИтогоНДС СоответствиеСтавокНДС = Новый Соответствие; Если ДанныеПечати.УчитыватьНДС И НЕ ТолькоЗалогЗаТару И НЕ ДанныеПечати.ОперацияОблагаетсяНДСУПокупателя Тогда ОбластьИтогоНДС = Макет.ПолучитьОбласть("ПодвалТаблицыНДС"); Если ТаблицаТовары.Количество() = 0 Тогда Если ЗначениеЗаполнено(ДанныеПечати.СтавкаНДС) Тогда СуммаНДС = ДанныеПечати.СуммаНДС; СоответствиеСтавокНДС.Вставить(ДанныеПечати.СтавкаНДС, СуммаНДС); КонецЕсли; Иначе Для Каждого СтрокаТовара Из ТаблицаТовары Цикл Если ИспользоватьНаборы И СтрокаТовара.ЭтоНабор И Не (СтрокаТовара.ВариантПредставленияНабораВПечатныхФормах = Перечисления.ВариантыПредставленияНаборовВПечатныхФормах.ТолькоНабор) Тогда // Исключаем суммы НДС по набору в целом, когда комплектующие выводятся в печатных формах. Продолжить; КонецЕсли; СуммаНДС = СоответствиеСтавокНДС[СтрокаТовара.СтавкаНДС]; Если СуммаНДС = Неопределено Тогда СуммаНДС = СтрокаТовара.СуммаНДС; Иначе СуммаНДС = СуммаНДС + СтрокаТовара.СуммаНДС; КонецЕсли; СоответствиеСтавокНДС.Вставить(СтрокаТовара.СтавкаНДС, СуммаНДС); КонецЦикла; КонецЕсли; Если СоответствиеСтавокНДС.Количество() > 0 Тогда Для Каждого ТекСтавкаНДС Из СоответствиеСтавокНДС Цикл СтруктураДанныхИтогоНДС = Новый Структура; СтруктураДанныхИтогоНДС.Вставить("НДС", ФормированиеПечатныхФорм.ТекстНДСПоСтавке(ТекСтавкаНДС.Ключ, ДанныеПечати.ЦенаВключаетНДС)); Если ЗначениеЗаполнено(ТекСтавкаНДС.Значение) Тогда СтруктураДанныхИтогоНДС.Вставить("ВсегоНДС", ФормированиеПечатныхФорм.ФорматСумм(ТекСтавкаНДС.Значение /100 * ДанныеПечати.ПроцентОплаты)); Иначе СтруктураДанныхИтогоНДС.Вставить("ВсегоНДС","-"); КонецЕсли; ОбластьИтогоНДС.Параметры.Заполнить(СтруктураДанныхИтогоНДС); ТабличныйДокумент.Вывести(ОбластьИтогоНДС); КонецЦикла; ОбластьПодвалСНДС = Макет.ПолучитьОбласть("ПодвалТаблицыВсего"); СтруктураДанныхПодвалСНДС = Новый Структура("ВсегоСНДС", ФормированиеПечатныхФорм.ФорматСумм(ДанныеПечати.СуммаДокумента)); ОбластьПодвалСНДС.Параметры.Заполнить(СтруктураДанныхПодвалСНДС); ТабличныйДокумент.Вывести(ОбластьПодвалСНДС); КонецЕсли; ИначеЕсли ИспользуетсяУчетНДС Тогда СтруктураДанныхПодвалНДС = Новый Структура; Если ДанныеПечати.ОперацияОблагаетсяНДСУПокупателя Тогда СтруктураДанныхПодвалНДС.Вставить("НДС", НСтр("ru='НДС исчисляется налоговым агентом'", ОбщегоНазначения.КодОсновногоЯзыка())); Иначе СтруктураДанныхПодвалНДС.Вставить("НДС", НСтр("ru='Без налога (НДС)'", ОбщегоНазначения.КодОсновногоЯзыка())); КонецЕсли; ОбластьПодвалНДС = Макет.ПолучитьОбласть("ПодвалТаблицыНДС"); СтруктураДанныхПодвалНДС.Вставить("ВсегоНДС", "-"); ОбластьПодвалНДС.Параметры.Заполнить(СтруктураДанныхПодвалНДС); ТабличныйДокумент.Вывести(ОбластьПодвалНДС); КонецЕсли; // Вывести Сумму прописью ОбластьМакета = Макет.ПолучитьОбласть("СуммаПрописьюЧастичныйСчет"); СуммаПрописью = НСтр("ru='Всего на сумму %СуммаПрописью%'", ОбщегоНазначения.КодОсновногоЯзыка()); СуммаПрописью = СтрЗаменить(СуммаПрописью, "%СуммаПрописью%", РаботаСКурсамиВалютУТ.СформироватьСуммуПрописью(ДанныеПечати.СуммаДокумента, ДанныеПечати.Валюта)); СтруктураДанныхСуммаПрописью = Новый Структура("СуммаПрописью", СуммаПрописью); ОбластьМакета.Параметры.Заполнить(СтруктураДанныхСуммаПрописью); ТабличныйДокумент.Вывести(ОбластьМакета); Иначе // Таблица "Товары" ОбластьШапкаТаблицы = Макет.ПолучитьОбласть(НазванияОбластей.ШапкаТаблицы); ОбластьСтрокаТаблицыСтандарт = Макет.ПолучитьОбласть(НазванияОбластей.СтрокаТаблицы); ОбластьПодвалТаблицы = Макет.ПолучитьОбласть(НазванияОбластей.ПодвалТаблицы); ОбластьПодвалНДС = Макет.ПолучитьОбласть("ПодвалТаблицыНДС"); Если ИспользоватьНаборы Тогда ОбластьСтрокаТаблицыНабор = Макет.ПолучитьОбласть(НазванияОбластей.СтрокаТаблицыНабор); ОбластьСтрокаТаблицыКомплектующие = Макет.ПолучитьОбласть(НазванияОбластей.СтрокаТаблицыКомплектующие); КонецЕсли; ПустыеДанные = НаборыСервер.ПустыеДанные(); ВыводШапки = 0; Если ДанныеПечати.УчитыватьНДС И НЕ ТолькоЗалогЗаТару Тогда Если ЕстьСкидки Тогда ОбластьПодвалСНДС = Макет.ПолучитьОбласть("ПодвалТаблицыВсегоСНДССоСкидкой"); Иначе ОбластьПодвалСНДС = Макет.ПолучитьОбласть("ПодвалТаблицыВсегоСНДС"); КонецЕсли КонецЕсли; Если ЕстьСкидки Тогда СтруктураЗаголовокСкидки = Новый Структура("Скидка, СуммаБезСкидки", ЗаголовокСкидки.Скидка, ЗаголовокСкидки.СуммаСкидки); ОбластьШапкаТаблицы.Параметры.Заполнить(СтруктураЗаголовокСкидки); КонецЕсли; ОбластьШапкаТаблицы.Параметры.Заполнить(СтруктураИмяДопКолонки); ОбластьСуммаПрописью = Макет.ПолучитьОбласть(?(ДанныеПечати.СчетКВозврату, "СуммаПрописьюКВозврату", "СуммаПрописью")); МассивПроверкиВывода = Новый Массив; Сумма = 0; СуммаНДС = 0; ВсегоСкидок = 0; ВсегоБезСкидок = 0; НомерСтроки = 0; СоответствиеСтавокНДС = Новый Соответствие; Для Каждого СтрокаТовары Из ТаблицаТовары Цикл Если НаборыСервер.ИспользоватьОбластьНабор(СтрокаТовары, ИспользоватьНаборы) Тогда ОбластьСтрокаТаблицы = ОбластьСтрокаТаблицыНабор; ИначеЕсли НаборыСервер.ИспользоватьОбластьКомплектующие(СтрокаТовары, ИспользоватьНаборы) Тогда ОбластьСтрокаТаблицы = ОбластьСтрокаТаблицыКомплектующие; Иначе ОбластьСтрокаТаблицы = ОбластьСтрокаТаблицыСтандарт; КонецЕсли; Если НаборыСервер.ВыводитьТолькоЗаголовок(СтрокаТовары, ИспользоватьНаборы) Тогда НомерСтрокиПечать = ""; Иначе НомерСтроки = НомерСтроки + 1; НомерСтрокиПечать = НомерСтроки; КонецЕсли; Если НомерСтроки = 0 И ВыводШапки <> 2 Тогда ВыводШапки = 1; КонецЕсли; ПрефиксИПостфикс = НаборыСервер.ПолучитьПрефиксИПостфикс(СтрокаТовары, ИспользоватьНаборы); ДополнительныеПараметрыПолученияНаименованияДляПечати = НоменклатураКлиентСервер.ДополнительныеПараметрыПредставлениеНоменклатурыДляПечати(); ДополнительныеПараметрыПолученияНаименованияДляПечати.ВозвратнаяТара = СтрокаТовары.ЭтоВозвратнаяТара; ДополнительныеПараметрыПолученияНаименованияДляПечати.КодОсновногоЯзыка = ОбщегоНазначения.КодОсновногоЯзыка(); Если ЕстьСодержание Тогда ДополнительныеПараметрыПолученияНаименованияДляПечати.Содержание = СтрокаТовары.Содержание; КонецЕсли; Товар = ПрефиксИПостфикс.Префикс + НоменклатураКлиентСервер.ПредставлениеНоменклатурыДляПечати( СтрокаТовары.НаименованиеПолное, СтрокаТовары.Характеристика, , , // Серия ДополнительныеПараметрыПолученияНаименованияДляПечати) + ПрефиксИПостфикс.Постфикс; СтруктураДанныхСтроки = Новый Структура; СтруктураДанныхСтроки.Вставить("Товар", Товар); СтруктураДанныхСтроки.Вставить("НомерСтроки", НомерСтрокиПечать); ОбластьСтрокаТаблицы.Параметры.Заполнить(СтрокаТовары); Если ЗаголовокСкидки.ЕстьСкидки Тогда СтруктураДанныхСтроки.Вставить("СуммаСкидки", ?(ЗаголовокСкидки.ТолькоНаценка,- СтрокаТовары.СуммаСкидки,СтрокаТовары.СуммаСкидки)); КонецЕсли; Если ЗначениеЗаполнено(СтруктураИмяДопКолонки.ИмяКолонкиКодов) Тогда СтруктураДанныхСтроки.Вставить("Артикул", СтрокаТовары[СтруктураИмяДопКолонки.ИмяКолонкиКодов]); КонецЕсли; Если ДанныеПечати.ОперацияОблагаетсяНДСУПокупателя Тогда СтруктураДанныхСтроки.Вставить("СтавкаНДС", НСтр("ru='НДС исчисляется налоговым агентом'", ОбщегоНазначения.КодОсновногоЯзыка())); КонецЕсли; ОбластьСтрокаТаблицы.Параметры.Заполнить(СтруктураДанныхСтроки); Если НаборыСервер.ВыводитьТолькоЗаголовок(СтрокаТовары, ИспользоватьНаборы) Тогда ОбластьСтрокаТаблицы.Параметры.Заполнить(ПустыеДанные); КонецЕсли; МассивПроверкиВывода.Очистить(); МассивПроверкиВывода.Добавить(ОбластьСтрокаТаблицы); Если НомерСтроки = ТаблицаТовары.Количество() Тогда МассивПроверкиВывода.Добавить(ОбластьПодвалТаблицы); МассивПроверкиВывода.Добавить(ОбластьПодвалНДС); МассивПроверкиВывода.Добавить(ОбластьСуммаПрописью); КонецЕсли; Если ТабличныйДокумент.ПроверитьВывод(МассивПроверкиВывода) Тогда Если (НомерСтроки = 1 И ВыводШапки = 0) ИЛИ (НомерСтроки = 0 И ВыводШапки = 1) Тогда ВыводШапки = 2; ТабличныйДокумент.Вывести(ОбластьШапкаТаблицы); КонецЕсли; Иначе ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц(); ТабличныйДокумент.Вывести(ОбластьШапкаТаблицы); КонецЕсли; ТабличныйДокумент.Вывести(ОбластьСтрокаТаблицы); Если Не НаборыСервер.ИспользоватьОбластьКомплектующие(СтрокаТовары, ИспользоватьНаборы) Тогда Сумма = Сумма + СтрокаТовары.Сумма; СуммаНДС = СуммаНДС + СтрокаТовары.СуммаНДС; Если ЕстьСкидки Тогда ВсегоСкидок = ВсегоСкидок + СтрокаТовары.СуммаСкидки; ВсегоБезСкидок = ВсегоБезСкидок + СтрокаТовары.СуммаБезСкидки; КонецЕсли; Если ДанныеПечати.УчитыватьНДС И НЕ ТолькоЗалогЗаТару Тогда СуммаНДСПоСтавке = СоответствиеСтавокНДС[СтрокаТовары.СтавкаНДС]; Если СуммаНДСПоСтавке = Неопределено Тогда СуммаНДСПоСтавке = 0; КонецЕсли; СоответствиеСтавокНДС.Вставить(СтрокаТовары.СтавкаНДС, СуммаНДСПоСтавке + СтрокаТовары.СуммаНДС); КонецЕсли; КонецЕсли; КонецЦикла; ///// Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ЗаказКлиентаТовары.Номенклатура КАК Номенклатура, | ЗаказКлиентаТовары.НоменклатураПартнера КАК НоменклатураПартнера |ИЗ | Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары |ГДЕ | ЗаказКлиентаТовары.Ссылка = &Ссылка"; Запрос.УстановитьПараметр("Ссылка", ДанныеПечати.Ссылка); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл НоменклатураКлиента = ВыборкаДетальныеЗаписи.НоменклатураПартнера; КонецЦикла; ОбластьСтрокаТаблицыНК = Макет.ПолучитьОбласть("СтрокаТаблицыСНДСКомплектующие"); ОбластьСтрокаТаблицы.Параметры.Заполнить(ДанныеПечати); ОбластьСтрокаТаблицыНК.Параметры.Товар = НоменклатураКлиента; ОбластьСтрокаТаблицыНК.Параметры.НомерСтроки = 1; ТабличныйДокумент.Вывести(ОбластьСтрокаТаблицыНК); СтруктураДанныхВсегоСкидки = Новый Структура; // Подвал таблицы "Товары" Если ЕстьСкидки Тогда СтруктураДанныхВсегоСкидки.Вставить("ВсегоСкидок", ?(ЗаголовокСкидки.ТолькоНаценка,-ВсегоСкидок, ВсегоСкидок)); СтруктураДанныхВсегоСкидки.Вставить("ВсегоБезСкидок", ВсегоБезСкидок); Если ДанныеПечати.УчитыватьНДС И НЕ ТолькоЗалогЗаТару Тогда СтруктураДанныхВсегоСкидки.Вставить("ВсегоСуммаНДС", СуммаНДС); КонецЕсли; КонецЕсли; СтруктураДанныхВсегоСкидки.Вставить("Всего", ФормированиеПечатныхФорм.ФорматСумм(Сумма)); ОбластьПодвалТаблицы.Параметры.Заполнить(СтруктураДанныхВсегоСкидки); ТабличныйДокумент.Вывести(ОбластьПодвалТаблицы); // Область "ПодвалТаблицыНДС" Если ДанныеПечати.УчитыватьНДС И НЕ ТолькоЗалогЗаТару И НЕ ДанныеПечати.ОперацияОблагаетсяНДСУПокупателя Тогда Для Каждого ТекСтавкаНДС Из СоответствиеСтавокНДС Цикл СтруктураДанныхПодвалНДС = Новый Структура; СтруктураДанныхПодвалНДС.Вставить("НДС", ФормированиеПечатныхФорм.ТекстНДСПоСтавке(ТекСтавкаНДС.Ключ, ДанныеПечати.ЦенаВключаетНДС)); СтруктураДанныхПодвалНДС.Вставить("ВсегоНДС", ФормированиеПечатныхФорм.ФорматСумм(ТекСтавкаНДС.Значение, ,"-")); ОбластьПодвалНДС.Параметры.Заполнить(СтруктураДанныхПодвалНДС); ТабличныйДокумент.Вывести(ОбластьПодвалНДС); КонецЦикла; СтруктураДанныхПодвалНДС = Новый Структура; СтруктураДанныхПодвалНДС.Вставить("ВсегоСНДС", ФормированиеПечатныхФорм.ФорматСумм(Сумма + ?(ДанныеПечати.ЦенаВключаетНДС, 0, СуммаНДС))); ОбластьПодвалСНДС.Параметры.Заполнить(СтруктураДанныхПодвалНДС); ТабличныйДокумент.Вывести(ОбластьПодвалСНДС); ИначеЕсли ИспользуетсяУчетНДС Тогда СтруктураДанныхПодвалНДС = Новый Структура; Если ДанныеПечати.ОперацияОблагаетсяНДСУПокупателя Тогда СтруктураДанныхПодвалНДС.Вставить("НДС", НСтр("ru='НДС исчисляется налоговым агентом'", ОбщегоНазначения.КодОсновногоЯзыка())); Иначе СтруктураДанныхПодвалНДС.Вставить("НДС", НСтр("ru='Без налога (НДС)'", ОбщегоНазначения.КодОсновногоЯзыка())); КонецЕсли; СтруктураДанныхПодвалНДС.Вставить("ВсегоНДС", "-"); ОбластьПодвалНДС.Параметры.Заполнить(СтруктураДанныхПодвалНДС); ТабличныйДокумент.Вывести(ОбластьПодвалНДС); КонецЕсли; // Вывести Сумму прописью СуммаКПрописи = Сумма + ?(ДанныеПечати.ЦенаВключаетНДС, 0, СуммаНДС); ИтоговаяСтрока = НСтр("ru='Всего наименований %Количество%, на сумму %Сумма%'", ОбщегоНазначения.КодОсновногоЯзыка()); ИтоговаяСтрока = СтрЗаменить(ИтоговаяСтрока, "%Количество%", НомерСтроки); ИтоговаяСтрока = СтрЗаменить(ИтоговаяСтрока, "%Сумма%", ФормированиеПечатныхФорм.ФорматСумм(СуммаКПрописи, ДанныеПечати.Валюта)); СтруктураДанныхСуммаПрописью = Новый Структура; Если ДанныеПечати.СчетКВозврату Тогда СуммаКВозврату = ДанныеПечати.СуммаКВозврату; СуммаИтого = СуммаКПрописи-СуммаКВозврату; Если СуммаИтого < 0 Тогда СуммаИтого = 0; КонецЕсли; СтруктураДанныхСуммаПрописью.Вставить("СуммаВозврата", ФормированиеПечатныхФорм.ФорматСумм(СуммаКВозврату, ДанныеПечати.Валюта)); СтруктураДанныхСуммаПрописью.Вставить("СуммаИтогоКОплате", ФормированиеПечатныхФорм.ФорматСумм(СуммаИтого, ДанныеПечати.Валюта, "0")); СтруктураДанныхСуммаПрописью.Вставить("СуммаПрописью", РаботаСКурсамиВалютУТ.СформироватьСуммуПрописью(СуммаИтого, ДанныеПечати.Валюта)); Иначе СтруктураДанныхСуммаПрописью.Вставить("СуммаПрописью", РаботаСКурсамиВалютУТ.СформироватьСуммуПрописью(СуммаКПрописи, ДанныеПечати.Валюта)); КонецЕсли; СтруктураДанныхСуммаПрописью.Вставить("ИтоговаяСтрока", ИтоговаяСтрока); ОбластьСуммаПрописью.Параметры.Заполнить(СтруктураДанныхСуммаПрописью); ТабличныйДокумент.Вывести(ОбластьСуммаПрописью); КонецЕсли; ЗаполнитьРеквизитыПодвалаСчетаНаОплату(ДанныеПечати, Макет, ТабличныйДокумент, ТаблицаЭтапыОплаты, СоответствиеСтавокНДС, ПараметрыПечати); УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент, НомерСтрокиНачало, ОбъектыПечати, ДанныеПечати.Ссылка); КонецЦикла; КонецПроцедуры |
|||
2
DragfaR
21.05.24
✎
14:16
|
Ого...
|
|||
3
Rico_1C
21.05.24
✎
14:18
|
го-го..
|
|||
4
DragfaR
21.05.24
✎
14:18
|
По идее номенклатуру клиента нужно поменять на ВыборкаДетальныеЗаписи.НомеклатураПартнера
|
|||
5
DragfaR
21.05.24
✎
14:20
|
В этой строке ОбластьСтрокаТаблицыНК.Параметры.Товар = НоменклатураКлиента;
|
|||
6
1Сnewk
21.05.24
✎
14:37
|
(5) Исправила, нет не случилось... все тоже самое, что логично... Подтягивается одно и тоже, там просто к переменной тоже самое было присвоено...
|
|||
7
1Сnewk
21.05.24
✎
14:41
|
(2) Очень развернутый хелп)))
|
|||
8
DragfaR
21.05.24
✎
14:53
|
Очень разумный код), попробуй заполнить обычной номекулатурой, просто не понятно что у тебя запрос выдает, мало исходников
|
|||
9
Смотрящий
21.05.24
✎
15:23
|
(1) У вас там от объема оплата ?
|
|||
10
1Сnewk
22.05.24
✎
06:19
|
(8) Там заполнено все обычной номенклатурой и так. Запрос написала, чтобы было понятно (видимо не вышло), что мне нужно заменить эту обычную номенклатуру на номенклатуру партнера. Номенклатура партнера вышла только в последней строке. Я не пойму куда в коде написать этот запрос, чтобы он не ниже выводил строкой, а заменял обычную номенклатуру... Код может не очень хороший... но код счета на оплату взят из типовой, просто добавлен запрос с обработкой результата и все...
|
|||
11
DrZombi
гуру
22.05.24
✎
06:20
|
(0) Можно это сделать сразу в запросе, программа даже не поймет, что ей подсунули не номенклатуру, а другой справочник :)
|
|||
12
DrZombi
гуру
22.05.24
✎
06:21
|
+ А так вам придется лепить левые "Если или "?" :)
|
|||
13
1Сnewk
22.05.24
✎
06:51
|
(12) Но если подсунуть другой справочник, то если для номенклатуры не будет заполненной Номенклатура Партнера, он вообще выводить ничего не будет? А нужно в случае пустого значения - выводить обычную...
|
|||
14
yurikmellon2
22.05.24
✎
08:24
|
(13) вот смотри, вот здесь
Товары = ДанныеДляПечати.РезультатПоТабличнойЧасти.Выгрузить(); заполняется ТЗ "Товары". Надо смотреть запрос, который формирует РезультатПоТабличнойЧасти и через ВЫБОР КОГДА заменить Номенклатуру на НоменклатуруПартнера, когда она заполнена |
|||
15
Мультук
гуру
22.05.24
✎
08:32
|
(13)
1) Что делает чудесный цикл ? Медитирует ? Пока ВыборкаДетальныеЗаписи.Следующий() Цикл НоменклатураКлиента = ВыборкаДетальныеЗаписи.НоменклатураПартнера; КонецЦикла; 2) Вариантов ровно два 2.1) Скопировать и курочить типовой запрос, который возвращает "ДанныеДляПечати" 2.2) Доработать вашу дописку, чтобы она работала правильно 3) >> о если для номенклатуры не будет заполненной Номенклатура Партнера, он вообще выводить ничего не будет? 3.1) В запросе примерно так (псведокод) ВЫБОР КОГДА НоменклатураПартнера = Значение(Справочник.Номенклатура.ПустаяСсылка) Тогда Номенклатура ИНАЧЕ НоменклатураПартнера КОНЕЦ КАК Номенклатура 3.2) В коде, который вы написали нужно например выгружать таблицу значений "Номенклатура;НоменклатураКонтрагента" и потом в ней искать строку с "Номенклатура" и думать выводить её или "НоменклатураКонтрагента" |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |