Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
31 мар 2025, 12:31

Форма перед печатью документа

Автор sali, 17 мар 2025, 07:52

0 Пользователей и 3 гостей просматривают эту тему.

sali

antoneus, входил.
в общемя получалось следующее: если мы печатаем основную форму, то код проходит по ней и &после проходит по коду печатки из расширения. так как данных (справочники организация, номенклатура и т п) я не добавлял - выходит полупустая. решил оставить этот метод потому как видимо в общем модуле прописывать проверку, решил через добавить команду, не прописывать

sali

Цитата: antoneus от 17 мар 2025, 13:01получаем валюту и курс и передаем их в свою процедуру печати, где вычисляем всякие суммы и выводим их в печатную форму.
здравствуйте, я вас задолбал, простите. порылся как люди делают подобное и вот встал тот же вопрос как сделать пересчет сумм?
такой код &НаКлиенте
Процедура выполнитьпечать(Команда)

Если Не ЗначениеЗаполнено(Объект.СсылкаНаДокумент) Тогда
ОбщегоНазначенияКлиент.СообщитьПользователю("Не выбран документ",, "Объект.СсылкаНаДокумент");
    Возврат;
КонецЕсли;

ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("Валюта", Валюта);
ДополнительныеПараметры.Вставить("Курс", Курс);

РезультатТаДок = ПолучитьТабДок();

Если РезультатТаДок = Неопределено Тогда   
сообщить("не получилось");
Возврат;
КонецЕсли;

//ТабДок = Новый ТабличныйДокумент;
//ТакДок = РезультатТаДок;
//ТакДок.Показать();
РезультатТаДок.Показать();
КонецПроцедуры   



&НаСервере
Функция ПолучитьТабДок()
перем Ошибки;
//ОбъектыНаПечать = Новый Массив;
ДанныеОбъектовПечати = ДанныеДокументовРегУчет(Объект.СсылкаНаДокумент, Истина, Истина, Ошибки);
//ОбъектыНаПечать.Добавить(Объект.СсылкаНаДокумент);

ОбъектОбработки = РеквизитФормыВЗначение("Объект");
//РезультатТабДок = ОбъектОбработки.СформироватьПФ(ДанныеОбъектовПечати, Новый СписокЗначений, Истина);
    Результат = Новый ТабличныйДокумент;   
Результат = ОбъектОбработки.СформироватьПФ(ДанныеОбъектовПечати, Новый СписокЗначений, Истина);
    //Результат.Область(1,1,1,1).Текст = "Ура, получилось!";
    Возврат Результат
КонецФункции   


в структуре мои новые цифры для печатки (это модуль формы)

А ЭТО МОДУЛЬ ОБЪЕКТА, и как в нем проверить структуру чтобы взять значения и уже перемножить с суммой документа?

sali

Функция СформироватьПФ(ДанныеОбъектовПечати, ОбъектыПечати, ВключаяРаботыУслуги) Экспорт
Перем Ошибки, ПервыйДокумент, НомерСтрокиНачало;

//Макет = УправлениеПечатью.МакетПечатнойФормы(ОписаниеПечатнойФормы.ПолныйПутьКМакету);
Макет = Получитьмакет("ПФ_MXL_ТОРГ12валютный");
ТабличныйДокумент = Новый ТабличныйДокумент;//ОписаниеПечатнойФормы.ТабличныйДокумент;
ДанныеПечати = Новый Структура;

//ТУТ КОСЯК
ЕстьТЧЗапасы = (ДанныеОбъектовПечати.Колонки.Найти("ТаблицаЗапасы") <> Неопределено);
ЕстьТЧПродукция = (ДанныеОбъектовПечати.Колонки.Найти("ТаблицаПродукция") <> Неопределено);
ЕстьТЧОтходы = (ДанныеОбъектовПечати.Колонки.Найти("ТаблицаОтходы") <> Неопределено);
ЕстьТЧРаботыУслуги = (ДанныеОбъектовПечати.Колонки.Найти("ТаблицаРаботыУслуги") <> Неопределено);

Если ДанныеОбъектовПечати[0] = Тип("Структура") Тогда   
ДополнительныеПараметры = ДанныеОбъектовПечати[0];
КонецЕсли;
//КОСЯК

//ЕстьТЧЗапасы = Истина;
//ЕстьТЧПродукция = Истина;
//ЕстьТЧОтходы = Истина;
//ЕстьТЧРаботыУслуги = Истина;

НациональнаяВалюта = Константы.НациональнаяВалюта.Получить();

ОбластиМакета = Новый Структура;
ОбластиМакета.Вставить("ОбластьМакетаШапка", ПечатьДокументовУНФ.ПолучитьОбластьБезопасно(Макет, "Шапка", "",
Ошибки));
ОбластиМакета.Вставить("ОбластьМакетаЗаголовокТаблицы", ПечатьДокументовУНФ.ПолучитьОбластьБезопасно(Макет,
"ЗаголовокТаб", НСтр("ru ='Заголовок таблицы'"), Ошибки));
ОбластиМакета.Вставить("ОбластьМакетаСтрока", ПечатьДокументовУНФ.ПолучитьОбластьБезопасно(Макет, "Строка", "",
Ошибки));                       
ОбластиМакета.Вставить("ОбластьМакетаИтогоПоСтранице", ПечатьДокументовУНФ.ПолучитьОбластьБезопасно(Макет,
"ИтогоПоСтранице", НСтр("ru ='Итоги по странице'"), Ошибки));
ОбластиМакета.Вставить("ОбластьМакетаВсего", ПечатьДокументовУНФ.ПолучитьОбластьБезопасно(Макет, "Всего", "",
Ошибки));
ОбластиМакета.Вставить("ОбластьМакетаПодвалБезФаксимиле", ПечатьДокументовУНФ.ПолучитьОбластьБезопасно(Макет,
"ПодвалБезФаксимиле", "", Ошибки));
ОбластиМакета.Вставить("ОбластьМакетаПодвалСФаксимиле", ПечатьДокументовУНФ.ПолучитьОбластьБезопасно(Макет,
"ПодвалСФаксимиле", "", Ошибки));

Для Каждого ДанныеОбъекта Из ДанныеОбъектовПечати Цикл

ПечатьДокументовУНФ.ПередНачаломФормированияДокумента(ТабличныйДокумент, ПервыйДокумент, НомерСтрокиНачало,
ДанныеПечати);

Если ОбластиМакета.ОбластьМакетаШапка <> Неопределено Тогда

НомерДокумента = ПечатьДокументовУНФ.ПолучитьНомерНаПечатьСУчетомДатыДокумента(ДанныеОбъекта.ДатаДокумента,
ДанныеОбъекта.Номер, ДанныеОбъекта.Организация.Префикс);

ДанныеПечати.Вставить("НомерДокумента", НомерДокумента);
ДанныеПечати.Вставить("ДатаДокумента", ДанныеОбъекта.ДатаДокумента);

БанковскийСчетГрузоотправителя = ?(ДанныеОбъекта.Организация = ДанныеОбъекта.Грузоотправитель,
ДанныеОбъекта.БанковскийСчет, Неопределено);

СведенияОГрузоотправителе = УправлениеНебольшойФирмойСервер.СведенияОЮрФизЛице(
ДанныеОбъекта.Грузоотправитель, ДанныеОбъекта.ДатаДокумента, , БанковскийСчетГрузоотправителя);
СведенияОГрузополучателе = УправлениеНебольшойФирмойСервер.СведенияОЮрФизЛице(
ДанныеОбъекта.Грузополучатель, ДанныеОбъекта.ДатаДокумента, , );
СведенияОПоставщике = УправлениеНебольшойФирмойСервер.СведенияОЮрФизЛице(ДанныеОбъекта.Организация,
ДанныеОбъекта.ДатаДокумента, , ДанныеОбъекта.БанковскийСчет);
СведенияОПокупателе = УправлениеНебольшойФирмойСервер.СведенияОЮрФизЛице(ДанныеОбъекта.Контрагент,
ДанныеОбъекта.ДатаДокумента, , ДанныеОбъекта.БанковскийСчетКонтрагента);

ДанныеПечати.Вставить("ПредставлениеПоставщика", УправлениеНебольшойФирмойСервер.ОписаниеОрганизации(
СведенияОПоставщике,
"ПолноеНаименование,ИНН,Свидетельство,ЮридическийАдрес,Телефоны,Факс,НомерСчета,Банк,БИК,КоррСчет"));
ДанныеПечати.Вставить("ПредставлениеПлательщика", УправлениеНебольшойФирмойСервер.ОписаниеОрганизации(
СведенияОПокупателе,
"ПолноеНаименование,ИНН,Свидетельство,ЮридическийАдрес,Телефоны,Факс,НомерСчета,Банк,БИК,КоррСчет"));
ДанныеПечати.Вставить("ПредставлениеГрузоотправителя", УправлениеНебольшойФирмойСервер.ОписаниеОрганизации(
СведенияОГрузоотправителе,
"ПолноеНаименование,ИНН,ФактическийАдрес,Телефоны,Факс,НомерСчета,Банк,БИК,КоррСчет"));

