Код 1C v 8.х
// Процедура выгружает из указанного справочника данные в режиме экспорта в файл в формате Microsoft Excel
// с указанным именем, используя преобразование данных к типу число и типу строка;
Процедура ОсновныеДействияФормыЭкспорт(Кнопка)
Попытка
Попытка
// Загрузка объекта Microsoft Excel
Состояние("Выгрузка данных из 1С в Microsoft Excel...");
ExcelПриложение = Новый COMОбъект("Excel.Application");
Исключение
Сообщить("Ошибка при запуске Microsoft Excel."
+ Символы.ПС + ОписаниеОшибки(), СтатусСообщения.Внимание);
Возврат;
КонецПопытки;
// Создадим книгу, по умолчанию в ней уже есть листы
Книга = ExcelПриложение.WorkBooks.Add();
// Используем первый лист книги Excel
Лист = Книга.WorkSheets(1);
// Сформировать шапку документа в первой строке листа
Колонка = 1;
Если стр.Выгружать Тогда
Лист.Cells(1, Колонка).Value = стр.НазваниеРеквизита;
Колонка = Колонка + 1;
КонецЕсли;
КонецЦикла;
// Выгрузить данные справочника
выборка = Справочники[ИмяСправочника].Выбрать();
СтрокаЛиста = 2;
Пока выборка.Следующий() Цикл
Колонка = 1;
Для каждого стр из ТП цикл
Если стр.Выгружать Тогда
Попытка
// Установить значение в строке и колонке
Если ТипЗнч(выборка[стр.НазваниеРеквизита])=Тип("Число") Тогда
// Установить формат для типа Число
Лист.Cells(СтрокаЛиста, Колонка).NumberFormat = "0,00";
Формат(выборка[стр.НазваниеРеквизита],"ЧГ=0");
иначе
// Для всех других типов установим формат "Текстовый"
Лист.Cells(СтрокаЛиста, Колонка).NumberFormat = "@";
Лист.Cells(СтрокаЛиста, Колонка).Value =
Строка(выборка[стр.НазваниеРеквизита]);
КонецЕсли;
исключение
// в случае ошибки вывести номер строки и колонки
Сообщить("Ошибка установки значения для: " +
выборка[стр.НазваниеРеквизита]);
Сообщить("Стр: " +СтрокаЛиста+ " Кол: " +
Колонка+ " Рек: " + стр.НазваниеРеквизита);
КонецПопытки;
Колонка = Колонка + 1;
КонецЕсли;
КонецЦикла;
СтрокаЛиста = СтрокаЛиста + 1;
Состояние("Экспорт из 1С в Excel " + СтрокаЛиста);
КонецЦикла;
// Сохраним созданную книгу в файл xls
Книга.SaveAs(имяФайла);
// Обязательно закроем соединение с COM объектом для освобождения памяти
ExcelПриложение.Quit();
Сообщить("Файл выгружен успешно: " + имяФайла);
Исключение
// Обработка ошибок экспорта данных из 1С в Excel
Сообщить("Ошибка записи данных файла:" + имяФайла);
Сообщить(ОписаниеОшибки());
Попытка
ExcelПриложение.Quit();
Исключение
КонецПопытки;
КонецПопытки;
КонецПроцедуры
Код 1C v 7.x
//Простейший пример вывода из 1С:Предприятия 7.7 в MS Excel. Обеспечение наличия у рабочей книги единственного листа,
//установка размера, жирности и цвета шрифта, ширины колонок, рамок и заливки ячеек. Выравнивание текста
//ячеек, группировка строк, установка числового формата ячеек, закрепление области.
Процедура Вывод()
Попытка
Application=СоздатьОбъект("Excel.Application");
Исключение
Сообщить(ОписаниеОшибки(),"!!!");
Сообщить("Возможно, MS Excel не установлен на этом компьютере.");
Возврат;
КонецПопытки;
//Создание рабочей книги
WorkBook=Application.WorkBooks.Add();
//Получение окна
Window=WorkBook.Windows(1);
//Установка невидимости окна для убыстрения вывода
Window.Visible=0;
//Обеспечение наличия у рабочей книги единственного листа
Если WorkBook.Worksheets.Count=0 Тогда
WorkBook.Worksheets.Add();
Иначе
Application.DisplayAlerts=0;//не выдавать предупреждений
Пока WorkBook.Worksheets.Count>1 Цикл
WorkBook.Worksheets(1).Delete();
КонецЦикла;
Application.DisplayAlerts=-1;//восстановление флага выдачи предупреждений
КонецЕсли;
//Получение рабочего листа
Worksheet=WorkBook.Worksheets(1);
//Задание имени рабочего листа
Worksheet.Name="Пример вывода";
//Заголовок документа
Worksheet.Range("A1").Value="Пример вывода из 1С:Предприятия в MS Excel";
Worksheet.Range("A2").Value="сегодня "+ТекущаяДата();
Worksheet.Range("A1:A2").Font.Size=14;//размер шрифта
Worksheet.Range("A1:A2").Font.Bold=-1;//жирный шрифт
//Задание ширины колонок
Worksheet.Columns(1).ColumnWidth=60;
Worksheet.Columns(2).ColumnWidth=15;
Worksheet.Columns(3).ColumnWidth=15;
//Шапка документа
Worksheet.Range("A4").Value="Первая колонка";
Для ы=7 по 10 Цикл//рамки
Worksheet.Range("A4").Borders(ы).LineStyle=1;
Worksheet.Range("A4").Borders(ы).Weight=-4138;//xlMedium
КонецЦикла;
Worksheet.Range("A4").Interior.ColorIndex=15;//заливка серым
Worksheet.Range("A4").HorizontalAlignment=-4108;//выравнивание текста по центру
Worksheet.Range("B4").Value="Вторая";
Для ы=7 по 10 Цикл
Worksheet.Range("B4").Borders(ы).LineStyle=1;
Worksheet.Range("B4").Borders(ы).Weight=-4138;
КонецЦикла;
Worksheet.Range("B4").Interior.ColorIndex=15;
Worksheet.Range("B4").HorizontalAlignment=-4108;
Worksheet.Range("C4").Value="Третья";
Для ы=7 по 10 Цикл
Worksheet.Range("C4").Borders(ы).LineStyle=1;
Worksheet.Range("C4").Borders(ы).Weight=-4138;
КонецЦикла;
Worksheet.Range("C4").Interior.ColorIndex=15;
Worksheet.Range("C4").HorizontalAlignment=-4108;
//Для группировки строк:
Worksheet.Outline.SummaryRow=0;//"итоговые" строки отображать сверху (если снизу, то 1)
//Вывод строк
Worksheet.Range("A5").Value="Объект аналитики";
Worksheet.Range("A5").Font.ColorIndex=5;//цвет шрифта - синий
Worksheet.Range("B5").Value=123.45;
Worksheet.Range("B5").Font.ColorIndex=5;
Worksheet.Range("C5").Value=678.9;
Worksheet.Range("C5").Font.ColorIndex=5;
Worksheet.Range("A6").Value="Объект аналитики";
Worksheet.Range("A6").Font.ColorIndex=3;//цвет шрифта - красный
Worksheet.Range("B6").Value=123.45;
Worksheet.Range("B6").Font.ColorIndex=3;
Worksheet.Range("C6").Value=678.9;
Worksheet.Range("C6").Font.ColorIndex=3;
Worksheet.Range("A7").Value="Объект аналитики";
Worksheet.Range("B7").Value=123.45;
Worksheet.Range("C7").Value=678.9;
Worksheet.Range("A8").Value="Объект аналитики";
Worksheet.Range("B8").Value=123.45;
Worksheet.Range("C8").Value=678.9;
Worksheet.Range("A9").Value="Объект аналитики";
Worksheet.Range("A9").Font.ColorIndex=3;//цвет шрифта - красный
Worksheet.Range("B9").Value=123.45;
Worksheet.Range("B9").Font.ColorIndex=3;
Worksheet.Range("C9").Value=678.9;
Worksheet.Range("C9").Font.ColorIndex=3;
Worksheet.Range("A10").Value="Объект аналитики";
Worksheet.Range("B10").Value=123.45;
Worksheet.Range("C10").Value=678.9;
Worksheet.Range("A11").Value="Объект аналитики";
Worksheet.Range("B11").Value=123.45;
Worksheet.Range("C11").Value=678.9;
Worksheet.Range("A12").Value="Объект аналитики";
Worksheet.Range("A12").Font.ColorIndex=5;//цвет шрифта - синий
Worksheet.Range("B12").Value=123.45;
Worksheet.Range("B12").Font.ColorIndex=5;
Worksheet.Range("C12").Value=678.9;
Worksheet.Range("C12").Font.ColorIndex=5;
Worksheet.Range("A13").Value="Объект аналитики";
Worksheet.Range("A13").Font.ColorIndex=3;//цвет шрифта - красный
Worksheet.Range("B13").Value=123.45;
Worksheet.Range("B13").Font.ColorIndex=3;
Worksheet.Range("C13").Value=678.9;
Worksheet.Range("C13").Font.ColorIndex=3;
Worksheet.Range("A14").Value="Объект аналитики";
Worksheet.Range("B14").Value=123.45;
Worksheet.Range("C14").Value=678.9;
Worksheet.Range("A15").Value="Объект аналитики";
Worksheet.Range("B15").Value=123.45;
Worksheet.Range("C15").Value=678.9;
Worksheet.Range("A16").Value="Объект аналитики";
Worksheet.Range("A16").Font.ColorIndex=3;//цвет шрифта - красный
Worksheet.Range("B16").Value=123.45;
Worksheet.Range("B16").Font.ColorIndex=3;
Worksheet.Range("C16").Value=678.9;
Worksheet.Range("C16").Font.ColorIndex=3;
Worksheet.Range("A17").Value="Объект аналитики";
Worksheet.Range("B17").Value=123.45;
Worksheet.Range("C17").Value=678.9;
Worksheet.Range("A18").Value="Объект аналитики";
Worksheet.Range("B18").Value=123.45;
Worksheet.Range("C18").Value=678.9;
//Установка рамок
Для НомСтр=5 по 18 Цикл
Для ы=7 по 10 Цикл
Worksheet.Range("A"+НомСтр).Borders(ы).LineStyle=1;
Worksheet.Range("B"+НомСтр).Borders(ы).LineStyle=1;
Worksheet.Range("C"+НомСтр).Borders(ы).LineStyle=1;
КонецЦикла;
КонецЦикла;
//Группировка строк
Worksheet.Range("7:8").Rows.Group();
Worksheet.Range("10:11").Rows.Group();
Worksheet.Range("14:15").Rows.Group();
Worksheet.Range("17:18").Rows.Group();
Worksheet.Range("6:11").Rows.Group();
Worksheet.Range("13:18").Rows.Group();
//Свёртка группировок до первого уровня
Worksheet.Outline.ShowLevels(1);
//Установка числового формата
Попытка
Worksheet.Range("B5:C18").NumberFormat="# ##0.00";
Исключение
Попытка
Worksheet.Range("B5:C18").NumberFormat="# ##0,00";
Исключение
КонецПопытки;
КонецПопытки;
//Установка видимости приложения и его окна
Application.Visible=-1;
Window.Visible=-1;
//Закрепление области
Worksheet.Range("A5").S_elect();
Window.FreezePanes = -1;
КонецПроцедуры //Вывод
Информация взята с сайта
В прошлом уроке мы с Вами рассмотрели .
Однако наиболее распространенный пример – это обмен между бухгалтерией и зарплатой. Эти базы не подчинены друг другу и даже могут быть не связаны изначально.
Все, что нам необходимо – это периодически производить выгрузку из зарплаты в бухгалтерию.
Рассмотрим процесс выгрузки данных из 1С.
Принципы выгрузки и загрузки данных 1С
В Бухгалтерии у документа Реализация товаров и услуг может быть 30 полей. Это бухгалтерский учет, у него свои цели, много полей посвящены плану счетов и субконто.
В Управлении торговлей у того же документа Реализация товаров может быть 25. Это оперативный учет, у него свои цели. А вот счета из плана счетов там не указаны.
Названия у полей в этих двух базах могут быть разные. Тогда как выгрузить один документ из одной базы, а загрузить другой в другую базу?
Для описания каким образом документ должен быть преобразован, чтобы из одной базы он смог загрузиться в другую – существуют правила обмена.
Они представляют собой файл с расширением XML. Для его создания существует специальная конфигурация 1С под названием «Конвертация данных».
Для обмена между типовыми конфигурациями существуют типовые правила обмена данными, которые зашиты в типовые настройки обменов (Сервис/Обмен с ххх) или поставляется отдельно с .
Сделать выгрузку БУ-ЗП 1С
Из типовой конфигурации Зарплата и управление персоналом в типовую конфигурацию Бухгалтерия обычно периодически выгружают информации о результатах начислений заработной платы, в том числе для выплаты налогов.
Для того, чтобы это было возможно сделать, необходимо сначала из Бухгалтерии выгрузить в зарплату настройки.
Чтобы сделать выгрузку 1С из Бухгалтерии 1С в Зарплату 1С — выберите в Бухгалтерии пункт меню Сервис/Обмен данных с Зарплатой/Выгрузить данные.
При выгрузке 1С в первый раз не забудьте установить галочку «Сведения для выгрузки 1С в новую информационную базу».
Как загрузить начальные сведения в Зарплату – смотрите в следующей статье Загрузка 1С.
Сделать выгрузку ЗП-БУ 1С
После того, как начальные сведения из Бухгалтерии загружены в Зарплату, из Зарплаты можно выгружать начисления в Бухгалтерию.
В Зарплате выберите меню Сервис/Обмен данными/Выгрузка данных в бухгалтерскую программу.
На форме настройки выгрузки 1С по умолчанию нужно выбрать только период и путь куда нужно выгрузить файл с данными.
Формат выгрузки 1С отображен в виде гиперссылки — синим текстом. Вы можете изменить его нажав на гиперссылку и выбрав другую бухгалтерскую конфигурацию.
Сделать выгрузку БУ-УТ 1С
Чтобы сделать выгрузку 1С из Бухгалтерии в Управление торговлей – необходимо создать настройки обмена. Это позволит делать не только разовые выгрузки 1С, но настроить полноценный периодический обмен, как в .
Чтобы сделать настройки, выберите в Бухгалтерии пункт меню Сервис/Обмен данными с Управление торговлей/Настроить обмен данными.
Настройки создаются с помощью «мастера».
Мы не пойдем простым путем, и проконтролируем все настройки сами, для этого нужно выбрать Экспертный режим работы.
Так как мы создаем настройку с нуля, то выберем «Создать настройку обмена» (соответственно можно «продолжить» если Вы прервали мастер ранее или изменить если мастер был завершен).
Такая настройка обмена делается в двух базах – сначала в одной, потом в другой.
Соответственно выберем «Создать используя файл» если Вы начали делать новую с нуля в Управлении торговлей, а здесь Вам необходимо завершить настройку (аналогично, если начать в Бухгалтерии, то завершать нужно будет в Управлении торговлей).
Настройки для обменов «через файл» простые, и здесь на картинках не представлены. А вот для «прямого» COM соединения примеры здесь.
Пример, если Управление торговлей «файловая» — находится на диске. .
Пример, если Управление торговлей находится на сервере 1С. Название сервера и базы данных такое, .
Путь к файловой базе, а также сервер и имя базы на сервере, отображаются в окне выбора базы данных в 1С.
Здесь необходимо указать, планируется ли загружать что-то из Управления торговлей. Если да – то это «двусторонний» обмен.
Мы можем указать фильтры выгружаемых документов. Например, в разрезе организаций.
На следующей странице указывается период, начиная с которого предполагается обмен, а также список документов, которые будут выгружаться.
На этом первая часть настройки завершена. По ее результатам 1С создает файл настроек. Теперь необходимо зайти в Управление торговли и продолжить настройку там, указав вариант «Продолжить с использованием файла» и указать данный файл.
После настройки обмена с обоих базах, 1С предлагает провести первичную выгрузку 1С справочников и провести сопоставление объектов. Это аналог первичной выгрузки 1С в для дальнейшего нормального функционирования обмена.
Обратите внимание на этот момент, если Управление торговлей не пустая база, в ней есть свои справочники, особенно если они уже давно ведутся.
Если Вы не уверены в этом моменте:
Сделать выгрузку УТ-Розница 1С
Типовая конфигурация 1С Розница часто используется совместно с конфигурацией Управление торговлей. Обычно УТ используют в розничных магазинах, а Розница в офисе.
Мы рассматриваем пример настройки обмена УТ редакция 11 с Розницей.
Выберите пункт Администрирование в интерфейсе, далее Обмены данными, пункт Добавить/Создать обмен с конфигурацией Розница.
Настройка обмена делается в двух базах – сначала в одной, потом в другой.
Соответственно выберем «Продолжить» если Вы начали делать новую с нуля в Рознице, а здесь Вам необходимо завершить настройку (аналогично, если начать в Управлении торговлей, то завершать нужно будет в Рознице).
На этой закладке выбирается способ передачи информации между двумя базами – через файл (шара). Пропустите эту страницу, если Вы хотите использовать другой вариант.
На этой закладке выбирается способ передачи информации между двумя базами – через файл (FTP). Пропустите эту страницу, если Вы хотите использовать другой вариант.
Итоговая страница настроек. Чтобы указать уточнения – нажмите кнопку «Настроить ограничения».
Здесь можно указать дату, начиная с которой будут выгружаться документы, а также отборы (фильтры) по организациям, складам и др.
На закладке соответствий можно настроить соответствие некоторых справочников (магазины = подразделения и кассы).
На этом первый этап настройки завершен. Как результат – создан файл настроек. Вам необходимо завершить настройку в базе Розницы, указав Продолжить с использованием файла.
Несмотря на то, что 1С является самой популярной, удобной и надежной информационной системой, имеющей в своей линейке комплекс решений для автоматизации и обработки абсолютно всех бизнес-процессов на предприятиях любого масштаба и области деятельности, все равно у пользователей ежедневно возникает необходимость выгрузить данные из 1С в сторонние программы или файлы. В данной статье рассмотрим, что такое выгрузка из 1С и покажем, как сделать выгрузку из 1С и какие проблемы могут возникать при этом.
1С любой конфигурации штатно поддерживает выгрузку таких данных как:
Выгрузка данных из 1С 8.3 возможна во многих популярных форматах:
Любую печатную форму или отчет в 1С можно сохранить в нужном формате. Для этого понадобится открыть форму или отчет, затем выбрать в Главном меню Файл - Сохранить как.
После этого будет открыто окно сохранения файла, в котором указывается имя и тип файла:
Это связано с тем, что печатная форма или отчет не активизированы в данный момент. Чтобы печатная форма стала доступна для сохранения, требуется просто кликнуть мышкой в любое место на ней:
Обработка данных в самом популярном табличном формате требует соответствующей выгрузки. Для того чтобы сохранить нужные данные в формате Excel, необходимо в диалоге сохранения файла указать тип Лист Excel2007-...(*.xlsx). Реже необходимо сохранить данные в старом формате Лист Excel (*.xls):
Аналогично, выбирая нужный формат, можно сделать выгрузку из 1С в PDF, из 1С в WORD, из 1С в CSV, а также в другие форматы.
В данном разделе будет показано, как можно выгрузить любые данные, при условии, что у вас есть на это права.
В 1С разработан штатный механизм, который позволяет выгрузить любой список (например, список документов или элементы справочника). Для этого в командной панели любого списка, в группе «Еще» доступна команда «Вывести список»:
Информация будет выведена в специальный табличный документ. Этот документ выглядит так же, как любой другой отчет в 1С, и его можно выгрузить точно так же, используя команду Файл – Сохранить как:
Зачастую, возникшая задача по выгрузке какой-то список, сопровождается необходимостью добавления туда колонок, которые точно есть в документе (справочнике), но их по каким-то причинам не видно в текущем списке. Пример: в списке «Клиенты» добавить для выгрузки поле «Телефон», которое отображается только в дополнительной панели справа:
Чтобы телефон можно было выгрузить из 1С, его все же сначала необходимо добавить в список. Для этого надо вызвать команду «Еще - Изменить форму». Далее нам понадобиться в списке колонок найти нужную. Тут есть одна хитрость: разработчики типовых конфигураций почти всегда добавляют поле «Ссылка». Если встать на него, а затем нажать кнопку то мы увидим все возможные поля этого справочника. Находим поле «Телефон» и ставим у него галочку использования.
После этого базу данных клиентов с телефонами можно выгрузить в файл через штатную команду «Вывести список» и продать конкурентам.
Конфигурация: 1С:Бухгалтерия
Версия конфигурации: 3.0.44.177
Дата публикации: 20.01.2017
В программе 1С:Бухгалтерия появилась возможность штатной выгрузки и загрузки данных из табличных документов Excel, без применения сторонних обработок и изменения конфигурации. Загрузка и выгрузка на столько проста, что опытные пользователи очень быстро полюбят этот удобюный механизм, а новые пользователи быстро его освоят.
К примеру мы имеем вот такой табличный документ Excel для загрузки списка номенклатуры и цены(розничной и закупочной).
Заходи в .
В верхней части нажимаем Номенклатура и Цены - Загрузить . Именно в этом спрятана загрузка и выгрузка из табличных документов.
Загрузка поддерживает форматы xls(старый формат Excel 97-2003) и xlsx(новый формат), а так же mxl и ods форматы. Теперь выбираем наш файл с номенклатурой и ждем загрузки.
Загрузился табличный документ в том виде как мы его видели в Excel, теперь назначим колонки и удалим лишнее.
Нажимаем на Укажите реквизит и выбираем нужный пункт из списка.
Выделяем строку, в которой есть ненужные записи, а именно шапка таблицы и нажимаем Удалить строку .
Теперь удаляем столбец с закупочной ценой, обратите внимание, что обработка умеет за 1н раз заполнять только 1н вид цены!!! Потом вы можете проделать эту операцию снова и загрузить 2й вид цены, за 1ю загрузку Розничную за 2ю закупочную.
Заполняем не заполненные данные, Тип цены, Установить цены на. Кнопки Все, Найденные, Новые, Дубли существенно облегчат поиск и помогут сопоставить номенклатуру. Заполняем и нажимаем Загрузить после чего данные будут загружены в 1С:Бухгалтерия.
В списке номенклатуры появились новые позиции, заполненные и с назначенными ценами. Если требуется подгрузить другой вид цены, проделайте снова все пункты, но выбирайте столбец с другой ценой, 1С сама найдет уже созданные позиции и не будет пытаться их дублировать, а просто допишет новый вид цен.
Как видите, загрузка создала 2 документа установка цен номенклатуры, для Закупочной цены и для Розничной. Отличие этой обработки по Загрузке из Excel в 1С:Бухгалтерия 8.3, в том что это штатная обработка и она работает без сбоев и учитывая все особенности заполнения документа.
Очень полезной функцией в редакции 3.0.44.177 и выше является выгрузка в Excel из 1С:Бухгалтерия 8.3, эта обработка поможет вам сформировать прайс-лист компании или передать поставщикам или покупателям свой список номенклатуры сразу с ценами.
Все там же в справочнике Номенклатура - Номенклатура и Цены - Выгрузить .
В пункте Колонки , выбираем те колонки которые надо построить в документе Excel. Отбор служит для отбора номенклатуры по Группам, свойствам, названиям... итд.
Для выгрузки в excel мы будем добавлять новую колонку, а именно ставку НДС, вроде не очень надо, но мы практикуемся.
Инструкция
1С: предприятие позволяет выгрузить любой справочник, не прибегая к написанию сложных обработок загрузки/выгрузки, пользуясь только встроенными средствами. Для начала нам необходимо определиться, в каком формате мы хотим получить данные:
*.mxl – внутренний формат табличных данных 1С, подходит для загрузки в другую базу данных 1С;
*.xls – электронные таблицы Excel;
*.pdf – электронный документ Adobe Reader;
*.html – веб-страница для публикации в интернете;
*.txt – простой текстовый файл, пригодится для загрузки в любую базу данных.
Если справочник иерархический, то в форматы *.mxl и *.xls список выгрузится с сохранением иерархии и с возможностью свернуть/развернуть группы. Во все остальные форматы выгрузка произойдет простым списком, с перечислением элементов группы после ее наименования.
Откроем справочник, который нам необходимо выгрузить. В нашем случае это «Номенклатура». Операции -> Справочники -> Номенклатура. Можно выгрузить не весь справочник, а только определенную группу, для этого нужно зайти в эту группу. При больших объемах данных имеет смысл выгружать по группам в разные файлы, для ускорения работы.
На любой строке открывшегося списка щелкнем правой кнопкой мыши и выберем пункт «Вывести список». Появится окошко настроек.
В окошке настроек оставим флажки только для тех полей, которые нам нужны в конечном документе. В поле «Выводить в …» оставим пункт «Табличный документ» (можно выбрать и «Текстовый документ», но табличный более универсальный). Нажимаем кнопку «ОК».