1с предприятие word excel программа

Содержание

  1. Загрузка данных из книги Excel в программу 1С
  2. Перенос данных из Эксель в 1С
  3. Подготовка данных
  4. Подключение внешнего загрузчика
  5. Загрузка данных
  6. «Подводные камни» при работе с макетами типа ActiveDocument 1С 8.3 УФ. Клиент-Сервер. Режимы работы Тонкий, Веб клиенты

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

Уже давно самой популярной программой среди бухгалтеров, планировщиков, экономистов и управленцев стало приложение 1C. Оно имеет не только разнообразное количество конфигураций для различных видов деятельности, но и локализации под стандарты учета в нескольких странах мира. Все больше предприятий переходят на ведение учета именно в этой программе. Но процедура переноса данных вручную из других программ учета в 1C — довольно долгое и скучное занятие, отнимающее массу времени. Если на предприятии велся учет с помощью Excel, то процесс переноса можно существенно автоматизировать и ускорить.

Перенос данных из Эксель в 1С

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

Для автоматической загрузки подойдут практически все типы документов:

  • Список номенклатуры;
  • Список контрагентов;
  • Список прайсов;
  • Перечень заказов;
  • Информация о покупках или продажах и т.д.

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

Подготовка данных

Нам нужно будет подготовить данные в самой таблице Excel.

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

Открывается окно сохранения. В поле «Тип файла» по умолчанию будет указан формат xlsx. Меняем его на «Книга Excel 97-2003» и жмем на кнопку «Сохранить».

После этого документ будет сохранен в нужном формате.

Кроме этих универсальных действий по подготовке данных в книге Эксель, нужно будет ещё привести документ в соответствие с требованиями конкретного загрузчика, который мы будем использовать, но об этом мы поговорим чуть ниже.

Подключение внешнего загрузчика

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

Существует несколько внешних загрузчиков таблиц Эксель для 1С, которые созданы различными разработчиками. Рассматривать мы будем пример с использованием инструмента для обработки информации «Загрузка данных из табличного документа» для версии 1С 8.3.

  1. После того, как файл в формате epf скачан и сохранен на жестком диске компьютера, запускаем программу 1С. Если файл epf упакован в архив, то его предварительно нужно извлечь оттуда. На верхней горизонтальной панели приложения жмем на кнопку, запускающую меню. В версии 1С 8.3 она представлена в виде вписанного в оранжевую окружность треугольника, перевернутого углом вниз. В появившемся списке последовательно переходим по пунктам «Файл» и «Открыть».
  2. Запускается окно открытия файла. Переходим в директорию его расположения, выделяем тот объект и жмем на кнопку «Открыть».
  3. После этого загрузчик запустится в 1С.

Загрузка данных

Одной из основных баз данных, с которыми работает 1C, является список номенклатуры товаров и услуг. Поэтому для описания процедуры загрузки из Excel остановимся на примере переноса именно этого типа данных.

  1. Возвращаемся к окну обработки. Так как мы будем загружать номенклатуру товаров, то в параметре «Загрузка в» переключатель должен стоять в позиции «Справочник». Впрочем, он так установлен по умолчанию. Переключать его следует только тогда, когда вы собрались переносить другой тип данных: табличную часть или регистр сведений. Далее в поле «Вид справочника» кликаем по кнопке, на которой изображено многоточие. Открывается выпадающий список. В нем нам следует выбрать пункт «Номенклатура».
  2. После этого обработчик автоматически расставляет те поля, которые программа использует в этом виде справочника. Нужно сразу отметить, что совсем не обязательно заполнять все поля.
  3. Теперь опять открываем переносимый документ Excel. Если наименование его колонок отличается от наименования полей справочника 1С, которые содержат соответствующие, то нужно переименовать эти столбцы в Экселе так, чтобы названия полностью совпадали. Если в таблице имеются столбцы, для которых в справочнике нет аналогов, то их следует удалить. В нашем случае такими столбцами являются «Количество» и «Цена». Также следует добавить, что порядок расстановки столбцов в документе должен строго совпадать с тем, который представлен в обработке. Если для некоторых столбцов, которые отображены в загрузчике, у вас нет данных, то эти колонки можно оставлять пустыми, но нумерация тех столбцов, где имеются данные, должна совпадать. Для удобства и быстроты редактирования можно применять специальную возможность Эксель для быстрого перемещения колонок местами.

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

  • Возвращаемся в окно обработки 1С. Жмем на кнопку «Открыть», которая изображена в виде папки желтого цвета.
  • Запускается окно открытия файла. Переходим в директорию, где расположен документ Эксель, который нам нужен. Переключатель отображения файлов по умолчанию установлен для расширения mxl. Для того чтобы показать нужный нам файл, его требуется переставить в позицию «Лист Excel». После этого выделяем переносимый документ и жмем на кнопку «Открыть».
  • После этого содержимое открывается в обработчике. Чтобы проверить корректность заполнения данными, жмем на кнопку «Контроль заполнения».
  • Как видим, инструмент контроля заполнения сообщает нам, что ошибки не найдены.
  • Теперь перемещаемся во вкладку «Настройка». В «Поле поиска» ставим галочку в той строке, которая у всех наименований, заносимых в справочник номенклатуры, будет уникальная. Чаще всего для этого используют поля «Артикул» или «Наименование». Это нужно делать для того, чтобы при добавлении новых позиций в список, данные не задваивались.
  • После того, как все данные внесены и настройки выполнены, можно переходить к непосредственной загрузке информации в справочник. Для этого кликаем по надписи «Загрузить данные».
  • Выполняется процесс загрузки. После её завершения можно перейти в справочник номенклатуры и убедиться, что все нужные данные туда добавлены.
  • Мы проследили процедуру добавления данных в справочник номенклатуры в программе 1C 8.3. Для других справочников и документов загрузка будет проводиться по тому же принципу, но с некоторыми нюансами, с которыми пользователь сможет разобраться самостоятельно. Также нужно заметить, что у различных сторонних загрузчиков процедура может отличаться, но общий подход остается у всех одинаковый: сначала обработчик загружает из файла информацию в окно, где производится её редактирование, а уже потом она добавляется непосредственно в базу данных 1С.

    Источник

    «Подводные камни» при работе с макетами типа ActiveDocument 1С 8.3 УФ. Клиент-Сервер. Режимы работы Тонкий, Веб клиенты

    Итак, в чем суть моей статьи?

    1. Есть сервер (x64), с установленным Office 2016 (x64), есть 1С 8.3.8 также x64 (имеется в виду сервер 1С). Пользователи подключаются как через тонкого клиента, так и через веб клиент.

    2. Есть куча типовых договоров и накладных счет-фактур, оформленных (подготовленных) отделом продаж. Там шрифт, абзац и т.д., естественно, все оформлено в Word,Excel 2016 (x64), естественно, нет желания все это рисовать в 1С, а есть желание засунуть в макеты формата ActiveDocument

    Решение банальное, вроде бы 🙂, не буду описывать весь механизм, как это делается, как заполняются данные из 1С в макет ActiveDocument — думаю, вы это знаете прекрасно и без меня. Но в ходе работы выяснилось, что не все так гладко в царстве COM объектов, а именно:

    1. Как сохранить файл Word,Excel и передать этот файл клиенту (клиент тонкий и веб)?

    2. Какой вариант лучше выбрать: ActiveDocument или ДвоичныеДанные? Хотя для меня это звучит примерно как, что выбрать Водку С Пивом или Пиво С Водкой 🙂. Один фиг, надо забить документы данными из 1С и передать их Клиенту.

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

    1. Камень «первый«. Не работает метод SaveAs (как для MSWord, так и для MSExcel). При попытке записать ДвоичныеДанные 1С просто вылетает. Смотрим фрагмент листинга:

    Ссылочка //infostart.ru/public/407448/ (выдержка из статьи «Как передать документ Word (ActiveDocument или ДвоичныеДанные) с сервера на клиент»

    Опытном путём выявлено, что 1С-ка вырубается с ошибкой, если удалить файл, преобразованный в двоичные данные, и попробовать эти двоичные передать на клиент.

    На сервере 1С:Предприятия произошла неисправимая ошибка. Приложение будет закрыто

    Я пытался побороть эту ошибку, помещая во временное хранилище двоичные данные, переводя двоичные данные в Неопределено, но победить не удалось. Стоит заметить, что временный файл на сервере 1С-ка со временем сама удаляет корректно.

    Возможная ошибка на сервере при вызове метода SaveAs:

    Ошибка при вызове метода контекста (SaveAs)
    Документ.SaveAs(ИмяВрем);
    по причине:
    Произошла исключительная ситуация (Microsoft Word): Ошибка команды

    Мне поначалу эту ошибку не удалось победить, поэтому я стал использовать ДвоичныеДанные. Позже нашёл решение проблемы: необходимо по пути C:WindowsSysWOW64configsystemprofile и C:WindowsSystem32configsystemprofile создать папки Desktop. Туда никаких файлов никто не пишет, похоже, программе важен факт наличия этой папки. Решение нашёл по ссылке: http://devtrainingforum.v8.1c.ru/forum/thread.jsp?id=581998&threadtype=0

    Создание папок
    C:WindowsSysWOW64configsystemprofileDesktop
    C:WindowsSystem32configsystemprofileDesktop
    проблему решило. Тема закрыта.

    В чем причина? Причина в том, что код

    Всегда вызывает экземпляр объекта COM (x32) независимо от того какой разрядности Office установлен. Вы никогда не задумывались, почему в макет ActoveDocument нельзя вставить файлы с расширением docx,xlsx

    это можно проверить и через ДиспетчерЗадач, но факт есть факт — макет ActiveDocument вызывает неявно экземпляр COM (x32) и поэтому все дальнейшие манипуляции нужно делать учитывая это особенность.

    1. Либо сервер и все ПО должно быть x32. Тогда ничего делать (в смысле переписывать код) не надо

    2. Либо переписать код, таким образом

    Думаю, тут все понятно, сначала мы создали экземпляр COM нужной разрядности, создали пустой файл и сохранили во временную папку, далее работает с COM x32, заполняем данными и напоследок копируем содержимое всего документа и сохраняем в ранее подготовленный файл.

    Все то же самое, но только для Excel

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

    Камень «второй«. фрагмент кода

    есть не очень хорошо, потому как идет запись в папку: «c:Users че там. «, вообще эта папка всегда в черном списке всех фаерволов, антивирусов и прочее, прочее, хотя бы открыть центр управления безопасностью Word или Excel. Глянем и мы туда

    придется возится с этим, иначе есть вероятность появления «странных» ошибок. Поэтому я предлагаю следующее:

    1. Открываем Конфигуратор и добавляем новый РегистрСведений

    здесь мы будем хранить наши готовые Word, Excel файлы уже заполненные, конечно:

    Объект — Тип Документ.Ссылка

    НазваниеМакета — Идентификатор макета

    ДокументOffice — ХранилищеЗначений, здесь мы и держим наш готовый файл

    2. Дописываем выше написанный код следующим образом:

    Что мы делаем, мы записываем готовый файл в регистр сведений и затем удаляем сам временный файл, решаем проблему «Центра безопасности Word,Excel». Осталось только одно показать этот готовый файл Клиенту (клиент тонкий и веб)

    3. Камень «третий» — передача файла клиенту, тут просто выложу весь код, что-то взял из БСП, что-то из Демонстрационная конфигурация «Управляемое приложение», что-то из Инета, но в общем вот код (целиком)

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

    Чтобы не было проблем при работе с браузером

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

    3. И последнее, подключаем Расширение для работы с Файлами (помним что в режиме Тонкий клиент, это расширение включено всегда). И через код:

    передаем файл Клиенту используя механизм НавигационнаяСсылка, получаем следующие сообщения в браузере (Тонкий само собой работает):

    ну вот, кажется, все. Надеюсь, это поможет кому-нибудь.

    По поводу Word, Excel файлы вставлять в виде ДвоичныхДанные? проблема-то в чем?

    1. Мы либо должны вытащить из макета эти ДвоичныеДанные и заполнить данными из 1С и ВНИМАНИЕ снова записать в виде ДвоичныхДанных (Водка С Пивом или Пиво С Водкой)

    2. Либо мы должно получить макет ДвоичныеДанные на стороне Клиента и там заполнить его, НО COM объект поддерживается только браузером IE и то с танцами с настройками ActiveX, другие браузеры давно отказались от использования ActiveX

    Источник

    Хотите научиться обмениваться данными через файлы?

    Пройдите данный онлайн курс!

    Подробное содержание материалов

    Модуль 1

    Работа с текстовым документом из 1С: обычные и управляемые формы.

    1. Запись и чтение через объект ТекстовыйДокумент.
    2. Запись и чтение файла через элемент формы ПолеТекстовогоДокумента.
    3. Последовательное считывание и последовательная запись файла(не помещаем в оперативную память сразу записываем в файл).

    Модуль 2

    Работа с DBF файлами: обычные и управляемые формы.

    1. Объект XBase.
    2. Выгрузка данных в dbf файл.
    3. Пример выгрузки остатков на складе в файл dbf.
    4. Работа с индексным файлом, создание индексного файла cdx.
    5. Пример выгрузки документов в файл dbf.
    6. Добавление записи в существующий файл dbf.
    7. Удаление записи из dbf файла.
    ​8. Поиск данных в файле dbf. Использование индексного файла.

    Модуль 3

    Работа с Excel файлами: обычные и управляемые формы.

    1. Выгрузка в excel файл без программирования.
    2. Выгрузка и загрузка через табличный документ.
    3. Выгрузка и загрузка через OLE (на компьютере должна быть установлена программа Microsoft Excel).
    4. Считывание каждой ячейки из файла.
    5. Ускорение считывания, считывание области данных из файла.
    6. Выгрузка картинок из базы 1С в excel файл.
    7. Выгрузка и загрузка через ADO (установка программы Microsoft Excel не требуется)

    Модуль 4

    Работа с WORD документом: обычные и управляемые формы.

    1. Выгрузка данных в word документ.
    2. Создание внешнего шаблона word, автоматическая подстановка данных из 1с в шаблон word.
    3. Создание шаблона word в макете 1С(ActiveDocument), автоматическая подстановка данных из 1с в шаблон word.

    Модуль 5

    Работа с ZIP архивом средствами встроенного языка 1С

    1. Создание zip архива.
    2. Добавить файл в zip архив.
    3. Распаковать zip архив.

    Модуль 6

    ДиалогВыбораФайла

    1. Режим диалога работы файла.
    2. Фильтр. Множественный выбор.
    3. Взаимодействие с «ДиалогВыбораФайла» в режиме управляемого приложения. Отказ от модальных окон в режиме веб. клиента и в режиме управляемого приложения. Преобразование нерекомендуемых синхронных вызовов.
    4. Чтение атрибутов файла(размер, дата изменения и т.д), объект Файл.

    Модуль 7

    Прямое подключение к базе 1С. Работа с OLE и COM

    1. Сравнение OLE и COM, отличие технологий.
    2. Регистрация dll для работы с com.
    3. Подключение из базы 1С Источника в базу 1С Приемника.
    4. Создание элементов справочника в приемнике.
    5. Открытие формы в базе приемника при подключении по OLE.
    6. Какие модули доступны при подключении по OLEи COM.
    7. Обращение из базы Источника к общим модулям базы Приемника.
    8. Лицензирование при подключении по OLE

    Модуль 8

    Транспортировка файлов.

    1. Отправка и получение файлов через email.
    объект «Почта», объект «Интернет почта».
    2. Фильтрация email писем.
    3. Отправка и получение файлов через FTP.
    4. FTP: поиск файлов, создание нового каталога, удаление файла/каталога, переименовывание файла/каталога.

    Видео 1. Варианты работы с текстовым документом

    Видео 2.Выгрузка номенклатуры из 1С в текстовый документ

    Видео 3. Выгрузка из 1С в файл DBF

    Видео 4. Удаление записи из файла DBF

    Видео 5. Загрузка из Excel области данных

    Видео 6. Обращение из базы Источника к общим модулям базы приемника по OLE.

    Видео 7. Автоматическое создание документа WORD по шаблону, замена полей из 1С 

    Видео 9. Выгрузка документов из 1С в dbf

    Кто автор курса?

    Сайфутдинов Вадим Альбертович

    Чему вы научитесь в результате прохождения курса?

    Что входит в состав курса?

    Сколько стоит обучение?

    И это не удивительно, ведь офисные программы Microsoft широко используются в работе с документацией, поэтому, обладая приличной базой клиентов и партнеров на момент внедрения 1С: Бухгалтерии 8, очень удобно было бы автоматизировать и заполнение справочник необходимыми данными по ним с помощью интеграции файла приложения Microsoft Office и 1С. «Желание клиента — закон», и такое расширения для функционала программ были разработаны.

    Сегодня все дополнения собраны в один совместный программный продукт «Расширение Microsoft Office® для 1С:Предприятие» — набор плагинов для Microsoft Word 2010, Microsoft Excel® 2010 и Microsoft Outlook® 2010 для программ 1С: Бухгалтерия 8, 1С: Управление торговлей 8, 1С: Зарплата и управление персоналом 8 и 1С: Управление небольшой фирмой 8.

    Плагин для Microsoft Word 2010

    Плагин для приложения Microsoft Word 2010 позволяет автоматизировать следующие функции:

    • поиск и добавление в документ Word данных из справочников программ на платформе 1С: Предприятие 8,
    • создание шаблонов документов, заполнение которых требует от пользователя несколько кликов.

    Данное расширение позволяет в значительной степени сэкономить время работы с другими договорами м документами программ на базе 1С: Предприятие 8.

    Интеграция документа Microsoft Word и 1С: Бухгалтерии 8

    Плагин для документов Microsoft Excel

    Это расширение позволяет пользователям выше перечисленных программ 1С осуществлять в автоматическом режиме следующие действия:

    • выгрузку в таблицу данные из справочников 1С: Предприятие 8 (причем в одну таблицу можно вывести данные не только одного справочника, но и всех подчиненных ему справочников);
    • выгрузку в таблицу данные из документов программ 1С: Предприятие 8.

    Плагин для Microsoft Outlook

    Расширение для почтовой программы Microsoft Outlook позволяет пользователю автоматически совершать следующие действия:

    • оперативную выгрузку контактных данных из справочников 1С: Предприятие 8 в специально отведенную папку в программе Microsoft Outlook;
    • автоматическое обновление данных в выше упомянутой папке.

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

    Рекомендуем также еще статьи по программам 1С:

    • Аппаратные и программные способы ускорения работы 1С
    • Настройка работы с внешними отчетами 1С:Предприятия 8
    • Как используется возможности SQL-сервера в 1С:Предприятии 8?

    Вы можете получать новые материалы сайта по RSS-каналу или можете подписаться на новости 1С от Информ Актив и получать их еженедельно на Ваш e-mail .

    Сергей Арутюнов

    Преподаватель-методист фирмы «1С». Опыт внедрений и разработок более 25 лет. Опыт преподавания курсов по «1С:Предприятие» — более 20 лет.

    Давайте знакомиться:

    После получения педагогического образования по математике и программированию, преподавал в школе, техникуме и вузе. До работы в сообществе «1С» программировал на Ассемблере и С++. По мелочам, решал различные задачи на базе продуктов компании «Microsoft». Занимался системами реального времени в проектах оборонного сектора. Переход на систему «1С» был сложным, но осознанным.

    Увидел перспективу продуктов фирмы «1С» перед другими системами, и не прогадал. В 1993 году стал партнером фирмы «1С». Получил свой первый сертификат по программе 1С:Бухгалтерия 5.0. Начался перевод клиентов с «самописных» бухгалтерских программ на новую программу. Дальше, по мере появления новых систем, 6.0, 7.0, 7.5, 7.7 , 8.х изучал, сертифицировался и активно внедрял клиентам. Проводил корпоративное обучение по всему СНГ. Обучал пользователей и разработчиков. При появлении центров сертифицированного обучения, стал сертифицированным преподавателем по основным типовым конфигурациям и платформе 1С:Предприятие 8.

    С 2007 года работает преподавателем-методистом в учебном центре №1 фирмы «1С». Специализируется на разработке учебных материалов по работе с платформой 1С:Предприятие 8. За время работы написал более 15 авторских курсов. Полностью переработал курсы по основным механизмам платформы и по интеллектуальному анализу данных. При переходе с платформы 8.1 на 8.2 читал курс по технологии правильного перевода конфигураций на новую платформу, с учетом клиент-серверной архитектуры. По пожеланию слушателей, создал линейку курсов по программированию в системе 1С:Предприятие 8. Основы программирования, клиент-серверное программирование, разработка интерфейсов.

    Разрабатывает и читает мастер классы, конкурсы и олимпиады по разработке прикладных решений и использованию платформы для педагогического сообщества на ежегодных специализированных конференциях фирмы «1С» и на партнерских конференциях. При появлении мобильных технологий, написал курс по разработке мобильных приложений. В рамках потребности интеграции систем 1С:Предприятие 8 в существующие информационные системы компаний, написал курс по разработке распределенных информационных систем, на котором решаются интеграционные задачи и вопросы безопасности. По мере продвижения систем в крупный бизнес, появились курсы по администрированию и отдельный экзамен профессионал по администрированию системы 1С:Предприятие 8. Является автором и разработчиком системы «1С:Гуру» для дистанционной сдачи экзаменов 1С:Специалист.

    Список сертификатов можно посмотреть тут

    Курсы которые ведет преподаватель:

    Отзывы покупателей

    У данного курса на данный момент нет отзывов

    Понравился товар? Оставьте отзыв:)

    Skip to content

    Открыть файл из 1С программно (word, excel, pdf и т.д.)

    Открыть файл из 1С программно (word, excel, pdf и т. д.)

    С помощью данного способа можно открывать любые файлы на компьютере из 1С. Открываться файлы будут с помощью программ/приложений выбранных по умолчанию, для запуска данного типа файла. Например .xls файлы будут запускаться с помощью Excel, .doc — с помощью Word, .pptx — с помощью Power point. Word, excel, power point также должны быть установлены на компьютере.

    Пример программного кода:

    &НаКлиенте
    Процедура ОткрытьФайл(Команда)
    	ЗапуститьПриложение("G:Руслан и Людмила.xlsx");
    КонецПроцедуры
    

    Файл из данного примера запустится в excel.

    Также читайте:

    • Программное чтение, редактирование word;
    • Программное чтение, редактирование excel;

    Связанные статьи

    На чтение 9 мин Просмотров 26.4к. Опубликовано 09.11.2017

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

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

    Содержание

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

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

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

    • Записать(<ИмяФайла>, <ТипФайлаТаблицы>) для выгрузки данных в файл;
    • Прочитать(<ИмяФайла>, <СпособЧтенияЗначений>) для загрузки данных из файла.

    Внимание!

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


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

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

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

    • XLS95 — формат Excel 95;
    • XLS97 — формат Excel 97;
    • XLSX — формат Excel 2007.

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

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

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

    • Значение;
    • Текст.

    Обмен через OLE

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

    • На компьютере конечного пользователя, если обмен происходит на стороне клиента;
    • На компьютере сервера 1С:Предприятие, если обмен происходит на стороне сервера.

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

    // Создание 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:

    Действие Код Комментарий
    Работа с приложением
    Установка видимости окна приложения Эксель.Visible = Ложь;
    Установка режима вывода предупреждений (выводить/не выводить) Эксель.DisplayAlerts = Ложь;
    Закрытие приложения Эксель.Quit();
    Работа с книгой
    Создание новой книги Книга = Эксель.WorkBooks.Add();
    Открытие существующей книги Книга = Эксель.WorkBooks.Open(ИмяФайла);
    Сохранение книги Книга.SaveAs(ИмяФайла);
    Закрытие книги Книга.Close(0);
    Работа с листом
    Установка текущего листа Лист = Книга.WorkSheets(НомерЛиста);
    Установка имени Лист.Name = Имя;
    Установка защиты Лист.Protect();
    Снятие защиты Лист.UnProtect();
    Установка ориентации страницы Лист.PageSetup.Orientation = 2; 1 — книжная, 2 — альбомная
    Установка левой границы Лист.PageSetup.LeftMargin = Эксель.CentimetersToPoints(Сантиметры);
    Установка верхней границы Лист.PageSetup.TopMargin = Эксель.CentimetersToPoints(Сантиметры);
    Установка правой границы Лист.PageSetup.RightMargin = Эксель.CentimetersToPoints(Сантиметры);
    Установка нижней границы Лист.PageSetup.BottomMargin = Эксель.CentimetersToPoints(Сантиметры);
    Работа со строками, колонками, ячейками
    Установка ширины колонки Лист.Columns(НомерКолонки).ColumnWidth = Ширина;
    Удаление строки Лист.Rows(НомерСтроки).Delete();
    Удаление колонки Лист.Columns(НомерКолонки).Delete();
    Удаление ячейки Лист.Cells(НомерСтроки, НомерКолонки).Delete();
    Установка значения Лист.Cells(НомерСтроки, НомерКолонки).Value = Значение;
    Объединение ячеек Лист.Range(Лист.Cells(НомерСтроки, НомерКолонки), Лист.Cells(НомерСтроки1, НомерКолонки1)).Merge();
    Установка шрифта Лист.Cells(НомерСтроки, НомерКолонки).Font.Name = ИмяШрифта;
    Установка размера шрифта Лист.Cells(НомерСтроки, НомерКолонки).Font.Size = РазмерШрифта;
    Установка жирного шрифта Лист.Cells(НомерСтроки, НомерКолонки).Font.Bold = 1; 1 — жирный шрифт, 0 — нормальный
    Установка курсива Лист.Cells(НомерСтроки, НомерКолонки).Font.Italic = 1; 1 — курсив, 0 — нормальный
    Установка подчеркнутого шрифта Лист.Cells(НомерСтроки, НомерКолонки).Font.Underline = 2; 2 — подчеркнутый, 1 — нет

    Для того, чтобы узнать какое свойство нужно менять или какой метод вызвать можно воспользоваться макросами Excel. Если записать макрос с требуемыми действиями, то после можно посмотреть программный код на VBA записанного макроса.

    Использование COMSafeArray

    При выгрузке больших объемов данных из 1С в Excel для ускорения можно использовать объект COMSafeArray. Согласно определению из синтакс-помощника, COMSafeArray — объектная оболочка над многомерным массивом SafeArray из COM. Позволяет создавать и использовать SafeArray для обмена данными между COM-объектами. Проще говоря, это массив значений, который можно использовать для обмена между приложениями по технологии OLE.

    // Создание COMSafeArray
    МассивКом = Новый COMSafeArray(«VT_Variant», ВсегоКолонок, ВсегоСтрок);
    // Заполнение COMSafeArray
    Для Стр = 0 По ВсегоСтрок1 Цикл
    Для Кол = 0 По ВсегоКолонок1 Цикл
    МассивКом.SetValue(Кол, Стр, Значение);
    КонецЦикла;
    КонецЦикла;
    // Присвоение области листа Excel значений из COMSafeArray
    Лист.Range(Лист.Cells(1, 1), Лист.Cells(ВсегоСтрок, ВсегоКолонок)).Value = МассивКом;

    Обмен через ADO

    Файл Excel при обмене через ADO представляет собой базу данных, к которой можно обращаться при помощи SQL-запросов. Установка MS Excel не требуется, но обязательно наличие драйвера ODBC, при помощи которого будет осуществляться доступ. Используемый драйвер ODBC определяется при указании строки соединения к файлу. Обычно требуемый драйвер уже установлен на компьютере.

    Обмен через ADO заметно быстрее обмена через OLE, но при выгрузке нет возможности использовать функционал Excel для оформления ячеек, разметки страниц, задания формул и т.д.

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

    // Создание COM-объекта для соединения
    Соединение = Новый COMОбъект(«ADODB.Connection»);

    // Установка строки соединения
    Соединение.ConnectionString = «
    |Provider=Microsoft.ACE.OLEDB.12.0;
    |Data Source=»+ИмяФайла+«;
    |Extended Properties=»»Excel 12.0 XML;HDR=YES»»;»;
    Соединение.Open(); // Открытие соединения

    // Создание COM-объекта для команды
    Команда = Новый COMОбъект(«ADODB.Command»);
    Команда.ActiveConnection = Соединение;

    // Присвоение текста команды для создания таблицы
    Команда.CommandText = «CREATE TABLE [Лист1] (Колонка1 char(255), Колонка2 date, Колонка3 int, Колонка4 float)»;
    Команда.Execute(); // Выполнение команды

    // Присвоение текста команды для добавления строки таблицы
    Команда.CommandText = «INSERT INTO [Лист1] (Колонка1, Колонка2, Колонка3, Колонка4) values (‘абвгдеё’, ‘8/11/2017’, ‘12345’, ‘12345,6789’)»;
    Команда.Execute(); // Выполнение команды

    // Удаление команды и закрытие соединения
    Команда = Неопределено;
    Соединение.Close();
    Соединение = Неопределено;

    Для создания нового листа и формирования его структуры можно воспользоваться объектами ADOX.Catalog и ADOX.Table. В этом случае код примет вид:

    // Создание COM-объекта для работы с книгой
    Книга = Новый COMОбъект(«ADOX.Catalog»);
    Книга.ActiveConnection = Соединение;

    // Создание COM-объекта для работы со структурой данных на листе
    Таблица = Новый COMОбъект(«ADOX.Table»);
    Таблица.Name = «Лист1»;
    Таблица.Columns.Append(«Колонка1», 202);
    Таблица.Columns.Append(«Колонка2», 7);
    Таблица.Columns.Append(«Колонка3», 5);
    Таблица.Columns.Append(«Колонка4», 5);

    // Создание в книге листа с описанной структурой
    Книга.Tables.Append(Таблица);
    Таблица = Неопределено;
    Книга = Неопределено;

    В приведенном примере в методе

    Таблица.Columns.Append(«Колонка1», 202);

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

    • 5 — adDouble;
    • 6 — adCurrency;
    • 7 — adDate;
    • 11 — adBoolean;
    • 202 — adVarWChar;
    • 203 — adLongVarWChar.

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

    // Создание COM-объекта для соединения
    Соединение = Новый COMОбъект(«ADODB.Connection»);

    // Установка строки соединения
    Соединение.ConnectionString = «
    |Provider=Microsoft.ACE.OLEDB.12.0;
    |Data Source=»+ИмяФайла+«;
    |Extended Properties=»»Excel 12.0 XML;HDR=YES»»;»;
    Соединение.Open(); // Открытие соединения

    // Создание COM-объекта для получения выборки
    Выборка = Новый COMОбъект(«ADODB.Recordset»);
    ТекстЗапроса = «SELECT * FROM [Лист1$]»;

    // Выполнение запроса
    Выборка.Open(ТекстЗапроса, Соединение);

    // Обход результата выборки
    Пока НЕ Выборка.EOF() Цикл
    ЗначениеКолонки1 = Выборка.Fields.Item(«Колонка1»).Value; // Обращение по имени колонки
    ЗначениеКолонки2 = Выборка.Fields.Item(0).Value; // Обращение по индексу колонки
    Выборка.MoveNext();
    КонецЦикла;

    Выборка.Close();
    Выборка = Неопределено;
    Соединение.Close();
    Соединение = Неопределено;

    В строке соединения параметр HDR определяет как будет восприниматься первая строка на листе. Возможны варианты:

    • YES — первая строка воспринимается как названия колонок. К значениям можно обращаться по имени и по индексу колонки.
    • NO — первая строка воспринимается как данные. К значениям можно обращаться только по индексу колонки.

    В приведенных примерах рассмотрено лишь несколько объектов ADO. Объектная модель ADO состоит из следующих объектов:

    • Connection;
    • Command;
    • Recordset;
    • Record;
    • Fields;
    • Stream;
    • Errors;
    • Parameters;
    • Properties.

    Выгрузка без программирования

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

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

    Сохранение табличного документа 1С

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

    Для сохранения данных динамических списков (например, списка номенклатуры) необходимо:

    1. Вывести данные в табличный документ при помощи команды Еще ⇒ Вывести список…;
    2. Сохранить табличный документ в требуемый формат.

    Сохранение динамического списка

    Содержание

    • Перенос данных из Эксель в 1С
      • Подготовка данных
      • Подключение внешнего загрузчика
      • Загрузка данных
    • Вопросы и ответы

    Загрузка из Microsoft Excel в 1С

    Уже давно самой популярной программой среди бухгалтеров, планировщиков, экономистов и управленцев стало приложение 1C. Оно имеет не только разнообразное количество конфигураций для различных видов деятельности, но и локализации под стандарты учета в нескольких странах мира. Все больше предприятий переходят на ведение учета именно в этой программе. Но процедура переноса данных вручную из других программ учета в 1C — довольно долгое и скучное занятие, отнимающее массу времени. Если на предприятии велся учет с помощью Excel, то процесс переноса можно существенно автоматизировать и ускорить.

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

    Для автоматической загрузки подойдут практически все типы документов:

    • Список номенклатуры;
    • Список контрагентов;
    • Список прайсов;
    • Перечень заказов;
    • Информация о покупках или продажах и т.д.

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

    Подготовка данных

    Нам нужно будет подготовить данные в самой таблице Excel.

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

    3. Не допускается наличия объединенных ячеек даже в заголовках. Это может привести к некорректным результатам при переносе данных. Поэтому, если объединенные ячейки имеются, их нужно разделить.
    4. Объединенная ячейка в Microsoft Excel

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

    7. Обязательно следует привести наименование всех величин к единому формату. Не допускается наличие обозначения, например, килограмм, отображаемого разными записями: «кг», «килограмм», «кг.». Программа будет их понимать как разные величины, поэтому нужно выбрать один вариант записи, а остальные исправить под этот шаблон.
    8. Неправильное оформелние единиц измерения в Microsoft Excel

    9. Обязательно наличие уникальных идентификаторов. В их роли может выступать содержимое любого столбца, которое не повторяется в других строках: индивидуальный налоговый номер, артикул и т.д. Если в существующей таблице нет столбца с подобным значением, то можно добавить дополнительную колонку и произвести там простую нумерацию. Это нужно для того, чтобы программа смогла идентифицировать данные в каждой строке отдельно, а не «сливала» их вместе.
    10. Уникальный идентификатор в Microsoft Excel

    11. Большинство обработчиков файлов Эксель не работает с форматом xlsx, а только с форматом xls. Поэтому, если наш документ имеет расширение xlsx, то нужно его конвертировать. Для этого переходим во вкладку «Файл» и жмем на кнопку «Сохранить как».
      Переход к сохранению файла в Microsoft Excel

      Открывается окно сохранения. В поле «Тип файла» по умолчанию будет указан формат xlsx. Меняем его на «Книга Excel 97-2003» и жмем на кнопку «Сохранить».

      Сохранение файла в Microsoft Excel

      После этого документ будет сохранен в нужном формате.

    Кроме этих универсальных действий по подготовке данных в книге Эксель, нужно будет ещё привести документ в соответствие с требованиями конкретного загрузчика, который мы будем использовать, но об этом мы поговорим чуть ниже.

    Lumpics.ru

    Подключение внешнего загрузчика

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

    Существует несколько внешних загрузчиков таблиц Эксель для 1С, которые созданы различными разработчиками. Рассматривать мы будем пример с использованием инструмента для обработки информации «Загрузка данных из табличного документа» для версии 1С 8.3.

    1. После того, как файл в формате epf скачан и сохранен на жестком диске компьютера, запускаем программу 1С. Если файл epf упакован в архив, то его предварительно нужно извлечь оттуда. На верхней горизонтальной панели приложения жмем на кнопку, запускающую меню. В версии 1С 8.3 она представлена в виде вписанного в оранжевую окружность треугольника, перевернутого углом вниз. В появившемся списке последовательно переходим по пунктам «Файл» и «Открыть».
    2. Открытие файла обработки в 1С

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

    5. После этого загрузчик запустится в 1С.

    Загрузчик запустился в Microsoft Excel

    Скачать обработку «Загрузка данных из табличного документа»

    Загрузка данных

    Одной из основных баз данных, с которыми работает 1C, является список номенклатуры товаров и услуг. Поэтому для описания процедуры загрузки из Excel остановимся на примере переноса именно этого типа данных.

    1. Возвращаемся к окну обработки. Так как мы будем загружать номенклатуру товаров, то в параметре «Загрузка в» переключатель должен стоять в позиции «Справочник». Впрочем, он так установлен по умолчанию. Переключать его следует только тогда, когда вы собрались переносить другой тип данных: табличную часть или регистр сведений. Далее в поле «Вид справочника» кликаем по кнопке, на которой изображено многоточие. Открывается выпадающий список. В нем нам следует выбрать пункт «Номенклатура».
    2. Установка типа данных в 1С

    3. После этого обработчик автоматически расставляет те поля, которые программа использует в этом виде справочника. Нужно сразу отметить, что совсем не обязательно заполнять все поля.
    4. Поля для справочника в 1С

    5. Теперь опять открываем переносимый документ Excel. Если наименование его колонок отличается от наименования полей справочника 1С, которые содержат соответствующие, то нужно переименовать эти столбцы в Экселе так, чтобы названия полностью совпадали. Если в таблице имеются столбцы, для которых в справочнике нет аналогов, то их следует удалить. В нашем случае такими столбцами являются «Количество» и «Цена». Также следует добавить, что порядок расстановки столбцов в документе должен строго совпадать с тем, который представлен в обработке. Если для некоторых столбцов, которые отображены в загрузчике, у вас нет данных, то эти колонки можно оставлять пустыми, но нумерация тех столбцов, где имеются данные, должна совпадать. Для удобства и быстроты редактирования можно применять специальную возможность Эксель для быстрого перемещения колонок местами.

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

    6. Переименование шапки в Microsoft Excel

    7. Возвращаемся в окно обработки 1С. Жмем на кнопку «Открыть», которая изображена в виде папки желтого цвета.
    8. Переход к открытию файла в 1С

    9. Запускается окно открытия файла. Переходим в директорию, где расположен документ Эксель, который нам нужен. Переключатель отображения файлов по умолчанию установлен для расширения mxl. Для того чтобы показать нужный нам файл, его требуется переставить в позицию «Лист Excel». После этого выделяем переносимый документ и жмем на кнопку «Открыть».
    10. Открытие документа в 1С

    11. После этого содержимое открывается в обработчике. Чтобы проверить корректность заполнения данными, жмем на кнопку «Контроль заполнения».
    12. Контроль заполнения в 1С

    13. Как видим, инструмент контроля заполнения сообщает нам, что ошибки не найдены.
    14. Ошибок при переносе не выявлено в 1С

    15. Теперь перемещаемся во вкладку «Настройка». В «Поле поиска» ставим галочку в той строке, которая у всех наименований, заносимых в справочник номенклатуры, будет уникальная. Чаще всего для этого используют поля «Артикул» или «Наименование». Это нужно делать для того, чтобы при добавлении новых позиций в список, данные не задваивались.
    16. Установка уникального поля в 1С

    17. После того, как все данные внесены и настройки выполнены, можно переходить к непосредственной загрузке информации в справочник. Для этого кликаем по надписи «Загрузить данные».
    18. Переход к загрузки данных в справочник в 1С

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

    Наименования добавлены в справочник в 1С

    Урок: Как поменять столбцы местами в Excel

    Мы проследили процедуру добавления данных в справочник номенклатуры в программе 1C 8.3. Для других справочников и документов загрузка будет проводиться по тому же принципу, но с некоторыми нюансами, с которыми пользователь сможет разобраться самостоятельно. Также нужно заметить, что у различных сторонних загрузчиков процедура может отличаться, но общий подход остается у всех одинаковый: сначала обработчик загружает из файла информацию в окно, где производится её редактирование, а уже потом она добавляется непосредственно в базу данных 1С.

    Еще статьи по данной теме:

    Помогла ли Вам статья?

    Содержание:

    1.      Для чего нужна работа в 1С 8.3 с Word?

    2.      Как работать программно с документами MS WORD (расширениями .doc и .docx)?

    3.      Заполнение в 1С 8 таблицы Word  

    1.      Для чего нужна работа в 1С 8.3 с Word?

    В этой статье обсудим, как в 1С можно работать с форматом текста Word: создание, редактирование, копирование документов MS Word. Самый распространенный вариант использования программного заполнения документов MS Word – это заполнение шаблонов в ворде. То есть после создания шаблона word, пользователь помечает параметры квадратными скобками [] (это наиболее частый вариант экранирования параметров) или знаками больше меньше <>, после чего при нажатии кнопки «Печать Word» или «Сохранить Word» открывается заполненный документ MS Word. Большинству шаблонов, конечно, подойдут и табличные документы, но лично мною было создано множество шаблонов, которые требовали форматирования текстового документа именно в MS Word (чаще из-за удобства редактирования шаблона MS Word для пользователя). Это были договора, сертификаты, письма и различные заявления. Все они сохранялись в формат текста Word и в дальнейшем отправлялись по почте или уходили на печать.  

    2.      Как работать программно с документами MS WORD (расширениями .doc и .docx)?

    В дополнение к вступлению скажу, что хранение самих шаблонов MS Word мы в данной статье рассматривать не будем. Лично я использовал и справочники и регистры сведений (хранение в реквизите с типом ХранилищеЗначения), макеты с типом двоичные данные, аналог хранения файлов в базе данных. И были случаи использования указанного пути к каталогу с шаблонами, наподобие хранения файлов в томах на диске. Выбор за вами. В статье мы рассмотрим конкретно программный принцип работы с MS Word.

    Рис. 1 Пример оформления документа word, который будет использован как шаблон

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


    Рис. 2 Сохранение временного файла Word

    Создаем Com-объект и сам документ Word, передавая в метод Add путь к ранее сохраненному шаблону.

    Рис. 3 Программное создание COM-объекта и документа Word

    Для заполнения параметров я использую структуру (или соответствие), ключ и значение. Имя ключа – это параметр замены, а значение – то, на которое меняем экранированный параметр.
    В итоге параметры заполнения (структуру) мы размещаем где удобно, получаем ее и заполняем уже созданный документ MS Word.

    Рис. 4 Определение параметров заполнения

    С методом Find. Execute (Word) лучше всего ознакомится отдельно на официальном сайте Microsoft. Там же можно посмотреть описание и других методов, которые могут пригодится.

    После замены разворачиваем окно и делаем его активным (то есть показываем пользователю заполненный шаблон MS word).

    Рис. 5 Активация окна Word

    И это – весь процесс заполнения шаблона 1С Word! Да, это так просто! Однако на моей практике встречались случаи, когда в шаблоне необходимо было заполнить табличную часть, например, приложение к договору со спецификацией. Здесь необходим отдельный блок кода и особенный шаблон.  

    3.      Заполнение таблиц в программе Word

    В шаблоне создаем одну строку с нужным форматированием. Получаем таблицу или выборку со значениями строк для заполнения их в документе MS Word. Заполнение таблицы в программе Word происходит по номеру строки и колонки, то есть мы точно должны знать нумерацию колонок (но можно подумать и о другом заполнении). Итак, получаем таблицу word по номеру и заполняем значениями.

    Рис. 6 Заполнение таблицы в Word

    В итоге скажу, что работа с Microsoft Word может быть на очень высоком уровне, но для этого необходимо изучить документацию от Microsoft по Word. И тогда в ворде из 1С можно будет творить настоящие чудеса (как собственно и в Excel)!

    Специалист компании «Кодерлайн»

    Вадим Хоменко

    Понравилась статья? Поделить с друзьями:
  • 1с печать документа по шаблону word
  • 1с печать договора по шаблону word
  • 1с печать word программно
  • 1с печатная форма документ word
  • 1с печатная форма в word колонтитулы