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