В данной статье мы рассмотрим с Вами две очень важные темы, первая это загрузка данных из excel в 1с, а вторая это конечно же выгрузка данных из 1с в excel. Необходимо отметить, что эти темы интересны двум основным аудиториям пользователей, ими являются: • Пользователи системы 1С Предприятие • Программисты 1С Пользователи 1С как правило хотят заказать например перенос данных из excel в 1с в соответствии со своими определенными требованиями к переносу, в то время как программисты 1С скорее ищут какие-то разъяснения или примеры кода. Исходя из этих соображений мы решили разделить информацию приведенную в данной статье на две части для пользователей и программистов 1С. 1С загрузка из Excel и выгрузка из 1С в Excel глазами рядового пользователя 1С Очень часто получается так, что на предприятии или в какой-нибудь фирме например, имеется документация, которая хранится на компьютере в файлах Excel. И часто у пользователей возникает вопрос, а как же выгрузить или загрузить данные из Excel в 1С. Конечно же без знания программирования здесь не обойтись, поэтому если Вы являетесь простым пользователем то Вам нужно у нас, ведь абсолютно любой наш программист 1с всегда Вас выслушает, подберет специально разработанное решение именно для вас, и обязательно Вам поможет. Почему нет универсальной обработки по загрузке данных из Excel в 1С? Давайте ответим на этот вопрос и рассмотрим его основные моменты: • У каждого пользователя есть различные файлы Excel, данные из которых он хочет перенести в 1С, конечно же эти файлы имеют разные количество строк и столбцов, а также несут разную смысловую нагрузку. • Каждый пользователь работает с отдельной конфигурацией, т.е. Конфигурации могут быть различными, то что работает в одной конфигурации, в другой конфигурации без модернизации работать не будет. • Данные из Excel должны переноситься в различные объекты,соответственно нужен разный код, ведь у каждого пользователя свои требования. Именно по этим причинам нельзя создать универсальную обработку по загрузке данных из Excel в 1С. Как происходит загрузка и выгрузка данных из Excel в 1С на примере реальной разработки Теперь давайте разберем в общих чертах как происходит загрузка и выгрузка данных из Excel в 1С, и как вообще это все будет выглядеть в готовом решении? Пример реальной индивидуальной разработки, а также исходный Excel файл представлены ниже. В этой обработке сначала нужно выбрать файл Excel, затем нажать на кнопку «Выполнить», после чего в табличную часть загрузятся нужные данные из Excel. Теперь все что осталось сделать пользователю это нажать кнопку «Перенести в бух», после чего данные будут перенесены из Excel в 1С. Выгрузка данных из 1С в Excel происходит примерно также, только тут сложность написания обработки зависит от того какие именно данные должны выгружаться из объекта. Например у нас есть справочник «Номенклатура» и мы хотим выгрузить наименование самой номенклатуры и единицу измерения данной номенклатуры, хотя у самой номенклатуры может быть намного больше реквизитов, такие как, вид номенклатуры, тип номенклатуры, наименование полное и т.д. Мне нужна обработка по загрузке и/или выгрузке данных из Excel, что мне делать? Все что Вам нужно сделать это поднять трубку и позвонить нам. После этого наши специалисты выполнят все необходимые действия чтобы вы получили именно то, что Вам требуется. Если Вам нужно выполнить то звоните нам, мы рады помочь каждому нашему клиенту! Загрузка и выгрузка данных из Excel в 1С глазами рядового программиста 1С Чуть выше мы дали много полезной информации для пользователей 1С, теперь же пришло время проговорить о технических моментах написания кода, а также привести информацию для программистов 1С которая им будет очень полезна при написании кода. Рассмотрим основные часто используемые функции для работы с Excel. Начнем мы с того как подключить Excel к 1С, делается это посредством COM-объекта. Собственный Капитал Учебник . Для того чтобы этот код работал нормально Excel должен быть установлен на компьютере, в противном случае ничего работать не будет: После того как мы подключили Excel нам нужно открыть необходимый документ из которого будет осущевствляться перенос: Теперь нам необходимо выбрать лист книги эксель, на рисунке выше мы видим как выбирается лист под определенным номером. Номер листа хранится в переменной «Номер листа»: Мы можем узнать количество листов книги эксель с помощтю поля 'Count': Чтобы получить имя листа под поределенным номером, нужно написать подобную строчку: Если нам необходимо прочитать определенную ячейку нужно вызывать метод Cells(), после чего обратится к полю Value. Выгрузить данные 1с Выгрузка информации в текстовый файл из ЛЮБОЙ конфигурации 1С. Выгрузить Справочники. Для выгрузки справочников из 1С. Помощь в обновлении 1c программ, доработка и устранение ошибок в конфигурациях программ 1С. Можно конечно прочитать сразу весь файл экселя, но об этом чуть позже: После того как мы закончили все действия по работе с самим экселем процесс нужно закрыть. Закрываем его, иначе будет висеть: Пример функции которая загружает отдельные ячейки из Excel в 1С Мы с Вами рассмотрели основные процедуры и функции с которыми сталкивается каждый программист 1С при написании обработки по загрузки данных из Excel в 1С. Теперь давайте познакомимся более детально с функцией которая считывает отдельные ячейки эксель файла. Мы думаем, что никаких дополнительных разъяснений по данному коду приводить не нужно, так как все эти функции детально рассматривались выше. Пример функции которая загружает все данные из Excel в табличную часть 1С Мы рассмотрели функцию которая выводит на экран отдельные ячейки экселя. А как быть если нам требуется выгрузить весь лист экселя сразу и обходить его последовательно? Здесь нам пригодится код который приводится ниже. Пример функции которая выгружает данные из 1С в Excel Выше мы с вами разобрали много всего интересного, но мы не каснулись такой темы как выгрузка данных из 1С в Excel. На самом деле принцип работы тут в абсалютности почти такой же, за исключением того, что мы программно создаем новый файл эксель, и программно его записываем. Ну а для того чтобы записать значение в ячейку вы как уже наверное догадались нужно поставить выражение Лист.Cells(x, y) в левую часть. Пример выгрузки данных из 1С в Excel представлен ниже. Прежде всего, большое спасибо автору за статью! Очень помогла на старте. Для получения типа данных в таблице значений в блоке получения атрибутов (реквизитов) документов можно воспользоваться методом XMLТипЗнч объекта Connection, а у полученного в результате объекта вызвать метод ИмяТипа для получения строкового представления имени типа данных. Т.е., для приведённого автором кода, получится что-то вроде: Connection.XMLТипЗнч(table.Get(i).Get(j)).ИмяТипа. Таким образом, можно выявить ссылки на другие документы, справочники, перечисления и т.д. Так, если имя типа данных равно ' DocumentRef.АвансовыйОтчет', значит имеем дело со ссылкой на документ указанного после точки типа. Если имя типа равно ' CatalogRef.Валюты', значит имеем дело со ссылкой на справочник «Валюты». Если имя типа — ' EnumRef.ВидыПоступленияТоваров', значит имеем дело со ссылкой на перечисление «ВидыПоступленияТоваров». А для получения данных по ссылке, можно воспользоваться методом, описанным автором выше, т.е. Записать значение ссылки, например, в переменную ref и выполнить запрос 'select * from catalog.' + name + ' as lines where lines.Ref=&Ref', подставив, соответственно в параметр Ref значение переменной ref. При этом вместо «catalog.» надо подставить «document.» или «enum.» и т.д., в зависимости от типа ссылки, полученной выше; вместо name — имя сущности, которая значится после точки в имени типа данных. Готовый код не привожу, т.к. Он на Delphi и пока что выглядит как говнокод (просто очень хотелось проверить некоторые моменты так сказать «на коленке»).) Возможно кому-то эта информация окажется полезной. Сам — не специалист в 1С, поэтому убил полдня, пока докопался до истины.) P.S. В крайних версиях Delphi (XE — точно) с русскими символами в именах свойств и методов проблем возникнуть не должно. В более ранних версиях (например, в Delphi 2005) возможно придётся указать явно кодировку UTF-8 для.pas.
0 Comments
Leave a Reply. |