Как изменить файл в 1с
Время неумолимо идёт вперёд, а платформа 1С 8 бежит ещё быстрей этого времени.
Управляемые формы теперь называются "интерфейс ТАКСИ", модальные окна запрещены, а режим использования синхронных вызовов расширений и внешних компонент наглухо положил работоспособность большинства этих расширений и внешних компонент, и половину старых методов в добавок.
В общем, пацаны, дела такие - многие из вас читали статью великолепного Чистова П. о работе с файлами в 8.3
Если Вы ещё этого не сделали - бегом марш! (ссылка)
Суть механизма работы с файлами в кратце:
1) На клиенте выбираем файл
2) Пихаем его в чёрный ящик
3) Сохраняем содержимое чёрного ящика на сервере
Загвоздка состоит в том, что делать это надо особенно, по-новому и с душой.
и прочие языческие штучки здесь не прокатят.
Вот листинг кода, который позволяет загрузить файл с клиента
Нас интересует метод "НачатьПомещениеФайлов", который, собственно, вызывает диалог выбора файла и помещает этот файл во временное хранилище. Заморачиваться с описанием временного хранилища нет смысла, просто запомните - это то место, куда помещаются все выбранные нами файлы в виде двоичных данных (черный ящик).
Понять, что там и как храниться в этом временном хранилище практически невозможно. Можно только обратиться к нашему файлу по навигационной ссылке, которая присваивается автоматически (см. переменную "Адрес").
С тем, что файлы нужно хранить в реквизите или ресурсе с типом "Хранилище значения", спорить, думаю, никто не будет. Достать файл из временного хранилища и поместить его в реквизит с типом "Хранилище значения" можно след.образом:
С одним разобрались, теперь второе - как достать файл из этого хранилища значений (которое, напомню, находится на сервере) и сохранить на диск клиента?
Прежде всего, нам надо получить навигационную ссылку на реквизит с типом "Хранилище значения", куда у нас помещается файл в виде бинарных данных.
Будьте, внимательны! Эта навигационная ссылка уже не имеет с временным хранилищем ничего общего! Проверить тип навигационной ссылки можно методом
По традиции, листинг кода, который вызывает диалог сохранения файла
Значение переменной "Файл" это ещё одна особенность данного способа. Здесь стоит обратить внимание на "ИмяФайла". Дело в том, что помещая файл во временное хранилище, информация о его имени и расширении теряется. Поэтому не забудьте где-нибудь сохранять корректное имя файла, или хотя бы его расширение, чтобы потом не мучаться с вопросом "А это вордовский документ или мп3?"
Метод "НачатьПолучениеФайлов" аналогичен методу "НачатьПомещениеФайлов". Просто один открывает диалог для выбора файла, другой же, наоборот, открывает диалог для сохранения файла.
При использовании данного способа, никакие совместимости модальности и синхронных вызовов в свойствах конфигурации устанавливать не нужно.
Платформа 1С, начиная с релиза 8.3.8.1652, поддерживает новый формат хранения файловых баз данных.
Чем же так хорош этот новый формат? По заверениям 1С он более оптимизирован, а значит после перехода на него мы можем рассчитывать на некоторое увеличение производительности.
Кроме того, новый формат позволяет выбирать размер страницы данных. В старой версии формата (8.2.14) он всегда равен 4 килобайта, в новом же формате (8.3.8) он может быть: 4К, 8К, 16К, 32К или 64К.
Как его менять штатным способом
Чтобы изменить формат базы штатным способом:
- либо создайте новую пустую базу в новом формате (это так по умолчанию для версий платформы после 8.3.8.1652), а затем загрузите в неё dt-выгрузку из старой базы
- либо воспользуйтесь консольной утилитой от 1С cnvdbfl.exe (идёт с дистрибутивом 8.3.8)
Обновлятор поддерживает работу с утилитой cnvdbfl
Слава богам, что cnvdbfl.exe это нормальная утилита (в отличие от chdbfl.exe), которая поддерживает параметры командной строки.
Это позволило мне добавить возможность работы с форматом баз (одной или группы) прямо в Обновлятор-1С.
Сейчас я расскажу и покажу как это всё работает.
Выводим текущий формат баз
Пусть у нас имеются две торговые базы в "старом" формате (версии 8.2.14):
Попросим для начала обновлятор показать нам текущий формат этих баз.
Для этого, отметив их галками, раскроем пункт "Ещё", в котором последовательно перейдём:
- далее нажмём на пункт "6.17 Изменение формата файла БД"
В открывшемся диалоге ничего устанавливать не будем, просто нажмём выполнить:
Результат будет таким:
Меняем формат баз и размер страницы
Отлично. Сменим формат этих баз на 8.3.8 с размером страницы 16 килобайт. Для этого снова выбираем пункт 6.17 и в открывшемся диалоге устанавливаем следующие параметры:
Вот результат, к примеру, для первой базы:
Вы можете менять формат и в обратную сторону, можете экспериментировать с размером страниц, можете делать это для одной или сразу группы баз.
Работайте с удовольствием (то есть с обновлятором)!
С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).
Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.
В 1С 8.3 (8.2) для работы с файлами существует два объекта: Файл и ДиалогВыбораФайла.
Рассмотрим каждый по отдельности.
Объект 1С — файл
Объект Файл служит для управления параметрами файлов.
Сразу стоит заметить, что данный объект не предназначен для чтения и записи из файлов.
Например, прочитаем параметры некоторого файла, находящегося на диске C:
В результате мы получим следующую информацию (если файл найден):
Параметры файла:
Полное имя файла: C:\Работа с файлами\статья.txt
Имя: статья.txt
Имя без расширения: статья
Расширение: .txt
Путь без имени: C:\Работа с файлами\
Размер: 899
Это файл: Да
Изменен: 18.05.2015 16:21:28
Только чтение: Нет
Невидимость: Нет
Запись в файл
Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания - попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>
Теперь, когда мы выбрали и открыли файл, можно с ним работать, т.е. прочитать его содержимое или записать в него что-нибудь.
Рассмотрим пример:
Чтение файла в 1С
Часто бывает необходимо прочитать текст файла построчно, например, для анализа каждой строки. Для этого используем объект ЧтениеТекста.
Запись текста из 1С в файл
Заметим, что при записи текстового файла можно установить кодировку.
Копирование файла
Здесь все очень просто
Перемещение
Удаление
Диалог выбора файла
В указанных выше примерах есть одно неудобство. Путь к файлу прописан жестко в коде. Чтобы выбрать файл интерактивно, существует объект ДиалогВыбораФайла, о котором речь пойдет ниже.
Объект ДиалогВыбораФайла служит для открытия файла (файлов), сохранения файла или выбора каталога в диалоге специального вида.
Например, выберем и откроем некоторый файл с расширением txt:
Задаем режим диалога выбора. Доступны три варианта: ВыборКаталога, Открытие, Сохранение
Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):
В данной статье предлагаю рассмотреть, что такое «расширение конфигурации», как добавить расширение или же отключить его. Начиная с версии 1C 8.3.6.1977 в платформе введен новый механизм – расширения конфигурации. Сначала немного теории.
Что такое расширения?
Расширения представляют в 1С собой что-то вроде параллельных конфигураций, которые автоматически объединяются с основной конфигурацией поставщика. Причем в расширениях можно добавлять как свои объекты, так и заимствовать объекты основной конфигурации.
Для чего нужны расширения?
В первую очередь расширения созданы для облегчения внесения изменений в программу. То есть, если пользователи просят добавить какой-либо функционал, то до появления расширений программистам приходилось снимать конфигурацию с полной поддержки и менять типовую конфигурацию.
Снятие с полной поддержки влечет за собой ряд неудобств:
- пропадает возможность автоматического обновления, что приводит как минимум к увеличению времени на то, чтобы обновить конфигурацию;
- требуется высокая квалификация специалиста, обслуживающего программу;
- если изменения вносились в стандартные объекты типовой конфигурации, то при обновлении они могут пропасть, то есть замениться опять на типовые, от поставщика.
При использовании расширений при внесении изменений программист не будет трогать типовую конфигурацию. Все изменения будут делаться при помощи расширений, которые (как я писал выше) тоже являются конфигурациями. Таким образом, основная конфигурация останется на полной поддержке.
После обновления основной конфигурации, если произошли в новом релизе какие-то изменения с объектом, который ранее был изменен расширением, то изменения все равно возьмутся из расширения. То есть расширения имеют больший приоритет, чем основная конфигурация.
Видео — расширения в 1С за 45 минут
Пример добавления расширения в 1С
Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания - попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>
Чтобы показать, что такое расширение, лучше привести пример его создания в конфигураторе 1С.
В конфигураторе зайдем в меню «Конфигурация» и выберем пункт «Расширения конфигурации». Откроется окно со списком расширений (если они есть). Нажмем кнопку «Добавить» и добавим новое расширение. Теперь можно открыть конфигурацию расширения:
Как видно, конфигурация расширения имеет точно такую же структуру, как и основная. Только она изначально совершенно чистая, без объектов.
Недавно я писал статью о том, как самим сделать обработку для перенумерации объектов. На её примере я хочу сделать ее встроенной при помощи расширения.
В обработке у меня есть поле со ссылкой на справочник «Организации». Поэтому мне этот справочник необходим. Но мы не будем создавать новый справочник «Организации», тем более что платформа этого и не позволит. Нельзя, чтобы в конфигурации расширения были объекты, одноименные с объектами в основной конфигурации.
Поэтому справочник мы позаимствуем из основной конфигурации:
Теперь нажмем правой кнопкой мышки на «Обработки» и выберем «Вставить внешнюю обработку, отчет…» Таким образом, добавим новую обработку в конфигурацию расширения. Если Вы используете мою обработку, то сразу переименуйте ее, так как в основной конфигурации уже есть обработка с таким именем.
Ну и последний штрих. Я хочу, чтобы моя обработка отражалась в меню «Администрирование». Для этого позаимствуем одноименную подсистему основной конфигурации. Не забудьте указать в обработке, что она относится к этой подсистеме.
Вот такая структура у меня получилась:
Посмотрим, что у нас получилось. Обновляем конфигурацию базы данных и запускаем программу в режиме 1C: Предприятие, и идем в меню «Администрирование». Да, чуть не забыл, конфигурацию расширения необходимо закрыть, иначе программа не запустится:
Таким образом, мы добавили в программу новую обработку, не изменив при этом основную конфигурацию.
Расширение можно выгрузить в файл и загрузить потом в другую конфигурацию. Это очень удобно для разработчиков. Получив заказ, программист на своей конфигурации делает расширение и передает его потом заказчику.
В заключение хочу сказать, что работа с расширениями еще не закончена. Постоянно добавляются новые возможности, расширяется круг объектов, с которыми можно работать. Поэтому, если Вы решили активно работать с расширениями, чаще обновляйте платформу.
Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):
Лицензия на сервер + 100 рабочих мест. Электронная поставка.
Настройка и доработка 1С:Документооборот для борьбы с ошибками. Гарантия на все результаты работ.
Оперативные консультации по 1С. Не тратьте время - мы поможем решить проблему любой сложности.
Идеально подходит для средних, крупных компаний и холдингов со сложным документооборотом
Типовой функционал, встроенный в прикладные решения 1С
Чтобы массив документов и файлов «не перерос» возможности штатных специалистов, их следует оснастить инструментом работы с данным бизнес-процессом – программой автоматизации документооборота «1С:Документооборот», где помимо официальных документов, можно работать и с прикрепленными файлами. Это могут быть приложения к различным входящим, исходящим, внутренним документам в виде текстовых документов или таблиц, архивов, изображений, аудио или видеофайлов, и т.п.
Файлы в 1С Документооборот
Системой предусмотрены следующие варианты хранения:
1. В самой базе. То есть все загруженные в программу файлы хранятся в таблицах СУБД: если база файловая – в файле *.dt, а в клиент-серверной помещаются в хранилище СУБД.
Преимущества этого варианта:
- Все файлы в одном месте (в ИБ);
- Безопасность данных;
- Резервное копирование осуществляется стандартным способом.
- Все документы и их версии хранятся в ИБ, что приводит к ее быстрому росту;
- Большой объем ИБ приводит к снижению производительности программы.
2. В томах на диске. Здесь сами файлы будут в каталогах файловой системы, а в СУБД будут находится лишь ссылки на них. Каталоги с документами могут находиться на жестком диске, сервере или размещаться на компьютере в локальной сети.
Преимущества такого хранения:
- Объем ИБ значительно уменьшается;
- С ИБ быстрее работать;
- Размер тома ограничивается только объемом жесткого диска;
- Резервная копия ИБ делается отдельно от копии файлового тома.
К недостаткам можно отнести расположение ИБ и файлов в разных местах, что сказывается на контроле доступа и, в конечном итоге, на безопасности данных.
Настройки хранения в ИБ
Определение места хранения производится в разделе «Настройки и администрирование», зайдя в информационную базу с правами администратора. Далее проходим «Настройки программы-Работа с файлами».
Рис.1 Настройки программы-Работа с файлами
Рис.2 Работа с файлами
Если в настройке не установлена галочка «Хранить файлы в томах на диске», то они будут храниться в информационной базе.
Рис.3 Настройка работы с файлами
До тех пор, пока хоть один том не будет указан, система будет хранить файлы непосредственно в ИБ.
Тома хранения файлов в 1С Документооборот
Перейдя по гиперссылке «Тома хранения файлов», производим их настройку.
Рис.5 Тома хранения файлов
Файлы можно сгруппировать в определенную структуру по папкам. Нажав кнопку «Создать группу», задаем структуру папок.
Рис.6 Создание группы
При создании папок тома необходимо создать папку и задать ей права системного пользователя, от имени которого запускается и работает служба сервера 1С:Предприятия. Создадим для примера папку «1C_Tom» и выполним ее настройку, щелкнув правой кнопкой мышки и открыв меню «Свойства» по кнопке «Расширенная настройка».
Рис.7 Расширенная настройка
Устанавливаем галочку «Открыть общий доступ к этой папке» и нажимаем «Разрешения».
Рис.8 Разрешения
Далее указываем имя пользователя, под которым работает сервер 1С, и отмечаем все права – полный доступ, чтение, изменение.
Рис.9 Указание имени пользователя
Сетевое имя папки указывается в настройках тома, куда будут сохраняться наши файлы документов.
Рис.10 Сетевое имя папки
Создадим том хранения файлов – кнопка «Создать».
Рис.11 Создание тома хранения файлов
В настройке тома указывается его наименование, группа, к которой он будет принадлежать, и сетевой путь. Если поле «Максимальный размер» не заполнять, то размер тома будет не ограничен.
Рис.12 Максимальный размер
После сохранения настройки в окне «Тома хранения файлов» будет отображено имя тома и его путь.
Рис.13 Имя тома и его путь
Если создано несколько групп, то настройки томов выполняются для всех их.
Рис.14 Сохранение настроек
При необходимости можно настроить правила размещения для каждого тома по кнопке «Правила размещения файлов». В открывшемся окне (кнопка «Добавить») делаем настройку правил.
Рис.15 Правила размещения файлов
Можно установить галочку «Правило по умолчанию» или задать условие, установить отбор.
Рис.16 Создание правила
Рис.17 Правило в списке
В качестве условия отбора может быть установлено: автор, зашифрован, подписан ЭП и другие условия.
Рис.18 Условия отбора
При указании правил размещения обязательно должно быть прописано правило без условий – правило «По умолчанию». Оно используется, если файлы не удовлетворяют указанным другим условиям. С помощью кнопок «Переместить вверх» и «Переместить вниз» можно менять местами правила или перетащив строки мышкой.
Рис.19 Перемещение правил в списке
Редактирование файлов и работа с ними в 1С:Документооборот
Для просмотра списка всех файлов, созданных в «1С:Документооборот», можно воспользоваться разделом «Файлы». Они прикреплены к карточкам входящих/исходящих/внутренних документов и доступны в разделе «Документы и файлы». Также, при необходимости, пользователь может воспользоваться разделом «Все файлы».
Рис.20 Все файлы
В этих разделах можно увидеть информацию о местоположении файла, его авторе, дате создания, размере.
Рис.21 Информация о файле
Рис.22 Список всех файлов
Открыть карточку для редактирования можно или двойным щелчком мышки, или правой кнопкой, далее нажать «Изменить» или «F2» на клавиатуре.
Рис.23 Открытие карточки для редактирования
Рис.24 Изменение данных файла
Открыв файл для редактирования, нажимаем кнопку «Редактировать», в результате чего будет открыт документ. Дальнейшая работа по редактированию одинакова в обоих журналах.
Рис.25 Редактирование файла
Файл, который редактируется, выделен зеленым цветом. И если сотрудник забыл завершить редактирование, администратору можно его отменить – кнопка «Отменить редактирование».
Рис.26 Отмена редактирования
Поэтому после окончания редактирования сотрудник должен завершить его по одноименной кнопке для сохранения изменений в системе. И только после этого файл будет доступен другим пользователям.
Рис.27 Закончить редактирование
При сохранении изменений можно оставить комментарий, что было изменено.
Рис.28 Сохранение изменений
В меню «Версии» можно посмотреть, какие изменения, кто и когда вносил в файл.
Рис.29 Вкладка версии
Если было несколько изменений, можно посмотреть их отличия (команда «Показать отличия»), а если были найдены ошибки, то можно вернуться к одной из версий, нажав кнопку «Сделать активно» или выбрав команду контекстного меню «Сделать активной».
Рис.30 Сделать активно
Программа «1С:Документооборот» позволяет пользователю работать с различными типами файлов, хранить их, систематизирует их, обеспечивает быстрый поиск и постоянный доступ к ним.
Читайте также: