1с загрузка из эксель управляемые формы. Бухучет инфо

В 1С существует 2 способа работы с файлами MS Excel, через COM-объект и встроенными средствами 1С с помощью объекта табличный документ. Разберем оба эти способа поподробнее.

1. Работа через COM-объект.

Для этого способа необходим установленный MS Excel, притом если вы работаете с файлом на сервере, то соответственно MS Excel должен быть установлен на сервере, если на клиенте - то на клиентской стороне так же необходим MS Excel.

Пример (в конце статьи можно посмотреть в текстовом виде):

Надо заметить, что все объекты, методы и свойства, предоставляемые COM-объектом "Excel.Application" - это объекты, методы и свойства VBA, языка программирования MS Office.

Примечание:

Бывает нужно работать с уже существующим шаблоном. Тогда перед нами возникает необходимость где-то хранить этот шаблон, чтобы к нему имели доступ все нужные пользователи. Однако есть более простое решение, сохраняем шаблон как двоичный макет.

2. Работа через ТабличныйДокумент 1С.

Табличный документ 1С поддерживает формат MS Excel для записи начиная с платформы 8, а вот для открытия только начиная с платформы 8.3.6. Притом, при открытии все листы загружаются в один табличный документ. Начиная с версии 8.3.10 при загрузке разные листы загружаются, как разные области.

Пример записи очень простой и не требует особого внимания:

Однако здесь у нас возникает проблема. При записи из 1С в книге Excel по умолчанию отключено отображение имен листов.

Эту проблему можно решить 2 способами, 1 - в самой книге в настройках включить отображение листов (не все пользователи будут согласны это делать), 2 - сделать это через COM-объект (нам опять нужен установленный MS Excel).

После этого небольшого дополнения, в файле MS Excel будут видны ярлыки листов.

Чтение же MS Excel не настолько простая задача, поскольку метод прочитать доступен только на сервере или толстом клиенте. Для этого нам необходимо передать файл MS Excel на сервер.

&НаКлиенте

Процедура СозданиеДокумента()

Исключение

КонецПопытки;

Книга = Эксель.WorkBooks.Add(); //Создаем новую книгу MS Excel

Лист = Книга.WorkSheets.Add(); //Добавляем лист

Лист.Name = "Пример из 1С"; //Задаем имя листа

Лист.Cells (1,1).Value = "Давайте создадим формулу";

Лист.Cells (2,1).Value = 1;

Лист.Cells (2,2).Value = 2;

Лист.Cells (2,3).Formula = "=A2+B2";

Лист.Cells (3,1).Value = ТекущаяДата();

Книга.SaveAs("C:\1\Test.xlsx");

Книга.Close();

КонецПроцедуры

&НаСервере

Функция ПолучитьМакетСервер()

Возврат РеквизитФормыВЗначение("Объект").ПолучитьМакет("ШаблонНаВыгрузку"); //Таким образом мы получаем макет внешней обработки;

КонецФункции

&НаКлиенте

Процедура Работа()

Эксель = Новый COMОбъект("Excel.Application");

Исключение

Сообщить("Неудачная попытка подключения компоненты Excel. Возможно, программа Excel не установлена на данном компьютере!");

КонецПопытки;

Макет = ПолучитьМакетСервер();

Макет.Записать(ИмяВременногоФайла);

У вас есть вопрос, нужна помощь консультанта?

Книга = Эксель.WorkBooks.Open(ИмяВременногоФайла);

ЛистШаблона = Книга.WorkSheets(1);

ЛистШаблона.Cells (6,1).Value = "Дата:";

ЛистШаблона.Cells (6,2).Value = ТекущаяДата();

ЛистШаблона.NumberFormat = "dd/mm/yy;@"; // Дадим формат даты, этот формат получен записью макроса в MS Excel

ЛистШаблона.Columns("B:B").EntireColumn.AutoFit; // Растянем колонку, чтобы дата точно помещалась

Книга.SaveAs(ИмяФайла);

Книга.Close();

