ПОТРІБНА зовнішня обробка табеля обліку робочого часу

  • Автор темы Автор темы McLoren
  • Дата начала Дата начала

McLoren

New member
Доброго дня. Для конфігурації бази 8.3. потрібна зовнішня обробка табеля обліку робочого часу для "Бухгалтерія для України" (базова), редакція 1.2 друкована форма.
В конфігурації є тільки бланк наскільки я розумію, і він автоматично не заповняється
 
Последнее редактирование:
Если не сложно, продублируйте файл? ссылка не действительна (хоть я и зарегистрировалась)
 
Если не сложно, продублируйте файл? ссылка не действительна (и мне)
 
Добрый день. Подскажите нуждаюсь в правке внешняя печатная форма счет для покупателя для 1С8.3 конфигурация бухгалтерия 2.0.
Есть такая обработка для конфигурации бухгалтерия 1.2. - не запускается на 2,0.
error_1C_500.jpg
error2_1C_500.jpg

как поправить, чтобы заработало на 2.0
Код:
Перем мВалютаРегламентированногоУчета Экспорт;


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

Возврат ПараметрыРегистрации;
КонецФункции

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

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

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

КонецПроцедуры

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

	Шапка = Запрос.Выполнить().Выбрать();
	Шапка.Следующий();

	ТабДокумент = Новый ТабличныйДокумент;
	ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ЗаказПокупателя_СчетЗаказ";

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

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

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

	ОбластьМакета = Макет.ПолучитьОбласть("Заголовок");
	Если Шапка.ВидДоговораКонтрагента = Перечисления.ВидыДоговоровКонтрагентов.СКомиссионером  Тогда
		ОбластьМакета.Параметры.ТекстЗаголовка = ОбщегоНазначения.СформироватьЗаголовокДокумента(Шапка, НСтр("ru='Список товаров на комиссию';uk='Список товарів на комісію'",КодЯзыкаПечать),КодЯзыкаПечать);
	Иначе	
		ОбластьМакета.Параметры.ТекстЗаголовка = ОбщегоНазначения.СформироватьЗаголовокДокумента(Шапка, НСтр("ru='Счет на оплату';uk='Рахунок на оплату'",КодЯзыкаПечать),КодЯзыкаПечать);
	КонецЕсли; 
	
	ТабДокумент.Вывести(ОбластьМакета);

	ОбластьМакета = Макет.ПолучитьОбласть("Поставщик");
	ОбластьМакета.Параметры.Заполнить(Шапка);
	ОбластьМакета.Параметры.ПредставлениеПоставщика = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПоставщике, "ПолноеНаименование,",,КодЯзыкаПечать);	
	//Если Тип = "Счет" Тогда
	ОбластьМакета.Параметры.РеквизитыПоставщика =  НСтр("ru='Т/с ';uk='П/р '",КодЯзыкаПечать) + НомерСчета + НСтр("ru=', Банк ';uk=', Банк '",КодЯзыкаПечать) + Банк + НСтр("ru=', МФО ';uk=', МФО '",КодЯзыкаПечать) + МФО + Символы.ПС + 
													ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПоставщике, "ЮридическийАдрес,Телефоны,/,КодПоЕДРПОУ,КодПоДРФО,ИНН,НомерСвидетельства,/,ИнформацияОСтатусеПлательщикаНалогов,",,КодЯзыкаПечать);
	ОбластьМакета.Параметры.ПлатитНалог = НСтр("ru='Является плательщиком налога на общих условиях';uk='Є платником податку на загальних умовах'",КодЯзыкаПечать);												
	//КонецЕсли;
    ТабДокумент.Вывести(ОбластьМакета);
	
	ОбластьМакета = Макет.ПолучитьОбласть("Покупатель");
	ОбластьМакета.Параметры.Заполнить(Шапка);
 	ОбластьМакета.Параметры.ПредставлениеПокупателя = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПокупателе, "ПолноеНаименование,",,КодЯзыкаПечать);
	ОбластьМакета.Параметры.РеквизитыПокупателя		= ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПокупателе,"Телефоны,",,КодЯзыкаПечать);
	ТабДокумент.Вывести(ОбластьМакета);

	// Выводим дополнительно информацию о договоре и сделке
	СписокДополнительныхПараметров = "ДоговорНаименованиеДляПечати,";
	МассивСтруктурСтрок = ФормированиеПечатныхФорм.ДополнительнаяИнформация(Шапка,СписокДополнительныхПараметров,КодЯзыкаПечать);
	ОбластьМакета = Макет.ПолучитьОбласть("ДопИнформация");
    Для каждого СтруктураСтроки Из МассивСтруктурСтрок Цикл
		ОбластьМакета.Параметры.Заполнить(СтруктураСтроки);
		ТабДокумент.Вывести(ОбластьМакета);
	КонецЦикла;
	
	// Вывести табличную часть
	ОбластьИтого = "Итого";
	
	ЕстьСкидки = (ЗапросТовары.Итог("СуммаСкидки") <> 0);
	
	ДопКолонка = Константы.ДополнительнаяКолонкаПечатныхФормДокументов.Получить();
	Если ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Артикул Тогда
		ВыводитьКоды = Истина;
		Колонка = "Артикул";
	ИначеЕсли ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Код Тогда
		ВыводитьКоды = Истина;
		Колонка = "Код";
	Иначе
		ВыводитьКоды = Ложь;
	КонецЕсли;
	
	ОбластьНомера = Макет.ПолучитьОбласть("ШапкаТаблицы|НомерСтроки");
	ОбластьКодов  = Макет.ПолучитьОбласть("ШапкаТаблицы|КолонкаКодов");
	ОбластьДанных = Макет.ПолучитьОбласть("ШапкаТаблицы|Данные");
    ОбластьСкидка = Макет.ПолучитьОбласть("ШапкаТаблицы|Скидка");
	ОбластьСуммы  = Макет.ПолучитьОбласть("ШапкаТаблицы|Сумма");
    
	ТабДокумент.Вывести(ОбластьНомера);
	Если ВыводитьКоды Тогда
		ОбластьКодов.Параметры.ИмяКолонкиКодов = Колонка;
		ТабДокумент.Присоединить(ОбластьКодов);
	КонецЕсли;
	
	Суффикс = "";
	Если Шапка.УчитыватьНДС Тогда
		Если Шапка.СуммаВключаетНДС Тогда
			Суффикс  = Суффикс  + НСтр("ru=' с ';uk=' з '",КодЯзыкаПечать);
		Иначе	
			Суффикс  = Суффикс  + НСтр("ru=' без ';uk=' без '",КодЯзыкаПечать);
		КонецЕсли;
		Суффикс = Суффикс  + НСтр("ru='НДС';uk='ПДВ'",КодЯзыкаПечать);
	КонецЕсли;
	ОбластьДанных.Параметры.Цена  = НСтр("ru='Цена';uk='Ціна'",КодЯзыкаПечать) + Суффикс;
	ТабДокумент.Присоединить(ОбластьДанных);
	Если ЕстьСкидки Тогда
		ТабДокумент.Присоединить(ОбластьСкидка);
	КонецЕсли;
	ОбластьСуммы.Параметры.СрокПоставки =  НСтр("ru=' Срок поставки, нед. ';uk=' Термін постачання, тижн.'",КодЯзыкаПечать);

	
	ОбластьСуммы.Параметры.Сумма = НСтр("ru='Сумма';uk='Сума'",КодЯзыкаПечать)+ Суффикс;
	ТабДокумент.Присоединить(ОбластьСуммы);
	//ТабДокумент.Вывести(ОбластьМакета);
	
	ОбластьКолонкаТовар = Макет.Область("Товар");
	Если Не ВыводитьКоды Тогда
		ОбластьКолонкаТовар.ШиринаКолонки = ОбластьКолонкаТовар.ШиринаКолонки + 
											Макет.Область("КолонкаКодов").ШиринаКолонки;
	КонецЕсли;
	Если НЕ ЕстьСкидки Тогда
		ОбластьКолонкаТовар.ШиринаКолонки = ОбластьКолонкаТовар.ШиринаКолонки + 
											Макет.Область("СуммаБезСкидки").ШиринаКолонки +
											Макет.Область("СуммаСкидки").ШиринаКолонки;
	КонецЕсли;
	
	СуммаБезСкидки	= 0;
	СуммаСкидки 	= 0;
	Сумма    		= 0;
	СуммаНДС 		= 0;
	
	ОбластьНомера = Макет.ПолучитьОбласть("Строка|НомерСтроки");
	ОбластьКодов  = Макет.ПолучитьОбласть("Строка|КолонкаКодов");
	ОбластьДанных = Макет.ПолучитьОбласть("Строка|Данные");
	ОбластьСкидки = Макет.ПолучитьОбласть("Строка|Скидка");
	ОбластьСуммы  = Макет.ПолучитьОбласть("Строка|Сумма");

	Для каждого ВыборкаСтрокТовары Из ЗапросТовары Цикл 

		Если НЕ ЗначениеЗаполнено(ВыборкаСтрокТовары.Номенклатура) Тогда
			Сообщить(НСтр("ru='В одной из строк не заполнено значение номенклатуры - строка при печати пропущена.';uk='В одному з рядків не заповнене значення номенклатури - рядок під час друку буде пропущений.'"), СтатусСообщения.Важное);
			Продолжить;
		КонецЕсли;


		ОбластьНомера.Параметры.НомерСтроки = ЗапросТовары.Индекс(ВыборкаСтрокТовары) + 1;
		ТабДокумент.Вывести(ОбластьНомера);
		
		Если ВыводитьКоды Тогда
			Если Колонка = "Артикул" Тогда
				ОбластьКодов.Параметры.Артикул = ВыборкаСтрокТовары.Артикул;
			Иначе
				ОбластьКодов.Параметры.Артикул = ВыборкаСтрокТовары.Код;
			КонецЕсли;
			ТабДокумент.Присоединить(ОбластьКодов);
		КонецЕсли;

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

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

		ОбластьСуммы.Параметры.Заполнить(ВыборкаСтрокТовары);
		ТабДокумент.Присоединить(ОбластьСуммы);
		
		СуммаБезСкидки = СуммаБезСкидки + ВыборкаСтрокТовары.СуммаБезСкидки;
		СуммаСкидки    = СуммаСкидки    + ВыборкаСтрокТовары.СуммаСкидки;
		Сумма          = Сумма       	+ ВыборкаСтрокТовары.Сумма;
		СуммаНДС       = СуммаНДС    	+ ВыборкаСтрокТовары.СуммаНДС;

	КонецЦикла;

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

	// Вывести ИтогоНДС
	Если Шапка.УчитыватьНДС Тогда
		// НДС
		ОбластьМакета = Макет.ПолучитьОбласть("ИтогоНДС");
		ОбластьМакета.Параметры.ВсегоНДС = ОбщегоНазначения.ФорматСумм(СуммаНДС,,"""");
		ОбластьМакета.Параметры.НДС      = ?(Шапка.СуммаВключаетНДС, НСтр("ru='В том числе НДС:';uk='У тому числі ПДВ:'",КодЯзыкаПечать), НСтр("ru='Сумма НДС:';uk='Сума ПДВ:'",КодЯзыкаПечать));
		ТабДокумент.Вывести(ОбластьМакета);
		
		// всего с НДС (если сумма не включает НДС)
		Если НЕ Шапка.СуммаВключаетНДС Тогда
			ОбластьМакета = Макет.ПолучитьОбласть("ИтогоНДС");
			ОбластьМакета.Параметры.ВсегоНДС = ОбщегоНазначения.ФорматСумм(Сумма + СуммаНДС);
			ОбластьМакета.Параметры.НДС      = НСтр("ru='Всего с НДС:';uk='Всього із ПДВ:'",КодЯзыкаПечать);
			ТабДокумент.Вывести(ОбластьМакета);
		КонецЕсли;
	КонецЕсли;

	// выведем таблицу с возвратной тарой
	Если ЗапросТара.Количество() > 0 Тогда
		// сделаем отступ от основной таблицы
		ОбластьПробел = Макет.ПолучитьОбласть("Пробел");
		ТабДокумент.Вывести(ОбластьПробел);
		
		ОбластьНомера = Макет.ПолучитьОбласть("ШапкаТаблицыТара|НомерСтрокиТара");
		ОбластьКодов  = Макет.ПолучитьОбласть("ШапкаТаблицыТара|КолонкаКодовТара");
		ОбластьДанных = Макет.ПолучитьОбласть("ШапкаТаблицыТара|ДанныеТара");
		
		ТабДокумент.Вывести(ОбластьНомера);
		Если ВыводитьКоды Тогда
			ОбластьКодов.Параметры.ИмяКолонкиКодов = Колонка;
			ТабДокумент.Присоединить(ОбластьКодов);
		КонецЕсли;
		ТабДокумент.Присоединить(ОбластьДанных);
		
		ОбластьКолонкаТара = Макет.Область("Тара");
		Если Не ВыводитьКоды Тогда
			ОбластьКолонкаТара.ШиринаКолонки = ОбластьКолонкаТара.ШиринаКолонки + 
			Макет.Область("КолонкаКодовТара").ШиринаКолонки;
		КонецЕсли;
		
        ОбластьНомера = Макет.ПолучитьОбласть("СтрокаТара|НомерСтрокиТара");
		ОбластьКодов  = Макет.ПолучитьОбласть("СтрокаТара|КолонкаКодовТара");
		ОбластьДанных = Макет.ПолучитьОбласть("СтрокаТара|ДанныеТара");
		
		СуммаТара    = 0;
		
		Для каждого ВыборкаСтрокТара Из ЗапросТара Цикл 
			
			Если НЕ ЗначениеЗаполнено(ВыборкаСтрокТара.Номенклатура) Тогда
				Сообщить(НСтр("ru='В одной из строк не заполнено значение тары - строка при печати пропущена.';uk='В одному з рядків не заповнене значення тари - рядок під час друку буде пропущений.'"), СтатусСообщения.Важное);
				Продолжить;
			КонецЕсли;
			
			ОбластьНомера.Параметры.НомерСтроки = ЗапросТара.Индекс(ВыборкаСтрокТара) + 1;
			ТабДокумент.Вывести(ОбластьНомера);
			
			Если ВыводитьКоды Тогда
				Если Колонка = "Артикул" Тогда
					ОбластьКодов.Параметры.Артикул = ВыборкаСтрокТара.Артикул;
				Иначе
					ОбластьКодов.Параметры.Артикул = ВыборкаСтрокТара.Код;
				КонецЕсли;
				ТабДокумент.Присоединить(ОбластьКодов);
			КонецЕсли;
			
			ОбластьДанных.Параметры.Заполнить(ВыборкаСтрокТара);
			ОбластьДанных.Параметры.Товар = СокрЛП(ВыборкаСтрокТара.Товар);
			ТабДокумент.Присоединить(ОбластьДанных);
		
			СуммаТара = СуммаТара + ВыборкаСтрокТара.Сумма;
			
			
		КонецЦикла;
		
		// Вывести Итого
		ОбластьМакета = Макет.ПолучитьОбласть("ИтогоТара");
		ОбластьМакета.Параметры.Всего = ОбщегоНазначения.ФорматСумм(СуммаТара);
		ТабДокумент.Вывести(ОбластьМакета);
		
		// сделаем отступ 
		ТабДокумент.Вывести(ОбластьПробел);
	КонецЕсли;
	
	// Вывести Сумму прописью
	ОбластьМакета = Макет.ПолучитьОбласть("СуммаПрописью");
	СуммаКПрописи = Сумма + ?(Шапка.СуммаВключаетНДС, 0, СуммаНДС);
	ОбластьМакета.Параметры.ИтоговаяСтрока = НСтр("ru='Всего наименований ';uk='Всього найменувань '",КодЯзыкаПечать) + ЗапросТовары.Количество() + "," +
											 НСтр("ru=' на сумму ';uk=' на суму '",КодЯзыкаПечать)  + ОбщегоНазначения.ФорматСумм(СуммаКПрописи, Шапка.ВалютаДокумента)
											 + ?(ЗапросТара.Количество() = 0, "",  НСтр("ru='; возвратная тара ';uk='; зворотна тара '",КодЯзыкаПечать) + ЗапросТара.Количество() + НСтр("ru=', на сумму ';uk=', на суму '",КодЯзыкаПечать) + ОбщегоНазначения.ФорматСумм(СуммаТара, Шапка.ВалютаДокумента)) + ".";
											 
	ОбластьМакета.Параметры.СуммаПрописью  = ОбщегоНазначения.СформироватьСуммуПрописью(СуммаКПрописи, Шапка.ВалютаДокумента,КодЯзыкаПечать)
	 										 + ?(НЕ Шапка.УчитыватьНДС, "", Символы.ПС + НСтр("ru='В т.ч. НДС: ';uk='У т.ч. ПДВ: '",КодЯзыкаПечать) + ОбщегоНазначения.СформироватьСуммуПрописью(СуммаНДС, Шапка.ВалютаДокумента, КодЯзыкаПечать));

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

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

	
		ОбластьМакета= Макет.ПолучитьОбласть("Подвал");
		ОбластьМакета.Параметры.СрокДействияСчета = НСтр("ru='Счет действителен к оплате в течении трех банковских дней ';uk='Рахунок дійсний до сплати протягом трьох банківських днів '",КодЯзыкаПечать);
		ТабДокумент.Вывести(ОбластьМакета);

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