»,«|» и другие. Итак, наша задача состоит в том, чтобы загрузить имеющуюся в csv файле информацию в базу данных 1с. Например, в файле будут содержаться товары интернет — магазина. В качестве образца, я взял выгрузку из магазина на скрипте virtuemart. Посмотрим, как выглядит файл.
Привожу две первых строки из него:
Код
Amazon Kindle 4 Touch
Популярная электронная книга с ч/б экраном 6", электронной бумагой E-Ink Pearl, разрешением 600×800 пикс. с 16 — ю оттенками серого.
Посмотрим на файл.
Первая строка служебная. В ней описан формат нашего файла. Т. е. в какой ячейке, что находится. Однако, имейте в виду, что такой строки может и не быть.
Ячейки образуются при помощи разделителя «^», а данные в ячейках обрамляются символом «
».
В любой конфигурации 1с есть иерархический справочник товаров. В него и будем загружать информацию.
Создадим внешнюю обработку. Добавим строковый реквизит «путьКФайлуЗагрузки» для хранения имени файла. Добавим на форму поле ввода, связанное с данным реквизитом. Включим в свойствах поля ввода кнопку выбора и создадим обработчик события «НачалоВыбора» и напишем в нём такой код:
Код 1C v 8.х
Т. о. мы организовали диалог для выбора файла в нашей обработке.
Хорошо. Теперь, для удобства и наглядности я предлагаю создать временную табличку, в которую мы загрузим текстовый файл, а уже после её заполнения — будем осуществлять загрузку в базу 1с. Для этого, на форму добавим табличное поле «табЗагрузки», с типом значения «ТаблицаЗначений» и командной панелью. В панели поместим кнопку «Заполнить» и создадим обработчик её нажатия «КоманднаяПанель1Заполнить». Также для элемента универсальности, добавим в обработку два строковых реквизита «символОграничения» и «разделительПолей». В них мы будем хранить «^», и «
». Можно в теле модуля формы осуществить их начальную инициализацию:
разделительПолей = "^";
символОграничения = "
";
Это позволит пользователю задать свои значения и при желании сохранить настройку, которая впоследствии не затрется нашей инициализацией.
Код 1C v 8.х
Функцию разложения строки с разделителями в массив можно разместить как в одном из общих модулей, так и непосредственно в обработке.
Код 1C v 8.х
Отлично. В итоге, после заполнения, получим примерно такую картинку:
Теперь приступим непосредственно к загрузке товаров. Рядом с кнопкой «заполнить» добавим кнопку «загрузить» и добавим обработчик её нажатия «КоманднаяПанель1Загрузить», а также добавим реквизит «ПапкаЗагрузкиВыгрузкиТоваров» с типом вашего справочника товаров для опциональной их загрузки в определенную папку. Текст обработчика будет такой:
Код 1C v 8.х
В приведенном коде две новые функции «вернутьТовар» и «ЗаписатьЭлементСпр». Вот их текст:
Код 1C v 8.х
И осталась последняя новая функция для обработки родителя товара вернутьРодителяТовара. Текст её смотрите ниже. Комментарии по тексту.
Код 1C v 8.х
Все. Конечно, в реальной жизни еще много чего нужно будет дописать, но не все сразу. Такой шаблон можно использовать как отправную точку. Скачивать файлы может только зарегистрированный пользователь!
Успехов в разработке!
Источник
Содержание
- Мария Кузнецова
- Типовая загрузка из внешнего файла в 1С 8.3
- Обработка для загрузки данных из Excel
- Загрузка файлов Excel
- Быстрый перенос бухгалтерии в БухСофт
- Откройте обработку для загрузки данных в 1С 8.2
- Загрузите в 1С 8.2 данные в справочник номенклатуры
- Загрузите в 1С 8.3 номенклатуру из электронной таблицы
- Загрузите в 1С 8.3 контрагентов из Excel
Мария Кузнецова
В последних версиях конфигураций на платформе 8.3 реализована замечательная возможность загрузки информации из внешнего файла через буфер обмена в документы закупок и продаж.
Типовая загрузка из внешнего файла в 1С 8.3
Например, нам необходимо загрузить определенный заказ клиента из файла Excel. Открываем файл Excel с нужными нам данными. В 1С создаем документ «Заказ клиента» или открываем старый, в который нужно внести изменения. Там переходим на вкладку «Товары», нажимаем кнопку «Заполнить-Заполнить из внешнего файла».
Рис.1 Загрузка заказа из внешнего файла
В открывшемся окне видим одноименные столбцы: штрих-код, код, артикул, номенклатура, характеристика, количество, цена – необходимый набор данных для заполнения табличной части заказа товарами.
Рис.2 Заполнение необходимых для загрузки заказа данных
Теперь просто копируем данные из нашего файла Excel в нашу открытую форму. Поиск номенклатуры производится по штрих-коду, коду, артикулу или по рабочему наименованию, поэтому хотя бы одно это поле должно быть заполнено.
После поиска номенклатуры открывается следующее окно для проверки найденной информации.
Рис.3 Поиск номенклатуры и заполнение необходимых полей
Можно внести изменения или дозаполнить данные. Если все верно, то переносим данные в наш документ. Загруженные строки с номенклатурой добавляются в табличную часть документа.
Рис.4 Добавление загруженной из Excel информации в заказ
Обработка для загрузки данных из Excel
Не для всех документов можно использовать типовой механизм загрузки из внешних файлов, например, загрузка счета в 1С или других важных документов не может быть осуществлена с его помощью. Для этих целей используются внешние обработки для загрузки из Excel. Обработка имеет расширение epf.
Важно замечание: на компьютере обязательно должен быть установлен Excel «свежей» версии, а также перед загрузкой файла он должен быть закрыт.
Загружаются файлы определенного формата, так как в обработке должно быть жестко прописано, из какого столбца что грузить. Для начала необходимо определиться со структурой файла Excel. Каждый тип данных должен заполняться в отдельном столбце. Не должно быть объединенных ячеек.
Созданную внешнюю обработку можно открывать из базы двумя способами:
- Через меню «Файл- Открыть». Выбрать файл обработки, сохраненный на компьютере.
Рис.5 Открытие внешней обработки
- Подключить во внешние обработки.
Подключить внешнюю обработку в базу нужно следующим образом. Заходим в раздел «НСИ и администрирование», нажимаем «Печатные формы, отчеты и обработки».
Рис.6 Загрузка внешней обработки
Идем в «Дополнительные отчеты и обработки», нажимаем «Создать».
Рис.7 Дополнительные отчеты и обработки
Загружаем файл внешней обработки (может выскочить окно с предупреждением не загружать файлы из внешних непроверенных источников).
Рис.8 Добавление внешней обработки
Нажимаем «Продолжить». Выбираем файл с компьютера. Автоматически заполняется наименование, дополнительная информация. Для открытия обработки потребуется нажать кнопку «Выполнить».
Рис.9 Добавление и выполнение внешней обработки
Загрузка файлов Excel
Для загрузки файлов определенного формата нужно создать внешнюю обработку: через меню «Файл-Новый» выбрать «Новая обработка».
Рис.10 Создание внешней обработки
В модуле формы обработки указывается подключение к Excel с помощью COM-соединения:
Рис.11 Ввод команд в модуле формы обработки
Далее программным кодом описывается, как и во что загружать информацию. Обычно в обработке жестко прописывается, из каких столбцов и строк забирать данные. Однако можно вынести указание расположения данных для загрузки в настройки, чтобы была доступна универсальная загрузка любых форматов файлов.
В настройках такой обработки прописываются столбцы экселя и соответствующие им столбцы обработки.
Таким образом, загрузка данных из Excel возможна как типовыми механизмами, так и через внешние обработки. Типовая загрузка информации в 1С 8.3 имеет фиксированный формат загружаемых данных, однако внешними обработками можно значительно расширить форматы и объемы загружаемой информации.
Статьи по теме
Бухгалтера работают с большими массивами данных. Нередко нужно загрузить в 1С из Excel данные таблиц, справочников, прайс-листов, списков. В 1С есть механизм переноса данных из электронных таблиц в программу. Специальная обработка позволяет быстро загрузить нужные показатели в 1С 8.3 из Excel.
В программах 1С на платформе 8.3 встроен механизм закачки данных из электронных таблиц. Данные можно загрузить в справочники «Контрагенты» и « Номенклатура ».
В программах на платформе 8.2 нет встроенного механизма закачки в 1С из Эксель, но есть специальная внешняя обработка. С ее помощью можно закачать данные из таблиц в справочники и документы.
В этой статье читайте инструкцию про загрузку данных из Excel в 1С для обеих платформ.
Быстрый перенос бухгалтерии в БухСофт
Откройте обработку для загрузки данных в 1С 8.2
Внешняя обработка «ЗагрузкаДанныхИзТабличногоДокумента» позволяет загрузить данные из табличного документа в 1С 8.2 Бухгалтерия. Эту обработку можно скачать здесь . Чтобы начать работу с обработкой надо открыть ее в программе. Для этого зайдите в раздел «Файл» (1) и нажмите ссылку «Открыть» (2). Откроется окно для выбора файла.
В окне выберете скачанный файл «ЗагрузкаДанныхИзТабличногоДокумента» (3) и нажмите кнопку «Открыть» (4). Откроется окно обработки.
В открывшемся окне вы видите поле «Режим загрузки» (5). Под ним есть поле (6), в котором будут разные данные в зависимости от того, какое значение вы выберете в поле (5).
В поле «Режим загрузки» надо выбрать одно из трех значений:
- Загрузка в справочник. Выбираете в случае, если надо закачать данные из Excel в какой-либо справочник 1С: « Номенклатура », «Контрагенты», «Физические лица», « Статьи затрат » и т.д. При выборе этого значения поле (6) будет называться «Вид справочника»;
- Загрузка в табличную часть. Выбираете в случае, если надо закачать данные из таблицы в какой-либо документ: реализацию товаров, поступление товаров, возврат товаров и так далее. При выборе этого значения поле (6) будет называться «Ссылка»;
- Загрузка в регистр сведений. Выбираете в случаях, когда хотите закачать данные из таблицы в специальные регистры. При выборе этого значения поле (6) будет называться «Вид регистра».
В следующей главе подробно расскажем как происходит в закачка из excel справочника номенклатуры.
Загрузите в 1С 8.2 данные в справочник номенклатуры
Если у вас есть прайс-лист или спецификация от поставщика с большим объемом данных в формате Эксель, то вы можете загрузить эти данные в бухгалтерскую программу в справочник номенклатуры . Например, у вас есть такой прайс-лист в табличном формате формате:
Если у вас будет поставка этого товара, то вам надо создать новую номенклатуру в справочнике. Воспользуйтесь для этого обработкой « ЗагрузкаДанных… ». Откройте эту обработку как написано в предыдущей главе и выберете в поле «Режим загрузки» значение «Загрузка в справочник» (1). В поле «Вид справочника» выберете «Номенклатура» (2).
В табличной части, во вкладке «Табличный документ» (3) вы увидите таблицу с полями «Код», «Наименование» и т.д. В этой таблице много полей, но нам нужны только «Артикул», «Наименование» и «Полное наименование», другие данные мы загружать не будем. Чтобы оставить только нужные поля зайдите во вкладку «Настройка» (4). Откроется окно настройки полей.
В окне настроек в левом столбце оставьте галочки только напротив полей:
- «Наименование» (5);
- «Артикул» (6);
- «Полное наименование» (7);
- «Базовая единица измерения» (8).
Если вы хотите, чтобы новая номенклатура загрузилась в конкретную папку в справочнике «Номенклатура» , то также поставьте галочку напротив поля «Родитель» (9). В этом поле надо будет указать название папки. После настройки полей снова перейдите во вкладку «Табличный документ» (10).
Во вкладке «Табличный документ» нажмите кнопку «Обновить» (11). Теперь в табличной части остались только нужные поля.
Скопируйте данные из Excel и вставьте их в соответствующие поля во вкладке «Табличный документ».
В поле «Базовая единица измерения» (12) укажите «шт». В поле «Родитель» (13) укажите папку справочника «Номенклатура», в которую хотите добавить новые позиции. В нашем примере это папка «Офисная мебель». Верхняя строка таблицы содержит названия полей, не удаляйте ее.
После того, как вы вставили данные в табличный документ, нажмите кнопку «Загрузить» (14). После этого появится сообщение о подтверждение загрузки, нажмите «Да». Теперь номенклатура загружена из Excel в папку.
После успешной загрузки появится служебное сообщение о том, сколько элементов загружено в справочник (15).
Зайдите в соответствующий справочник и убедитесь, что данные (16) загружены.
Аналогичным способом можно закачать из Эксель в 1С данные и в другие справочники и документы.
Загрузите в 1С 8.3 номенклатуру из электронной таблицы
В программах на платформе 1С 8.3 есть встроенный механизм загрузки. Он позволяет сделать закачку в 1С из Эксель в справочники «Номенклатура» и «Контрагенты». Чтобы загрузить номенклатуру из Excel в 1С 8.3 Бухгалтерия зайдите в раздел «Справочники» (1) и кликните на ссылку «Номенклатура» (2). Откроется справочник номенклатуры.
Допустим, нам надо загрузить номенклатуру из предыдущего примера:
В справочнике номенклатуры зайдите в папку, в которую надо загрузить новую номенклатуру (3) и нажмите кнопку «Загрузить» (4). Откроется окно для выбора файла загрузки.
В окне выбора укажите на загружаемый файл (5) и нажмите кнопку «Open» (6).
Откроется окно «Шаг 1. Подготовка данных к загрузке». В нем надо удалить лишние поля и указать в названиях полей правильные реквизиты. В нашем примере удалите поле со сквозной нумерацией (6), его загружать не надо. Для этого встаньте мышкой на любую ячейку в этом поле и нажмите кнопку «Удалить колонку» (7). Поле будет удалено.
Далее нажмите на ссылку «Укажите реквизит» (8). Такое название поля и его красный цвет говорят о том, что 1С не определил, к какому реквизиту справочника относятся данные в поле. Названия полей, указанные синим цветом, 1С определил автоматически. После нажатия откроется окно «Укажите реквизит» (9). В нем кликните на нужный реквизит (10) и нажмите кнопку «ОК» (11). Название поле поменяется на указанное.
Теперь осталось удалить лишние строки. В нашем примере это строка с названиями полей (12), которые выгрузились из файла. Эта строка находится под названиями полей, выделенных синим цветом (13). Встаньте на удаляемую строку и нажмите кнопку «Удалить строку» (14). Строка удалится.
Теперь данные готовы к загрузке. Нажмите кнопку «Далее» (15) для завершения загрузки. Откроется окно «Загрузка номенклатуры из файла».
В открывшемся окне во вкладке «Новые» (16) виден реестр новой номенклатуры, которая будет загружена в справочник номенклатуры 1С.
Выберете в поле «Тип цен» (17) любое значение из справочника, например «Розничная». Нажмите на ссылку «Реквизиты новой номенклатуры…» (18). Откроется окно для указания дополнительных реквизитов:
- В поле «Входит в группу» (19) укажите папку в справочнике номенклатуры, куда должны войти новые товары;
- В поле «Номенклатурная группа» (20) укажите нужную номенклатурную группу
- В поле «Единица» (21) выберете единицу измерения для новых товаров
Для сохранения реквизитов нажмите «ОК» (22). Для загрузки новых товаров нажмите кнопку «Загрузить» (23). Новые товарные позиции появятся в папке в справочнике номенклатуры.
Теперь в справочнике номенклатуры в папке «Офисная мебель» мы видим новые товарные позиции, загруженные из таблицы Excel:
Загрузите в 1С 8.3 контрагентов из Excel
Как загрузить в 1С 8.3 данные из файла excel? Чтобы загрузить контрагентов из Эксель в 1С Бухгалтерия 8.3 зайдите в раздел «Справочники» (1) и кликните на ссылку «Контрагенты» (2). Откроется справочник контрагентов.
В справочнике нажмите кнопку «Загрузить» (3), выберете файл с данными по контрагентам и загрузите его. В дальнейшем действуйте по инструкции из предыдущей главы.