ВсёПросто

Загрузка и выгрузка данных в 1С

Содержание

Резервное копирование базы 1С Предприятие 8.3 и её восстановление

Резервное копирование базы 1С Предприятие 8.

3 позволяет обезопасить пользователя от потери данных при выполнении «опасных» операций, которые могут значительно изменить учетные данные (например, выправление учетных регистров, групповое изменение документов) или испортить базу (операции по тестированию и исправлению информационной базы, обновлению конфигурации и прочее). Так же бывает необходимо копировать базу, что бы передать её кому-либо, причем в этом случае необходим максимально компактный размер.

Выгрузка базы 1С Предприятие 8.3 в резервную копию

Восстановление базы 1С Предприятие 8.3 из резервной копии

Прямое копирование базы данных 1С Предприятие 8.3

 Выгрузка базы 1С Предприятие  8.3 в резервную копию

Резервное копирование базы 1С может осуществляться несколькими способами, самый универсальный — через утилиту выгрузки информационной базы в конфигураторе 1с. Этот способ подойдет как для файловых, так и для клиент-серверных приложений 1С Предприятие. Для создания резервной копии необходимо зайти в конфигуратор и выбрать пункт Администрирование — Выгрузить информационную базу…

Меню «Конфигуратор — Выгрузить информационную базу…»

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

Вводим название файла выгрузки (по умолчанию подставляется «1CV8») и нажимаем кнопку «Сохранить». В качестве примера я изменю стандартное название на «1CV8-МояВыгрузка».

  После этого ждем пока завершится процедура сохранения резервной копии.

Указание каталога выгрузки резервной копии

После завершения выгрузки появится сообщение, что выгрузка информационной базы в файл завершена с указанием пути и названия выгрузки.

Теперь файл выгрузки вы сможете найти в указанном вами каталоге. Перейдем в указанный каталог и видим в нем файл 1CV8-МояВыгрузка.dt.  Добавлю одно полезное замечание

Файл выгрузки резервной копии 1с имеет расширение .dt

Теперь этот файл вы можете копировать на носители, пересылать, сохранять… единственное но! — по почте, скорее всего, файл выгрузки переслать не получится из-за его объема.

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

Восстановление базы 1с Предприятие 8.3 из резервной копии

Для восстановления базы данных из резервной копии план действий такой:

  1. Создать новую базу 1с Предприятие 8.3
  2. Загрузить в пустую базу файл 1С Предприятие 8.3

Приступим!

Процесс создания новой информационной базы данных 1С Предприятие 8.3 подробно описан в статье Создание новой информационной базы 1С Предприятие 8.3. После создания новой базы необходимо в неё необходимо загрузить файл выгрузки 1CV8-МояВыгрузка.dt.

Для загрузки базы 1С Предприятие 8.3 из резервной копии, входим в созданную новую конфигурацию в режиме «Конфигуратор» и выбираем пункт меню «Администрирование» -» Загрузить информационную базу…»

В открывшейся форме выбираем файл выгрузки информационной базы 1с (имеет расширение *.dt)

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

В итоге мы получим сообщение, что информационная базы успешно загружена. Далее мы можем согласиться с перезапуском конфигуратора, что бы увидеть загруженные объекты конфигурации или можем этого не делать, нажать «Нет» и закрыть конфигуратор.

Конфигуратор 1с — Загрузить файл резервной копии (загрузка завершена)

Зайдя в созданную базу после загрузки файла выгрузки 1с в режиме «Предприятие», вы увидите идентичную копию выгруженной ранее базы 1с.

Прямое копирование базы данных 1С Предприятие 8.3

После публикации этого поста поступило обращение одного из клиентов, что он не может загрузить файл *.dt для восстановления резервной копии.

Попробовав все типовые методы и перерыв все популярные запросы в Интернете по этой тематике, наткнулись на Рекомендации по резервному копированию баз 1С, где указано, что в случае сбоя в базе 1С Предприятие 8.3 в файл *.

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

В отличие от выгрузки в файл средствами платформы 1С Предприятие 8.3, прямое копирование подразумевает непосредственное копирование файлов базы данных.

Для копирования файловой базы данных 1С Предприятие 8.3, необходимо зайти в папку с созданной базой данных. Путь до базы данных можно увидеть при установке указателя на нужную информационную базы в списке подключенных баз 1С Предприятие 8.3. Он будет располагаться под окном выбор баз, и иметь вид File=»Путь до базы 1С Предприятие».

Список информационных базы при запуске 1С Предприятие 8.3

Переходим по указанному пути и видим рабочие файлы 1С Предприятие 8.3.

Путь до базы 1С Предприятие 8.3

Основной файл с данными называется 1Cv8.cd (тип — Файловая информационная база), его и необходимо скопировать. Остальные файлы — вспомогательные, они создадутся заново при запуске конфигурации 1С Предприятие 8.3.

Соответственно, для запуска базы не надо ничего восстанавливать — копируем файл 1Cv8.cd в папку и добавляем в список баз 1С Предприятие 8.3 эту информационную базу.

Резервное копирование базы 1С Предприятие 8.3 в клиент серверном варианте более сложно и требует специальных скриптов или приложений для работы с реляционными базами данных на которых развернута база 1С Предприятия 8.3. Это отдельная тема для обсуждения, поэтому поговорим об этом в следующий раз.

Работа с файлами Excel

MS Excel давно стал стандартом для работы с электронными таблицами. В статье рассматриваются способы программной выгрузки и загрузки из 1С в файлы Excel.

Существует несколько способов программной работы с файлами Excel из 1С. Каждый из них имеет свои преимущества и недостатки.

Обмен через табличный документ
Обмен через OLE
Использование COMSafeArray
Обмен через ADO
Выгрузка без программирования

Обмен через табличный документ

Данный способ простой. Его суть заключается в том, что объект ТабличныйДокумент имеет методы:

Внимание!

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

Рассмотрим пример сохранения табличного документа в файл. Необходимо любым способом создать и заполнить объект ТабличныйДокумент, а выгрузка в файл осуществляется всего лишь одной строкой:

ТабДок.Записать(ПутьКФайлу, ТипФайлаТабличногоДокумента.XLSX);

Здесь ТабДок — сформированный табличный документ, ПутьКФайлу — имя файла для выгрузки, ТипФайлаТабличногоДокумента.XLSX — формат создаваемого файла. Поддерживаются следующие форматы Excel:

Загрузка из файла осуществляется также достаточно просто:

ТабДок = Новый ТабличныйДокумент;
ТабДок.Прочитать(ПутьКФайлу, СпособЧтенияЗначенийТабличногоДокумента.Значение);

Здесь ПутьКФайлу — путь к загружаемому файлу Excel. СпособЧтенияЗначенийТабличногоДокумента.Значение определяет, каким образом нужно интерпретировать данные, считываемые из исходного документа. Доступны варианты:

Обмен через OLE

Обмен через технологию OLE automation, пожалуй, самый распространенный вариант программной работы с файлами Excel. Он позволяет использовать весь функционал, предоставляемый Excel, но отличается медленной скоростью работы по сравнению с другими способами. Для обмена через OLE требуется установка MS Excel:

Пример выгрузки:

// Создание COM-объекта
Эксель = Новый COMОбъект(«Excel.Application»);
// Отключение вывода предупреждений и вопросов
Эксель.DisplayAlerts = Ложь;
// Создание новой книги
Книга = Эксель.WorkBooks.Add();
// Позиционирование на первом листе
Лист = Книга.Worksheets(1);

// Запись значения в ячейку
Лист.Cells(НомерСтроки, НомерКолонки).Value = ЗначениеЯчейки;

// Сохранение файла
Книга.SaveAs(ИмяФайла);

// Закрытие Эксель и освобождение памяти
Эксель.Quit();
Эксель = 0;

Примеры чтения:

// —— ВАРИАНТ 1 ——

// Создание COM-объекта
Эксель = Новый COMОбъект(«Excel.Application»);
// Открытие книги
Книга = Эксель.Workbooks.Open(ПутьКФайлу);
// Позиционирование на нужном листе
Лист = Книга.Worksheets(1);

// Чтение значения ячейки, обычно здесь располагается цикл обхода ячеек
ЗначениеЯчейки = Лист.Cells(НомерСтроки, НомерКолонки).Value;

// Закрытие книги
Книга.Close(0);

// Закрытие Эксель и освобождение памяти
Эксель.Quit();
Эксель = 0;

// —— ВАРИАНТ 2 ——

// Открытие книги
Книга = ПолучитьCOMОбъект(ПутьКФайлу);
// Позиционирование на нужном листе
Лист = Книга.Worksheets(1);

// Чтение значения ячейки, обычно здесь располагается цикл обхода ячеек
ЗначениеЯчейки = Лист.Cells(НомерСтроки, НомерКолонки).Value;

// Закрытие книги
Книга.Application.Quit();

Для обхода всех заполненных строк листа Excel можно использовать следующие приемы:

// —— ВАРИАНТ 1 ——
КоличествоСтрок = Лист.Cells(1, 1).SpecialCells(11).Row;
Для НомерСтроки = 1 По КоличествоСтрок Цикл
     ЗначениеЯчейки = Лист.Cells(НомерСтроки, НомерКолонки).Value;
КонецЦикла;

// —— ВАРИАНТ 2 ——
НомерСтроки = 0;
Пока Истина Цикл
     НомерСтроки = НомерСтроки + 1;
     ЗначениеЯчейки = Лист.Cells(НомерСтроки, НомерКолонки).Value;
     Если НЕ ЗначениеЗаполнено(ЗначениеЯчейки) Тогда
         Прервать;
     КонецЕсли;
КонецЦикла;

Вместо последовательного обхода всех строк листа можно выгрузить все данные в массив и работать с ним. Такой подход будет быстрее при чтении большого объема данных:

ВсегоКолонок = Лист.Cells(1, 1).SpecialCells(11).Column;
ВсегоСтрок = Лист.Cells(1, 1).SpecialCells(11).Row;

Область = Лист.Range(Лист.Cells(1, 1), Лист.Cells(ВсегоСтрок, ВсегоКолонок));
Данные = Область.Value.Выгрузить();

В таблице ниже приведены наиболее востребованные свойства и методы для работы с Excel через OLE:

Действие Код

Выгрузка в 1С из xml: как выгрузить данные из 1С 8.3 и загрузить в 1С 8.3

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

Внешняя обработка выгрузка и загрузка данных в xml 1с 8.3

В некоторых конфигурациях имеется типовой функционал для обмена данными (например, выгрузка из конфигурации Зарплата и управление персоналом в Бухгалтерию предприятия или из Управления торговлей в Бухгалтерию предприятия,  из Зарплата и кадры государственного учреждения в Бухгалтерию государственных учреждений и т.п.).

В случае, если конфигурации разные, приходится создавать правила переноса в конфигурации 1С: Конвертация данных. Также некоторые данные можно загрузить из табличного документа Excel, с помощью обработки Загрузки данных из табличного документа.

Для переноса данных между идентичными конфигурациями существует обработка Выгрузка и загрузка данных XML.

Данная обработка поставляется в составе конфигурации 1С: Конвертация данных 2, а также скачать ее можно с сайта 1С или с диска ИТС.

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

Рассмотрим принцип работы данной обработки.

Выгрузка данных из 1С 8.3 в xml

Откроем обработку в базе Источнике, т.е. информационной базе, откуда будем выгружать наши данные: меню Файл — Открыть.

Выберем и откроем файл обработки Выгрузка и загрузка данных XML.

Откроется обработка, в которой необходимо произвести настройку выгрузки.

Данные объектов выгрузки отображены в таблице, где надо отметить, что будем выгружать. При этом у каждого поля стоит отметка Выгружать при необходимости.

Это означает, что если выгружаемый объект связан с другими объектами, то при анализе объекта выгрузки программа 1С 8.3 (кнопка Определить данные, выгружаемые по ссылке) покажет связанные объекты.

При необходимости выгрузки их нужно будет также отметить.

Например, при выгрузке справочника Номенклатура можно загрузить Единицы измерения.

При выгрузке справочника Контрагенты или Организации можно выгрузить Банковские счета и Договора.

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

Предусмотрено два варианта выгрузки данных из 1С 8.3  в xml — на клиентский компьютер и в файл на сервере. При установленном переключателе выгрузить данные На клиентский компьютер выгрузка начинается сразу, при выборе варианта В файл на сервере можем указать место выгрузки.

При выгрузке можно установить галочку выгружать в формате FastInfoSet. Данный формат использует альтернативный синтаксис отображения xml-данных, обеспечивает меньший объем файлов и более высокую скорость обработки, чем скорость обработки данных, записанных в обычном xml-формате. Файл этого формата имеет расширение .fi или .finf.

Для примера, в новую созданную базу 1С 8.3 выгрузим справочники Организации, Контрагенты и Номенклатура.

О том, как создать новую базу 1С подробнее читайте в статье Как создать информационную базу в 1С 8.3

Отметив в списке необходимые для выгрузки объекты, нажимаем кнопку Определить данные, выгружаемые по ссылке и галочками программа 1С 8.

3 отметит связанные объекты и при необходимости их также нужно пометить для выгрузки, поэтому отметим также справочники Договоры Контрагентов, Банки и Банковские счета. Затем только нажимаем кнопку Выгрузить.

После формирования файла программа спросит, что делать с подготовленным файлом: Открыть или Сохранить.

Нажимаем Сохранить и указываем папку. В нашем примере папка Выгрузка из 1С.

Нажимаем кнопку Сохранить — файл выгружен.

Загрузка данных из xml файла в базу 1С 8.3

Откроем информационную базу-приемник, т.е. базу 1С 8.3, куда будем загружать наши данные.

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

Открываем обработку Выгрузка и загрузка данных XML (меню Файл — Открыть) и нажимаем кнопку Загрузить данные.

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

В служебном сообщение появится информация об окончании загрузки.

Проверяем наши справочники.

Справочник Контрагенты (Справочники — Контрагенты).

Проверим, перенесся ли справочник Договоры. Проверим вкладу Договоры в элементе справочника Контрагенты.

Есть. Но для этого при выгрузке мы его тоже отметили.

Проверим справочник Номенклатура (Справочники — Номенклатура).

Данные перенесены.

См. также:

Если Вы еще не являетесь подписчиком системы БухЭксперт8:

Активировать демо-доступ бесплатно →

или

Оформить подписку на Рубрикатор →

После оформления подписки вам станут доступны все материалы по 1С Бухгалтерия, записи поддерживающих эфиров и вы сможете задавать любые вопросы по 1С.

1С загрузка из Excel и выгрузка из 1С в Excel

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

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

1С загрузка из Excel и выгрузка из 1С в Excel глазами рядового пользователя 1С

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

Конечно же без знания программирования здесь не обойтись, поэтому если Вы являетесь простым пользователем то Вам нужно заказать услуги 1с у нас, ведь абсолютно любой наш программист 1с всегда Вас выслушает, подберет специально разработанное решение именно для вас, и обязательно Вам поможет.

Почему нет универсальной обработки по загрузке данных из Excel в 1С ?

Давайте ответим на этот вопрос и рассмотрим его основные моменты:

  1. У каждого пользователя есть различные файлы Excel, данные из которых он хочет перенести в 1С, конечно же эти файлы имеют разные количество строк и столбцов, а также несут разную смысловую нагрузку.
  2. Каждый пользователь работает с отдельной конфигурацией, т.е. конфигурации могут быть различными, то что работает в одной конфигурации, в другой конфигурации без модернизации работать не будет.
  3. Данные из Excel должны переноситься в различные объекты ,соответственно нужен разный код, ведь у каждого пользователя свои требования.