Если ПустаяСтрока(ДанныеОбъекта.АдресДоставки) Тогда

ДанныеПечати.Вставить("ПредставлениеГрузополучателя",
УправлениеНебольшойФирмойСервер.ОписаниеОрганизации(СведенияОГрузополучателе,
"ПолноеНаименование,ИНН,ФактическийАдрес,Телефоны,Факс,НомерСчета,Банк,БИК,КоррСчет"));

Иначе

ПерваяЧастьКИ = УправлениеНебольшойФирмойСервер.ОписаниеОрганизации(СведенияОГрузополучателе,
"ПолноеНаименование,ИНН");
ВтораяЧастьКИ = УправлениеНебольшойФирмойСервер.ОписаниеОрганизации(СведенияОГрузополучателе,
"Телефоны,НомерСчета,Банк,БИК,КоррСчет");

ДанныеПечати.Вставить("ПредставлениеГрузополучателя", СтрШаблон("%1, %2, %3", ПерваяЧастьКИ,
ДанныеОбъекта.АдресДоставки, ВтораяЧастьКИ));

КонецЕсли;

ДанныеПечати.Вставить("ГрузоотправительПоОКПО", СведенияОГрузоотправителе.КодПоОКПО);
ДанныеПечати.Вставить("ПредставлениеПодразделения", ДанныеОбъекта.ПредставлениеСкладаСписания);
ДанныеПечати.Вставить("ВидДеятельностиПоОКДП", Неопределено);
ДанныеПечати.Вставить("ГрузополучательПоОКПО", СведенияОГрузополучателе.КодПоОКПО);
ДанныеПечати.Вставить("ПоставщикПоОКПО", СведенияОПоставщике.КодПоОКПО);
ДанныеПечати.Вставить("ПлательщикПоОКПО", СведенияОПокупателе.КодПоОКПО);
ДанныеПечати.Вставить("ПредставлениеОснования", ДанныеОбъекта.ПредставлениеОснования);

ОснованиеНомер = Строка(ДанныеОбъекта.ОснованиеНомер);
Если Не ПустаяСтрока(ОснованиеНомер) Тогда

ОснованиеНомер = ПечатьДокументовУНФ.ПолучитьНомерНаПечатьСУчетомДатыДокумента(
ДанныеОбъекта.ДатаДокумента, ОснованиеНомер, ДанныеОбъекта.Префикс);

КонецЕсли;

ДанныеПечати.Вставить("ОснованиеНомер", ОснованиеНомер);
ДанныеПечати.Вставить("ОснованиеДата", ДанныеОбъекта.ОснованиеДата);
ДанныеПечати.Вставить("ТранспортнаяНакладнаяНомер", ДанныеОбъекта.ТранспортнаяНакладнаяНомер);
ДанныеПечати.Вставить("ТранспортнаяНакладнаяДата", ДанныеОбъекта.ТранспортнаяНакладнаяДата);

ОбластиМакета.ОбластьМакетаШапка.Параметры.Заполнить(ДанныеПечати);
ШтрихкодированиеПечатныхФорм.ВывестиШтрихкодВТабличныйДокумент(ТабличныйДокумент, Макет,
ОбластиМакета.ОбластьМакетаШапка, ДанныеОбъекта.Ссылка);
ТабличныйДокумент.Вывести(ОбластиМакета.ОбластьМакетаШапка);

КонецЕсли;

Итоги = Новый Структура;
Итоги.Вставить("ИтогоМестНаСтранице", 0);
Итоги.Вставить("ИтогоМассаБруттоПоСтранице", 0);
Итоги.Вставить("ИтогоКоличествоНаСтранице", 0);
Итоги.Вставить("ИтогоСуммаНаСтранице", 0);
Итоги.Вставить("ИтогоНДСНаСтранице", 0);
Итоги.Вставить("ИтогоСуммаСНДСНаСтранице", 0);
Итоги.Вставить("НомерСтроки", 0);
Итоги.Вставить("КоличествоСтрок", 0);
Итоги.Вставить("ИтогоМест", 0);
Итоги.Вставить("ИтогоМассаБрутто", 0);
Итоги.Вставить("ИтогоКоличество", 0);
Итоги.Вставить("ИтогоСумма", 0);
Итоги.Вставить("ИтогоНДС", 0);
Итоги.Вставить("ИтогоСуммаСНДС", 0);
Итоги.Вставить("НомерСтраницы", 1);
Итоги.Вставить("ИспользоватьФаксимиле", ДанныеОбъекта.ИспользоватьФаксимиле);

Если ОбластиМакета.ОбластьМакетаЗаголовокТаблицы <> Неопределено Тогда

ДанныеПечати.Вставить("НомерСтраницы", "Страница " + Итоги.НомерСтраницы);

ОбластиМакета.ОбластьМакетаЗаголовокТаблицы.Параметры.Заполнить(ДанныеПечати);
ТабличныйДокумент.Вывести(ОбластиМакета.ОбластьМакетаЗаголовокТаблицы);

КонецЕсли;

Итоги.КоличествоСтрок = КоличествоСтрокКВыводуНаПечать(ДанныеОбъекта, ВключаяРаботыУслуги,
ЕстьТЧЗапасы, ЕстьТЧРаботыУслуги, ЕстьТЧПродукция, ЕстьТЧОтходы);

Если ОбластиМакета.ОбластьМакетаСтрока <> Неопределено Тогда

ПараметрыНоменклатуры = Новый Структура;

Если ЕстьТЧЗапасы Тогда

// Наборы
Итоги.Вставить("ЕстьНаборы", ДанныеОбъекта.ТаблицаЗапасы.Колонки.Найти(
"НоменклатураНабора") <> Неопределено);

Для Каждого СтрокаЗапаса Из ДанныеОбъекта.ТаблицаЗапасы Цикл

Если Не ВключаяРаботыУслуги
И СтрокаЗапаса.ТипНоменклатуры <> Перечисления.ТипыНоменклатуры.Запас
И СтрокаЗапаса.ТипНоменклатуры <> Перечисления.ТипыНоменклатуры.ПодарочныйСертификат Тогда

Продолжить;

КонецЕсли;

Если СтрокаЗапаса.Количество = 0 Тогда

Продолжить;

КонецЕсли;

Если Итоги.НомерСтроки <> 0 И СтрокаКорректноРазмещаетсяНаСтранице(ТабличныйДокумент,
ОбластиМакета, Итоги) = Ложь Тогда

ДобавитьНовуюСтраницуДокумента(ТабличныйДокумент, ОбластиМакета, Итоги);

КонецЕсли;

ЗаполнитьДанныеПечатиПоСтрокеТабличнойЧасти(СтрокаЗапаса, ДанныеПечати, ПараметрыНоменклатуры,
Итоги, ДанныеОбъекта.СуммаВключаетНДС);
ОбластиМакета.ОбластьМакетаСтрока.Параметры.Заполнить(ДанныеПечати);
ТабличныйДокумент.Вывести(ОбластиМакета.ОбластьМакетаСтрока);

// Наборы
Если Итоги.ЕстьНаборы Тогда
НаборыСервер.УчестьОформлениеСтрокиНабора(ТабличныйДокумент, ОбластиМакета.ОбластьМакетаСтрока,
СтрокаЗапаса);
КонецЕсли;
// Конец Наборы

КонецЦикла;

КонецЕсли;

Если ВключаяРаботыУслуги И ЕстьТЧРаботыУслуги Тогда

// Наборы
Итоги.Вставить("ЕстьНаборы", ДанныеОбъекта.ТаблицаРаботыУслуги.Колонки.Найти(
"НоменклатураНабора") <> Неопределено);

Для Каждого СтрокаРаботУслуг Из ДанныеОбъекта.ТаблицаРаботыУслуги Цикл

Если Итоги.НомерСтроки <> 0 И СтрокаКорректноРазмещаетсяНаСтранице(ТабличныйДокумент,
ОбластиМакета, Итоги) = Ложь Тогда

ДобавитьНовуюСтраницуДокумента(ТабличныйДокумент, ОбластиМакета, Итоги);

КонецЕсли;

Если СтрокаРаботУслуг.Количество = 0 Тогда

Продолжить;

КонецЕсли;

ЗаполнитьДанныеПечатиПоСтрокеТабличнойЧасти(СтрокаРаботУслуг, ДанныеПечати, ПараметрыНоменклатуры,
Итоги, ДанныеОбъекта.СуммаВключаетНДС);
ОбластиМакета.ОбластьМакетаСтрока.Параметры.Заполнить(ДанныеПечати);
ТабличныйДокумент.Вывести(ОбластиМакета.ОбластьМакетаСтрока);

