|
Работа в 1С 40
Цель:
Пояснения к работе Для работы с файлами и каталогами в 1С:Предприятие используется специальный объект ФС (файловая система). Средства языка 1С имеют возможности поиска, копирования, переименования, удаления и совершения других операций с файлами и каталогами. В принципе его не требуется создавать с помощью функции СоздатьОбъект(). Можно считать, что он уже создан. Но 1С позволяет создать сколько угодно таких объектов при помощи функции СоздатьОбъект(). 13.1 Методы для работы с файловой системой
Параметры: <TипДиaлoгa> – тип открываемого диалога: 0 – диалог типа «открыть», 1 – диалог типа «сохранить». <ИмяФайла> – имя переменной, содержащей строковое значение с именем файла. В эту же переменную система возвращает имя выбранного файла. <ИмяНачКаталога> – имя переменной, содержащей строковое значение с именем начального каталога. В эту же переменную система возвращает имя выбранного каталога. <ЗаголовокОкна> – строковое выражение, с помощью которого можно задать заголовок открываемого окна. <Фильтр> – строковое выражение, с помощью которого можно задать список фильтров отбора файлов. Фильтр состоит из двух частей, разделенных символом "" (вертикальная черта): строки представления, которая отображается в окне выбора файла, и непосредственно строки маски. В строке маски можно использовать символ "*", что означает наличие любого числа произвольных символов. Символ "?" в строке маски означает наличие одного произвольного символа. Одновременно можно задавать несколько фильтров в виде списка, в качестве разделителей используется символ "|" (вертикальная черта). Например, список из двух фильтров: "Текст(*.txt)|*.txt| Таблицы(*.mxl)|*.mxl" <Расширение> – строковое выражение, с помощью которого можно задать расширение файла по умолчанию, которое используется системой при записи файла. <Таймаут> – необязательный параметр. Время ожидания системы (в секундах) на отклик пользователя. Возвращаемое значение: 0 – если в окне диалога нажата кнопка Отмена; 1 – если в окне диалога нажата кнопка ОК, при этом в переменную <ИмяФайла> возвращается выбранное имя файла, а в переменную <ИмяНачКаталога> возвращается имя выбранного каталога; –1 (минус единица) – закончилось время <Таймаут> ожидания отклика пользователя. Пример: // В данном примере приведена процедура вызова диалога выбора файла. Процедура УдалФ()
КонецПроцедуры ВыбратьФайлКартинки(<ТипДиалога>, <ИмяФайла>, <ИмяНачКаталога>, <3аголовокОкна>, <Расширение>, <Таймаут>) – открывает окно диалога (с возможностью предварительного просмотра) выбора/сохранения файла картинки. Параметры: <ТипДиалога> – тип открываемого диалога: 0 – диалог типа «открыть», 1 – диалог типа «сохранить». <ИмяФайла> – имя переменной, содержащей строковое значение с именем файла. В эту же переменную система возвращает имя выбранного файла. <ИмяНачКаталога> – имя переменной, содержащей строковое значение с именем начального каталога. В эту же переменную система возвращает имя выбранного каталога. <3аголовокОкна> – строковое выражение, с помощью которого можно задать заголовок открываемого окна. <Расширение> – строковое выражение, с помощью которого можно задать расширение файла по умолчанию, которое используется системой при записи файла. <Таймаут> – необязательный параметр. Время ожидания системы (в секундах) на отклик пользователя. Возвращаемое значение: 0 – если в окне диалога нажата кнопка Отмена; 1 – если в окне диалога нажата кнопка ОК, при этом в переменную <ИмяФайла> возвращается выбранное имя файла, а в переменную <ИмяНачКаталога> возвращается имя выбранного каталога; –1 (минус единица) – закончилось время <Таймаут> ожидания отклика пользователя. Пример: // В данном примере приведена процедура вызова диалога выбора файла картинки. // Фото – Объект типа "Картинка" Процедура ЗагрКарт()
КонецПроцедуры ВыбратьКаталог(<ИмяКаталога>, <3аголовок>, <Таймаут>) – открывает окно диалога выбора каталога. Параметры: <ИмяКаталога> – имя переменной, содержащей строковое значение с именем начального каталога. В эту же переменную система возвращает имя выбранного каталога. <3аголовок> – строковое выражение, с помощью которого можно задать заголовок открываемого окна. <Таймаут> – необязательный параметр. Время ожидания системы (в секундах) на отклик пользователя. Возвращаемое значение: 0 – если в окне диалога нажата кнопка Отмена; 1 – если в окне диалога нажата кнопка ОК, при этом в переменную <ИмяНачКаталога> возвращается имя выбранного каталога; –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.1): Рисунок 13.2.1 В начало процедуры Выполнить() программного модуля вставьте следующие строки: Файл=""; ИмяПути=""; // вызываем стандартное окно выбора файла
Произведите аналогичные изменения для загрузки данных из DBF–файла. Кроме того, с помощью агрегатных типов ФС и Картинка можно загружать и отображать графические файлы. Например, необходимо чтобы в справочнике Сотрудники находились фотографии работников. Конечно, в самом справочнике будут находиться полные имена графических файлов с фотографиями, а сами файлы будут находиться, например, в каталоге Фото информационной базы. В справочнике сотрудники создайте новый реквизит Фото типа Строка неограниченной длины (так как имена файлов могут быть очень длинные). На форму элементы справочника поместите следующие элементы диалога (рисунок 13.2.2):
Рисунок 13.2.2 В программный модуль внесем следующие изменения. В процедуру ВводНового() добавьте строку: Фото=""; Создайте процедуру ЗагрузкаФото(): Процедура ЗагрузкаФото()
Если ФС.ВыбратьФайлКартинки(0, Фото, ИмяПути,"Выберите файл", "bmp", )=0 Тогда
КонецПроцедуры В разделе основной программы модуля записываем: // если реквизит Фото не пуст Если Фото<>"" Тогда // оператор Попытка необходим, при загрузке фото из файла, // так как указанный файл мог быть стерт или испорчен
КонецЕсли; Сохраните конфигурацию и загрузите 1С в режиме Предприятие. Откройте справочник Сотрудники и попробуйте для какого–либо работника загрузить графический файл и сохранить изменения. Затем попробуйте снова открыть этого работника. Убедитесь, что выбранный файл загружается (рисунок 13.2.3). Рисунок 13.2.3 Задания: В конфигурациях, созданных на прошлых занятиях, сделайте следующие изменения и дополнения:
Контрольные вопросы:
|
Loading
|