БП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
- уезжал в командировку..
Оставьте свое сообщение
Вакансии
Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)

Программист 1С
Москва
зарплата от 250 000 руб.
Полный день

Программист 1C
Волгоград
зарплата от 200 000 руб.
Полный день

Аналитик
Санкт-Петербург
зарплата от 200 000 руб. до 250 000 руб.
Полный день