1с процедуры и функции работы с файлами. Mxl чем открыть

В статье рассмотрен пример вывод изображения на управляемую форму элемента справочника при отказе режима модальности.

Применимость

В статье рассматривается платформа «1С:Предприятие» редакции 8.3. Представленная информация актуальна для текущих релизов платформы.

Работа с файлами (картинками) в интерфейсе Такси

Рассмотрим алгоритм работы с файлами и картинками в новом интерфейсе 1С:Предприятие 8.3 “Такси”.

Во-первых, почему я решил написать эту статью: Новая концепция 1С – отказ от модальных окон, следовательно все методы и объекты, которые порождали открытие модальных окон в новом интерфейсе работать не смогут, точнее смогут, только если в свойствах конфигурации разрешить модальные окна.

Однако, если разрешить модальные окна, то мы столкнемся с проблемами при работе в web-клиенте.

Во-вторых, о работе с картинками в управляемых формах часто спрашивают.

Итак, задача: в справочнике “Товары” необходимо сохранять и отображать в форме фотографию товара.
Исходная конфигурация не содержит ничего, кроме самого справочника с товарами, выкладывать ее не буду, просто создайте пустую конфигурацию в 8.3.

Для хранения самого графического файла, в справочнике создадим реквизит “ДанныеКартинки”, с типом “Хранилище значений”.

Для увеличения нажмите на изображение.

Если планируете выгружать картинку (файл) из информационной базы обратно в файловую систему, то добавьте еще реквизит, который будет хранить исходное имя файла и его тип.

Для увеличения нажмите на изображение.

Как будем отображать картинку в форме? Нет, не декорацией с типом “картинка”. А в виде реквизита формы с типом “строка”. Да, да! Это очевидно, и странно, что мало кто об этом догадывается сам.

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

Для увеличения нажмите на изображение.

По умолчанию, строка в форме будет выглядеть как поле ввода, нам нужно поменять это, в свойствах элемента формы. Выберем в свойстве “Вид” “Поле картинки”.

Для увеличения нажмите на изображение.

Интерфейсная часть готова. Займемся кодингом. Создадим команду формы “ВыбратьФайлКартинки”, в виде кнопки расположим ее на форме.

Для увеличения нажмите на изображение.

В модуле опишем обработчик события “Действие” для созданной команды формы:

Для увеличения нажмите на изображение.

Пару комментариев к вышеописанному коду:

Если бы мы не обращали внимание на режим модальности приложения, то могли вполне использовать метод “ПоместитьФайл”, однако цель статьи показать работу с файлами именно в таком режиме.
Метод НачатьПомещениеФайла помещает выбранный файл во временное хранилище (если выбор файла был произведен) и вызывает процедуру “ОбработатьВыборФайла” в этом же модуле.

Обращаю внимание на выделенный “УникальныйИдентификатор”, этим свойством мы связали временное хранилище с текущей формой. В противном случае файл в хранилище помещен будет, но само хранилище при серверном вызовет будет уничтожено, а нам оно еще понадобится, для записи файла в реквизит справочника.

Опишем процедуру “ОбработатьВыборФайла”:

Для увеличения нажмите на изображение.

Если пользователь не отказался от выбора файла, то в реквизит формы “СсылкаНаКартинку” помещаем адрес во временном хранилище, куда были помещены данные картинки.

Вуаля!

Так, осталось теперь при записи элемента справочника записать данные из временного хранилища в реквизит элемента справочника. Описываем событие ПередЗаписьюНаСервере:

Для увеличения нажмите на изображение.

Проверяем в реквизите формы у нас что? Если адрес временного хранилища, пишем данные в реквизит элемента справочника, обращаясь к “ТекущийОбъект”, “ТекущийОбъект” – это сконвертированные данные формы, которые пишутся в базу в этот момент времени.

Осталось описать открытие формы, для отображения картинки уже сохраненной в реквизите элемента справочника.

Для увеличения нажмите на изображение.

Вот и все. Готовую базу можно взять .

Павел Чистов

Программа "1С:Предприятие - Работа с файлами" представляет собой отдельный программный продукт, который распространяется бесплатно. Она предназначена для просмотра и редактирования файлов 1С:Предприятия на тех компьютерах, где система 1С:Предприятие не установлена.

Поддерживаются следующие форматы файлов:

  • (*.txt);
  • (*.mxl);
  • (*.htm, *.html);
  • (*.grs);
  • (*.geo);

В процессе установки программа регистрирует расширения mxl, grs и geo, в результате чего для просмотра и редактирования этих файлов достаточно кликнуть на них мышью:

Поддерживается запуск программы из командной строки. При этом существует возможность указать обрабатываемый файл. Например, для обработки файла "Остатки.mxl", достаточно выполнить команду:

"D:\Program Files\1cv82fv\bin\1cv8fv.exe" D:\FileWorkshop\Остатки.mxl

"1С:Предприятие - Работа с файлами" поддерживает , аналогичный режиму, реализованному в системе 1С:Предприятие. Таким образом, например, пользователь может визуально сравнить два отчета об остатках:

Варианты поставки

Существует два варианта поставки программы 1С:Предприятие - Работа с файлами:

  • русcкоязычный;
  • интернациональный.

Отличие интернациональной поставки от русскоязычной заключается в том, что в нее входят , те же самые, которые использует система 1С:Предприятие.

Также для интернациональной поставки может использоваться ключ командной строки /L для указания используемого языка интерфейса. Например, для обработки файла "Остатки.mxl" в программе с английским языком интерфейса (en), достаточно выполнить команду:

"D:\Program Files\1cv82fv\bin\1cv8fv.exe" /Len D:\FileWorkshop\Остатки.mxl

Время неумолимо идёт вперёд, а платформа 1С 8 бежит ещё быстрей этого времени.

Управляемые формы теперь называются "интерфейс ТАКСИ", модальные окна запрещены, а режим использования синхронных вызовов расширений и внешних компонент наглухо положил работоспособность большинства этих расширений и внешних компонент, и половину старых методов в добавок.

В общем, пацаны, дела такие - многие из вас читали статью великолепного Чистова П. о работе с файлами в 8.3

Если Вы ещё этого не сделали - бегом марш! ()

Суть механизма работы с файлами в кратце:

1) На клиенте выбираем файл

2) Пихаем его в чёрный ящик

3) Сохраняем содержимое чёрного ящика на сервере

Загвоздка состоит в том, что делать это надо особенно, по-новому и с душой.

Поэтому ваши

ВыбранныйФайл.Существует()

и прочие языческие штучки здесь не прокатят.

Итак, поехали!

Вот листинг кода, который позволяет загрузить файл с клиента

ОписаниеОповещения = Новый ОписаниеОповещения("ОбработатьВыборФайла", ЭтаФорма); ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие); ДиалогОткрытияФайла.МножественныйВыбор = Ложь; НачатьПомещениеФайлов(ОписаниеОповещения, ДиалогОткрытияФайла, Истина, УникальныйИдентификатор);

Нас интересует метод "НачатьПомещениеФайлов ", который, собственно, вызывает диалог выбора файла и помещает этот файл во временное хранилище. Заморачиваться с описанием временного хранилища нет смысла, просто запомните - это то место, куда помещаются все выбранные нами файлы в виде двоичных данных (черный ящик).

&НаКлиенте Процедура ОбработатьВыборФайла(ПомещенныеФайлы, ДополнительныеПараметры) Экспорт Если ПомещенныеФайлы = Неопределено Тогда Возврат; КонецЕсли; Для каждого ПереданныйФайл Из ПомещенныеФайлы Цикл ПутьКФайлу = ПереданныйФайл.Имя; Запись.ИмяФайла = РазборСтроки(ПутьКФайлу, "\"); Элементы.ОткрытьФайл.Заголовок = Запись.ИмяФайла; Адрес = ПереданныйФайл.Хранение; КонецЦикла; КонецПроцедуры // ()

Понять, что там и как храниться в этом временном хранилище практически невозможно. Можно только обратиться к нашему файлу по навигационной ссылке, которая присваивается автоматически (см. переменную "Адрес ").

С тем, что файлы нужно хранить в реквизите или ресурсе с типом "Хранилище значения ", спорить, думаю, никто не будет. Достать файл из временного хранилища и поместить его в реквизит с типом "Хранилище значения " можно след.образом:

Новый ХранилищеЗначения(ПолучитьИзВременногоХранилища(Адрес));

С одним разобрались, теперь второе - как достать файл из этого хранилища значений (которое, напомню, находится на сервере) и сохранить на диск клиента?

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

Будьте, внимательны! Эта навигационная ссылка уже не имеет с временным хранилищем ничего общего! Проверить тип навигационной ссылки можно методом

ЭтоАдресВременногоХранилища(Адрес)

По традиции, листинг кода, который вызывает диалог сохранения файла

ОписаниеОповещения = Новый ОписаниеОповещения("ОбработкаСохраненияФайлов", ЭтаФорма); Файл = Новый ОписаниеПередаваемогоФайла(ИмяФайла, Адрес); ПолучаемыеФайлы = Новый Массив; ПолучаемыеФайлы.Добавить(Файл); ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение); ДиалогОткрытияФайла.МножественныйВыбор = Ложь; НачатьПолучениеФайлов(ОписаниеОповещения,ПолучаемыеФайлы, ДиалогОткрытияФайла, Истина);

Значение переменной "Файл " это ещё одна особенность данного способа. Здесь стоит обратить внимание на "ИмяФайла ". Дело в том, что помещая файл во временное хранилище, информация о его имени и расширении теряется. Поэтому не забудьте где-нибудь сохранять корректное имя файла, или хотя бы его расширение, чтобы потом не мучаться с вопросом "А это вордовский документ или мп3? "

Метод "НачатьПолучениеФайлов " аналогичен методу "НачатьПомещениеФайлов ". Просто один открывает диалог для выбора файла, другой же, наоборот, открывает диалог для сохранения файла.

В принципе всё.

При использовании данного способа, никакие совместимости модальности и синхронных вызовов в свойствах конфигурации устанавливать не нужно.

Статью писал больше как памятку для себя.

Файл с расширением.MXL представляет собой табличный документ, созданный программой «1С:Предприятие». Первоначально «1С:Предприятие» было предназначено для автоматизации бухгалтерского учёта. В нашей статье расскажем как открыть файл с расширением.MXL.

Чтобы открыть такой файл, запустите «1С Предприятие» и выберите меню «Файл» -> «Открыть». При желании, можно сохранить такой файл в формате Excel. Для этого всё в том же меню «Файл» выбрать пункт «Сохранить как..», а затем установить тип файла «Таблица Excel». Если «1С Предприятие» на вашем компьютере не установлено, вы можете скачать и установить бесплатное приложение «1С Предприятие — Работа с файлами» с официального сайта компании. Это программа поможет открыть, просмотреть, распечатать и конвертировать файлы.

Скачать «1С Предприятие — Работа с файлами» бесплатно

Загрузить программу с официального сайта . Работа с файлами аналогична работе с файлами в режиме «1С:Предприятие».
Доступна русскоязычная версия программы. При установке программы нужно выбрать полный дистрибутив.
После установки «1С Предприятие — Работа с файлами» вы сможете не просто просмотреть файл с расширением.mxl, но и конвертировать его в exel.