// Наборы
Если Итоги.ЕстьНаборы Тогда
НаборыСервер.УчестьОформлениеСтрокиНабора(ТабличныйДокумент, ОбластиМакета.ОбластьМакетаСтрока,
СтрокаРаботУслуг);
КонецЕсли;
// Конец Наборы

КонецЦикла;

КонецЕсли;

// Наборы
Итоги.Вставить("ЕстьНаборы", Ложь);

Если ЕстьТЧПродукция Тогда

Для Каждого СтрокаПродукция Из ДанныеОбъекта.ТаблицаПродукция Цикл

Если Не ВключаяРаботыУслуги
И СтрокаПродукция.ТипНоменклатуры <> Перечисления.ТипыНоменклатуры.Запас Тогда

Продолжить;

КонецЕсли;

Если СтрокаПродукция.Количество = 0 Тогда

Продолжить;

КонецЕсли;

Если Итоги.НомерСтроки <> 0 И СтрокаКорректноРазмещаетсяНаСтранице(ТабличныйДокумент,
ОбластиМакета, Итоги) = Ложь Тогда

ДобавитьНовуюСтраницуДокумента(ТабличныйДокумент, ОбластиМакета, Итоги);

КонецЕсли;

ЗаполнитьДанныеПечатиПоСтрокеТабличнойЧасти(СтрокаПродукция, ДанныеПечати, ПараметрыНоменклатуры,
Итоги, ДанныеОбъекта.СуммаВключаетНДС);

ОбластиМакета.ОбластьМакетаСтрока.Параметры.Заполнить(ДанныеПечати);
ТабличныйДокумент.Вывести(ОбластиМакета.ОбластьМакетаСтрока);

КонецЦикла;

КонецЕсли;

Если ЕстьТЧОтходы Тогда

Для Каждого СтрокаОтходы Из ДанныеОбъекта.ТаблицаОтходы Цикл

Если Не ВключаяРаботыУслуги И СтрокаОтходы.ТипНоменклатуры <> Перечисления.ТипыНоменклатуры.Запас Тогда

Продолжить;

КонецЕсли;

Если СтрокаОтходы.Количество = 0 Тогда

Продолжить;

КонецЕсли;

Если Итоги.НомерСтроки <> 0 И СтрокаКорректноРазмещаетсяНаСтранице(ТабличныйДокумент,
ОбластиМакета, Итоги) = Ложь Тогда

ДобавитьНовуюСтраницуДокумента(ТабличныйДокумент, ОбластиМакета, Итоги);

КонецЕсли;

ЗаполнитьДанныеПечатиПоСтрокеТабличнойЧасти(СтрокаОтходы, ДанныеПечати, ПараметрыНоменклатуры,
Итоги, ДанныеОбъекта.СуммаВключаетНДС);

ОбластиМакета.ОбластьМакетаСтрока.Параметры.Заполнить(ДанныеПечати);
ТабличныйДокумент.Вывести(ОбластиМакета.ОбластьМакетаСтрока);

КонецЦикла;

КонецЕсли;

КонецЕсли;

Если ОбластиМакета.ОбластьМакетаИтогоПоСтранице <> Неопределено Тогда

ОбластиМакета.ОбластьМакетаИтогоПоСтранице.Параметры.Заполнить(Итоги);
ТабличныйДокумент.Вывести(ОбластиМакета.ОбластьМакетаИтогоПоСтранице);

КонецЕсли;

Если ОбластиМакета.ОбластьМакетаВсего <> Неопределено Тогда

ОбластиМакета.ОбластьМакетаВсего.Параметры.Заполнить(Итоги);
ТабличныйДокумент.Вывести(ОбластиМакета.ОбластьМакетаВсего);

КонецЕсли;

ОбластьМакета = ?(ДанныеОбъекта.ИспользоватьФаксимиле = Перечисления.ДаНет.Да,
ОбластиМакета.ОбластьМакетаПодвалСФаксимиле, ОбластиМакета.ОбластьМакетаПодвалБезФаксимиле);
Если ОбластьМакета <> Неопределено Тогда

ПоследняяЦифра = Прав(Строка(Итоги.НомерСтраницы), 1);
Суффикс = ?(ПоследняяЦифра = "1", НСтр("ru =' листе'"), НСтр("ru =' листах'"));
ДанныеПечати.Вставить("КоличествоЛистовВПриложении", Строка(Итоги.НомерСтраницы) + Суффикс);

ДанныеПечати.Вставить("ДолжностьРуководителя", ДанныеОбъекта.ДолжностьРуководителя);
ДанныеПечати.Вставить("РасшифровкаПодписиРуководителя", ДанныеОбъекта.РасшифровкаПодписиРуководителя);
ДанныеПечати.Вставить("РасшифровкаПодписиГлавногоБухгалтера",
ДанныеОбъекта.РасшифровкаПодписиГлавногоБухгалтера);
ДанныеПечати.Вставить("ДолжностьКладовщика", ДанныеОбъекта.ДолжностьКладовщика);
ДанныеПечати.Вставить("РасшифровкаПодписиКладовщика", ДанныеОбъекта.РасшифровкаПодписиКладовщика);
ДанныеПечати.Вставить("КоличествоПорядковыхНомеровЗаписейПрописью", ЧислоПрописью(
Итоги.КоличествоСтрок, , ",,,,,,,,0"));
ДанныеПечати.Вставить("ВсегоМестПрописью", ?(Итоги.ИтогоМест = 0, "", ЧислоПрописью(
Итоги.ИтогоМест, , ",,,С,,,,,0")));
ДанныеПечати.Вставить("МассаГрузаПрописью", МассаГрузаПрописью(Итоги.ИтогоМассаБрутто,
ДанныеОбъекта));
ДанныеПечати.Вставить("СуммаПрописью", РаботаСКурсамиВалют.СформироватьСуммуПрописью(
Итоги.ИтогоСуммаСНДС, НациональнаяВалюта));
ДанныеПечати.Вставить("ДоверенностьНомер", ДанныеОбъекта.ДоверенностьНомер);
ДанныеПечати.Вставить("ДоверенностьДата", ДанныеОбъекта.ДоверенностьДата);
ДанныеПечати.Вставить("ДоверенностьВыдана", ДанныеОбъекта.ДоверенностьВыдана);
ДанныеПечати.Вставить("ДоверенностьЧерезКого", ДанныеОбъекта.ДоверенностьЛицо);
ДанныеПечати.Вставить("ДоверенностьЧерезКого", ДанныеОбъекта.ДоверенностьЛицо);
ДанныеПечати.Вставить("РасшифровкаПодписиКонтрагента", ДанныеОбъекта.РасшифровкаПодписиКонтрагента);

ПолнаяДатаДокумента = Формат(ДанныеОбъекта.ДатаДокумента, "ДФ=""дд ММММ гггг """"года""""""");
ДлинаСтроки = СтрДлина(ПолнаяДатаДокумента);
ПервыйРазделитель = СтрНайти(ПолнаяДатаДокумента, " ");
ВторойРазделитель = СтрНайти(Прав(ПолнаяДатаДокумента, ДлинаСтроки - ПервыйРазделитель), " ")
+ ПервыйРазделитель;

ДанныеПечати.Вставить("ДатаДокументаДень", """" + Лев(ПолнаяДатаДокумента, ПервыйРазделитель - 1) + """");
ДанныеПечати.Вставить("ДатаДокументаМесяц", Сред(ПолнаяДатаДокумента, ПервыйРазделитель + 1,
ВторойРазделитель - ПервыйРазделитель - 1));
ДанныеПечати.Вставить("ДатаДокументаГод", Прав(ПолнаяДатаДокумента, ДлинаСтроки - ВторойРазделитель));

Если ДанныеОбъекта.ИспользоватьФаксимиле = Перечисления.ДаНет.Да Тогда

ПодписиИФаксимиле = Новый Соответствие; // Ключ - имя каринки в области, Значение - имя реквизита
ПодписиИФаксимиле.Вставить("ПодписьРуководителя", "ФаксимилеРуководителя");
ПодписиИФаксимиле.Вставить("ПодписьГлавногоБухгалтера", "ФаксимилеГлавногоБухгалтера");
ПодписиИФаксимиле.Вставить("ПодписьКладовщика", "ФаксимилеКладовщика");
ПодписиИФаксимиле.Вставить("ПечатьОрганизации", "ФаксимилеПечати");

ПодписьДокументовУНФ.ЗаполнитьФаксимилеВОбластиМакета(ОбластьМакета, ДанныеОбъекта, ПодписиИФаксимиле,
Ошибки);

КонецЕсли;

ОбластьМакета.Параметры.Заполнить(ДанныеПечати);
ТабличныйДокумент.Вывести(ОбластьМакета);

КонецЕсли;

УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент, НомерСтрокиНачало, ОбъектыПечати,
ДанныеОбъекта.Ссылка);

КонецЦикла;


Возврат ТабличныйДокумент;

КонецФункции


antoneus

Ну начать надо с передачи структуры в функцию ПолучитьТабДок. Потом надо передать ее в функцию СформироватьПФ (кстати, резоннее эту функцию размещать в модуле менеджера, модуль объекта - он немножко про другое, ну да хозяин - барин), еще одним параметром (на входе в процедуру по умолчанию присвоить этому параметру неопределено). При формировании печатной формы смотреть на этот параметр и если он не равен неопределено - пересчитывать суммы при выводе строк и расчете общего итога. Всё.

sali

antoneus, я таки сделал структуру для валюты и курса, передавал в функцию где идет ФОРМИРОВАНИЕ, но потом поменял курс который берется с документа на &Курс, так он брал мой. теперь я хочу вывести название валюты делаю его параметром и передаю его на печатную форму в формате шаблона ДанныеПечати.Вставить("Валюта", Валюта);
если я хочу чтобы рядом с валютой было его название для копеек то как это сделать? в Валюта.ПараметрыПрописи будет выходить все значения , к примеру , евро, м, цент, цента, центов и т д
а как мне вывести одно из них , ну там - евро, цент? или руб, коп?

sali

Цитата: sali от 25 мар 2025, 09:46но потом поменял курс который берется с документа на &Курс
оказалось делает неправильно
если у нас цена 100 за штуку и курс пишем 0,87 долларов. получаем - 87, хотя должны писать 87 и получить 1,14 ну или 1,15 +-
ВЫБРАТЬ
РасходнаяНакладная.Ссылка КАК Ссылка,
РасходнаяНакладная.Дата КАК ДатаДокумента,
ВЫРАЗИТЬ(РасходнаяНакладная.Номер КАК СТРОКА(12)) КАК Номер,
НЕОПРЕДЕЛЕНО КАК НомерИсправления,
НЕОПРЕДЕЛЕНО КАК ДатаИсправления,
НЕОПРЕДЕЛЕНО КАК ФаксимилеПустая,
ЗНАЧЕНИЕ(Перечисление.ВидыОперацийСчетФактура.Продажа) КАК ВидОперации,
ВЫБОР
КОГДА РасходнаяНакладная.Организация.ГоловнаяОрганизация <> ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)
ТОГДА РасходнаяНакладная.Организация.ГоловнаяОрганизация
ИНАЧЕ РасходнаяНакладная.Организация
КОНЕЦ КАК Организация,
РасходнаяНакладная.Организация.Префикс КАК Префикс,
РасходнаяНакладная.Организация.ФайлЛоготип КАК Логотип,
РасходнаяНакладная.Организация.ФайлФаксимильнаяПечать КАК ФаксимилеПечати,
ВЫБОР
КОГДА РасходнаяНакладная.Организация.ГоловнаяОрганизация <> ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)
ТОГДА РасходнаяНакладная.Организация.ЦифровойИндексОбособленногоПодразделения
КОГДА РасходнаяНакладная.Подразделение.ГоловнаяОрганизация <> ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)
И РасходнаяНакладная.Подразделение.ГоловнаяОрганизация = РасходнаяНакладная.Организация
ТОГДА РасходнаяНакладная.Подразделение.ЦифровойИндексОбособленногоПодразделения
ИНАЧЕ ""
КОНЕЦ КАК ЦифровойИндексОбособленногоПодразделения,
ВЫБОР
КОГДА &ИспользоватьФаксимиле = ИСТИНА
ТОГДА ЗНАЧЕНИЕ(Перечисление.ДаНет.Да)
ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ДаНет.Нет)
КОНЕЦ КАК ИспользоватьФаксимиле,
ВЫБОР
КОГДА РасходнаяНакладная.Организация.ГоловнаяОрганизация <> ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)
ТОГДА РасходнаяНакладная.Организация
КОГДА РасходнаяНакладная.Подразделение.ГоловнаяОрганизация <> ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)
И РасходнаяНакладная.Подразделение.ГоловнаяОрганизация = РасходнаяНакладная.Организация
ТОГДА РасходнаяНакладная.Подразделение
ИНАЧЕ РасходнаяНакладная.Организация
КОНЕЦ КАК ОбособленноеПодразделениеПоставщика,
ВЫБОР
КОГДА РасходнаяНакладная.Организация.ЮридическоеФизическоеЛицо = ЗНАЧЕНИЕ(Перечисление.ЮридическоеФизическоеЛицо.ФизическоеЛицо)
ТОГДА ИСТИНА
ИНАЧЕ ЛОЖЬ
КОНЕЦ КАК ЭтоФизическоеЛицо,
ВЫБОР
КОГДА РасходнаяНакладная.НалогообложениеНДС = ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.НеОблагаетсяНДС)
ТОГДА 2
ИНАЧЕ 1
КОНЕЦ КАК СтатусУПД,
ЛОЖЬ КАК ЭтоСводныйСчетФактура,
ЛОЖЬ КАК ЭтоКорректировка,
РасходнаяНакладная.БанковскийСчет КАК БанковскийСчет,
ПРЕДСТАВЛЕНИЕ(РасходнаяНакладная.Подразделение) КАК ПредставлениеПодразделения,
ПРЕДСТАВЛЕНИЕ(РасходнаяНакладная.СтруктурнаяЕдиница) КАК ПредставлениеСкладаСписания,
ВЫБОР
КОГДА РасходнаяНакладная.Грузоотправитель <> ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
ТОГДА РасходнаяНакладная.Грузоотправитель
КОГДА РасходнаяНакладная.Организация.ГоловнаяОрганизация <> ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)
ТОГДА РасходнаяНакладная.Организация
КОГДА РасходнаяНакладная.Подразделение.ГоловнаяОрганизация <> ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)
И РасходнаяНакладная.Подразделение.ГоловнаяОрганизация = РасходнаяНакладная.Организация
ТОГДА РасходнаяНакладная.Подразделение
ИНАЧЕ РасходнаяНакладная.Организация
КОНЕЦ КАК Грузоотправитель,
ВЫБОР
КОГДА РасходнаяНакладная.Контрагент.ГоловнойКонтрагент <> ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
И РасходнаяНакладная.Контрагент.ГоловнойКонтрагент.СтранаРегистрации = ЗНАЧЕНИЕ(Справочник.СтраныМира.Россия)
ТОГДА РасходнаяНакладная.Контрагент.ГоловнойКонтрагент
ИНАЧЕ РасходнаяНакладная.Контрагент
КОНЕЦ КАК Контрагент,
ВЫБОР
КОГДА РасходнаяНакладная.Контрагент.ГоловнойКонтрагент <> ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
И РасходнаяНакладная.Контрагент.ГоловнойКонтрагент.СтранаРегистрации = ЗНАЧЕНИЕ(Справочник.СтраныМира.Россия)
ТОГДА РасходнаяНакладная.Контрагент.ГоловнойКонтрагент
ИНАЧЕ РасходнаяНакладная.Контрагент
КОНЕЦ КАК Покупатель,
ВЫБОР
КОГДА РасходнаяНакладная.Грузополучатель.ГоловнойКонтрагент <> ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
И РасходнаяНакладная.Грузополучатель.ГоловнойКонтрагент = РасходнаяНакладная.Контрагент
И РасходнаяНакладная.Грузополучатель.ГоловнойКонтрагент.СтранаРегистрации = ЗНАЧЕНИЕ(Справочник.СтраныМира.Россия)
ТОГДА РасходнаяНакладная.Грузополучатель
ИНАЧЕ РасходнаяНакладная.Контрагент
КОНЕЦ КАК ОбособленноеПодразделениеПокупателя,
РасходнаяНакладная.БанковскийСчетКонтрагента КАК БанковскийСчетКонтрагента,
ВЫБОР
КОГДА РасходнаяНакладная.Грузополучатель <> ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
ТОГДА РасходнаяНакладная.Грузополучатель
ИНАЧЕ РасходнаяНакладная.Контрагент
КОНЕЦ КАК Грузополучатель,
РасходнаяНакладная.АдресДоставки КАК АдресДоставки,
РасходнаяНакладная.КонтактноеЛицоПодписант.Наименование КАК РасшифровкаПодписиКонтрагента,
РасходнаяНакладная.ДоверенностьНомер КАК ДоверенностьНомер,
РасходнаяНакладная.ДоверенностьДата КАК ДоверенностьДата,
РасходнаяНакладная.ДоверенностьВыдана КАК ДоверенностьВыдана,
РасходнаяНакладная.ДоверенностьЛицо КАК ДоверенностьЛицо,
РасходнаяНакладная.Договор.Представление КАК Основание,
ВЫБОР
КОГДА &ПечатнаяФормаТолькоВРублях = ИСТИНА
ТОГДА НациональнаяВалюта.Значение
ИНАЧЕ &Валюта
КОНЕЦ КАК ВалютаДокумента,
ВЫБОР
КОГДА &ПечатнаяФормаТолькоВРублях = ИСТИНА
ТОГДА НациональнаяВалюта.Значение.НаименованиеПолное
ИНАЧЕ &Валюта
КОНЕЦ КАК ВалютаНаименование,
ВЫБОР
КОГДА &ПечатнаяФормаТолькоВРублях = ИСТИНА
ТОГДА НациональнаяВалюта.Значение.Код
ИНАЧЕ РасходнаяНакладная.ВалютаДокумента.Код
КОНЕЦ КАК ВалютаКод,
РасходнаяНакладная.СуммаВключаетНДС КАК СуммаВключаетНДС,
РасходнаяНакладная.НДСВключатьВСтоимость КАК НДСВключатьВСтоимость,
&Курс КАК Курс,
РасходнаяНакладная.Кратность КАК Кратность,
РасходнаяНакладная.ОснованиеПечати КАК ПредставлениеОснования,
РасходнаяНакладная.ОснованиеПечатиСсылка КАК ОснованиеПечатиСсылка,
ВЫБОР
КОГДА РасходнаяНакладная.ОснованиеПечатиСсылка ССЫЛКА Справочник.ДоговорыКонтрагентов
ТОГДА РасходнаяНакладная.ОснованиеПечатиСсылка.НомерДоговора
ИНАЧЕ РасходнаяНакладная.ОснованиеПечатиСсылка.Номер
КОНЕЦ КАК ОснованиеНомер,
ВЫБОР
КОГДА РасходнаяНакладная.ОснованиеПечатиСсылка ССЫЛКА Справочник.ДоговорыКонтрагентов
ТОГДА РасходнаяНакладная.ОснованиеПечатиСсылка.ДатаДоговора
ИНАЧЕ РасходнаяНакладная.ОснованиеПечатиСсылка.Дата
КОНЕЦ КАК ОснованиеДата,
НЕОПРЕДЕЛЕНО КАК ТранспортнаяНакладнаяНомер,
НЕОПРЕДЕЛЕНО КАК ТранспортнаяНакладнаяДата,
РасходнаяНакладная.ПодписьРуководителя.Должность КАК ДолжностьРуководителя,
РасходнаяНакладная.ПодписьРуководителя.РасшифровкаПодписи КАК РасшифровкаПодписиРуководителя,
РасходнаяНакладная.ПодписьРуководителя.Факсимиле КАК ФаксимилеРуководителя,
РасходнаяНакладная.ПодписьГлавногоБухгалтера.РасшифровкаПодписи КАК РасшифровкаПодписиГлавногоБухгалтера,
РасходнаяНакладная.ПодписьГлавногоБухгалтера.Факсимиле КАК ФаксимилеГлавногоБухгалтера,
РасходнаяНакладная.ПодписьКладовщика.Должность КАК ДолжностьКладовщика,
РасходнаяНакладная.ПодписьКладовщика.РасшифровкаПодписи КАК РасшифровкаПодписиКладовщика,
РасходнаяНакладная.ПодписьКладовщика.Факсимиле КАК ФаксимилеКладовщика,
РасходнаяНакладная.Вес КАК Вес,
РасходнаяНакладная.Объем КАК Объем,
РасходнаяНакладная.Запасы.(
НомерСтроки КАК НомерСтроки,
Номенклатура КАК Номенклатура,
Содержание КАК Содержание,
ВЫБОР
КОГДА (ВЫРАЗИТЬ(РасходнаяНакладная.Запасы.Номенклатура.НаименованиеПолное КАК СТРОКА(1000))) = ""
ТОГДА РасходнаяНакладная.Запасы.Номенклатура.Наименование
ИНАЧЕ ВЫРАЗИТЬ(РасходнаяНакладная.Запасы.Номенклатура.НаименованиеПолное КАК СТРОКА(1000))
КОНЕЦ КАК ПредставлениеНоменклатуры,
Номенклатура.ТипНоменклатуры КАК ТипНоменклатуры,
Номенклатура.Код КАК ЗапасКод,
Номенклатура.Код КАК Код,
Номенклатура.Артикул КАК Артикул,
Характеристика КАК Характеристика,
ВЫБОР
КОГДА РасходнаяНакладная.Запасы.ЕдиницаИзмерения ССЫЛКА Справочник.ЕдиницыИзмерения
И ПечатьПользовательскихЕдиницИзмерения.Значение = ЗНАЧЕНИЕ(Перечисление.ПечатьПользовательскихЕдиницИзмерения.ФормироватьПечатныйДокументВПользовательскойЕдинице)
И РасходнаяНакладная.Запасы.ЕдиницаИзмерения.ЕдиницаИзмеренияПоКлассификатору <> ЗНАЧЕНИЕ(Справочник.КлассификаторЕдиницИзмерения.ПустаяСсылка)
ТОГДА РасходнаяНакладная.Запасы.ЕдиницаИзмерения.ЕдиницаИзмеренияПоКлассификатору.Наименование
ИНАЧЕ РасходнаяНакладная.Запасы.Номенклатура.ЕдиницаИзмерения.Наименование
КОНЕЦ КАК ЕдиницаИзмеренияПоОКЕИ_Наименование,
ВЫБОР
КОГДА РасходнаяНакладная.Запасы.ЕдиницаИзмерения ССЫЛКА Справочник.ЕдиницыИзмерения
И ПечатьПользовательскихЕдиницИзмерения.Значение = ЗНАЧЕНИЕ(Перечисление.ПечатьПользовательскихЕдиницИзмерения.ФормироватьПечатныйДокументВПользовательскойЕдинице)
И РасходнаяНакладная.Запасы.ЕдиницаИзмерения.ЕдиницаИзмеренияПоКлассификатору <> ЗНАЧЕНИЕ(Справочник.КлассификаторЕдиницИзмерения.ПустаяСсылка)
ТОГДА РасходнаяНакладная.Запасы.ЕдиницаИзмерения.ЕдиницаИзмеренияПоКлассификатору.Код
ИНАЧЕ РасходнаяНакладная.Запасы.Номенклатура.ЕдиницаИзмерения.Код
КОНЕЦ КАК ЕдиницаИзмеренияПоОКЕИ_Код,
ВЫБОР
КОГДА РасходнаяНакладная.Запасы.ЕдиницаИзмерения ССЫЛКА Справочник.ЕдиницыИзмерения
И ПечатьПользовательскихЕдиницИзмерения.Значение = ЗНАЧЕНИЕ(Перечисление.ПечатьПользовательскихЕдиницИзмерения.ФормироватьПечатныйДокументВПользовательскойЕдинице)
И РасходнаяНакладная.Запасы.ЕдиницаИзмерения.ЕдиницаИзмеренияПоКлассификатору <> ЗНАЧЕНИЕ(Справочник.КлассификаторЕдиницИзмерения.ПустаяСсылка)
ТОГДА РасходнаяНакладная.Запасы.ЕдиницаИзмерения.ЕдиницаИзмеренияПоКлассификатору
ИНАЧЕ РасходнаяНакладная.Запасы.Номенклатура.ЕдиницаИзмерения
КОНЕЦ КАК ЕдиницаИзмерения,
ЕдиницаИзмерения КАК ВидУпаковки,
ВЫБОР
КОГДА РасходнаяНакладная.Запасы.ЕдиницаИзмерения ССЫЛКА Справочник.ЕдиницыИзмерения
И ПечатьПользовательскихЕдиницИзмерения.Значение = ЗНАЧЕНИЕ(Перечисление.ПечатьПользовательскихЕдиницИзмерения.ФормироватьПечатныйДокументВПользовательскойЕдинице)
И РасходнаяНакладная.Запасы.ЕдиницаИзмерения.ЕдиницаИзмеренияПоКлассификатору <> ЗНАЧЕНИЕ(Справочник.КлассификаторЕдиницИзмерения.ПустаяСсылка)
ТОГДА 1
КОГДА РасходнаяНакладная.Запасы.ЕдиницаИзмерения ССЫЛКА Справочник.КлассификаторЕдиницИзмерения
ТОГДА 1
ИНАЧЕ РасходнаяНакладная.Запасы.ЕдиницаИзмерения.Коэффициент
КОНЕЦ КАК КоличествоВОдномМесте,
Количество КАК КоличествоМест,
ВЫБОР
КОГДА РасходнаяНакладная.Запасы.ЕдиницаИзмерения ССЫЛКА Справочник.ЕдиницыИзмерения
И ПечатьПользовательскихЕдиницИзмерения.Значение <> ЗНАЧЕНИЕ(Перечисление.ПечатьПользовательскихЕдиницИзмерения.ФормироватьПечатныйДокументВПользовательскойЕдинице)
ТОГДА РасходнаяНакладная.Запасы.ЕдиницаИзмерения.Коэффициент
ИНАЧЕ 1
КОНЕЦ КАК КоэффициентЕдиницыИзмерения,
Количество КАК Количество,
СтавкаНДС КАК СтавкаНДС,
Вес КАК МассаБрутто,
ВЫРАЗИТЬ((РасходнаяНакладная.Запасы.СуммаАвтоматическойСкидки + РасходнаяНакладная.Запасы.СуммаСкидкиНаценки) * &Курс / РасходнаяНакладная.Кратность КАК ЧИСЛО(15, 2)) КАК СуммаСкидкиПоСтроке,
ВЫРАЗИТЬ(РасходнаяНакладная.Запасы.Цена / &Курс / РасходнаяНакладная.Кратность КАК ЧИСЛО(15, 2)) КАК Цена,
ВЫРАЗИТЬ(РасходнаяНакладная.Запасы.Сумма / &Курс / РасходнаяНакладная.Кратность КАК ЧИСЛО(15, 2)) КАК Сумма,
ВЫРАЗИТЬ(РасходнаяНакладная.Запасы.СуммаНДС / &Курс / РасходнаяНакладная.Кратность КАК ЧИСЛО(15, 2)) КАК СуммаНДС,
ВЫРАЗИТЬ(РасходнаяНакладная.Запасы.Всего / &Курс / РасходнаяНакладная.Кратность КАК ЧИСЛО(15, 2)) КАК Всего
) КАК ТаблицаЗапасы,
РасходнаяНакладная.ДобавленныеНаборы.(
НоменклатураНабора КАК НоменклатураНабора,
ХарактеристикаНабора КАК ХарактеристикаНабора,
Количество КАК Количество,
ВЫБОР
КОГДА (ВЫРАЗИТЬ(РасходнаяНакладная.ДобавленныеНаборы.НоменклатураНабора.НаименованиеПолное КАК СТРОКА(1000))) = ""
ТОГДА РасходнаяНакладная.ДобавленныеНаборы.НоменклатураНабора.Наименование
ИНАЧЕ ВЫРАЗИТЬ(РасходнаяНакладная.ДобавленныеНаборы.НоменклатураНабора.НаименованиеПолное КАК СТРОКА(1000))
КОНЕЦ КАК ЗапасНабора,
НоменклатураНабора.ВариантПечатиНабора КАК ВариантПечатиНабора,
НоменклатураНабора.ТипНоменклатуры КАК ТипНоменклатурыНабора,
НоменклатураНабора.Артикул КАК АртикулНабора,
НоменклатураНабора.Код КАК КодНабора,
НоменклатураНабора.ЕдиницаИзмерения КАК ЕдиницаИзмеренияНабора,
НоменклатураНабора.ЕдиницаИзмерения.Код КАК КодЕдиницыИзмеренияНабора,
ВЫБОР
КОГДА РасходнаяНакладная.ДобавленныеНаборы.НоменклатураНабора.ВариантПечатиНабора = ЗНАЧЕНИЕ(Перечисление.ВариантыПечатиНаборов.ТолькоНабор)
ТОГДА ИСТИНА
ИНАЧЕ ЛОЖЬ
КОНЕЦ КАК ВыводитьИтоги
) КАК ТаблицаДобавленныеНаборы,
РасходнаяНакладная.НоменклатураДоставки КАК НоменклатураДоставки,
РасходнаяНакладная.НоменклатураДоставки КАК ПредставлениеНоменклатурыДоставки,
РасходнаяНакладная.НоменклатураДоставки.Код КАК КодНоменклатурыДоставки,
РасходнаяНакладная.НоменклатураДоставки.Артикул КАК АртикулНоменклатурыДоставки,
РасходнаяНакладная.СтоимостьДоставки КАК СтоимостьДоставки,
РасходнаяНакладная.СтавкаНДСДоставки КАК СтавкаНДСДоставки,
РасходнаяНакладная.СуммаНДСДоставки КАК СуммаНДСДоставки
ИЗ
Документ.РасходнаяНакладная КАК РасходнаяНакладная,
Константа.НациональнаяВалюта КАК НациональнаяВалюта,
Константа.ПечатьПользовательскихЕдиницИзмерения КАК ПечатьПользовательскихЕдиницИзмерения
ГДЕ
РасходнаяНакладная.Ссылка В(&МассивОбъектов)

УПОРЯДОЧИТЬ ПО
РасходнаяНакладная.Запасы.НомерСтроки
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
РасходнаяНакладнаяЗапасы.Ссылка КАК Ссылка,
МАКСИМУМ(РасходнаяНакладнаяЗапасы.НомерСтроки) КАК НомерСтроки
ПОМЕСТИТЬ МаксНомерСтрокиЗапасы
ИЗ
Документ.РасходнаяНакладная.Запасы КАК РасходнаяНакладнаяЗапасы
ГДЕ
РасходнаяНакладнаяЗапасы.Ссылка В(&МассивОбъектов)

СГРУППИРОВАТЬ ПО
РасходнаяНакладнаяЗапасы.Ссылка
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
РасходнаяНакладнаяЗапасы.Номенклатура КАК Номенклатура,
ВЫРАЗИТЬ(РасходнаяНакладнаяЗапасы.Содержание КАК СТРОКА(1000)) КАК Содержание,
ВЫБОР
КОГДА (ВЫРАЗИТЬ(РасходнаяНакладнаяЗапасы.Номенклатура.НаименованиеПолное КАК СТРОКА(1000))) = ""
ТОГДА РасходнаяНакладнаяЗапасы.Номенклатура.Наименование
ИНАЧЕ ВЫРАЗИТЬ(РасходнаяНакладнаяЗапасы.Номенклатура.НаименованиеПолное КАК СТРОКА(1000))
КОНЕЦ КАК ПредставлениеНоменклатуры,
РасходнаяНакладнаяЗапасы.Номенклатура.ТипНоменклатуры КАК ТипНоменклатуры,
РасходнаяНакладнаяЗапасы.Номенклатура.Код КАК ЗапасКод,
РасходнаяНакладнаяЗапасы.Номенклатура.Артикул КАК Артикул,
ВЫБОР
КОГДА РасходнаяНакладнаяЗапасы.ЕдиницаИзмерения ССЫЛКА Справочник.ЕдиницыИзмерения
И ПечатьПользовательскихЕдиницИзмерения.Значение = ЗНАЧЕНИЕ(Перечисление.ПечатьПользовательскихЕдиницИзмерения.ФормироватьПечатныйДокументВПользовательскойЕдинице)
И РасходнаяНакладнаяЗапасы.ЕдиницаИзмерения.ЕдиницаИзмеренияПоКлассификатору <> ЗНАЧЕНИЕ(Справочник.КлассификаторЕдиницИзмерения.ПустаяСсылка)
ТОГДА РасходнаяНакладнаяЗапасы.ЕдиницаИзмерения.ЕдиницаИзмеренияПоКлассификатору.Наименование
ИНАЧЕ РасходнаяНакладнаяЗапасы.Номенклатура.ЕдиницаИзмерения.Наименование
КОНЕЦ КАК ЕдиницаИзмеренияПоОКЕИ_Наименование,
ВЫБОР
КОГДА РасходнаяНакладнаяЗапасы.ЕдиницаИзмерения ССЫЛКА Справочник.ЕдиницыИзмерения
И ПечатьПользовательскихЕдиницИзмерения.Значение = ЗНАЧЕНИЕ(Перечисление.ПечатьПользовательскихЕдиницИзмерения.ФормироватьПечатныйДокументВПользовательскойЕдинице)
И РасходнаяНакладнаяЗапасы.ЕдиницаИзмерения.ЕдиницаИзмеренияПоКлассификатору <> ЗНАЧЕНИЕ(Справочник.КлассификаторЕдиницИзмерения.ПустаяСсылка)
ТОГДА РасходнаяНакладнаяЗапасы.ЕдиницаИзмерения.ЕдиницаИзмеренияПоКлассификатору.Код
ИНАЧЕ РасходнаяНакладнаяЗапасы.Номенклатура.ЕдиницаИзмерения.Код
КОНЕЦ КАК ЕдиницаИзмеренияПоОКЕИ_Код,
РасходнаяНакладнаяЗапасы.Характеристика КАК Характеристика,
ВЫБОР
КОГДА РасходнаяНакладнаяЗапасы.ЕдиницаИзмерения ССЫЛКА Справочник.ЕдиницыИзмерения
И ПечатьПользовательскихЕдиницИзмерения.Значение = ЗНАЧЕНИЕ(Перечисление.ПечатьПользовательскихЕдиницИзмерения.ФормироватьПечатныйДокументВПользовательскойЕдинице)
И РасходнаяНакладнаяЗапасы.ЕдиницаИзмерения.ЕдиницаИзмеренияПоКлассификатору <> ЗНАЧЕНИЕ(Справочник.КлассификаторЕдиницИзмерения.ПустаяСсылка)
ТОГДА РасходнаяНакладнаяЗапасы.ЕдиницаИзмерения.ЕдиницаИзмеренияПоКлассификатору
ИНАЧЕ РасходнаяНакладнаяЗапасы.Номенклатура.ЕдиницаИзмерения
КОНЕЦ КАК ЕдиницаИзмерения,
РасходнаяНакладнаяЗапасы.ЕдиницаИзмерения КАК ВидУпаковки,
РасходнаяНакладнаяЗапасы.Количество КАК Количество,
ВЫБОР
КОГДА РасходнаяНакладнаяЗапасы.ЕдиницаИзмерения ССЫЛКА Справочник.ЕдиницыИзмерения
И ПечатьПользовательскихЕдиницИзмерения.Значение <> ЗНАЧЕНИЕ(Перечисление.ПечатьПользовательскихЕдиницИзмерения.ФормироватьПечатныйДокументВПользовательскойЕдинице)
ТОГДА РасходнаяНакладнаяЗапасы.ЕдиницаИзмерения.Коэффициент
ИНАЧЕ 1
КОНЕЦ КАК КоэффициентЕдиницыИзмерения,
ВЫБОР
КОГДА РасходнаяНакладнаяЗапасы.ЕдиницаИзмерения ССЫЛКА Справочник.ЕдиницыИзмерения
И ПечатьПользовательскихЕдиницИзмерения.Значение = ЗНАЧЕНИЕ(Перечисление.ПечатьПользовательскихЕдиницИзмерения.ФормироватьПечатныйДокументВПользовательскойЕдинице)
И РасходнаяНакладнаяЗапасы.ЕдиницаИзмерения.ЕдиницаИзмеренияПоКлассификатору <> ЗНАЧЕНИЕ(Справочник.КлассификаторЕдиницИзмерения.ПустаяСсылка)
ТОГДА 1
КОГДА РасходнаяНакладнаяЗапасы.ЕдиницаИзмерения ССЫЛКА Справочник.КлассификаторЕдиницИзмерения
ТОГДА 1
ИНАЧЕ РасходнаяНакладнаяЗапасы.ЕдиницаИзмерения.Коэффициент
КОНЕЦ КАК КоличествоВОдномМесте,
РасходнаяНакладнаяЗапасы.Количество КАК КоличествоМест,
РасходнаяНакладнаяЗапасы.СтавкаНДС КАК СтавкаНДС,
РасходнаяНакладнаяЗапасы.Вес КАК Вес,
РасходнаяНакладнаяЗапасы.СуммаАвтоматическойСкидки + РасходнаяНакладнаяЗапасы.СуммаСкидкиНаценки КАК СуммаСкидкиПоСтроке,
РасходнаяНакладнаяЗапасы.Цена КАК Цена,
РасходнаяНакладнаяЗапасы.НомерСтроки КАК НомерСтроки,
РасходнаяНакладнаяЗапасы.Сумма КАК Сумма,
РасходнаяНакладнаяЗапасы.СуммаНДС КАК СуммаНДС,
РасходнаяНакладнаяЗапасы.Всего КАК Всего,
РасходнаяНакладнаяЗапасы.Ссылка КАК Ссылка,
РасходнаяНакладнаяЗапасы.НоменклатураНабора КАК НоменклатураНабора,
РасходнаяНакладнаяЗапасы.ХарактеристикаНабора КАК ХарактеристикаНабора,
ЛОЖЬ КАК ЭтоНабор,
ВЫБОР
КОГДА РасходнаяНакладнаяЗапасы.НоменклатураНабора <> ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
И РасходнаяНакладнаяЗапасы.НоменклатураНабора.ВариантПечатиНабора = ЗНАЧЕНИЕ(Перечисление.ВариантыПечатиНаборов.НаборИКомплектующие)
ТОГДА ИСТИНА
ИНАЧЕ ЛОЖЬ
КОНЕЦ КАК НеобходимоВыделитьКакСоставНабора,
РасходнаяНакладнаяЗапасы.СтранаПроисхождения КАК СтранаСсылка,
РасходнаяНакладнаяЗапасы.СтранаПроисхождения КАК СтранаПредставление,
РасходнаяНакладнаяЗапасы.СтранаПроисхождения.Код КАК СтранаКод,
РасходнаяНакладнаяЗапасы.НомерГТД.РегистрационныйНомер КАК ПредставлениеГТД
ПОМЕСТИТЬ ВременнаяТаблица_РасходнаяНакладнаяЗапасы
ИЗ
Документ.РасходнаяНакладная.Запасы КАК РасходнаяНакладнаяЗапасы,
Константа.ПечатьПользовательскихЕдиницИзмерения КАК ПечатьПользовательскихЕдиницИзмерения
ГДЕ
РасходнаяНакладнаяЗапасы.Ссылка В(&МассивОбъектов)

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
ПРЕДСТАВЛЕНИЕ(РасходнаяНакладнаяЗапасы.НоменклатураДоставки),
ВЫРАЗИТЬ(РасходнаяНакладнаяЗапасы.НоменклатураДоставки.НаименованиеПолное КАК СТРОКА(1000)),
ВЫБОР
КОГДА (ВЫРАЗИТЬ(РасходнаяНакладнаяЗапасы.НоменклатураДоставки.НаименованиеПолное КАК СТРОКА(1000))) = ""
ТОГДА РасходнаяНакладнаяЗапасы.НоменклатураДоставки.Наименование
ИНАЧЕ ВЫРАЗИТЬ(РасходнаяНакладнаяЗапасы.НоменклатураДоставки.НаименованиеПолное КАК СТРОКА(1000))
КОНЕЦ,
РасходнаяНакладнаяЗапасы.НоменклатураДоставки.ТипНоменклатуры,
РасходнаяНакладнаяЗапасы.НоменклатураДоставки.Код,
РасходнаяНакладнаяЗапасы.НоменклатураДоставки.Артикул,
&ШтукаНаименование,
&ШтукаКод,
НЕОПРЕДЕЛЕНО,
ЗНАЧЕНИЕ(Справочник.КлассификаторЕдиницИзмерения.шт),
ЗНАЧЕНИЕ(Справочник.КлассификаторЕдиницИзмерения.шт),
1,
1,
1,
1,
РасходнаяНакладнаяЗапасы.СтавкаНДСДоставки,
0,
0,
РасходнаяНакладнаяЗапасы.СтоимостьДоставки,
МаксНомерСтрокиЗапасы.НомерСтроки + 1,
РасходнаяНакладнаяЗапасы.СтоимостьДоставки,
РасходнаяНакладнаяЗапасы.СуммаНДСДоставки,
ВЫБОР
КОГДА РасходнаяНакладнаяЗапасы.Ссылка.СуммаВключаетНДС
ТОГДА РасходнаяНакладнаяЗапасы.СтоимостьДоставки
ИНАЧЕ РасходнаяНакладнаяЗапасы.СтоимостьДоставки + РасходнаяНакладнаяЗапасы.СуммаНДСДоставки
КОНЕЦ,
РасходнаяНакладнаяЗапасы.Ссылка,
ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка),
ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка),
ЛОЖЬ,
ЛОЖЬ,
НЕОПРЕДЕЛЕНО,
НЕОПРЕДЕЛЕНО,
НЕОПРЕДЕЛЕНО,
НЕОПРЕДЕЛЕНО
ИЗ
Документ.РасходнаяНакладная КАК РасходнаяНакладнаяЗапасы
ЛЕВОЕ СОЕДИНЕНИЕ МаксНомерСтрокиЗапасы КАК МаксНомерСтрокиЗапасы
ПО (МаксНомерСтрокиЗапасы.Ссылка = РасходнаяНакладнаяЗапасы.Ссылка),
Константа.ВариантПечатиДоставки КАК ВариантПечатиДоставки
ГДЕ
РасходнаяНакладнаяЗапасы.Ссылка В(&МассивОбъектов)
И РасходнаяНакладнаяЗапасы.НоменклатураДоставки <> ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
И (ВариантПечатиДоставки.Значение <> ЗНАЧЕНИЕ(Перечисление.ВариантыПечатиДоставки.НеВыводитьБесплатнуюДоставку)
ИЛИ РасходнаяНакладнаяЗапасы.СтоимостьДоставки > 0)
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
РасходнаяНакладнаяЗапасы.Номенклатура КАК Номенклатура,
РасходнаяНакладнаяЗапасы.Содержание КАК Содержание,
РасходнаяНакладнаяЗапасы.ПредставлениеНоменклатуры КАК ПредставлениеНоменклатуры,
РасходнаяНакладнаяЗапасы.ТипНоменклатуры КАК ТипНоменклатуры,
РасходнаяНакладнаяЗапасы.ЗапасКод КАК ЗапасКод,
РасходнаяНакладнаяЗапасы.ЗапасКод КАК Код,
РасходнаяНакладнаяЗапасы.Артикул КАК Артикул,
РасходнаяНакладнаяЗапасы.ЕдиницаИзмеренияПоОКЕИ_Наименование КАК ЕдиницаИзмеренияПоОКЕИ_Наименование,
РасходнаяНакладнаяЗапасы.ЕдиницаИзмеренияПоОКЕИ_Код КАК ЕдиницаИзмеренияПоОКЕИ_Код,
РасходнаяНакладнаяЗапасы.Характеристика КАК Характеристика,
РасходнаяНакладнаяЗапасы.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
РасходнаяНакладнаяЗапасы.ВидУпаковки КАК ВидУпаковки,
РасходнаяНакладнаяЗапасы.Количество КАК Количество,
РасходнаяНакладнаяЗапасы.КоэффициентЕдиницыИзмерения КАК КоэффициентЕдиницыИзмерения,
РасходнаяНакладнаяЗапасы.КоличествоВОдномМесте КАК КоличествоВОдномМесте,
РасходнаяНакладнаяЗапасы.КоличествоМест КАК КоличествоМест,
РасходнаяНакладнаяЗапасы.СтавкаНДС КАК СтавкаНДС,
РасходнаяНакладнаяЗапасы.Вес КАК МассаБрутто,
РасходнаяНакладнаяЗапасы.НомерСтроки КАК НомерСтроки,
ВЫБОР
КОГДА РасходнаяНакладнаяЗапасы.Ссылка.ВалютаДокумента = &Валюта
ТОГДА РасходнаяНакладнаяЗапасы.СуммаСкидкиПоСтроке
ИНАЧЕ ВЫРАЗИТЬ(РасходнаяНакладнаяЗапасы.СуммаСкидкиПоСтроке * &Курс / РасходнаяНакладнаяЗапасы.Ссылка.Кратность КАК ЧИСЛО(15, 2))
КОНЕЦ КАК СуммаСкидкиПоСтроке,
ВЫБОР
КОГДА &ПечатнаяФормаТолькоВРублях
ТОГДА ВЫБОР
КОГДА РасходнаяНакладнаяЗапасы.Ссылка.ВалютаДокумента = &Валюта
ТОГДА РасходнаяНакладнаяЗапасы.Цена
КОГДА СуммыДокументовРегламентированныйУчет.Всего ЕСТЬ NULL
ТОГДА ВЫРАЗИТЬ(РасходнаяНакладнаяЗапасы.Цена * &Курс / РасходнаяНакладнаяЗапасы.Ссылка.Кратность КАК ЧИСЛО(15, 2))
ИНАЧЕ ВЫБОР
КОГДА РасходнаяНакладнаяЗапасы.Количество = 0
ТОГДА СуммыДокументовРегламентированныйУчет.Всего - СуммыДокументовРегламентированныйУчет.НДС
ИНАЧЕ ВЫРАЗИТЬ((СуммыДокументовРегламентированныйУчет.Всего - СуммыДокументовРегламентированныйУчет.НДС) / РасходнаяНакладнаяЗапасы.Количество КАК ЧИСЛО(15, 2))
КОНЕЦ
КОНЕЦ
ИНАЧЕ РасходнаяНакладнаяЗапасы.Цена
КОНЕЦ КАК Цена,
ВЫБОР
КОГДА &ПечатнаяФормаТолькоВРублях
ТОГДА ВЫБОР
КОГДА РасходнаяНакладнаяЗапасы.Ссылка.ВалютаДокумента = &Валюта
ТОГДА РасходнаяНакладнаяЗапасы.Сумма
КОГДА СуммыДокументовРегламентированныйУчет.Всего ЕСТЬ NULL
ТОГДА ВЫРАЗИТЬ(РасходнаяНакладнаяЗапасы.Сумма * &Курс / РасходнаяНакладнаяЗапасы.Ссылка.Кратность КАК ЧИСЛО(15, 2))
ИНАЧЕ ВЫБОР
КОГДА РасходнаяНакладнаяЗапасы.Ссылка.СуммаВключаетНДС
ТОГДА ВЫРАЗИТЬ(СуммыДокументовРегламентированныйУчет.Всего КАК ЧИСЛО(15, 2))
ИНАЧЕ ВЫРАЗИТЬ(СуммыДокументовРегламентированныйУчет.Всего - СуммыДокументовРегламентированныйУчет.НДС КАК ЧИСЛО(15, 2))
КОНЕЦ
КОНЕЦ
ИНАЧЕ РасходнаяНакладнаяЗапасы.Сумма
КОНЕЦ КАК Сумма,
ВЫБОР
КОГДА &ПечатнаяФормаТолькоВРублях
ТОГДА ВЫБОР
КОГДА РасходнаяНакладнаяЗапасы.Ссылка.ВалютаДокумента = &Валюта
ТОГДА РасходнаяНакладнаяЗапасы.СуммаНДС
КОГДА СуммыДокументовРегламентированныйУчет.Всего ЕСТЬ NULL
ТОГДА ВЫРАЗИТЬ(РасходнаяНакладнаяЗапасы.СуммаНДС * &Курс / РасходнаяНакладнаяЗапасы.Ссылка.Кратность КАК ЧИСЛО(15, 2))
ИНАЧЕ СуммыДокументовРегламентированныйУчет.НДС
КОНЕЦ
ИНАЧЕ РасходнаяНакладнаяЗапасы.СуммаНДС
КОНЕЦ КАК СуммаНДС,
ВЫБОР
КОГДА &ПечатнаяФормаТолькоВРублях
ТОГДА ВЫБОР
КОГДА РасходнаяНакладнаяЗапасы.Ссылка.ВалютаДокумента = &Валюта
ТОГДА РасходнаяНакладнаяЗапасы.Всего
КОГДА СуммыДокументовРегламентированныйУчет.Всего ЕСТЬ NULL
ТОГДА ВЫРАЗИТЬ(РасходнаяНакладнаяЗапасы.Всего * &Курс / РасходнаяНакладнаяЗапасы.Ссылка.Кратность КАК ЧИСЛО(15, 2))
ИНАЧЕ СуммыДокументовРегламентированныйУчет.Всего
КОНЕЦ
ИНАЧЕ РасходнаяНакладнаяЗапасы.Всего
КОНЕЦ КАК Всего,
РасходнаяНакладнаяЗапасы.Ссылка КАК Ссылка,
РасходнаяНакладнаяЗапасы.НоменклатураНабора КАК НоменклатураНабора,
РасходнаяНакладнаяЗапасы.ХарактеристикаНабора КАК ХарактеристикаНабора,
РасходнаяНакладнаяЗапасы.ЭтоНабор КАК ЭтоНабор,
РасходнаяНакладнаяЗапасы.НеобходимоВыделитьКакСоставНабора КАК НеобходимоВыделитьКакСоставНабора,
РасходнаяНакладнаяЗапасы.СтранаСсылка КАК СтранаСсылка,
ПРЕДСТАВЛЕНИЕ(РасходнаяНакладнаяЗапасы.СтранаПредставление) КАК СтранаПредставление,
РасходнаяНакладнаяЗапасы.СтранаКод КАК СтранаКод,
РасходнаяНакладнаяЗапасы.ПредставлениеГТД КАК ПредставлениеГТД
ИЗ
ВременнаяТаблица_РасходнаяНакладнаяЗапасы КАК РасходнаяНакладнаяЗапасы
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СуммыДокументовРегламентированныйУчет КАК СуммыДокументовРегламентированныйУчет
ПО РасходнаяНакладнаяЗапасы.Ссылка = СуммыДокументовРегламентированныйУчет.Регистратор
И РасходнаяНакладнаяЗапасы.НомерСтроки = СуммыДокументовРегламентированныйУчет.НомерСтрокиДокумента
ГДЕ
РасходнаяНакладнаяЗапасы.Ссылка В(&МассивОбъектов)

УПОРЯДОЧИТЬ ПО
Ссылка,
НомерСтроки

sali

antoneus, скажите как может быть так что, в запросе делаешь деление , а в результате делается умножение?

antoneus

Лень всю простыню разбирать, но там, смотрю, и деление и умножение есть.

sali

antoneus, дааа оказалось что я не в той таблице запроса изменил умножение на деление, дурак

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск