helpf.pro
Регистрация
 -1 
Распечатать

Сохранить файл на диске полученный из реквизита типа хранилище значения

Код 1C v 8.х
 // Параметры
//  Хранилище    – ХранилищеЗначения, которое содержит объект типа 
//                 ДвоичныеДанные с файлом для записи на диск.
//  ИмяФайла     – Строка, содержащая полное имя файла.
//  ТолькоЧтение – Булево, признак установки записываемому файлу атрибута ТолькоЧтение.
//  СпособПерезаписи – Строка. Параметр определеляет способ перезаписи существующих
//                 файлов на диске. В зависимости от пришедшего параметра выдается или
//                 не выдается запрос на перезапись файлов. Может устанавливаться в теле
//                 функции, если это необходимо. Принимаемые значения:
//                 "" (пустая строка) - это означает, что диалог еще ни разу не задавался
//                 и при наличии существующего файла будет выдан диалог запроса перезаписи.
//                 ДА - предыдущий файл был перезаписан, но перезапись текущего надо 
//                 запросить снова
//                 НЕТ - предыдущий файл не был перезаписан, но перезапись текущего надо 
//                 запросить снова
//                 ДАДЛЯВСЕХ - предыдущий файл был перезаписан, и все последующие тоже 
//                 надо перезаписывать.
//                 НЕТДЛЯВСЕХ - предыдущий файл не был перезаписан, и все последующие тоже 
//                 не надо перезаписывать.
//
// Возвращаемое значение:
//   Булево – Истина, если каталог выбран, Ложь, если нет.
//
Функция СохранитьФайлНаДиске(Хранилище, ИмяФайла, ТолькоЧтение, СпособПерезаписи, ВопросОПерезаписи = Истина, ИмяСправочника = "удХранилище") Экспорт

	Попытка

		ФайлНаДиске = Новый Файл(ИмяФайла);
		КаталогНаДиске = Новый Файл(ФайлНаДиске.Путь);

		Если Не КаталогНаДиске.Существует() Тогда
			СоздатьКаталог(ФайлНаДиске.Путь);
		КонецЕсли;

		Если ФайлНаДиске.Существует() И ВопросОПерезаписи = Истина Тогда

			Если СпособПерезаписи = ""
			 ИЛИ Врег(СпособПерезаписи) = "ДА"
			 ИЛИ Врег(СпособПерезаписи) = "НЕТ" Тогда

				ФормаЗапросаПерезаписиФайлов = Справочники[ИмяСправочника].ПолучитьФорму("ФормаЗапросаПерезаписиФайлов");
				ФормаЗапросаПерезаписиФайлов.ТекстПредупреждения = 
				    "На локальном диске уже существует файл:
				    |" + ИмяФайла + "
				    |Перезаписать имеющийся файл?";
				СпособПерезаписи = ФормаЗапросаПерезаписиФайлов.ОткрытьМодально();

				Если СпособПерезаписи = Неопределено
				 ИЛИ Врег(СпособПерезаписи) = "НЕТ"
				 ИЛИ Врег(СпособПерезаписи) = "НЕТДЛЯВСЕХ" Тогда
					Возврат Ложь;
				КонецЕсли;

			ИначеЕсли Врег(СпособПерезаписи) = "НЕТДЛЯВСЕХ" Тогда

				Возврат Ложь;

			КонецЕсли;

			// Если существующему файлу установлено ТолькоЧтение, отменим эту установку.
			Если ФайлНаДиске.ПолучитьТолькоЧтение() Тогда
				ФайлНаДиске.УстановитьТолькоЧтение(Ложь);
			КонецЕсли;

		КонецЕсли;

		// Остались случаи когда:
		// - пользователь ответил Да или ДаДляВсех в текущем диалоге
		// - способ перезаписи уже пришел со значением ДаДляВсех
		Если ТипЗнч(Хранилище) <> Тип("ДвоичныеДанные") Тогда
			ДвоичныеДанные = Хранилище.Получить();
		Иначе
			ДвоичныеДанные = Хранилище;
		КонецЕсли; 
		ДвоичныеДанные.Записать(ИмяФайла);
		ФайлНаДиске.УстановитьТолькоЧтение(ТолькоЧтение);

	Исключение

		Предупреждение(ОписаниеОшибки());
		Возврат Ложь;

	КонецПопытки;

	Возврат Истина;

КонецФункции   
Разместил:   Версии: | 8.x |  Дата:   Прочитано: 42700
 -1 
Распечатать
Возможно, вас также заинтересует
17 правил для составления оптимального ЗАПРОСа к данным базы 1С 53
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ
Excel файл как Внешний источник данных 17
Подключимся и загрузим из файла Excel данные в таблицу значений 1С. Сделать теперь это очень просто. 1. В конфигурации добавляет новый объект метаданных типа " Внешние источники данных" и назовем его просто " Excel" . https://helpf.pro/uploads/img
HTML5 Canvas в 1С 8.3 или Google нам поможет 0
Добрался я для написания маленьких тестов для 1С в плане web графики. Версии 1С 8.2.61 и 8.3.3.641. Зайдем на http://www.w3schools.com/html/html5_canvas.asp и перенесем примеры в обработку 1С. Скачать обработку: Результаты не радуют. 1С в Intern
Авто добавление обработки в справочник Внешних обработок 0
Чтобы не изменять типовую конфигурацию приходится использовать типовой механизм внешних печатных форм и обработок. Данный код проверяет - добавлена ли открываемая обработка в конфигурацию, если нет - задает вопрос и при положительном ответе - автома
Автоматическое резервное копирование 1С:Предприятия в облако с помощью ПО Effector Saver 4
Всем известно, для большей гарантии восстановления важных данных, необходимо копировать архивы в несколько мест хранения. Отдельный диск может помочь в случае порчи основного, но в случае если устройство будет потеряно или украдено, он будет так же
Посмотреть все результаты поиска похожих
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.
Загрузка... Дождитесь завершения!