БП3.0 - внешняя ТОРГ_12 для ПередачаОС ошибка

1. webresurs 205 04.12.18 10:39 Сейчас в теме
Подскажите что изменилось при печати внешних печатных форм для
Бухгалтерия предприятия, редакция 3.0.66.53)

{ОбщийМодуль.ПечатьТорговыхДокументов.Модуль(260)}: Значение не является значением объектного типа (ИмяПараметровПечати)
ИмяПараметровПечати = ПараметрыПечати.ИмяПараметровПечати;
Прикрепленные файлы:
ПередачаОС_ТОРГ12.epf
Найденные решения
11. ben19791010 05.12.18 07:13 Сейчас в теме
(10) чё вот вот? ))
лень самому разобраться...я ж написал всё вроде
на тебе готовую через файл открыть

на название не обращай внимания...лень было перешмякивать
Прикрепленные файлы:
ПередачаОС (ВПФ).epf
webresurs; +1 Ответить
Остальные ответы
Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
3. ben19791010 04.12.18 11:01 Сейчас в теме
(1)
ИмяПараметровПечати

вместо ИмяПараметровПечати попробуйте
ТабличныйДокумент.КлючПараметровПечати = ""
6. webresurs 205 04.12.18 11:44 Сейчас в теме
(3) ссылается на базу в которой не правим, а надо изменить в при выводе на печать
2. YannikAlx 43 04.12.18 10:48 Сейчас в теме
Ну так откройте ПараметрыПечати и посмотрите ЧТО там изменилось.
Может имя поменяли - это сейчас модно в 1с
Все изменения только обеспечивают работой програмистов - я даже подумал : удобно, не останешься без хлеба...
5. Healer 1 04.12.18 11:39 Сейчас в теме
(2) Всё правильно: действуют согласно модели бизнеса от M$, которую они приобрели и используют. Так и появилась 1С 8.Х с багами, несовместимостями версий, кучей толстых бесполезных книжек и очень платными курсами.
4. ben19791010 04.12.18 11:11 Сейчас в теме
ПараметрыПечати а не имя
8. webresurs 205 04.12.18 11:55 Сейчас в теме
(4)
- не понятно... код из модуля базы
Функция ПечатьТОРГ12(СведенияТОРГ12, ОбъектыПечати, ПараметрыПечати) Экспорт
	
	УстановитьПривилегированныйРежим(Истина);
	
	ИмяПараметровПечати = ПараметрыПечати.ИмяПараметровПечати;
	
	ТабличныйДокумент = Новый ТабличныйДокумент;
	ТабличныйДокумент.АвтоМасштаб         = Истина;
	ТабличныйДокумент.ОриентацияСтраницы  = ОриентацияСтраницы.Ландшафт;
	
	
	ТабличныйДокумент.КлючПараметровПечати = ИмяПараметровПечати;
	
	УстановитьМинимальныеПоляПечати(ТабличныйДокумент);
	
	Макет = УправлениеПечатью.МакетПечатнойФормы("ОбщийМакет.ПФ_MXL_ТОРГ12");
	
	ЕстьОбластьГосконтракты = (Макет.Области.Найти("ДатаНомерГосконтракт") <> Неопределено);
	
	ПервыйДокумент = Истина;
	СведенияОКонтрагентах = Новый Соответствие;
	КонтрагентыДляПечати = Новый Структура("Поставщик, Грузоотправитель, Покупатель, Грузополучатель");
	Для Каждого СведенияОДокументе Из СведенияТОРГ12 Цикл
		
		Если НЕ ПервыйДокумент Тогда
			ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
		КонецЕсли;
		
		ПервыйДокумент = Ложь;
		
		// Запомним номер строки, с которой начали выводить текущий документ.
		НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1;
		
		ТаблицаДокумента = СведенияОДокументе.ТаблицаДокумента;
	
		ОбластьМакетаШапка            = Макет.ПолучитьОбласть("Шапка");
		ОбластьМакетаЗаголовокТаблицы = Макет.ПолучитьОбласть("ЗаголовокТаб");
		ОбластьМакетаСтрока           = Макет.ПолучитьОбласть("Строка");
		ОбластьМакетаИтогоПоСтранице  = Макет.ПолучитьОбласть("ИтогоПоСтранице");
		ОбластьМакетаВсего            = Макет.ПолучитьОбласть("Всего");
		ОбластьМакетаПодвал           = Макет.ПолучитьОбласть("Подвал");
		
		// Получаем сведения об используемых в документе контрагентах с разными ролями в документообороте.
		Для каждого КонтрагентДляПечати Из КонтрагентыДляПечати Цикл
			
			КонтрагентИзДокумента = СведенияОДокументе[КонтрагентДляПечати.Ключ];
			СведенияОКонтрагенте = СведенияОКонтрагентах[КонтрагентИзДокумента];
			Если СведенияОКонтрагенте = Неопределено Тогда
				БанковскийСчетКонтрагента = ?(КонтрагентДляПечати.Ключ = "Поставщик", СведенияОДокументе.БанковскийСчетПродавца, Неопределено);
				СведенияОКонтрагенте = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛице(
					КонтрагентИзДокумента, СведенияОДокументе.ДатаДляПолученияСведений, БанковскийСчетКонтрагента);
				СведенияОКонтрагентах.Вставить(КонтрагентИзДокумента, СведенияОКонтрагенте);
			КонецЕсли;
			КонтрагентыДляПечати.Вставить(КонтрагентДляПечати.Ключ, СведенияОКонтрагенте);
		
		КонецЦикла;
		
		// Выводим общие реквизиты шапки.
		ОбластьМакетаШапка.Параметры.Заполнить(СведенияОДокументе);
		
		ДополнительныеПараметрыШапки = Новый Структура;
		
		Если СведенияОДокументе.Поставщик = СведенияОДокументе.Грузоотправитель Тогда
			ДополнительныеПараметрыШапки.Вставить("ПредставлениеОрганизации", ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(КонтрагентыДляПечати.Поставщик));
		Иначе
			ДополнительныеПараметрыШапки.Вставить("ПредставлениеОрганизации", ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(
				КонтрагентыДляПечати.Грузоотправитель, "НаименованиеДляПечатныхФорм,ИНН,ФактическийАдрес,Телефоны,НомерСчета,Банк,БИК,КоррСчет"));
		КонецЕсли;
		
		Если ЗначениеЗаполнено(СведенияОДокументе.Подразделение) Тогда
			СведенияОПодразделении = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(СведенияОДокументе.Подразделение, "ОбособленноеПодразделение, НаименованиеПолное");
			ДополнительныеПараметрыШапки.Вставить("ПредставлениеПодразделения", ?(СведенияОПодразделении.ОбособленноеПодразделение, СведенияОПодразделении.НаименованиеПолное, ""));
		КонецЕсли; 
		
		Если СокрЛП(СведенияОДокументе.АдресДоставки) <> "" Тогда
			ПредставлениеГрузополучателяДоАдреса    = ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(
				КонтрагентыДляПечати.Грузополучатель, "НаименованиеДляПечатныхФорм,ИНН,");
			ПредставлениеГрузополучателяПослеАдреса = ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(
				КонтрагентыДляПечати.Грузополучатель, "Телефоны,НомерСчета,Банк,БИК,КоррСчет,");
			ДополнительныеПараметрыШапки.Вставить("ПредставлениеГрузополучателя", ?(СокрЛП(ПредставлениеГрузополучателяДоАдреса) = "",
				"", ПредставлениеГрузополучателяДоАдреса+", ") + СведенияОДокументе.АдресДоставки
				+ ?(СокрЛП(ПредставлениеГрузополучателяПослеАдреса)="", "", ", "+ПредставлениеГрузополучателяПослеАдреса));
		Иначе
			ДополнительныеПараметрыШапки.Вставить("ПредставлениеГрузополучателя", ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(
				КонтрагентыДляПечати.Грузополучатель, "НаименованиеДляПечатныхФорм,ИНН,ФактическийАдрес,Телефоны,НомерСчета,Банк,БИК,КоррСчет"));
		КонецЕсли;
		
		ДополнительныеПараметрыШапки.Вставить("ПредставлениеПоставщика", ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(КонтрагентыДляПечати.Поставщик));
		ДополнительныеПараметрыШапки.Вставить("ПредставлениеПлательщика", ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(КонтрагентыДляПечати.Покупатель));
		
		// Выводим всевозможные коды
		ДополнительныеПараметрыШапки.Вставить("ОрганизацияПоОКПО",          КонтрагентыДляПечати.Грузоотправитель.КодПоОКПО);
		ДополнительныеПараметрыШапки.Вставить("ВидДеятельностиПоОКДП",      "");
		ДополнительныеПараметрыШапки.Вставить("ГрузополучательПоОКПО",      КонтрагентыДляПечати.Грузополучатель.КодПоОКПО);
		ДополнительныеПараметрыШапки.Вставить("ПоставщикПоОКПО",            КонтрагентыДляПечати.Поставщик.КодПоОКПО);
		ДополнительныеПараметрыШапки.Вставить("ПлательщикПоОКПО",           КонтрагентыДляПечати.Покупатель.КодПоОКПО);
		ДополнительныеПараметрыШапки.Вставить("ТранспортнаяНакладнаяНомер", "");
		ДополнительныеПараметрыШапки.Вставить("ТранспортнаяНакладнаяДата",  "");
		
		ОбластьМакетаШапка.Параметры.Заполнить(ДополнительныеПараметрыШапки);
		
		
		Если ЕстьОбластьГосконтракты Тогда
			Если ЗначениеЗаполнено(СведенияОДокументе.ГосударственныйКонтракт) Тогда
				ОбластьМакетаДатаНомер  = Макет.ПолучитьОбласть("ДатаНомерГосконтракт");
				
				ОбластьНомерИсправления = ОбластьМакетаДатаНомер.Области.Найти("НомерИсправленияГосконтракт");
				ОбластьДатаИсправления  = ОбластьМакетаДатаНомер.Области.Найти("ДатаИсправленияГосконтракт");
			Иначе
				ОбластьМакетаДатаНомер  = Макет.ПолучитьОбласть("ДатаНомер");
				
				ОбластьНомерИсправления = ОбластьМакетаДатаНомер.Области.Найти("НомерИсправления");
				ОбластьДатаИсправления  = ОбластьМакетаДатаНомер.Области.Найти("ДатаИсправления");
			КонецЕсли;
			
		Иначе
			ОбластьМакетаДатаНомер = ОбластьМакетаШапка;
			
			ОбластьНомерИсправления = ОбластьМакетаШапка.Области.Найти("НомерИсправления");
			ОбластьДатаИсправления  = ОбластьМакетаШапка.Области.Найти("ДатаИсправления");
		КонецЕсли;
		
		ПараметрыИсправление = Новый Структура;
		
		Если ЗначениеЗаполнено(СведенияОДокументе.НомерИсправления) И ЗначениеЗаполнено(СведенияОДокументе.ДатаИсправления) Тогда
			
			ПараметрыИсправление.Вставить("ТекстИсправления", НСтр("ru='Исправление   '"));
			ПараметрыИсправление.Вставить("НомерИсправления", СведенияОДокументе.НомерИсправления);
			ПараметрыИсправление.Вставить("ДатаИсправления",  Формат(СведенияОДокументе.ДатаИсправления, "ДФ=dd.MM.yyyy"));
			
			ЛинияГраницыРеквизитовИсправления = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная, 1);
			ОбластьНомерИсправления.ГраницаСнизу 	= ЛинияГраницыРеквизитовИсправления;
			ОбластьНомерИсправления.ГраницаСлева 	= ЛинияГраницыРеквизитовИсправления;
			ОбластьНомерИсправления.ГраницаСправа 	= ЛинияГраницыРеквизитовИсправления;
			
			ОбластьДатаИсправления.ГраницаСнизу 	= ЛинияГраницыРеквизитовИсправления;
			ОбластьДатаИсправления.ГраницаСлева 	= ЛинияГраницыРеквизитовИсправления;
			ОбластьДатаИсправления.ГраницаСправа 	= ЛинияГраницыРеквизитовИсправления;

		КонецЕсли;
		
		ОбластьМакетаДатаНомер.Параметры.Заполнить(СведенияОДокументе);
		ОбластьМакетаДатаНомер.Параметры.Заполнить(ПараметрыИсправление);
		
		ТабличныйДокумент.Вывести(ОбластьМакетаШапка);
		Если ЕстьОбластьГосконтракты Тогда
			ТабличныйДокумент.Вывести(ОбластьМакетаДатаНомер);
		КонецЕсли;
		
		// Инициализация счетчика страниц
		НомерСтраницы = 1;
		
		// Инициализация итогов по странице
		ИтогоМестНаСтранице        = 0;
		ИтогоКоличествоНаСтранице  = 0;
		ИтогоСуммаБезНДСНаСтранице = 0;
		ИтогоНДСНаСтранице         = 0;
		ИтогоСуммаСНДСНаСтранице   = 0;
		
		// Инициализация итогов по документу
		ИтогоМест        = 0;
		ИтогоКоличество  = 0;
		ИтогоСуммаСНДС   = 0;
		ИтогоСуммаБезНДС = 0;
		ИтогоНДС         = 0;
		
		// Инициализация счетчика строк
		НомерСтроки     = 0;
		КоличествоСтрок = ТаблицаДокумента.Количество();
		
		// Выводим заголовок многострочной части
		ОбластьМакетаЗаголовокТаблицы.Параметры.Заполнить(Новый Структура("НомерСтраницы", "Страница " + НомерСтраницы)); 
		
		ТабличныйДокумент.Вывести(ОбластьМакетаЗаголовокТаблицы);
		
		НДСИсчисляетсяНалоговымАгентом = СведенияОДокументе.НДСИсчисляетсяНалоговымАгентом = Истина
			И УчетНДС.ВедетсяУчетНДСПоФЗ335(СведенияОДокументе.ДатаДокумента);
		
		// Выводим многострочную часть документа
		Для Каждого СтрокаДокумента Из ТаблицаДокумента Цикл
			
			НомерСтроки = НомерСтроки + 1;
			
			ПараметрыСтроки = Новый Структура;
			
			ПараметрыСтроки.Вставить("Номер", НомерСтроки);
			ПараметрыСтроки.Вставить("ТоварНаименование", СтрокаДокумента.ТоварНаименование);
			ПараметрыСтроки.Вставить("ТоварКод", СтрокаДокумента.ТоварКод);
			ПараметрыСтроки.Вставить("БазоваяЕдиницаНаименование", СтрокаДокумента.ЕдиницаИзмеренияНаименование);
			ПараметрыСтроки.Вставить("БазоваяЕдиницаКодПоОКЕИ", СтрокаДокумента.ЕдиницаИзмеренияКод);
			
			ПараметрыСтроки.Вставить("КоличествоМест", СтрокаДокумента.КоличествоМест);
			Если НЕ ЗначениеЗаполнено(СтрокаДокумента.КоличествоМест) Тогда
				ПараметрыСтроки.Вставить("ВидУпаковки", "");
				ПараметрыСтроки.Вставить("КоличествоВОдномМесте", "");
			Иначе
				ПараметрыСтроки.Вставить("ВидУпаковки", СтрокаДокумента.ВидУпаковкиНаименование);
				ПараметрыСтроки.Вставить("КоличествоВОдномМесте", СтрокаДокумента.КоличествоВОдномМесте);
			КонецЕсли;
			
			ПараметрыСтроки.Вставить("Количество",  СтрокаДокумента.Количество);
			ПараметрыСтроки.Вставить("Цена",        СтрокаДокумента.Цена);
			ПараметрыСтроки.Вставить("СуммаБезНДС", СтрокаДокумента.СуммаБезНДС);
			
			Если НДСИсчисляетсяНалоговымАгентом Тогда
				ПараметрыСтроки.Вставить("СтавкаНДС", УчетНДС.НадписьСтавкаНДСИсчисляетсяНалоговымАгентом());
				ПараметрыСтроки.Вставить("СуммаНДС",  УчетНДС.НадписьСуммаНДСИсчисляетсяНалоговымАгентом());
				ПараметрыСтроки.Вставить("СуммаСНДС", УчетНДС.НадписьСуммаНДСИсчисляетсяНалоговымАгентом());
			Иначе
				ПараметрыСтроки.Вставить("СтавкаНДС", СтрокаДокумента.СтавкаНДС);
				ПараметрыСтроки.Вставить("СуммаНДС",  СтрокаДокумента.СуммаНДС);
				ПараметрыСтроки.Вставить("СуммаСНДС", СтрокаДокумента.СуммаСНДС);
			КонецЕсли;
			
			ОбластьМакетаСтрока.Параметры.Заполнить(ПараметрыСтроки);
			
			// Проверим вывод
			СтрокаСПодвалом = Новый Массив;
			Если НомерСтроки = 1 Тогда
				СтрокаСПодвалом.Добавить(ОбластьМакетаЗаголовокТаблицы); // если первая строка, то должен
			КонецЕсли;                                                   // помещаться заголовок
			СтрокаСПодвалом.Добавить(ОбластьМакетаСтрока);
			СтрокаСПодвалом.Добавить(ОбластьМакетаИтогоПоСтранице);
			Если НомерСтроки = КоличествоСтрок Тогда           			 // если последняя строка, должен
				СтрокаСПодвалом.Добавить(ОбластьМакетаВсего);  			 // помещаться и подвал документа
				СтрокаСПодвалом.Добавить(ОбластьМакетаПодвал);
			КонецЕсли;
			
			Если НЕ ОбщегоНазначения.ПроверитьВыводТабличногоДокумента(ТабличныйДокумент, СтрокаСПодвалом) Тогда
				
				Если КоличествоСтрок > 1 Тогда
					
					// Выводим итоги по странице
					ПараметрыИтоги = Новый Структура;
					
					ПараметрыИтоги.Вставить("ИтогМестПоСтранице",       ИтогоМестНаСтранице);
					ПараметрыИтоги.Вставить("ИтогКоличествоПоСтранице", ИтогоКоличествоНаСтранице);
					ПараметрыИтоги.Вставить("ИтогСуммыПоСтранице",      ИтогоСуммаБезНДСНаСтранице);
					
					Если НДСИсчисляетсяНалоговымАгентом Тогда
						ПараметрыИтоги.Вставить("ИтогНДСПоСтранице",        УчетНДС.НадписьСуммаНДСИсчисляетсяНалоговымАгентом());
						ПараметрыИтоги.Вставить("ИтогСуммыСНДСПоСтранице",  УчетНДС.НадписьСуммаНДСИсчисляетсяНалоговымАгентом());
					Иначе
						ПараметрыИтоги.Вставить("ИтогНДСПоСтранице",        ИтогоНДСНаСтранице);
						ПараметрыИтоги.Вставить("ИтогСуммыСНДСПоСтранице",  ИтогоСуммаСНДСНаСтранице);
					КонецЕсли;
					
					ОбластьМакетаИтогоПоСтранице.Параметры.Заполнить(ПараметрыИтоги);
					
					ТабличныйДокумент.Вывести(ОбластьМакетаИтогоПоСтранице);
					
					ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
					
					// Очистим итоги по странице
					ИтогоМестНаСтранице        = 0;
					ИтогоКоличествоНаСтранице  = 0;
					ИтогоСуммаБезНДСНаСтранице = 0;
					ИтогоНДСНаСтранице         = 0;
					ИтогоСуммаСНДСНаСтранице   = 0;
					
					// Выведем заголовок таблицы
					НомерСтраницы = НомерСтраницы + 1;
					
					ОбластьМакетаЗаголовокТаблицы.Параметры.Заполнить(Новый Структура("НомерСтраницы", "Страница " + НомерСтраницы));
					ТабличныйДокумент.Вывести(ОбластьМакетаЗаголовокТаблицы);
					
				КонецЕсли;
				
			КонецЕсли;
			
			ТабличныйДокумент.Вывести(ОбластьМакетаСтрока);
			
			// Увеличим итоги по странице
			ИтогоМестНаСтранице        = ИтогоМестНаСтранице        + СтрокаДокумента.КоличествоМест;
			ИтогоКоличествоНаСтранице  = ИтогоКоличествоНаСтранице  + СтрокаДокумента.Количество;
			ИтогоСуммаБезНДСНаСтранице = ИтогоСуммаБезНДСНаСтранице + СтрокаДокумента.СуммаБезНДС;
			ИтогоНДСНаСтранице         = ИтогоНДСНаСтранице         + СтрокаДокумента.СуммаНДС;
			ИтогоСуммаСНДСНаСтранице   = ИтогоСуммаСНДСНаСтранице   + СтрокаДокумента.СуммаСНДС;
			
			// Увеличим итоги по документу
			ИтогоМест        = ИтогоМест        + СтрокаДокумента.КоличествоМест;
			ИтогоКоличество  = ИтогоКоличество  + СтрокаДокумента.Количество;
			ИтогоСуммаБезНДС = ИтогоСуммаБезНДС + СтрокаДокумента.СуммаБезНДС;
			ИтогоНДС         = ИтогоНДС         + СтрокаДокумента.СуммаНДС;
			ИтогоСуммаСНДС   = ИтогоСуммаСНДС   + СтрокаДокумента.СуммаСНДС;
			
		КонецЦикла;
		
		// Выводим итоги по странице
		ПараметрыИтоги = Новый Структура;
		ПараметрыИтоги.Вставить("ИтогМестПоСтранице",        ИтогоМестНаСтранице);
		ПараметрыИтоги.Вставить("ИтогКоличествоПоСтранице",  ИтогоКоличествоНаСтранице);
		ПараметрыИтоги.Вставить("ИтогСуммыПоСтранице",       ИтогоСуммаБезНДСНаСтранице);
		
		Если НДСИсчисляетсяНалоговымАгентом Тогда
			ПараметрыИтоги.Вставить("ИтогНДСПоСтранице",       УчетНДС.НадписьСуммаНДСИсчисляетсяНалоговымАгентом());
			ПараметрыИтоги.Вставить("ИтогСуммыСНДСПоСтранице", УчетНДС.НадписьСуммаНДСИсчисляетсяНалоговымАгентом());
		Иначе
			ПараметрыИтоги.Вставить("ИтогНДСПоСтранице",       ИтогоНДСНаСтранице);
			ПараметрыИтоги.Вставить("ИтогСуммыСНДСПоСтранице", ИтогоСуммаСНДСНаСтранице);
		КонецЕсли;
		
		ОбластьМакетаИтогоПоСтранице.Параметры.Заполнить(ПараметрыИтоги);
		
		ТабличныйДокумент.Вывести(ОбластьМакетаИтогоПоСтранице);
		
		// Выводим итоги по документу в целом
		ПараметрыИтоги = Новый Структура;
		
		ПараметрыИтоги.Вставить("ИтогМест",       ИтогоМест);
		ПараметрыИтоги.Вставить("ИтогКоличество", ИтогоКоличество);
		ПараметрыИтоги.Вставить("ИтогСуммы",      ИтогоСуммаБезНДС);
		
		Если НДСИсчисляетсяНалоговымАгентом Тогда
			ПараметрыИтоги.Вставить("ИтогНДС",       УчетНДС.НадписьСуммаНДСИсчисляетсяНалоговымАгентом());
			ПараметрыИтоги.Вставить("ИтогСуммыСНДС", УчетНДС.НадписьСуммаНДСИсчисляетсяНалоговымАгентом());
		Иначе
			ПараметрыИтоги.Вставить("ИтогНДС",       ИтогоНДС);
			ПараметрыИтоги.Вставить("ИтогСуммыСНДС", ИтогоСуммаСНДС);
		КонецЕсли;
		
		ОбластьМакетаВсего.Параметры.Заполнить(ПараметрыИтоги);
		
		ТабличныйДокумент.Вывести(ОбластьМакетаВсего);
		
		// Выводим подвал документа
		ПараметрыПодвал = Новый Структура;
		
		ПараметрыПодвал.Вставить("КоличествоПорядковыхНомеровЗаписейПрописью", ЧислоПрописью(ТаблицаДокумента.Количество(), ,",,,,,,,,0"));
		ПараметрыПодвал.Вставить("ВсегоМестПрописью",                          ?(ИтогоМест = 0, "", ЧислоПрописью(ИтогоМест, ,",,,С,,,,,0"))); 
		
		ПараметрыПодвал.Вставить("СуммаПрописью", ОбщегоНазначенияБПВызовСервера.СформироватьСуммуПрописью(ИтогоСуммаСНДС, СведенияОДокументе.Валюта));
		
		ЗаРуководителяНаОсновании = ?(СведенияОДокументе.ЗаРуководителяНаОснованииНаименование = "", "" , ", "+СведенияОДокументе.ЗаРуководителяНаОснованииНаименование);
		ПараметрыПодвал.Вставить("ФИОРуководителя",       СведенияОДокументе.РуководительФИО + ЗаРуководителяНаОсновании);
		ПараметрыПодвал.Вставить("ДолжностьРуководителя", СведенияОДокументе.РуководительДолжностьНаименование);
		
		ЗаГлавногоБухгалтераНаОсновании = ?(СведенияОДокументе.ЗаГлавногоБухгалтераНаОснованииНаименование = "", "" , ", "+СведенияОДокументе.ЗаГлавногоБухгалтераНаОснованииНаименование);
		ПараметрыПодвал.Вставить("ФИОГлавБухгалтера",     СведенияОДокументе.ГлавныйБухгалтерФИО + ЗаГлавногоБухгалтераНаОсновании);
		
		ПараметрыПодвал.Вставить("ФИОКладовщика",         СведенияОДокументе.КладовщикФИО);
		ПараметрыПодвал.Вставить("ДолжностьКладовщика",   СведенияОДокументе.КладовщикДолжность);
		
		Если ЗначениеЗаполнено(СведенияОДокументе.ДатаПодписанияДокумента) Тогда
			ПолнаяДатаДокумента = Формат(СведенияОДокументе.ДатаПодписанияДокумента, "ДФ=""дд ММММ гггг """"года""""""");
			ДлинаСтроки         = СтрДлина(ПолнаяДатаДокумента);
			ПервыйРазделитель   = СтрНайти(ПолнаяДатаДокумента," ");
			ВторойРазделитель   = СтрНайти(Прав(ПолнаяДатаДокумента,ДлинаСтроки - ПервыйРазделитель), " ") + ПервыйРазделитель;
			
			ПараметрыПодвал.Вставить("ДатаДокументаДень",  """" + Лев(ПолнаяДатаДокумента, ПервыйРазделитель - 1) + """");
			ПараметрыПодвал.Вставить("ДатаДокументаМесяц", Сред(ПолнаяДатаДокумента, ПервыйРазделитель + 1, ВторойРазделитель - ПервыйРазделитель - 1));
			ПараметрыПодвал.Вставить("ДатаДокументаГод",   Прав(ПолнаяДатаДокумента, ДлинаСтроки - ВторойРазделитель));
		Иначе
			ПараметрыПодвал.Вставить("ДатаДокументаДень",  """     """);
			ПараметрыПодвал.Вставить("ДатаДокументаМесяц", "");
			ПараметрыПодвал.Вставить("ДатаДокументаГод",   " 20     года");
		КонецЕсли;
		
		ДлинаСтрокиДоверенность = СтрДлина(СведенияОДокументе.ДоверенностьВыдана);
		Если ДлинаСтрокиДоверенность < 70 Тогда
		
			ДоверенностьВыдана = СведенияОДокументе.ДоверенностьВыдана;
			ДоверенностьВыдана1 = "";
		
		Иначе
			// Разбиваем строку на две подстроки, таким образом чтобы первая строка была не более 70ти символов
			// Для этого ищем очередной пробел и проверяем длину строк в предположении, что перенос будет выполнен по найденной позиции.
			ДоверенностьВыдана1 = СведенияОДокументе.ДоверенностьВыдана;
			ПозицияПоиска = СтрНайти(ДоверенностьВыдана1," ")+1;
			
			// Если найден очередной пробел и длина первой строки после операции будет менее 70ти символов, то выполняем еще одну итерацию.
			Пока ПозицияПоиска > 1 И ДлинаСтрокиДоверенность - СтрДлина(ДоверенностьВыдана1) + ПозицияПоиска < 70 Цикл
				
				ДоверенностьВыдана1 = Сред(ДоверенностьВыдана1, ПозицияПоиска);
				ПозицияПоиска       = СтрНайти(ДоверенностьВыдана1," ")+1;
				
			КонецЦикла; 
			
			ДоверенностьВыдана = Лев(СведенияОДокументе.ДоверенностьВыдана,ДлинаСтрокиДоверенность - СтрДлина(ДоверенностьВыдана1));
			
		КонецЕсли; 
		
		ДанныеДоверенность = Новый Структура;
		ДанныеДоверенность.Вставить("ДоверенностьНомер", СведенияОДокументе.ДоверенностьНомер);
		ДанныеДоверенность.Вставить("ДоверенностьВыдана", ДоверенностьВыдана);
		ДанныеДоверенность.Вставить("ДоверенностьВыдана1", ДоверенностьВыдана1);
		ДанныеДоверенность.Вставить("ДоверенностьЧерезКого", СведенияОДокументе.ДоверенностьЧерезКого);
		ДанныеДоверенность.Вставить("ДоверенностьДата",?(ЗначениеЗаполнено(СведенияОДокументе.ДоверенностьДата), Формат(СведенияОДокументе.ДоверенностьДата, "ДЛФ=ДД"), ""));
		
		ОбластьМакетаПодвал.Параметры.Заполнить(ДанныеДоверенность);
		ОбластьМакетаПодвал.Параметры.Заполнить(ПараметрыПодвал);
		
		ТабличныйДокумент.Вывести(ОбластьМакетаПодвал);
		
		// В табличном документе зададим имя области, в которую был 
		// выведен объект. Нужно для возможности печати покомплектно.
		УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент, 
			НомерСтрокиНачало, ОбъектыПечати, СведенияОДокументе.Документ);
			
		УправлениеПечатьюБП.ДополнитьДокументПодписьюИПечатью(ТабличныйДокумент, СведенияОДокументе, ОбъектыПечати, ПараметрыПечати);
		
	КонецЦикла;
	
	Возврат ТабличныйДокумент;
 
КонецФункции
Показать
7. webresurs 205 04.12.18 11:46 Сейчас в теме
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
		ВключатьУслуги = Ложь;
		ТаблицаСведенийТОРГ12 = ПолучитьТаблицуСведенийТОРГ12(МассивОбъектов, ВключатьУслуги);
		КлючПараметровПечати	= "ПАРАМЕТРЫ_ПЕЧАТИ_ПередачаОС_ТОРГ12";
		УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ТОРГ_12", "ТОРГ-12 (Товарная накладная)",
			ПечатьТорговыхДокументов.ПечатьТОРГ12(ТаблицаСведенийТОРГ12, ОбъектыПечати, КлючПараметровПечати),,"ОбщийМакет.ПФ_MXL_ТОРГ12");
	
КонецПроцедуры // Печать()


Функция ПолучитьТаблицуСведенийТОРГ12(Знач МассивДокументов, Знач ВключатьУслуги) Экспорт
	
	УстановитьПривилегированныйРежим(Истина);
	
	ТаблицаСведений = ПечатьТорговыхДокументов.ПолучитьОписаниеТОРГ12();
	
	Запрос = Новый Запрос();
	Запрос.УстановитьПараметр("МассивДокументов", 	МассивДокументов);
	Запрос.УстановитьПараметр("ВключатьУслуги", 	ВключатьУслуги);
	Запрос.УстановитьПараметр("ДополнительнаяКолонкаПечатныхФормДокументов", Константы.ДополнительнаяКолонкаПечатныхФормДокументов.Получить());
	
	Запрос.Текст = ПолучитьТекстЗапросаДляФормированияТаблицыСведенийТОРГ12();
		
	РезультатыЗапроса = Запрос.ВыполнитьПакет();
	
	ВалютаРегУчета = ОбщегоНазначенияБПВызовСервераПовтИсп.ПолучитьВалютуРегламентированногоУчета();
	РеквизитыВалютыРегУчета = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ВалютаРегУчета, "Код, Наименование");
	
	Выборка = РезультатыЗапроса[2].Выбрать();
	СтрокиДокументов = РезультатыЗапроса[3].Выгрузить();
	СтрокиДокументов.Индексы.Добавить("Документ");
	
	Пока Выборка.Следующий() Цикл
		
		СведенияОДокументе = ТаблицаСведений.Добавить();
		ЗаполнитьЗначенияСвойств(СведенияОДокументе, Выборка);
		
		СведенияОДокументе.Валюта             = ВалютаРегУчета;
		СведенияОДокументе.ВалютаКод          = РеквизитыВалютыРегУчета.Код;
		СведенияОДокументе.ВалютаНаименование = РеквизитыВалютыРегУчета.Наименование;
		
		ТаблицаДокумента = ПечатьТорговыхДокументов.ПолучитьОписаниеТаблицыТОРГ12();
		
		Отбор = Новый Структура("Документ", Выборка.Документ);
		СтрокиДокумента = СтрокиДокументов.НайтиСтроки(Отбор);
		
		НуженПересчетВРубли = НЕ (Выборка.ВалютаДокумента = ВалютаРегУчета);
		
		Для Каждого Строка Из СтрокиДокумента Цикл
			
			СтрокаТаблицыДокумента = ТаблицаДокумента.Добавить();
			ЗаполнитьЗначенияСвойств(СтрокаТаблицыДокумента, Строка);
			
			Если НуженПересчетВРубли Тогда
				Если Строка.СуществуютЗаписиРублевыхСумм Тогда
					СтрокаТаблицыДокумента.СуммаНДС 	= Строка.НДСВРублях;
					СтрокаТаблицыДокумента.СуммаБезНДС 	= Строка.ВсегоВРублях - Строка.НДСВРублях;
				Иначе
					Кратность = ?(Выборка.Кратность   	= 0, 1, Выборка.Кратность);
					СтрокаТаблицыДокумента.СуммаНДС 	= Строка.СуммаНДС * Выборка.Курс / Кратность;;
					СтрокаТаблицыДокумента.СуммаБезНДС  = (Строка.СуммаБезНДС + Строка.СуммаНДС) * Выборка.Курс / Кратность - СтрокаТаблицыДокумента.СуммаНДС;
				КонецЕсли;
			КонецЕсли;
			
			СтрокаТаблицыДокумента.СуммаСНДС = СтрокаТаблицыДокумента.СуммаБезНДС + СтрокаТаблицыДокумента.СуммаНДС;
			
			Если НуженПересчетВРубли 
					ИЛИ (Выборка.СуммаВключаетНДС И СтрокаТаблицыДокумента.СуммаНДС <> 0) Тогда
				СтрокаТаблицыДокумента.Цена = ?(СтрокаТаблицыДокумента.Количество = 0,
					СтрокаТаблицыДокумента.СуммаБезНДС,
					СтрокаТаблицыДокумента.СуммаБезНДС / СтрокаТаблицыДокумента.Количество);
			КонецЕсли;
			
		КонецЦикла;
		
		СведенияОДокументе.ТаблицаДокумента = ТаблицаДокумента;
		
		ПорядокЗаполнения = Новый Структура("ЗаполнятьРуководителя, ЗаполнятьГлавногоБухгалтера, ЗаполнятьКладовщика");
		ПечатьТорговыхДокументов.ЗаполнитьДанныеОтветственныхЛиц(СведенияОДокументе, ПорядокЗаполнения);
		
		Если НЕ ОбщегоНазначенияБПВызовСервераПовтИсп.ЭтоЮрЛицо(СведенияОДокументе.Организация) Тогда
			ИндивидуальныйПредприниматель = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(СведенияОДокументе.Организация, "ИндивидуальныйПредприниматель");
			Если ИндивидуальныйПредприниматель = СведенияОДокументе.Руководитель Тогда
				СведенияОДокументе.РуководительДолжностьНаименование = "Индивидуальный предприниматель";
			КонецЕсли;
		КонецЕсли;
	
	КонецЦикла;
	
	Возврат ТаблицаСведений;
	
КонецФункции

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

Показать
9. ben19791010 04.12.18 12:23 Сейчас в теме
да, поторопился, не посмотрел
хотел макетом твоим заменить, чёт не получилось, много ссылок на общий модуль печати торг
надо бы все функции и процедуры экспортные перенсти, чтоб не было отсыла в общ.модуль
10. webresurs 205 04.12.18 12:28 Сейчас в теме
11. ben19791010 05.12.18 07:13 Сейчас в теме
(10) чё вот вот? ))
лень самому разобраться...я ж написал всё вроде
на тебе готовую через файл открыть

на название не обращай внимания...лень было перешмякивать
Прикрепленные файлы:
ПередачаОС (ВПФ).epf
webresurs; +1 Ответить
12. webresurs 205 06.12.18 09:31 Сейчас в теме
(11) - да Вы просто гуру 1с! :-)

- спасибо!

p/s
- уезжал в командировку..
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот