Центральный Дом Знаний - Работа в 1С 40

Информационный центр "Центральный Дом Знаний"

Заказать учебную работу! Жми!



ЖМИ: ТУТ ТЫСЯЧИ КУРСОВЫХ РАБОТ ДЛЯ ТЕБЯ

      cendomzn@yandex.ru  

Наш опрос

Я учусь (закончил(-а) в
Всего ответов: 2653

Онлайн всего: 2
Гостей: 2
Пользователей: 0


Форма входа

Логин:
Пароль:

Работа в 1С 40

Работа в программе 1С

стр.: 1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30  31  32
33  34  35  36  37  38  39  40  41  42  43  44  45  

Тема 13 Файловая система

Цель:

  1. познакомится с понятием и областью применения агрегатного типа ФС;

  2. приобрести и закрепить навыки применения методов для работы с ФС в программных модулях.

Пояснения к работе

Для работы с файлами и каталогами в 1С:Предприятие используется специальный объект ФС (файловая система). Средства языка 1С имеют возможности поиска, копирования, переименования, удаления и совершения других операций с файлами и каталогами.

В принципе его не требуется создавать с помощью функции СоздатьОбъект(). Можно считать, что он уже создан. Но 1С позволяет создать сколько угодно таких объектов при помощи функции СоздатьОбъект().

13.1 Методы для работы с файловой системой

ВыбратьФайл(<ТипДиалога>, <ИмяФайла>, <ИмяНачКаталога>, <3аголовокОкна>, <Фильтр>, <Расширение>, <Таймаут>) – открывает окно диалога выбора/сохранения файла.

Параметры:

<TипДиaлoгa> – тип открываемого диалога: 0 – диалог типа «открыть», 1 – диалог типа «сохранить».

<ИмяФайла> – имя переменной, содержащей строковое значение с именем файла. В эту же переменную система возвращает имя выбранного файла.

<ИмяНачКаталога> – имя переменной, содержащей строковое значение с именем начального каталога. В эту же переменную система возвращает имя выбранного каталога.

<ЗаголовокОкна> – строковое выражение, с помощью которого можно задать заголовок открываемого окна.

<Фильтр> – строковое выражение, с помощью которого можно задать список фильтров отбора файлов. Фильтр состоит из двух частей, разделенных символом "" (вертикальная черта): строки представления, которая отображается в окне выбора файла, и непосредственно строки маски. В строке маски можно использовать символ "*", что означает наличие любого числа произвольных символов. Символ "?" в строке маски означает наличие одного произвольного символа. Одновременно можно задавать несколько фильтров в виде списка, в качестве разделителей используется символ "|" (вертикальная черта). Например, список из двух фильтров: "Текст(*.txt)|*.txt| Таблицы(*.mxl)|*.mxl"

<Расширение> – строковое выражение, с помощью которого можно задать расширение файла по умолчанию, которое используется системой при записи файла.

<Таймаут> – необязательный параметр. Время ожидания системы (в секундах) на отклик пользователя.

Возвращаемое значение: 0 – если в окне диалога нажата кнопка Отмена; 1 – если в окне диалога нажата кнопка ОК, при этом в переменную <ИмяФайла> возвращается выбранное имя файла, а в переменную <ИмяНачКаталога> возвращается имя выбранного каталога; –1 (минус единица) – закончилось время <Таймаут> ожидания отклика пользователя.

Пример:

// В данном примере приведена процедура вызова диалога выбора файла.

Процедура УдалФ()

ИмяВыбрФайла = "";

ИмяПути="";

Если ФС.ВыбратьФайл(0, ИмяВыбрФайла, ИмяПути, "Выберите файл",

"Все файлы (*.*)|*.*", , ) = 1 Тогда

ФС.УдалитьФайл(ИмяПути + ИмяВыбрФайла);

КонецЕсли;

КонецПроцедуры

ВыбратьФайлКартинки(<ТипДиалога>, <ИмяФайла>, <ИмяНачКаталога>, <3аголовокОкна>, <Расширение>, <Таймаут>) – открывает окно диалога (с возможностью предварительного просмотра) выбора/сохранения файла картинки.

Параметры:

<ТипДиалога> – тип открываемого диалога: 0 – диалог типа «открыть», 1 – диалог типа «сохранить».

<ИмяФайла> – имя переменной, содержащей строковое значение с именем файла. В эту же переменную система возвращает имя выбранного файла.

<ИмяНачКаталога> – имя переменной, содержащей строковое значение с именем начального каталога. В эту же переменную система возвращает имя выбранного каталога.

<3аголовокОкна> – строковое выражение, с помощью которого можно задать заголовок открываемого окна.

<Расширение> – строковое выражение, с помощью которого можно задать расширение файла по умолчанию, которое используется системой при записи файла.

<Таймаут> – необязательный параметр. Время ожидания системы (в секундах) на отклик пользователя.

Возвращаемое значение: 0 – если в окне диалога нажата кнопка Отмена; 1 – если в окне диалога нажата кнопка ОК, при этом в переменную <ИмяФайла> возвращается выбранное имя файла, а в переменную <ИмяНачКаталога> возвращается имя выбранного каталога; –1 (минус единица) – закончилось время <Таймаут> ожидания отклика пользователя.

Пример:

// В данном примере приведена процедура вызова диалога выбора файла картинки.

// Фото – Объект типа "Картинка"

Процедура ЗагрКарт()

ИмяВыбрФайла = "";

ИмяПути = "";

// Выбор файла с просмотром

Если ФС.ВыбратьФайлКартинки(0, ИмяВыбрФайла, ИмяПути,

"Выберите файл", "bmp", ) = 1 Тогда

Фото.Загрузить(ИмяПути + ИмяВыбрФайла);

КонецЕсли;

КонецПроцедуры

ВыбратьКаталог(<ИмяКаталога>, <3аголовок>, <Таймаут>) – открывает окно диалога выбора каталога.

Параметры:

<ИмяКаталога> – имя переменной, содержащей строковое значение с именем начального каталога. В эту же переменную система возвращает имя выбранного каталога.

<3аголовок> – строковое выражение, с помощью которого можно задать заголовок открываемого окна.

<Таймаут> – необязательный параметр. Время ожидания системы (в секундах) на отклик пользователя.

Возвращаемое значение: 0 – если в окне диалога нажата кнопка Отмена; 1 – если в окне диалога нажата кнопка ОК, при этом в переменную <ИмяНачКаталога> возвращается имя выбранного каталога; –1 (минус единица) – закончилось время <Таймаут> ожидания отклика пользователя.

Пример:

// В данном примере приведена процедура вызова диалога выбора каталога.

Функция УстКат(ИмяПути)

Если ФС.ВыбратьКаталог(ИмяПути, "Выберите каталог", 10) = 1 Тогда

Возврат ИмяПути;

Иначе

Возврат КаталогПользователя();

КонецЕсли;

КонецПроцедуры

Существуетфайл(<ИмяФайла>) – проверяет существование файла.

Параметры:

<ИмяФайла> – строковое выражение с именем файла.

Возвращаемое значение: 1 – файл существует; 0 – не существует.

Пример:

Если ФС.СуществуетФайл(ИмяФайла) = 1 Тогда

Сообщить("Файл " + ИмяФайла + " – существует");

КонецЕсли;

КопироватьФайл(<ИмяФайлаИсточника>, <ИмяФайлаПриемника>, <ФлагОтказаПерезаписи>) – копирует файл–источник в файл–приемник.

Параметры:

<ИмяФайлаИсточника> – строковое выражение с именем файла источника.

<ИмяФайлаПриемника> – строковое выражение с именем файла приемника.

<ФлагОтказаПерезаписи> – 0 – при существовании файла приемника заменяет его на копируемый; 1 – при существовании файла приемника копирования не производится.

Пример:

ФС.КопироватьФайл(ИмяВыбрФайла, ФПриемник, 1);

УдалитьФайл(<ИмяФайла>) – удаляет указанный файл.

Параметры:

<ИмяФайла> – строковое выражение с именем удаляемого файла.

Пример:

ФС.УдалитьФайл(ИмяФайла);

ПереименоватьФайл(<ИмяФайлаИсточника>, <ИмяФайлаПриемника>, <ФлагПерезаписи>) – выполняет переименование (перемещение) указанного файла.

Параметры:

<ИмяФайлаИсточника> – строковое выражение с именем файла источника.

<ИмяФайлаПриемника> – строковое выражение с требуемым именем файла.

<ФлагПерезаписи> – 0 – запрещает перемещение файла между дисками и при существовании файла приемника копирования не производится; 1 – разрешает перемещение файла (только для файлов) между дисками и при существовании файла приемника замещает его на копируемый.

Пример:

ФС.ПереименоватьФайл(Результат, ФПриемник, 1);

НайтиПервыйФайл(<МаскаИмени>) – находит первый файл и открывает выборку файлов по заданной маске. Методы НайтиПервыйФайл() и НайтиСледующийФайл() возвращают имена файлов в той же последовательности, как это делает команда Dir операционной системы MS DOS, т. е. если задана маска "*.*"для некорневого каталога, первым возвращаемым значением будет "." – обозначающая ссылку на текущий каталог. Имя следующего файла будет ".." – обозначающее ссылку на каталог уровнем выше. При получении следующих файлов возвращаемым значением будет имя найденного файла.

Параметры:

<МаскаИмени> – строковое выражение с маской имен файлов. В строке маски можно использовать символ "*", что означает наличие любого числа произвольных символов. Символ "?" в строке маски означает наличие одного произвольного символа.

Возвращаемое значение: строка с именем найденного файла.

Пример:

Результат = ФС.НайтиПервыйФайл("*.*");

НайтиСледующийФайл() – находит следующий файл по открытой выборке файлов.

Возвращаемое значение: строка с именем найденного файла.

Пример:

Результат = ФС.НайтиПервыйФайл("*.*");

Результат = ФС.НайтиСледующийФайл();

АтрибутыФайла(<ИмяФайла>, <РазмерФайла>, <АтрибутыФайла>, <ВремяСоздания>, <ВремяПоследнДоступа>, <ВремяПоследнЗаписи>, <РасширенноеИмяФайла>) – считывает атрибуты файла и записывает их значения в передаваемые параметры.

Параметры:

<ИмяФайла> – строковое выражение с именем файла.

<РазмерФайла> – размер файла в байтах.

<АтрибутыФайла> – возвращаемое строковое значение длиной 9 символов, в котором закодированы атрибуты файла. Символы могут принимать значения "0" или "1":

Первый символ: если "1" – файл только для чтения;

Второй символ: если "1" – скрытый файл;

Третий символ: если "1" – системный файл;

Четвертый символ: если "1" – каталог;

Пятый символ: если "1" – архивный файл;

Шестой символ: если "1" – обычный файл (все другие атрибуты не установлены);

Седьмой символ: если "1" – временный файл;

Восьмой символ: если " 1" – файл, сжатый каким–либо архиватором;

Девятый символ: если "1" – нет доступа к файлу.

Для проверки атрибута можно применять выражение:

Цел(ПолученныйАтрибут/КодАтрибута)/2,

где кодАтрибута – 1/2/4/16/32...это выражение возвращает 1 или 0, в зависимости от того, установлен атрибут или нет.

<ВремяСоздания> – возвращаемое строковое значение, содержащее дату и время создания файла.

<ВремяПоследнДоступа> – возвращаемое строковое значение, содержащее дату и время последнего доступа к файлу.

<ВремяПоследнЗаписи> – возвращаемое строковое значение, содержащее дату и время последней записи файла.

<РасширенноеИмяФайла> – возвращаемое строковое значение, содержащее полное имя файла.

Пример:

ФС.АтрибутыФайла(ИмяВыбрФайла, A, B, C, D, E, F);

СоздатьКаталог(<ИмяКат>) – создает новый каталог.

Параметры:

<ИмяКат> – строковое выражение с именем создаваемого каталога.

Пример:

ФС.СоздатьКаталог(ИмяВыбрДир);

УдалитьКаталог(<ИмяКат>) – удаляет каталог.

Параметры:

<ИмяКат> – строковое выражение с именем удаляемого каталога.

Пример:

ФС.УдалитьКаталог(ИмяВыбрДир);

УстТекКаталог(<ИмяКат>) – устанавливает текущий каталог.

Параметры:

<ИмяКат> – строковое выражение с именем текущего каталога.

Пример:

ФС.УстТекКаталог(ИмяВыбрДир);

ТекКаталог() – строковое значение имени текущего каталога.

Возвращаемое значение: строковое значение имени текущего каталога.

Пример:

ТекКат = ФС.ТекКаталог();

WindowsКаталог() – возвращает имя Windows директории.

Возвращаемое значение: строковое значение – имя Windows директории.

Пример:

WinKaт = ФC.WindowsКаталог();

СвободноеМестоНаДиске(<ИмяДиска>) – размер свободного дискового пространства в байтах.

Параметры:

<ИмяДиска> – строковое выражение с именем диска.

Пример:

Рез = ФС.СвободноеМестоНаДиске("С:");

Также часто применяются системные функции:

КаталогИБ() – возвращает имя каталога базы данных.

КаталогПользователя() – возвращает имя каталога пользователя.

КаталогПрограммы() – возвращает имя каталога с исполняемыми файлами системы 1С:Предприятие.

КаталогВременныхФайлов() – возвращает имя каталога временных файлов.

ИмяКомпьютера() – возвращает сетевое имя компьютера, работающего в данный момент с программой.

13.2 Работа с файловой системой

Дополним существующий пример конфигурации возможностью выбора файла для записи или чтения. Например, в обработке ЗагрузкаДолжностей имя файла вводилось с клавиатуры в обычное строковое поле. Теперь воспользуемся стандартными способами для выбора файла.

Откройте обработку ЗагрузкаДолжностей и измените форму следующим образом (рисунок 13.2.1):

Рисунок 13.2.1

В начало процедуры Выполнить() программного модуля вставьте следующие строки:

Файл="";

ИмяПути="";

// вызываем стандартное окно выбора файла

Если ФС.ВыбратьФайл(0, Файл, ИмяПути, "Выберите файл", "Текстовые файлы (*.txt)|*.txt", , ) = 0 Тогда

Возврат;

КонецЕсли;

// получаем полное имя файла

Файл=ИмяПути+Файл;

Произведите аналогичные изменения для загрузки данных из DBF–файла.

Кроме того, с помощью агрегатных типов ФС и Картинка можно загружать и отображать графические файлы. Например, необходимо чтобы в справочнике Сотрудники находились фотографии работников. Конечно, в самом справочнике будут находиться полные имена графических файлов с фотографиями, а сами файлы будут находиться, например, в каталоге Фото информационной базы.

В справочнике сотрудники создайте новый реквизит Фото типа Строка неограниченной длины (так как имена файлов могут быть очень длинные). На форму элементы справочника поместите следующие элементы диалога (рисунок 13.2.2):

  • Картинка (используется для отображения фотографии): Идентификатор – ФотоРаб, Рамка – Простая;

  • Кнопка Загрузить фото (используется для выбора графического файла): Формула – ЗагрузкаФото();

  • Реквизит Фото (используется для отображения имени файла): опции Сделать недоступным и Пропускать при вводе установлены.

Рисунок 13.2.2

В программный модуль внесем следующие изменения. В процедуру ВводНового() добавьте строку:

Фото="";

Создайте процедуру ЗагрузкаФото():

Процедура ЗагрузкаФото()

ИмяПути="";

// открываем стандартный диалог выбора картинки

Если ФС.ВыбратьФайлКартинки(0, Фото, ИмяПути,"Выберите файл", "bmp", )=0 Тогда

Возврат;

КонецЕсли;

Попытка

// визуализируем выбранную картинку

ФотоРаб.Загрузить(ИмяПути+Фото);

// проверяем есть ли в каталоге информационной базы каталог Фото

Если ФС.СуществуетФайл(КаталогИБ()+"Фото\")=0 Тогда

// если нет, создаем его

ФС.СоздатьКаталог(КаталогИБ()+"Фото\");

КонецЕсли;

// копируем выбранную картинку в каталог Фото

ФС.КопироватьФайл(ИмяПути+Фото, КаталогИБ()+"Фото\"+Фото,0);

// запоминаем полное имя файла

Фото=КаталогИБ()+"Фото\"+Фото;

Исключение

Предупреждение(ОписаниеОшибки());

Фото="";

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

КонецПроцедуры

В разделе основной программы модуля записываем:

// если реквизит Фото не пуст

Если Фото<>"" Тогда

// оператор Попытка необходим, при загрузке фото из файла,

// так как указанный файл мог быть стерт или испорчен

Попытка

// загружаем графический файл

ФотоРаб.Загрузить(Фото);

Исключение

Предупреждение(ОписаниеОшибки());

Фото="";

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

КонецЕсли;

Сохраните конфигурацию и загрузите 1С в режиме Предприятие. Откройте справочник Сотрудники и попробуйте для какого–либо работника загрузить графический файл и сохранить изменения. Затем попробуйте снова открыть этого работника. Убедитесь, что выбранный файл загружается (рисунок 13.2.3).

Рисунок 13.2.3

Задания:

В конфигурациях, созданных на прошлых занятиях, сделайте следующие изменения и дополнения:

  • все имена файлов для загрузки или выгрузки данных должны выбираться через стандартные диалоговые окна для работы с файлами;

  • в главный справочник ввести реквизит для отображения графической информации по вашему выбору и обеспечить загрузку изображения из файла и отображение на форме.

Контрольные вопросы:

  1. Для чего используется агрегатный тип ФС?

  2. Каковы возможности данного типа?

  3. Как вызвать стандартное окно выбора файла?

  4. Как вызвать стандартное окно выбора картинки?

  5. Как скопировать файл?

  6. Как удалить файл?

  7. Как создать каталог?

  8. Как найти файл?

Loading

Календарь

«  Май 2019  »
ПнВтСрЧтПтСбВс
  12345
6789101112
13141516171819
20212223242526
2728293031

Архив записей

Друзья сайта

  • Заказать курсовую работу!
  • Выполнение любых чертежей
  • Новый фриланс 24