ПРОДАЖА И ВНЕДРЕНИЕ 1С

по всей России

+7 (495) 223-32-11

Заказать обратный звонок

8 (800) 775-90-01

Бесплатно по России

Получить

Скорую 1С помощь

Получить

Проконсультироваться
со специалистом 1С

Консультироваться

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

Попытка

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

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

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

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

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

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

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

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

КонецЕсли;

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

КонецЕсли;

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

Исключение

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

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

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

КонецФункции


Информация взята с сайта http://helpf.pro


Заказать обратный звонок

Позвонить
Отправлено! В самое ближайшее время наш менеджер свяжется с Вами.