КонецПроцедуры

&НаКлиенте

КонецПроцедуры

&НаКлиенте

Процедура ЗаписатьТабличныйДокумент()

ТабличныйДокумент = Новый ТабличныйДокумент();

ТабличныйДокумент.Область("R1C1").Текст = "Пример записи в MS Excel из 1С";

ТабличныйДокумент.Записать("C:\1\Test2.xls",ТипФайлаТабличногоДокумента.XLSX);

Excel = Новый COMОбъект("Excel.Application");

Excel.WorkBooks.Open("C:\1\Test2.xls");

Excel.Visible = 0;

Excel.ActiveWindow.DisplayWorkbookTabs = 1;

Excel.ActiveWindow.TabRatio = 0.6;

Excel.ActiveWorkbook.Save();

Excel.Application.Quit()

КонецПроцедуры

ДвоичныеДанные = Новый ДвоичныеДанные("C:\1\test2.xlsx");

Адрес=ПоместитьВоВременноеХранилище(ДвоичныеДанные,ЭтаФорма.УникальныйИдентификатор) ;

ТабличныйДокумент = ЗагрузитьНаСервере(Адрес);

ТабличныйДокумент.Показать();

КонецПроцедуры

&НаСервере

Функция ЗагрузитьНаСервере(Адрес)

ИмяВременногоФайла = ПолучитьИмяВременногоФайла("xlsx");

ДанныеФайла = ПолучитьИзВременногоХранилища(Адрес);

ДанныеФайла.Записать(ИмяВременногоФайла);

ТабличныйДокумент = Новый ТабличныйДокумент();

Возврат ТабличныйДокумент;

Как загрузить в 1С:Бухгалтерия 8.3 (редакция 3.0) данные выгруженные из торговли или зарплаты?

2016-12-01T12:52:06+00:00

Чаще всего в бухгалтерию переносят данные из торговли или зарплаты.

Выгруженные данные представляют из себя файл с расширением ".xml ". Как загрузить его в программу?

  1. Начинаем с создания резервной копии бухгалтерии, чтобы если загрузка испортит базу мы смогли вернуться в исходное состояние. О создании резервных копий написано .
  2. Теперь открываем меню "Все функции " (об этом ).
  3. Находим в открывшемся окне пункт "Обработки " и раскрываем его через плюсик.
  4. Находим и открываем среди его пунктов обработку "Универсальный обмен данными в формате XML ".
  5. ".
  6. Указываем путь к файлу из которого будем загружать данные.
  7. Нажимаем кнопку "Загрузить данные ".

Если всё прошло успешно - отлично! Если есть ошибки, то причина вероятно в том, что для выгрузки из торговли или зарплаты использовались не подходящие (устаревшие) правила - требуется их обновление и повторная выгрузка.

С уважением, (преподаватель и разработчик ).

Нередко предприятия параллельно с 1С ведут учет и в программе Microsoft Excel. Такое возможно, например, когда переход на 1С с других систем был совсем недавно, или если у бухгалтера в системе 1С не настроены должным образом отчеты и ему удобнее анализировать данные в Excel, а может быть поставщики присылают накладные или прайс листы в файлах Excel (обмен информацией в электронном виде через файлы Excel очень распространен во взаимоотношениях между организациями). В этих случаях остро встает вопрос о необходимости автоматизации процесса и избавления пользователей от монотонного вбивания информации в 1С. Для написания соответствующей обработки приходится обращаться к программистам 1С, а это - дополнительные затраты. Не все знают, что компания 1С уже давно разработала подобную бесплатную универсальную обработку, главное - научиться ею правильно пользоваться. А так как главный принцип нашей фирмы - "Клиент платит только за фактически выполненную работу", мы совершенно бесплатно в данной статье обучим Вас, как с помощью данной обработки загрузить данные из файла Excel в любую программу 1С на платформах 1С:Предприятие 8.2 и 1С:Предприятие 8.1.

Где взять обработку по загрузке данных в 1С из excel

Универсальная обработка от фирмы 1С по загрузке данных из excel называется ЗагрузкаДанныхИзТабличногоДокумента.epf и находиться на диске ИТС.

Для 8.1 E:1CIts\EXE\EXTREPS\UNIREPS81\UploadFromTableDocument или скачать

Для 8.2 E:1CIts\EXE\EXTREPS\UNIREPS82\UploadFromTableDocument или скачать


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

Для запуска обработки ЗагрузкаДанныхИзТабличногоДокумента.epf необходимо:
- Запустить 1С в режиме 1С:Предтиятие, то есть открыть базу, в которую Вы собираетесь загрузить данные;
- Далее нажать Файл - Открыть;

В появившемся окне выбрать файл ЗагрузкаДанныхИзТабличногоДокумента.epf, по тому пути, где данная обработка у Вас находится;

Вот так выглядит сама обработка по загрузке данных из excel:

Загрузка справочника номенклатура из excel

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



- на закладке "Табличный документ" нажать кнопку "Открыть файл", как показано на рисунке;


- в открывшемся окне выбираем тот файл, который Вы собираетесь загрузить, не забудьте установить правильный тип файлов, в нашем случае "Лист Excel(*.xls)";

Обработка заполнит табличную часть закладки "Табличный документ";

Переходим на закладку "Настройка" и заполняем следующими данными, как показано на рисунке;

Поле "Первая строка данных табличного документа" - здесь необходимо указать номер строки, с которой необходимо загружать данные, в нашем случае это 2 ;
Галочка "не создавать новых элементов" служит для того, чтобы не загружать новые данные, ее можно использовать при заполнении документов, чтобы новые элементы справочников, например, номенклатура не создавались, а подставлялись только из базы 1С. Так как в нашем случае мы как раз хотим загрузить новые номенклатуры, галочку не ставим .
Далее нам необходимо нажать кнопку "Нумерация колонок" - "Ручная нумерация колонок", это нам позволит вручную проставить номера колонок из которых обработка будет считывать данные и автоматически подставлять в нужные поля.
А теперь проставим номера колонок:
- в нашем случае поля "Наименование" и "Полное наименование" будут одинаковы и должны запонняться из 3-ей колонки, ставим 3 в колонке "№ колонки табличного документа", "Режим загрузки" - "Искать";
- строку "Код" отключим, пусть 1С сама сформирует коды номенклатурам;
- "Родитель" - скажем обработке, пусть она всю загруженную номенклатуру загружает в "Новую папку", во избежании бардака, а мы в дальнейшем, если потребуется перенесем номенклатуры по своим папкам вручную. Если же вся загружаемая номенклатура относится к определенной папке, например "Оборудование", то ее можно сразу здесь указать. "Режим загрузки" - "Устанавливать";
- "Базовая единица измерения", тоже установим из существующих, у нас это шт. "Режим загрузки" - "Устанавливать";
- "Ставка НДС" - у нас будет 18%, установим и "Режим загрузки" - "Устанавливать";
- "Комментарий" - можно не устанавливать, но мы заполним значением "Загрузка из Excel 20.09.2012", чтобы сохранилась своего рода история, что и когда загрузили, "Режим загрузки" - "Устанавливать";
- "Услуга" - "Нет", так как мы загружаем товар,"Режим загрузки" - "Устанавливать";
- "Артикул" - должны запонняться из 1-ой колонки, ставим 1 в колонке "№ колонки табличного документа", "Режим загрузки" - "Искать". И самое главное устанавливаем галочку "Поле поиска" , этим самым мы сообщаем обработке, чтобы она искала номенклатуру по артиклу, и если не нашла, то пусть создает новый. Если Вы не пользуетесь Артикулом, то устанавливайте галочку "Поле поиска" напротив "Наименование", но помните, если у Вас в базе будет такая же номенклатура как и при загрузке,только отличаться хотя бы на 1 символ, например, точку,запятую или букву, то обработка будет считать что это две разные номенклатуры и создаст новую. Обработка осуществляет поиск по Наименованию только строго по точному соответствию.
Далее жмем кнопку "Загрузить" и проверяем результаты загрузки справочника номенклатура из excel.

Видеоматериал в тему:


Многие, кто работают в программе 1С, сталкиваются с необходимостью загрузки данных из электронной таблицы Excel в 1С. Когда у пользователя может возникнуть необходимость такой загрузки:
- сформирован отчет, сохранен в Excel , обработан. Обработанные данные необходимо загрузить в 1С в виде документа (перемещение, возврат поставщику)
- есть список номенклатуры, который нужно загрузить в справочник. Список номенклатуры находится в Excel
- любые другие данные, которые нужно загрузить в табличную часть документа, справочник, регистр сведений
Ниже приведена инструкция загрузки данных из Excel в табличную часть документа "Возврат товаров от покупателя" .
Действие 1 . Подготовка документа, в который будут загружаться данные. Необходимо создать пустой документ "Возврат товаров от покупателя" и записать его.

Действие 2 . Открыть внешнюю обработку "Загрузка данных из табличного документа".

Действие 3 . В обработке выбрать место, в которое мы будем загружать данные.

Действие 4 . Настройка параметров загрузки. Сделайте все как на рисунке, чтобы потренироваться.

Действие 5 . Копирование данных из Excel в обработку в закладку "Табличный документ" (как на рисунке). Красным выделены две кнопки: «Контроль» заполнения (показывает ошибки, например, если неправильно указана единица измерения загружаемой номенклатуры) и «Загрузить» (выполняет загрузку).

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

Cобственно, сама обработка загрузки данных из Excel в 1С

Этот вопрос поступил от Сергея из Новокузнецка.

Конечно можно. Как это сделать, рассмотрим на конкретном примере. Предположим, у нас есть таблица Excel:

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

Создадим в справочнике «Номенклатура» группу «Крепеж»:

Теперь нам надо запустить обработку «Загрузка данных из табличного документа» (её можно взять в разделе ).

Выбираем в меню «Файл» пункт «Открыть», в открывшемся окне находим файл «ЗагрузкаДанныхИзТабличногоДокумента.epf», запускаем его. Откроется вот такое окно:

В поле «Режим загрузки» стоит «Загрузка в справочник». В поле «Вид справочника» выбираем «Номенклатура». Далее нажимаем кнопку «Открыть файл …» (показано стрелкой):

В открывшемся окне внизу выбираем тип файла — «Лист Excel (*.xls)»:

и подбираем наш эксельный файл, из которого нам надо сделать загрузку.

Видим вот такую картинку:

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

Ставим флажки в строках «Наименование» и «Полное наименование», режим загрузки оставляем — «Искать», номер колонки ставим соответственно 2 и 3 (вторая и третья колонка нашей таблицы Excel):

Теперь нам надо указать куда загружать, в какую папку. Ставим флажок в строке «Родитель», режим загрузки выбираем — «Устанавливать», и в колонке «Значение по умолчанию» выбираем нашу группу «Крепеж» из справочника «Номенклатура»:

Осталось выбрать ставку НДС и единицу измерения (если мы этого не сделаем, потом придется ручками устанавливать для каждой позиции справочника). Ставим флажки напротив пунктов «Базовая единица измерения» и «Ставка НДС», режим загрузки выбираем — «Устанавливать», в колонке «Значение по умолчанию» выбираем «шт» и «18%» соответственно:

С настройкой закончили. Переходим на закладку «Табличный документ» и жмем кнопку «Контроль заполнения». Программа написала в табло:

Контроль заполнения завершен. Проверено строк: 7
Ячеек, содержащих ошибки не выявлено

Всё. Можно загружать. Жмем «Загрузить» внизу справа. После загрузки проверяем наш справочник «Номенклатура». Видим вот такую картинку:

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

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

Было бы интересно узнать, полезен ли был данный материал? Если не трудно, напишите свой к этой статье. Это поможет мне в подготовке материала в дальнейшем.