Пытаюсь сохранить табличный документ при формировании, выдаёт ошибку на .записать, обращение к процедуре как к функции

1. user973528 26.12.18 09:41 Сейчас в теме
Если ЗначениеЗаполнено(ЭтотОбъект.КаталогВыгрузки) Тогда
				ВремФайл = ПолучитьИмяВременногоФайла("pdf");
				//Сообщить(ВремФайл);
				ТНаим = ОбщиеДанные.НаименованиеЛицевогоСчета;
				ТНаим = СтрЗаменить(ТНаим, "л", "");
				ТНаим = СтрЗаменить(ТНаим, "с", "");
				ТНаим = СтрЗаменить(ТНаим, "Л", "");
				ТНаим = СтрЗаменить(ТНаим, "С", "");
				ТНаим = СтрЗаменить(ТНаим, "/", "");
				ТНаим = СтрЗаменить(ТНаим, "\", "");
				ТНаим = СтрЗаменить(ТНаим, "№", "");
				ТНаим = СтрЗаменить(ТНаим, " ", "");
				ИмяФайла = ЭтотОбъект.КаталогВыгрузки + "\" + ТНаим + ".pdf";						
				//Сообщить(ИмяФайла);
				Попытка
				врТабличныйДокумент.Записать(ВремФайл,ТипФайлаТабличногоДокумента.PDF);
			Исключение
				КонецПопытки;
				Попытка
					ПереместитьФайл(ВремФайл, ИмяФайла); 
				Исключение
					Сообщить("Каталог выгрузки указан не верно или нет возможности записи в этот каталог!");
				КонецПопытки;
				УдалитьФайлы(ВремФайл);
			КонецЕсли;
Показать
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
4. Denis_CFO 48 26.12.18 10:09 Сейчас в теме
(1)
врТабличныйДокумент
А где врТабличныйДокумент = НОвый ТабличныйДокумент?
2. user973528 26.12.18 10:05 Сейчас в теме
ВрТабличныйДокумент.Записать должно работать, т.к это табличный документ
3. Skill 26.12.18 10:07 Сейчас в теме
(2) Вы уверены что ВрТабличныйДокумент именно табличный документ? Проверьте его тип.
5. user973528 26.12.18 10:11 Сейчас в теме
(3)
Прикрепленные файлы:
6. Skill 26.12.18 10:15 Сейчас в теме
(5) Покажите больше кода, вместе с куском где инициализируете ВрТабличныйДокумент
7. user973528 26.12.18 10:17 Сейчас в теме
(6)
Процедура СформироватьТекущуюКвитанцию(СтруктураОбщихТаблиц, СтруктураНастроек, ОбщиеДанные, ДокументРезультат, врТабличныйДокумент, КвитанцияНаКР = Ложь)
	
	врТабличныйДокумент.Очистить();
	
	Если ОбщиеДанные.Свойство("КвитанцияНаКР") Тогда
		ОбщиеДанные.КвитанцияНаКР = КвитанцияНаКР;
	Иначе
		ОбщиеДанные.Вставить("КвитанцияНаКР", КвитанцияНаКР);
	КонецЕсли;
	
	Если ОбщиеДанные.Свойство("КвитанцияПоПени") И ОбщиеДанные.КвитанцияПоПени = Истина Тогда
		ОбщиеДанные.КвитанцияПоПени = Ложь;
	Иначе
		ОбщиеДанные.Вставить("КвитанцияПоПени", Ложь);
	КонецЕсли;
	
	ОбщиеДанные.Вставить("ОтсутствуетРасчСчетКР", Ложь);
	
	Если СтруктураНастроек.ВидМакета = Перечисления.УПЖКХ_ВидыПлатежныхДокументов.СтандартныйКР Тогда
		
		СтруктураТекущихИОбщихДанных = ПолучитьТекущиеИОбщиеДанныеПоОбъекту924(СтруктураОбщихТаблиц, ОбщиеДанные, СтруктураНастроек);
		
		Если СтруктураТекущихИОбщихДанных.ПечататьКвитанцию Тогда
		
			// Текст для одномерного штрихкода.
			ПолучитьТекстОдномерногоШтрихКода(СтруктураНастроек, СтруктураТекущихИОбщихДанных.ОбщиеДанные);
			
			// Выводим в табличный документ квитанцию по текущему объекту отчета.
			СформироватьКвитанцию(врТабличныйДокумент, СтруктураНастроек, СтруктураТекущихИОбщихДанных.ТекущиеДанные,
								  СтруктураТекущихИОбщихДанных.ОбщиеДанные);
			
			СформироватьШтрихкоды(врТабличныйДокумент, СтруктураНастроек, СтруктураТекущихИОбщихДанных.ОбщиеДанные);
			
			ВывестиОбласть(ДокументРезультат, врТабличныйДокумент);
			
		КонецЕсли;
		
	Иначе
		
		Если ОбщиеДанные.Свойство("КвитанцияНаКР") Тогда
			ОбщиеДанные.КвитанцияНаКР = КвитанцияНаКР;
		Иначе
			ОбщиеДанные.Вставить("КвитанцияНаКР", КвитанцияНаКР);
		КонецЕсли;
		
		Если (НЕ ОбщиеДанные.КвитанцияНаКР И СтруктураНастроек.ВыводитьQRштрихкодДляСитикардПоОсн)
		 ИЛИ (ОбщиеДанные.КвитанцияНаКР И СтруктураНастроек.ВедетсяРаздельныйУчетПоУслугамКапремонта И СтруктураНастроек.ВыводитьQRштрихкодДляСитикардПоКР) Тогда
			ОбщиеДанные.Вставить("ВыводитьQRштрихкодДляСитикард", Истина);
		Иначе
			ОбщиеДанные.Вставить("ВыводитьQRштрихкодДляСитикард", Ложь);
		КонецЕсли;
		
		// Подготавливаем структуру с таблицами по текущему объекту отчета.
		ТекущиеДанные = УПЖКХ_ПечатьКвитанцийСервер.ПолучитьСтруктуруДанныхПоТекущемуОбъекту(СтруктураОбщихТаблиц, ОбщиеДанные, СтруктураНастроек);
		
		Если КвитанцияНаКР И ОбщиеДанные.ОтсутствуетРасчСчетКР Тогда
			Сообщение = Новый СообщениеПользователю;
			Сообщение.Текст = "Для лицевого счета """
							+ ОбщиеДанные.ЛицевойСчет.Наименование
							+ """ квитанция по кап. ремонту не сформирована, т.к. не заполнен расчетный счет капитального ремонта здания!";
			Сообщение.Сообщить();
			Возврат;
		КонецЕсли;
		
		// Записываем в структуру суммовые показатели по текущему объекту отчета.
		УПЖКХ_ПечатьКвитанцийСервер.ПолучитьИтоговыеПоказателиПоТекущемуОбъекту(ОбщиеДанные, ТекущиеДанные, СтруктураНастроек);
		
		ПечататьКвитанцию = УПЖКХ_ПечатьКвитанцийСервер.ПечататьКвитанцииПоОтбору(СтруктураОбщихТаблиц, ОбщиеДанные, СтруктураНастроек, Ложь);
		
		Если ПечататьКвитанцию Тогда
			
			// Текст для одномерного штрихкода.
			ПолучитьТекстОдномерногоШтрихКода(СтруктураНастроек, ОбщиеДанные);
			
			// Выводим в табличный документ квитанцию по текущему объекту отчета.
			СформироватьКвитанцию(врТабличныйДокумент, СтруктураНастроек, ТекущиеДанные, ОбщиеДанные);
			
			СформироватьШтрихкоды(врТабличныйДокумент, СтруктураНастроек, ОбщиеДанные);
			
			// АльфаКом 
			// Сохранить файл pdf!!!
			//Если ЗначениеЗаполнено(ЭтотОбъект.КаталогВыгрузки) Тогда
			//	ВремФайл = ПолучитьИмяВременногоФайла("pdf");
			//	//Сообщить(ВремФайл);
			//	ТНаим = ОбщиеДанные.НаименованиеЛицевогоСчета;
			//	ТНаим = СтрЗаменить(ТНаим, "л", "");
			//	ТНаим = СтрЗаменить(ТНаим, "с", "");
			//	ТНаим = СтрЗаменить(ТНаим, "Л", "");
			//	ТНаим = СтрЗаменить(ТНаим, "С", "");
			//	ТНаим = СтрЗаменить(ТНаим, "/", "");
			//	ТНаим = СтрЗаменить(ТНаим, "\", "");
			//	ТНаим = СтрЗаменить(ТНаим, "№", "");
			//	ТНаим = СтрЗаменить(ТНаим, " ", "");
			//	ИмяФайла = ЭтотОбъект.КаталогВыгрузки + "\" + ТНаим + ".pdf";						
			//	//Сообщить(ИмяФайла);
			//Попытка
			//	ДокументРезультат.Записать(ВремФайл,ТипФайлаТабличногоДокумента.PDF);
			//Исключение
			//	КонецПопытки;
			//	Попытка
			//		ПереместитьФайл(ВремФайл, ИмяФайла); 
			//	Исключение
			//		Сообщить("Каталог выгрузки указан не верно или нет возможности записи в этот каталог!");
			//	КонецПопытки;
			//	УдалитьФайлы(ВремФайл);
			//КонецЕсли;
			
			ПолучитьКаталог(ОбщиеДанные,врТабличныйДокумент);
			
			ВывестиОбласть(ДокументРезультат, врТабличныйДокумент);
			
			врТабличныйДокумент.Очистить();
			
		КонецЕсли;
		
	КонецЕсли;
	
	Если СтруктураНастроек.ПечататьОтдельнуюКвитанциюПоПеням Тогда
		
		// (ПЕНИ) // Производим формирование квитанции по пеням.
		Если СтруктураНастроек.ВидМакета = Перечисления.УПЖКХ_ВидыПлатежныхДокументов.СтандартныйКР Тогда
			СформироватьТекущуюКвитанциюПоПеням(СтруктураТекущихИОбщихДанных.ТекущиеДанные, СтруктураОбщихТаблиц, СтруктураНастроек,
												СтруктураТекущихИОбщихДанных.ОбщиеДанные, ДокументРезультат, врТабличныйДокумент);
		Иначе
			СформироватьТекущуюКвитанциюПоПеням(ТекущиеДанные, СтруктураОбщихТаблиц, СтруктураНастроек, ОбщиеДанные, ДокументРезультат, врТабличныйДокумент);
		КонецЕсли;
		
	КонецЕсли;
	
КонецПроцедуры // СформироватьТекущуюКвитанцию()

Функция ПолучитьКаталог(ОбщиеДанные,врТабличныйДокумент)
	
	Если ЗначениеЗаполнено(ЭтотОбъект.КаталогВыгрузки) Тогда
				ВремФайл = ПолучитьИмяВременногоФайла("pdf");
				//Сообщить(ВремФайл);
				ТНаим = ОбщиеДанные.НаименованиеЛицевогоСчета;
				ТНаим = СтрЗаменить(ТНаим, "л", "");
				ТНаим = СтрЗаменить(ТНаим, "с", "");
				ТНаим = СтрЗаменить(ТНаим, "Л", "");
				ТНаим = СтрЗаменить(ТНаим, "С", "");
				ТНаим = СтрЗаменить(ТНаим, "/", "");
				ТНаим = СтрЗаменить(ТНаим, "\", "");
				ТНаим = СтрЗаменить(ТНаим, "№", "");
				ТНаим = СтрЗаменить(ТНаим, " ", "");
				ИмяФайла = ЭтотОбъект.КаталогВыгрузки + "\" + ТНаим + ".pdf";						
				//Сообщить(ИмяФайла);
			Попытка
				врТабличныйДокумент.Записать(ВремФайл,ТипФайлаТабличногоДокумента.PDF);
			Исключение
				КонецПопытки;
				Попытка
					ПереместитьФайл(ВремФайл, ИмяФайла); 
				Исключение
					Сообщить("Каталог выгрузки указан не верно или нет возможности записи в этот каталог!");
				КонецПопытки;
				УдалитьФайлы(ВремФайл);
			КонецЕсли;
			
КонецФункции
Показать


Это отчет формирования платежных документов, нужно чтобы формировались и сохранялись в пдф в папку. Почему то это происходит через раз. Отлавливал отладчиком, валилось всегда на Записать
8. user973528 26.12.18 10:18 Сейчас в теме
(6) Сам ВРТабличныйДокумент создаётся тут
Процедура СформироватьПлатежныйДокументНаОснованииГотовыхДанных(ДокументРезультат, СтруктураГотовыхДанных) Экспорт
	
	СтруктураНастроек = СтруктураГотовыхДанных.СтруктураНастроек;
	
	Отказ = Ложь;
	СтруктураНастроек.Вставить("КомпонентаQRКода", УПЖКХ_ПечатьКвитанцийСервер.КомпонентаФормированияQRКода());
	СтруктураНастроек.Вставить("КомпонентаШК",     УПЖКХ_ПечатьКвитанцийСервер.КомпонентаФормированияШтрихКода(Отказ));
	Если Отказ Тогда
		Возврат;
	КонецЕсли;
	
	ОбщиеДанные                   = СтруктураГотовыхДанных.ОбщиеДанные;
	СтруктураПлательщиков         = СтруктураГотовыхДанных.СтруктураПлательщиков;
	СтруктураОбщихТаблиц          = СтруктураГотовыхДанных.СтруктураОбщихТаблиц;
	СтруктураОбщихТаблицОсновная  = СтруктураГотовыхДанных.СтруктураОбщихТаблицОсновная;
	СтруктураОбщихТаблицКапРемонт = СтруктураГотовыхДанных.СтруктураОбщихТаблицКапРемонт;
	
	врТабличныйДокумент = Новый ТабличныйДокумент;
	УстановитьПараметрыПечати(врТабличныйДокумент, СтруктураНастроек.ВидМакета);
	
	ЭтоПервая = Истина;
	
	// Выводим в табличный документ квитанцию для каждого объекта отчета.
	Для Каждого СтрокаОбъекта Из СтруктураНастроек.ТаблицаОбъектов Цикл
		
		врТабличныйДокумент.Очистить();
		
		// Квитанцию для каждого объекта отчета выводим с новой страницы.
		Если ЭтоПервая Тогда
			ЭтоПервая = Ложь;
		Иначе
			ДокументРезультат.ВывестиГоризонтальныйРазделительСтраниц();
		КонецЕсли;
		
		// Записываем в структуру сведения о плательщике.
		УПЖКХ_ПечатьКвитанцийСервер.ПодготовитьСведенияОПлательщике(ОбщиеДанные, СтруктураНастроек, СтруктураПлательщиков, СтрокаОбъекта);
		
		Если СтруктураНастроек.ВедетсяРаздельныйУчетПоУслугамКапремонта ИЛИ СтруктураНастроек.ВидМакета = Перечисления.УПЖКХ_ВидыПлатежныхДокументов.СтандартныйКР Тогда
			Если СтруктураНастроек.ПечататьКвитанциюКапРемонт Тогда
				Если СтруктураНастроек.СпособПечатиКвитанцииКапРемонт = "основную квитанцию и квитанцию на кап. ремонт" Тогда
					Если СтруктураНастроек.ВидМакета = Перечисления.УПЖКХ_ВидыПлатежныхДокументов.СтандартныйКР Тогда
						
						СтруктураОбщихТаблицОсновнаяИКапРемонт = Новый Структура("СтруктураОбщихТаблицОсновная, СтруктураОбщихТаблицКапРемонт, СтруктураОбщихТаблицДляСтандартныйКР",
																					СтруктураОбщихТаблицОсновная, СтруктураОбщихТаблицКапРемонт, СтруктураОбщихТаблиц);
						СформироватьТекущуюКвитанцию(СтруктураОбщихТаблицОсновнаяИКапРемонт, СтруктураНастроек, ОбщиеДанные, ДокументРезультат, врТабличныйДокумент);
						
					Иначе
						СформироватьТекущуюКвитанцию(СтруктураОбщихТаблицОсновная, СтруктураНастроек, ОбщиеДанные, ДокументРезультат, врТабличныйДокумент);
						
						ДокументРезультат.ВывестиГоризонтальныйРазделительСтраниц();
						
						СформироватьТекущуюКвитанцию(СтруктураОбщихТаблицКапРемонт, СтруктураНастроек, ОбщиеДанные, ДокументРезультат, врТабличныйДокумент, Истина);
					КонецЕсли;
				Иначе // СпособПечатиКвитанцииКапРемонт = мСпособПечатиКвитанцииКапРемонт[2].Значение
					
					СформироватьТекущуюКвитанцию(СтруктураОбщихТаблицКапРемонт, СтруктураНастроек, ОбщиеДанные, ДокументРезультат, врТабличныйДокумент, Истина);
					
				КонецЕсли;
			Иначе // СпособПечатиКвитанцииКапРемонт = мСпособПечатиКвитанцииКапРемонт[1].Значение
				
				СформироватьТекущуюКвитанцию(СтруктураОбщихТаблицОсновная, СтруктураНастроек, ОбщиеДанные, ДокументРезультат, врТабличныйДокумент);
				
			КонецЕсли;
		Иначе
			
			// Данная проверка нужна для формирования ПД согласно настройке "СпособПечатиКвитанцииКапРемонт", так как
			// - Для формы "Плат. документ (пост. №679/30 для МО)" данная настройка не должна влиять, если не ведется 
			//   раздельный учет по услугам кап.ремонта.
			// - Для формы "Плат. документ (приказ №924/пр)" факт ведения раздельного учета по услугам кап.ремонта обязателен.
			// - Для остальных форм ПД данная настройка "СпособПечатиКвитанцииКапРемонт" должна всегда учитываться.
			
			Если (СтруктураНастроек.ВидМакета <> Перечисления.УПЖКХ_ВидыПлатежныхДокументов.Москва679
			   И (СтруктураНастроек.ВедетсяРаздельныйУчетПоУслугамКапремонта И СтруктураНастроек.СпособПечатиКвитанцииКапРемонт = "только квитанцию на кап. ремонт")
			 ИЛИ СтруктураНастроек.СпособПечатиКвитанцииКапРемонт = "только основную квитанцию"
			 ИЛИ СтруктураНастроек.СпособПечатиКвитанцииКапРемонт = "единая квитанция на осн. услуги и кап. ремонт"
			 ИЛИ СтруктураНастроек.СпособПечатиКвитанцииКапРемонт = "основную квитанцию и квитанцию на кап. ремонт")
			 ИЛИ СтруктураНастроек.ВидМакета = Перечисления.УПЖКХ_ВидыПлатежныхДокументов.Москва679 Тогда
				
				СформироватьТекущуюКвитанцию(СтруктураОбщихТаблиц, СтруктураНастроек, ОбщиеДанные, ДокументРезультат, врТабличныйДокумент);
				
			КонецЕсли;
			
		КонецЕсли;
		
	КонецЦикла;
	
КонецПроцедуры
Показать
9. Skill 26.12.18 10:23 Сейчас в теме
(8) Сделайте в отладчике остановку по ошибке и посмотрите чему равен врТабличныйДокумент в момент ошибки.
10. user973528 26.12.18 10:26 Сейчас в теме
11. user973528 26.12.18 10:27 Сейчас в теме
(9) Ошибка при методе .Записать и Переместить
60. Ditron 185 26.12.18 17:52 Сейчас в теме
(5)Хороший скрин, а главное на нужном свойстве курсор, так вот, если "вывод" запрещен, у вас и будет ошибка в методе записать...
61. Ditron 185 26.12.18 17:58 Сейчас в теме
(5)"Если право доступа "Вывод" установлено, то вывод разрешен, иначе запрещен." у вас стоит "Авто", значит контроль на уровне прав, т.е. у кого то есть вправо вывода у кого то нет, у тех у кого нет, вылазит ошибка на методе "Записать"
62. user973528 27.12.18 09:37 Сейчас в теме
(61) А где настраивается этот Вывод в табличном документе?
ВрТабличныйДокумент.Вывод = Истина ?
64. Ditron 185 27.12.18 13:41 Сейчас в теме
(62)
ТабличныйДокумент (SpreadsheetDocument)
Вывод (Output)
Использование:

Чтение и запись.
Описание:

Тип: ИспользованиеВывода.
Ограничение вывода на печать, сохранения, работы с буфером обмена.

Доступность:

Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение.

ИспользованиеВывода (UseOutput)
Значения

Авто (Auto) (при авто используется право вывода пользователя)!!!!
Запретить (Disable)
Разрешить (Enable)

Описание:

Содержит варианты использования права доступа Вывод.

Доступность:

Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер).
Данный объект может быть сериализован в/из XDTO. Тип XDTO, соответствующий данному объекту, определяется в пространстве имен {http://v8.1c.ru/8.1/data/ui}. Имя типа XDTO: UseOutput.
См. также:

ТекстовыйДокумент, свойство Вывод
ТабличныйДокумент, свойство Вывод
ПолеHTMLДокумента, свойство Вывод
ТабличноеПоле, свойство Вывод
ГеографическаяСхема, свойство Вывод
ГрафическаяСхема, свойство Вывод
63. user973528 27.12.18 10:07 Сейчас в теме
12. Skill 26.12.18 10:28 Сейчас в теме
У вас получитькаталог функция а вызывается как процедура
13. user973528 26.12.18 10:29 Сейчас в теме
(12)
Это получение каталога в модуле формы

&НаКлиенте
Процедура КаталогВыгрузкиНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
	
	Режим = РежимДиалогаВыбораФайла.ВыборКаталога; 
	ДиалогОткрытия = Новый ДиалогВыбораФайла(Режим); 
	ДиалогОткрытия.Каталог = "C:\"; 
	ДиалогОткрытия.МножественныйВыбор = Ложь; 
	ДиалогОткрытия.Заголовок = "Выберите каталог"; 

	Если ДиалогОткрытия.Выбрать() Тогда
		Отчет.КаталогВыгрузки = ДиалогОткрытия.Каталог;
	КонецЕсли;
	
КонецПроцедуры
Показать
14. Skill 26.12.18 10:31 Сейчас в теме
Смотрите
Прикрепленные файлы:
15. user973528 26.12.18 10:32 Сейчас в теме
(14) Так а почему? Я же параметры передал из функции
16. user973528 26.12.18 10:33 Сейчас в теме
(14) Даже если я засуну код сразу перед вывести область без функции, так же ошибка выйдет
17. Skill 26.12.18 10:36 Сейчас в теме
Если вы про этот кусок, то там ДокументРезультат, а какой у него тип мы не знаем, но я подозреваю что не табличный документ

// АльфаКом 
            // Сохранить файл pdf!!!
            //Если ЗначениеЗаполнено(ЭтотОбъект.КаталогВыгрузки) Тогда
            //    ВремФайл = ПолучитьИмяВременногоФайла("pdf");
            //    //Сообщить(ВремФайл);
            //    ТНаим = ОбщиеДанные.НаименованиеЛицевогоСчета;
            //    ТНаим = СтрЗаменить(ТНаим, "л", "");
            //    ТНаим = СтрЗаменить(ТНаим, "с", "");
            //    ТНаим = СтрЗаменить(ТНаим, "Л", "");
            //    ТНаим = СтрЗаменить(ТНаим, "С", "");
            //    ТНаим = СтрЗаменить(ТНаим, "/", "");
            //    ТНаим = СтрЗаменить(ТНаим, "\", "");
            //    ТНаим = СтрЗаменить(ТНаим, "№", "");
            //    ТНаим = СтрЗаменить(ТНаим, " ", "");
            //    ИмяФайла = ЭтотОбъект.КаталогВыгрузки + "\" + ТНаим + ".pdf";                        
            //    //Сообщить(ИмяФайла);
            //Попытка
            //    ДокументРезультат.Записать(ВремФайл,ТипФайлаТабличногоДокумента.PDF);
            //Исключение
            //    КонецПопытки;
            //    Попытка
            //        ПереместитьФайл(ВремФайл, ИмяФайла); 
            //    Исключение
            //        Сообщить("Каталог выгрузки указан не верно или нет возможности записи в этот каталог!");
            //    КонецПопытки;
            //    УдалитьФайлы(ВремФайл);
            //КонецЕсли;
Показать
18. user973528 26.12.18 10:39 Сейчас в теме
(17) ТабличныйДокумент тоже...
Вообще не понимаю почему так происходит
19. user973528 26.12.18 10:41 Сейчас в теме
(17)
Прикрепленные файлы:
20. Skill 26.12.18 10:44 Сейчас в теме
(19) Закоментируйте функцию получитькатолог, а вот этот кусок раскомменте, только вместо ДокументРезультат.Записать(ВремФайл,ТипФайлаТабличногоДокумента.PDF); напишите врТабличныйДокумент.Записать(ВремФайл,ТипФайлаТабличногоДокумента.PDF);

// АльфаКом 
            // Сохранить файл pdf!!!
            //Если ЗначениеЗаполнено(ЭтотОбъект.КаталогВыгрузки) Тогда
            //    ВремФайл = ПолучитьИмяВременногоФайла("pdf");
            //    //Сообщить(ВремФайл);
            //    ТНаим = ОбщиеДанные.НаименованиеЛицевогоСчета;
            //    ТНаим = СтрЗаменить(ТНаим, "л", "");
            //    ТНаим = СтрЗаменить(ТНаим, "с", "");
            //    ТНаим = СтрЗаменить(ТНаим, "Л", "");
            //    ТНаим = СтрЗаменить(ТНаим, "С", "");
            //    ТНаим = СтрЗаменить(ТНаим, "/", "");
            //    ТНаим = СтрЗаменить(ТНаим, "\", "");
            //    ТНаим = СтрЗаменить(ТНаим, "№", "");
            //    ТНаим = СтрЗаменить(ТНаим, " ", "");
            //    ИмяФайла = ЭтотОбъект.КаталогВыгрузки + "\" + ТНаим + ".pdf";                        
            //    //Сообщить(ИмяФайла);
            //Попытка
            //    ДокументРезультат.Записать(ВремФайл,ТипФайлаТабличногоДокумента.PDF);
            //Исключение
            //    КонецПопытки;
            //    Попытка
            //        ПереместитьФайл(ВремФайл, ИмяФайла); 
            //    Исключение
            //        Сообщить("Каталог выгрузки указан не верно или нет возможности записи в этот каталог!");
            //    КонецПопытки;
            //    УдалитьФайлы(ВремФайл);
            //КонецЕсли;
Показать
22. user973528 26.12.18 10:46 Сейчас в теме
(20) Так и сделал, такая же ерунда
23. Skill 26.12.18 10:47 Сейчас в теме
(22) Покажите код и чему равен врТабличныйДокумент
21. spacecraft 26.12.18 10:44 Сейчас в теме
(19) потому-что отладчик всегда работает как получение результата.
Т.е. в отладчике этот код будет вызван как функция. Что соответственно приводит к ошибке. Нельзя в отладчике это проверять.
24. Skill 26.12.18 10:50 Сейчас в теме
(21) Ну это тоже правильно, но я так понимаю что у человека же совсем не работает
25. user973528 26.12.18 10:54 Сейчас в теме
(24) Она работает, сохраняет, но не всегда
Раз я запущу допустим, он сохранит 30 платежёк, второй раз в другую папку пытаюсь сохранить, просто вываливает "Не удалось сохранить т.д т.п" и даже печатку не выводит показать.
Прикрепленные файлы:
26. user973528 26.12.18 10:55 Сейчас в теме
(24) Может ли это быть как то связано с сервером? То есть при сохранении на сервер отказ идёт?
Потому что у меня при открытии внешней обработки более 2ух раз вываливается "Ошибка файловой операции и путь"
27. Skill 26.12.18 10:56 Сейчас в теме
(26) ну тут может быть что угодно вплоть до отсутствия места на диске и прав на папку, надо смотреть в момент ошибки
28. user973528 26.12.18 10:57 Сейчас в теме
(27) Он попытку перемещения файла делает и отваливается. Не может из 1С её вытащить
29. spacecraft 26.12.18 10:57 Сейчас в теме
(24) ошибка связана именно с вычислением выражения в отладчике.
Может что и не работает, но с другой ошибкой.
32. Skill 26.12.18 10:59 Сейчас в теме
(29) В данном случае полностью согласен
30. kudlach 12 26.12.18 10:58 Сейчас в теме
ТабличныйДокумент (SpreadsheetDocument)
Записать (Write)
Вариант синтаксиса: В файл

Синтаксис:

Записать(<ИмяФайла>, <ТипФайлаТаблицы>)
Параметры:

<ИмяФайла> (обязательный)

Тип: Строка.
Имя файла, в котором сохраняется табличный документ.
<ТипФайлаТаблицы> (необязательный)

Тип: ТипФайлаТабличногоДокумента.
Формат, в котором будет сохранен табличный документ.
Значение по умолчанию: MXL.
Описание варианта метода:

Запись табличного документа в файл.
31. user973528 26.12.18 10:59 Сейчас в теме
(30) Но у меня ведь так и реализовано
33. Skill 26.12.18 11:00 Сейчас в теме
(31) При перемещении возможно указываете локальный путь, а не на сервере, поэтому и ругается
34. kudlach 12 26.12.18 11:01 Сейчас в теме
Если файловая база - проверьте у пользователя доступность ко всем каталогам на чтение и запись, если серверная - у пользователя 1cv8User доступ на чтение и запись к каталогам.
35. user973528 26.12.18 11:02 Сейчас в теме
(34)Хорошо, а как тогда объяснить то что он сохраняет файлы через раз?
36. Skill 26.12.18 11:03 Сейчас в теме
(35) Посмотрите чему равны ВремФайл, ИмяФайла при нормальном функционировании и при ошибке

ПереместитьФайл(ВремФайл, ИмяФайла);
40. user973528 26.12.18 11:20 Сейчас в теме
(36) Отваливается на "ПереместитьФайл" и улетает в общий модуль с описанием ошибок
37. kudlach 12 26.12.18 11:07 Сейчас в теме
ВремФайл = ПолучитьИмяВременногоФайла("pdf");
ИмяФайла = ЭтотОбъект.КаталогВыгрузки + "\" + ТНаим + ".pdf";
врТабличныйДокумент.Записать(ВремФайл,ТипФайлаТабличногоДокумента.PDF);

По синтаксису должно быть

врТабличныйДокумент.Записать(ИмяФайла ,ТипФайлаТабличногоДокумента.PDF);

или я что-то в беседе пропустил и про это проговорили ?
38. kudlach 12 26.12.18 11:11 Сейчас в теме
Глобальный контекст.ПереместитьФайл (Global context.MoveFile)
Глобальный контекст (Global context)
ПереместитьФайл (MoveFile)
Синтаксис:

ПереместитьФайл(<ИмяФайлаИсточника>, <ИмяФайлаПриемника>)
Параметры:

<ИмяФайлаИсточника> (обязательный)

Тип: Строка.
Полное имя файла-источника (полное исходное имя файла).
<ИмяФайлаПриемника> (обязательный)

Тип: Строка.
Полное имя файла-приемника (полное новое имя файла).
Описание:

Выполняет перемещение (переименование) указанного файла.

Доступность:

Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер).
Примечание:

Допускается использование схем http, https и ftp для адресации файлов. При использовании этих схем в адресах необходимо указывать прямые слеши '/', а не обратные '\'.
Для работы метода на веб-клиенте необходимо предварительно подключить расширение работы с файлами.
На веб-клиенте метод работает только с локальными файлами.
Пример:

ПереместитьФайл("C:\Temp\Order.htm", "C:\My Documents\Order.htm");
39. kudlach 12 26.12.18 11:11 Сейчас в теме
В синтаксисе перемещения файла нет ни временных файлов ни табличных документов - в параметрах только строковые значения адресов Откуда и Куда перемещать.
41. user973528 26.12.18 11:26 Сейчас в теме
(39) Так и выходит, ВремФайл - что сохраняю, ИмяФайл куда сохраняю
Прикрепленные файлы:
42. spacecraft 26.12.18 11:30 Сейчас в теме
(41) может антивирус блокировать файл. Т.е. первый раз переместили. Антивирусы не любят, когда программа генерирует файлы. Блокирует файл для проверки.
Следующая запись в тот же файл (при перемещении) может не получить доступ к файлу.
43. user973528 26.12.18 11:31 Сейчас в теме
44. spacecraft 26.12.18 11:33 Сейчас в теме
(43) ОС какая? Если win10, то там встроенный defender.
50. user973528 26.12.18 11:40 Сейчас в теме
45. Skill 26.12.18 11:33 Сейчас в теме
(43) Окно ошибки пришлите.
46. user973528 26.12.18 11:36 Сейчас в теме
(45) А оно там стандартное, конфигурация ЖКХ, просто пишет что следует адаптировать к актуальному релизу. Она даже не формирует квитанции при выводе этой ошибки потому что отваливается на "ПереместитьФайл"
47. Skill 26.12.18 11:36 Сейчас в теме
(46) у вас переменная ИмяФайла формируется из значений лицевого счета, возможно просто задваивается значение и происходит попытка переместить файл в уже существующий
48. user973528 26.12.18 11:37 Сейчас в теме
(47) Я знаю, я в пустые папки так же пытаюсь раскидывать
49. Skill 26.12.18 11:40 Сейчас в теме
(48) Попробуйте добавить какое-нибудь уникальное значение в ИмяФайла для проверки, например GUID и посмотрите что будет.
51. user973528 26.12.18 11:46 Сейчас в теме
(49) Даже сейчас, в пустую папку сохраняю 500 квитанций, 347 выгрузил, на остальных оборвался, как будто таймер какой то стоит
52. spacecraft 26.12.18 11:50 Сейчас в теме
(51) попробуйте сразу сохранять в нужный файл без временного файла и перемещения.
И без оборачивания в попытку.
53. user973528 26.12.18 11:51 Сейчас в теме
(52)
сохранять в нужный файл без временного файла и перемещения.
И без оборачивания в попытку


Сразу в смысле жестко прописать путь к каталогу?
54. spacecraft 26.12.18 11:53 Сейчас в теме
(53)
ТНаим = ОбщиеДанные.НаименованиеЛицевогоСчета;
                ТНаим = СтрЗаменить(ТНаим, "л", "");
                ТНаим = СтрЗаменить(ТНаим, "с", "");
                ТНаим = СтрЗаменить(ТНаим, "Л", "");
                ТНаим = СтрЗаменить(ТНаим, "С", "");
                ТНаим = СтрЗаменить(ТНаим, "/", "");
                ТНаим = СтрЗаменить(ТНаим, "\", "");
                ТНаим = СтрЗаменить(ТНаим, "№", "");
                ТНаим = СтрЗаменить(ТНаим, " ", "");
                ИмяФайла = ЭтотОбъект.КаталогВыгрузки + "\" + ТНаим + ".pdf";                        
                врТабличныйДокумент.Записать(ИмяФайла,ТипФайлаТабличногоДокумента.PDF);
Показать
56. user973528 26.12.18 14:16 Сейчас в теме
(54)
ТНаим = ОбщиеДанные.НаименованиеЛицевогоСчета;
ТНаим = СтрЗаменить(ТНаим, "л", "");
ТНаим = СтрЗаменить(ТНаим, "с", "");
ТНаим = СтрЗаменить(ТНаим, "Л", "");
ТНаим = СтрЗаменить(ТНаим, "С", "");
ТНаим = СтрЗаменить(ТНаим, "/", "");
ТНаим = СтрЗаменить(ТНаим, "\", "");
ТНаим = СтрЗаменить(ТНаим, "№", "");
ТНаим = СтрЗаменить(ТНаим, " ", "");
ИмяФайла = ЭтотОбъект.КаталогВыгрузки + "\" + ТНаим + ".pdf";
врТабличныйДокумент.Записать(ИмяФайла,ТипФайлаТабличногоДокумента.PDF);


Не помогло
57. spacecraft 26.12.18 15:33 Сейчас в теме
(56) какую ошибку дает в таком случае? Может имя файла "кривое" получается?
58. user973528 26.12.18 15:52 Сейчас в теме
(57) Ошибку выдаёт такую же, но теперь вообще не даёт квитанции сформировать
59. spacecraft 26.12.18 16:14 Сейчас в теме
(58) Какую "такую же"? Приводите полный текст ошибки.
55. Skill 26.12.18 12:04 Сейчас в теме
(51) Все же проверьте на дубли имен
65. vlad-k 29.12.18 12:32 Сейчас в теме
у моего клиента была похожая ситуация с выгрузкой в формате doc(docx).Что-то проходило,что-то нет,зависало в процессах.
Админ сервера обновил опен офис, и нашел где-то информацию про конфликты сервера и приложения(опена).
Возможно и у вас что-то похожее.Конфликты -Сервер и Acrobat.Или платформа 1с и выгрузка в акробат.
А может шрифты в каких-то платежках не те. Загуглите "1с проблемы с pdf". Там кое-что есть на эту тему.
Оставьте свое сообщение

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