Именно по этим причинам нельзя создать универсальную обработку по загрузке данных из Excel в 1С.

Как происходит загрузка и выгрузка данных из Excel в 1С на примере реальной разработки

Теперь давайте разберем в общих чертах как происходит загрузка и выгрузка данных из Excel в 1С, и как вообще это все будет выглядеть в готовом решении?. Пример реальной индивидуальной разработки, а также исходный Excel файл представлены ниже.

В этой обработке сначала нужно выбрать файл Excel, затем нажать на кнопку «Выполнить», после чего в табличную часть загрузятся нужные данные из Excel. Теперь все что осталось сделать пользователю это нажать кнопку «Перенести в бух», после чего данные будут перенесены из Excel в 1С.

Выгрузка данных из 1С в Excel происходит примерно также, только тут сложность написания обработки зависит от того какие именно данные должны выгружаться из объекта.

Например у нас есть справочник «Номенклатура» и мы хотим выгрузить наименование самой номенклатуры и единицу измерения данной номенклатуры, хотя у самой номенклатуры может быть намного больше реквизитов, такие как, вид номенклатуры, тип номенклатуры, наименование полное и т.д.

Мне нужна обработка по загрузке и/или выгрузке данных из Excel, что мне делать?

Все что Вам нужно сделать это поднять трубку и позвонить нам. После этого наши специалисты выполнят все необходимые действия чтобы вы получили именно то, что Вам требуется. Если Вам нужно выполнить срочное обновление 1с то звоните нам, мы рады помочь каждому нашему клиенту!

Загрузка и выгрузка данных из Excel в 1С глазами рядового программиста 1С

Чуть выше мы дали много полезной информации для пользователей 1С, теперь же пришло время проговорить о технических моментах написания кода, а также привести информацию для программистов 1С которая им будет очень полезна при написании кода. Рассмотрим основные часто используемые функции для работы с Excel.

Начнем мы с того как подключить Excel к 1С, делается это посредством COM-объекта. Для того чтобы этот код работал нормально Excel должен быть установлен на компьютере, в противном случае ничего работать не будет:

После того как мы подключили Excel нам нужно открыть необходимый документ из которого будет осуществляться перенос:

Теперь нам необходимо выбрать лист книги эксель, на рисунке выше мы видим как выбирается лист под определенным номером. Номер листа хранится в переменной «Номер листа»:

Мы можем узнать количество листов книги эксель с помощью поля «Count»:

Чтобы получить имя листа под определенным номером, нужно написать подобную строчку:

Если нам необходимо прочитать определенную ячейку нужно вызывать метод Cells(), после чего обратится к полю Value. Можно конечно прочитать сразу весь файл экселя, но об этом чуть позже:

После того как мы закончили все действия по работе с самим экселем процесс нужно закрыть. Закрываем его, иначе будет висеть:

Мы с Вами рассмотрели основные процедуры и функции с которыми сталкивается каждый программист 1С при написании обработки по загрузки данных из Excel в 1С. Теперь давайте познакомимся более детально с функцией которая считывает отдельные ячейки эксель файла.

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

Пример функции которая загружает все данные из Excel в табличную часть 1С

Мы рассмотрели функцию которая выводит на экран отдельные ячейки экселя. А как быть если нам требуется выгрузить весь лист экселя сразу и обходить его последовательно? Здесь нам пригодится код который приводится ниже:

Пример функции которая выгружает данные из 1С в Excel

Выше мы с вами разобрали много всего интересного, но мы не касались такой темы как выгрузка данных из 1С в Excel.

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

Ну а для того чтобы записать значение в ячейку вы как уже наверное догадались нужно поставить выражение Лист.Cells(x, y) в левую часть. Пример выгрузки данных из 1С в Excel представлен ниже: