gifts2017

Внешняя печатная форма "Реализация товаров" без характеристик для Управление торговлей 11 (УТ 11)

Опубликовал Сергей (molsergey) в раздел Печать - Печатные формы документов

Внешняя печатная форма "Реализация товаров" без характеристик для Управление торговлей 11 (УТ 11)

Не всегда требуется печать всего списка товаров с характеристиками. Эта форма экономит бумагу и нервы покупателя, который не хочет считать товар по характеристикам. Для добавления формы необходимо зайти в раздел "Администрирование"-"Дополнительные отчеты и обработки" и здесь добавить форму. Она появится в документе "Реализация товаров и услуг" в печати в разделе "Дополнительные печатные формы".

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
Реализация товаров без характеристик УТ 11
.EPF 13,44Kb
01.02.12
109
.EPF 13,44Kb 109 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. антон кривец (akril19811) 09.03.12 18:18
Я правильно понял в этой форме можно и столбик с ндс убрать самому?
2. Сергей (molsergey) 13.03.12 09:19
НДС не выводится в печатную форму, если реализация без НДС. Если с НДС то выводится.
3. Петр Логинов (PiotrLoginov) 24.10.12 20:04
При попытке использования (характеристки у нас в УТ не используются) выдается ошибка "Преобразование к типу Булево не может быть выполнено". И обработка не запускается.
4. Степан S (Ed111111) 22.05.13 14:57
На версии 11.1 никто не пробовал запустить? Теоретически должно работать. Отпишитесь пожалуйста.
5. Степан S (Ed111111) 22.05.13 14:58
Что значит без характеристик?
6. Степан S (Ed111111) 22.05.13 15:08
Я вот сам решил попробовать протестировать ее в УТ 11.1 и появилась проблема.

Перейдя в раздел "Дополнительные печатные формы" и нажав кнопку "Выполнить" мне выходит ошибка "Метод объекта не обнаружен (СформироватьЗаголовокДокумента)"

Как я понимаю - это несовместимость версий УТ 11 и 11.1?
7. Сергей (molsergey) 23.05.13 08:52
Печатная форма делалась для УТ 11.0.7.21.
В УТ 11.1 что то поменялось, нужно корректировать печатную форму.
8. Степан S (Ed111111) 23.05.13 11:09
Никто не задавался целью исправить?

Выкладываю исходник:

/////////////////////////////////////////////////////////////////////////////
// ОПИСАНИЕ ИНТЕРФЕЙСОВ

// Интерфейс для регистрации обработки.
// Вызывается при добавлении обработки в справочник "ВнешниеОбработки"
//
// Возвращаемое значение:
// Структура:
// Вид - строка - возможные значения:	"ДополнительнаяОбработка"
//										"ДополнительныйОтчет"
//										"ЗаполнениеОбъекта"
//										"Отчет"
//										"ПечатнаяФорма"
//										"СозданиеСвязанныхОбъектов"
//
// Назначение - массив строк имен объектов метаданных в формате:
//			<ИмяКлассаОбъектаМетаданного>.[ * | <ИмяОбъектаМетаданных>]
//			Например, "Документ.СчетЗаказ" или "Справочник.*"
//			Прим. параметр имеет смысл только для назначаемых обработок
//
// Наименование - строка - наименование обработки, которым будет заполнено
//						наименование справочника по умолчанию - краткая строка для
//						идентификации обработки администратором
//
// Версия - строка - версия обработки в формате <старший номер>.<младший номер>
//					используется при загрузке обработок в информационную базу
// БезопасныйРежим – Булево – Если истина, обработка будет запущена в безопасном режиме.
//							Более подбробная информация в справке.
//
// Информация - Строка- краткая информация по обработке, описание обработки
//
// Команды - ТаблицаЗначений - команды, поставляемые обработкой, одная строка таблицы соотвествует
//							одной команде
//				колонки: 
//				 - Представление - строка - представление команды конечному пользователю
//				 - Идентификатор - строка - идентефикатор команды. В случае печатных форм
//											перечисление через запятую списка макетов
//				 - Использование - строка - варианты запуска обработки:
//						"ОткрытиеФормы" - открыть форму обработки
//						"ВызовКлиентскогоМетода" - вызов клиентского экспортного метода из формы обработки
//						"ВызовСерверногоМетода" - вызов серверного экспортного метода из модуля объекта обработки
//				 - ПоказыватьОповещение – Булево – если Истина, требуется оказывать оповещение при начале
//								и при окончании запуска обработки. Прим. Имеет смысл только
//								при запуске обработки без открытия формы.
//				 - Модификатор – строка - для печатных форм MXL, которые требуется
//										отображать в форме ПечатьДокументов подсистемы Печать
//										требуется установить как "ПечатьMXL"
//
Функция СведенияОВнешнейОбработке() Экспорт
	
	ПараметрыРегистрации = Новый Структура;
	
	ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма");
	ПараметрыРегистрации.Вставить("Назначение", ПолучитьНазначениеОбработки());
	ПараметрыРегистрации.Вставить("Наименование", НСтр("ru = 'Реализация товаров без характеристик'"));
	ПараметрыРегистрации.Вставить("Версия", "1.0");
	ПараметрыРегистрации.Вставить("БезопасныйРежим", Ложь);
	ПараметрыРегистрации.Вставить("Информация", НСтр("ru = 'Печать без характеристик'"));
	
	ТаблицаКоманд = ПолучитьТаблицуКоманд();
	
	ДобавитьКоманду(ТаблицаКоманд,
					НСтр("ru = 'Реализация товаров без характеристик'"),
					"РеализацияТоваровБезХарактеристик",
					"ВызовСерверногоМетода",
					Истина,
					"ПечатьMXL");
	
	
	ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
	
	Возврат ПараметрыРегистрации;
	
КонецФункции

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

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

	Запрос.УстановитьПараметр("МассивДокументов", МассивОбъектов);

	ТабличныйДокумент = Новый ТабличныйДокумент;
	ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_РеализацияТоваровУслуг_НакладнаяБезХаракте­ристик";
	
	МассивРезультатов 		= Запрос.ВыполнитьПакет();
	ДанныеПечати			= МассивРезультатов[0].Выбрать();
	ВыборкаПоДокументам 	= МассивРезультатов[1].Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
	
	ПервыйДокумент = Истина;
	
	Пока ДанныеПечати.Следующий() Цикл
	
		// Найдем в выборке товары по текущему документу
		СтруктураПоиска = Новый Структура("Ссылка", ДанныеПечати.Ссылка);
		НайденСледующий = ВыборкаПоДокументам.НайтиСледующий(СтруктураПоиска);
		
		// Если в накладной только услуги - перейдем к следующему документу
		
		Если НайденСледующий Тогда
			ВыборкаПоТоварам = ВыборкаПоДокументам.Выбрать();
			ЕстьСкидки = ФормированиеПечатныхФорм.НужноВыводитьСкидки(ВыборкаПоТоварам, ИспользоватьРучныеСкидки Или ИспользоватьАвтоматическиеСкидки);
			ЕстьНДС = ДанныеПечати.УчитыватьНДС;
			ВыборкаПоТоварам.Сбросить();
		Иначе
			Текст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
				НСтр("ru = 'В документе %1 отсутствуют товары. Печать накладной не требуется'"),
				ДанныеПечати.Ссылка
				);
				
			ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
				Текст,
				ДанныеПечати.Ссылка
			);
			Продолжить;
		КонецЕсли;
		
		// Макет необходимо получать для каждого документа, т.к. размеры колонок изменяются динамически
		Макет = ПолучитьМакет("РеализацияТоваровБезХарактеристик");
		
		Если Не ПервыйДокумент Тогда
			ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
		КонецЕсли;
		
		ПервыйДокумент    = Ложь;
		НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1;
		
		// Выводим шапку накладной
		
		ОбластьМакета = Макет.ПолучитьОбласть("Заголовок");
		
		ТекстЗаголовка = ОбщегоНазначенияКлиентСервер.СформироватьЗаголовокДокумента(ДанныеПечати, НСтр("ru='Реализация товаров'"));
		
		ОбластьМакета.Параметры.ТекстЗаголовка = ТекстЗаголовка;
		ТабличныйДокумент.Вывести(ОбластьМакета);
		
		ОбластьМакета                                   = Макет.ПолучитьОбласть("Поставщик");
		ПредставлениеПоставщика                         = ФормированиеПечатныхФорм.ОписаниеОрганизации(ФормированиеПечатныхФорм.СведенияОЮрФизЛице(ДанныеПечати.Организация, ДанныеПечати.Дата), "ПолноеНаименование");
		ОбластьМакета.Параметры.ПредставлениеПоставщика = ПредставлениеПоставщика;
		ОбластьМакета.Параметры.Поставщик               = ДанныеПечати.Организация;
		ТабличныйДокумент.Вывести(ОбластьМакета);
		
		ОбластьМакета                                   = Макет.ПолучитьОбласть("Покупатель");
		ПредставлениеПолучателя                         = ФормированиеПечатныхФорм.ОписаниеОрганизации(ФормированиеПечатныхФорм.СведенияОЮрФизЛице(ДанныеПечати.Получатель, ДанныеПечати.Дата), "ПолноеНаименование");
		ОбластьМакета.Параметры.ПредставлениеПолучателя = ПредставлениеПолучателя;
		ОбластьМакета.Параметры.Получатель              = ДанныеПечати.Получатель;
		ТабличныйДокумент.Вывести(ОбластьМакета);
		
		// Выводим заголовок таблицы Товары
		
		СуффиксОбластиСтроки = ?(ЕстьСкидки, "СоСкидкой", "") + ?(ЕстьНДС, "СНДС", "");
		СуффиксОбластиКолонки = ?(ЕстьСкидки И ЕстьНДС, "СоСкидкойСНДС", ?(ЕстьСкидки Или ЕстьНДС, "СоСкидкойИлиСНДС", ""));
		
		ОбластьКолонкаТовар = Макет.Область("ПерваяКолонкаТовара");
		ОбластьКолонкаТовар.ШиринаКолонки = ОбластьКолонкаТовар.ШиринаКолонки
			+ ?(ВыводитьКоды, 0, Макет.Область("КолонкаКодов").ШиринаКолонки)
		;
		
		ОбластьНомера  = Макет.ПолучитьОбласть("ШапкаТаблицы" + СуффиксОбластиСтроки + "|НомерСтроки");
		ОбластьКодов   = Макет.ПолучитьОбласть("ШапкаТаблицы" + СуффиксОбластиСтроки + "|КолонкаКодов");
		ОбластьТовар   = Макет.ПолучитьОбласть("ШапкаТаблицы" + СуффиксОбластиСтроки + "|Товар" + СуффиксОбластиКолонки);
		ОбластьДанных  = Макет.ПолучитьОбласть("ШапкаТаблицы" + СуффиксОбластиСтроки + "|Данные" + СуффиксОбластиКолонки);
		
		ТабличныйДокумент.Вывести(ОбластьНомера);
			
		Если ВыводитьКоды Тогда
			ОбластьКодов.Параметры.ИмяКолонкиКодов = КолонкаКодов;
			ТабличныйДокумент.Присоединить(ОбластьКодов);
		КонецЕсли;
			
		ТабличныйДокумент.Присоединить(ОбластьТовар);
		ТабличныйДокумент.Присоединить(ОбластьДанных);
		
		ОбластьНомера  = Макет.ПолучитьОбласть("СтрокаТаблицы" + СуффиксОбластиСтроки + "|НомерСтроки");
		ОбластьКодов   = Макет.ПолучитьОбласть("СтрокаТаблицы" + СуффиксОбластиСтроки + "|КолонкаКодов");
		ОбластьТовар   = Макет.ПолучитьОбласть("СтрокаТаблицы" + СуффиксОбластиСтроки + "|Товар" + СуффиксОбластиКолонки);
		ОбластьДанных  = Макет.ПолучитьОбласть("СтрокаТаблицы" + СуффиксОбластиСтроки + "|Данные" + СуффиксОбластиКолонки);
		
		Сумма          = 0;
		СуммаНДС       = 0;
		ВсегоСкидок    = 0;
		НомерСтроки    = 0;
		ВсегоБезСкидок = 0;
		
		// Выводим строки таблицы Товары
			
		Пока ВыборкаПоТоварам.Следующий() Цикл
			
			НомерСтроки = НомерСтроки + 1;
			
			ОбластьНомера.Параметры.НомерСтроки = НомерСтроки;
			ТабличныйДокумент.Вывести(ОбластьНомера);
			
			Если ВыводитьКоды Тогда
				
				ОбластьКодов.Параметры.Артикул = ВыборкаПоТоварам[КолонкаКодов];
				ТабличныйДокумент.Присоединить(ОбластьКодов);
				
			КонецЕсли;
			
			ОбластьТовар.Параметры.Заполнить(ВыборкаПоТоварам);
			ОбластьТовар.Параметры.Товар = ФормированиеПечатныхФорм.ПолучитьПредставлениеНоменклатурыДляПечати(
				ВыборкаПоТоварам.ТоварНаименованиеПолное,
				ВыборкаПоТоварам.Упаковка
			) + ?(ВыборкаПоТоварам.ЭтоВозвратнаяТара, НСтр("ru=' (возвратная тара)'"), "");
			
			ТабличныйДокумент.Присоединить(ОбластьТовар);
			
			ОбластьДанных.Параметры.Заполнить(ВыборкаПоТоварам);
			
			ТабличныйДокумент.Присоединить(ОбластьДанных);
			
			Сумма          = Сумма          + ВыборкаПоТоварам.Сумма;
			СуммаНДС       = СуммаНДС       + ВыборкаПоТоварам.СуммаНДС;
			
			Если ЕстьСкидки Тогда
				ВсегоСкидок    = ВсегоСкидок    + ВыборкаПоТоварам.СуммаСкидки;
				ВсегоБезСкидок = ВсегоБезСкидок + ВыборкаПоТоварам.СуммаБезСкидки;
			КонецЕсли;
			
		КонецЦикла;
		
		// Выводим подвал
		
		ОбластьНомера  = Макет.ПолучитьОбласть("ПодвалТаблицы" + СуффиксОбластиСтроки + "|НомерСтроки");
		ОбластьКодов   = Макет.ПолучитьОбласть("ПодвалТаблицы" + СуффиксОбластиСтроки + "|КолонкаКодов");
		ОбластьТовар   = Макет.ПолучитьОбласть("ПодвалТаблицы" + СуффиксОбластиСтроки + "|Товар" + СуффиксОбластиКолонки);
		ОбластьДанных  = Макет.ПолучитьОбласть("ПодвалТаблицы" + СуффиксОбластиСтроки + "|Данные" + СуффиксОбластиКолонки);
		
		ТабличныйДокумент.Вывести(ОбластьНомера);
		
		Если ВыводитьКоды Тогда
			ТабличныйДокумент.Присоединить(ОбластьКодов);
		КонецЕсли;
		
		ТабличныйДокумент.Присоединить(ОбластьТовар);
		
		Если ЕстьСкидки Тогда
			
			ОбластьДанных.Параметры.ВсегоСкидок    = ВсегоСкидок;
			ОбластьДанных.Параметры.ВсегоБезСкидок = ВсегоБезСкидок;
			
		КонецЕсли;
		
		ОбластьДанных.Параметры.Всего = ФормированиеПечатныхФорм.ФорматСумм(Сумма);
		ТабличныйДокумент.Присоединить(ОбластьДанных);
		
		// Выводим ИтогоНДС
		
		Область = Макет.ПолучитьОбласть("ПодвалНДС");
		
		Область.Параметры.ВсегоНДС = СуммаНДС;
		Если ЕстьНДС Тогда
			Область.Параметры.НДС = ?(ДанныеПечати.ЦенаВключаетНДС, НСтр("ru='В том числе НДС:'"), НСтр("ru='Сумма НДС:'"));
		Иначе
			Область.Параметры.НДС = НСтр("ru='Без налога (НДС)'");
		КонецЕсли;
		ТабличныйДокумент.Присоединить(Область);
		
		// Выводим Сумму прописью
		
		ОбластьМакета = Макет.ПолучитьОбласть("СуммаПрописью");
		СуммаКПрописи = Сумма + ?(ДанныеПечати.ЦенаВключаетНДС, 0, СуммаНДС);
		
		ИтоговаяСтрока = НСтр("ru='Всего наименований %КоличествоНаименований%, на сумму %СуммаДокумента% '");
		ИтоговаяСтрока = СтрЗаменить(ИтоговаяСтрока, "%КоличествоНаименований%", ВыборкаПоТоварам.Количество());
		ИтоговаяСтрока = СтрЗаменить(ИтоговаяСтрока, "%СуммаДокумента%", ФормированиеПечатныхФорм.ФорматСумм(СуммаКПрописи, ДанныеПечати.Валюта));

		ОбластьМакета.Параметры.ИтоговаяСтрока = ИтоговаяСтрока;
		ОбластьМакета.Параметры.СуммаПрописью  = РаботаСКурсамиВалют.СформироватьСуммуПрописью(СуммаКПрописи, ДанныеПечати.Валюта);
		
		ТабличныйДокумент.Вывести(ОбластьМакета);
		
		// Выводим подписи
		ОбластьМакета = Макет.ПолучитьОбласть("Подписи");
		
		Если ЗначениеЗаполнено(ДанныеПечати.ОтпускПроизвел) Тогда
			ОбластьМакета.Параметры.ОтпускПроизвел = ФизическиеЛица.ФамилияИнициалыФизЛица(ДанныеПечати.ОтпускПроизвел);
		КонецЕсли;
		
		ТабличныйДокумент.Вывести(ОбластьМакета);
		
		УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент, НомерСтрокиНачало, ОбъектыПечати, ДанныеПечати.Ссылка);
		
	КонецЦикла;
	
	ТабличныйДокумент.АвтоМасштаб = Истина;

	Если ПривилегированныйРежим() Тогда
		УстановитьПривилегированныйРежим(Ложь);
	КонецЕсли;
	
	Возврат ТабличныйДокумент;

КонецФункции // СформироватьПечатнуюФормуНакладная()

Функция РазложитьМассивПоТипамОбъектов(МассивОбъектов)
	
	СтруктураТипов 	= Новый Структура;
	
	Для Каждого Объект Из МассивОбъектов Цикл
			
		Если ТипЗнч(Объект) 	= Тип("ДокументСсылка.РеализацияТоваровУслуг") Тогда
			Если НЕ СтруктураТипов.Свойство("РеализацияТоваровУслуг") Тогда
				МассивРеализаций 	= Новый Массив;
				СтруктураТипов.Вставить("РеализацияТоваровУслуг", МассивРеализаций);
			КонецЕсли;
			СтруктураТипов.РеализацияТоваровУслуг.Добавить(Объект);
			
		КонецЕсли;
		
	КонецЦикла;
	
	Возврат СтруктураТипов
	
КонецФункции

Функция ПолучитьНазначениеОбработки()
	
	Назначение = Новый Массив;
	
	Назначение.Добавить("Документ.РеализацияТоваровУслуг");
	
	Возврат Назначение;
	
КонецФункции

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

Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
	
	НоваяКоманда = ТаблицаКоманд.Добавить();
	НоваяКоманда.Представление = Представление;
	НоваяКоманда.Идентификатор = Идентификатор;
	НоваяКоманда.Использование = Использование;
	НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
	НоваяКоманда.Модификатор = Модификатор;
	
КонецПроцедуры
...Показать Скрыть
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа