Що краще – «1С» чи «Excel»? Отримання даних із xls файлу 1с.

Що краще – «1С» чи «Excel»? Отримання даних із xls файлу 1с.

Є різні способи, щоб у 1С відкрити файл Excel і навпаки. Користувачі-початківці віддадуть перевагу більш простим операціям зі збереженням документа в іншому форматі або використанням спеціальних програм. Але варто витратити небагато зусиль і навчитися працювати з програмними засобами для перегляду та обробки даних з однієї програми до іншої. Надалі ці базові навички програмування дозволять уникнути рутинних завдань.

Як відкрити документи Excel у 1С і навпаки

Табличний редактор корпорації Майкрософт Excel за повнотою функціоналу перевищує бухгалтерські програмні продукти 1С. Тому користувачі 1С воліють частину операцій виконувати у табличному редакторі, а потім повертати дані до бухгалтерської програми. І це не дивно, адже колись бухгалтерія багатьох компаній велася виключно за допомогою програм Майкрософта. Але за сучасного рівня автоматизації бізнес-процесів підприємств відмовитися від спеціалізованих програм неможливо. Щоб налагодити взаємодію між різними програмами, є такі прості способи:

    Коли доводиться мати справу з файлами програмних продуктів, які не встановлені на вашому поточному комп'ютері, найпростіше скористатися спеціальним додатком для переведення таблиць Excel у формат 1С і навпаки. Його можна знайти на сайті продукту 1С.

    Якщо на комп'ютері є і 1С, і Excel, то можна вручну відкрити файл у його "рідному" додатку, а потім зберегти у форматі іншої програми. Зазвичай, така опція доступна при збереженні друкованої форми або макета.

    Користувачі 1С 7.7 можуть оновитися до версії 1С 8, яка має покращений редактор таблиць.

Як 1С і Excel можуть взаємодіяти програмно

Взаємодія між 1С та Excel може здійснюватися на програмному рівні за допомогою технології OLE Automation, розробленої корпорацією Майкрософт. Вона дозволяє звертатися безпосередньо до COM-об'єктів із скриптових інтерпретаторів різних програм. Простіше кажучи, OLE дозволяє передавати частину роботи з однієї програми до іншої, а потім повертати зроблене у вихідний додаток. Це те, що потрібно бухгалтерам від редактора таблиць Майкрософта.

Щоб використовувати засоби OLE, не потрібно бути програмістом. Хоча перше знайомство з рядками коду супроводжуватиметься помилками, перевірка допоможе їх виявити, а отриманий досвід – уникнути надалі. Нижче наводяться найзатребуваніші команди (їх називають лістинги) для роботи з екселевськими даними в бухгалтерських програмах і навпаки.

Як відкрити екселевський файл в 1С програмно

Отже, якщо на вашому комп'ютері встановлені обидві програми, між якими ви хочете налагодити обмін даними, можна організувати взаємодію програмно. Для цього потрібно запустити обидві програми, а потім за допомогою OLE встановити доступ із 1С до Excel:

  • Виняток

    Повідомити(ОписПомилки() + "Програма Exсel не встановлена ​​на даному комп'ютері!");

  • КінецьСпроби.

Доступ до табличного редактора встановлено, тепер за допомогою наступних команд потрібно отримати доступ до:

    конкретному документу:

    • Книга = Ексель.WorkBooks.Open(ШляхКФайлу)

    • Аркуш = Книга. WorkSheets (НомерЛіста);

  • у тому числі з конкретним номером листа:

    у тому числі з конкретним ім'ям листа:

    • Аркуш = Книга. WorkSheets (Ім'яЛиста);

    • Значення = Лист.Cells(НомерРядки, НомерКолонки).Value;

Для читання даних з першої сторінки файлу використовуйте такі листинги:

    Ексель = Створити Об'єкт ("Excel.Application");

    Книга = Ексель.WorkBooks.Open(ШляхКФайлу);

    Аркуш = Книга.WorkSheets(1);

    ВсьогоКолонок = Лист.Cells(1,1).SpecialCells(11).Column;

    УсьогоРядок = Лист.Cells(1,1).SpecialCells(11).Row;

    Для Рядок = 1 По ВсьогоСтрок Цикл

    • Для Колонка = 1 По ВсьогоКолонок Цикл

      Значення = СокрЛП(Лист.Cells(Рядок,Колонка).Value);

      КінецьЦикл;

    КінецьЦикл;

Пам'ятайте, що прописувати шлях до файлу слід повністю. В ім'я документа при збереженні не можна включати такі символи, як \, /, :, *, ?, ", >,< и |.

Як відкрити файл 1С через Excel програмно

Для запису даних у Excel необхідно:

    або відкрити існуючий документ:

    • Книга = Ексель.WorkBooks.Open(ШляхКФайлу) - за аналогією з читанням екселівського файлу з 1С;

    або додати новий:

    • Книжка = Excel.WorkBooks.Add();

    у новому документі можна створити новий лист:

    • Аркуш = Книга.Sheets.Add();

    і додати в комірку нове значення:

    • Лист.Cells(НомерРядки, НомерКолонки).Value = Значення; (Методи запису значень за допомогою OLE докладно описані в інтернеті).

  • SaveAs(ШляхКФайлу);

    Виняток

    Повідомити(ОписПомилки()+" Файл не збережений!");

    КінецьСпроби.

Закінчивши роботу з табличним редактором, виходьте з допомогою спеціальної команди (Эксель.Application.Quit();). Цей спосіб допоможе зберегти ресурси комп'ютера при подальшій роботі.

Небезпеки при обміні даними між 1С та Excel

1С і Excel були розроблені різними компаніями та використовують різні способи поводження з даними. Тому при перенесенні таблиць з однієї програми в іншу пам'ятайте про наступні "підводні камені":

    Різні роздільники у дробових числах. Майкрософт розділяє цифри в десяткових дробах за допомогою коми. Тому при перенесенні таблиць з бухгалтерської програми не дивуйтеся безлічі дат та іншого плутанини. Просто в бухгалтерській програмі в записі дробів може використовуватися точка, яку редактор таблиць Майкрософта інтерпретуватиме як роздільник дати, і 15.5 перетвориться на 15 травня. Щоб обробляти бухгалтерські дані в табличному редакторі, роздільник доведеться замінити на кому.

    При перенесенні даних із Excel в 1С можуть некоректно відобразитися ті екселівські константи, яких немає у бухгалтерській програмі. Щоб їх розшифрувати, потрібно зайти до Довідки табличного редактора або режим налагодження і перевірити числове вираження різних констант.

Якщо вам потрібно налагодити обмін великими обсягами даних або не вдається позбавитися помилок, звертайтеся за допомогою до професіоналів компанії "Сетбі". Ми допоможемо вирішити ваші завдання на програмному рівні та розібратися з необхідними для вашої роботи командами.

Більшість організацій у своїй повсякденній практиці для ведення обліку різних бухгалтерських операцій по-старому використовують програмний продукт Excel з офісного пакета Microsoft. Так буває, коли фірма буквально днями переключилася на систему 1С і розділи зі звітністю ще були грамотно налагоджені або постачальник воліє надсилати прейскурант у вигляді зведеної таблиці формату.xls . Не дивно, що часто виникає у заміні ручного вбивання позицій на автоматизовану систему. Це суттєво скоротить час заповнення номенклатурних документів та скоротить кількість помилок, що важливо враховувати, коли йдеться про кілька десятків, а то й про сотні найменувань.


Вирішувати цю проблему можна різними способами: одні організації вважають за краще довірити цю роботу своєму IT-відділу, інші наймають розробників, які працюють у компанії франчайзі, але це досить дорого і забирає багато часу.


Набагато вигіднішим виходом із ситуації буде використання відповідної конфігурації 1С, яка абсолютно безкоштовно обробить дані і стане універсальним помічником при інтеграції документів 1С та "екселівських" таблиць.


У цьому розділі ми допоможемо розібратися з тим, як налаштувати завантаження даних з файлу формату.


У кожного користувача професійної версії 1С:Підприємство 8 подібна обробка вже є! На диску ІТС!

Типова обробка «ЗавантаженняДанихІзТабличногоДокументу.epf», знаходиться в розділі: «Технологічна підтримка» > «Методична підтримка 1С:Підприємство 8» > «Універсальні звіти та обробки» >

D:1CIts\EXE\EXTREPS\UNIREPS82\UploadFromTableDocument Завантажити


Зверніть увагу, починаючи з Лютого 2010 р. на диску ІТС дана обробка для конфігурацій на платформі 8.1 знаходиться в іншому розділі: «Технологічна підтримка» > «Методична підтримка 1С:Підприємство 8» > «Платформа 1С:Підприємство 8У. обробки» > «Завантаження даних із табличного документа».

D:1CIts\EXE\EXTREPS\UNIREPS81\UploadFromTableDocument Завантажити


Є вихідні дані:

  • Прайс-лист в Excel "ПрайсОнлайнХімСнаб.xls" - Microsoft Office Excel 97-2003 (.xls)
  • Типова конфігурація Бухгалтерія підприємства Редакція 2.0, реліз 2.0.12.2, платформа 8.2 (8.2.10.77)
  • Необхідно завантажити в 1С з Excel найменування товарів та ціни


З Прайс-листа необхідно завантажити довідник номенклатури до 1С:Бухгалтерію 8.

Запускаємо програму 1С. Для запуску обробки вибираємо пункт меню "Файл">"Відкрити".

У вікні знаходимо файл обробки

Розташовується на диску ІТС у каталозі \1CIts\EXE\EXTREPS\UNIREPS82\UploadFromTableDocument

Якщо ви попередньо скопіювали файл обробки на свій комп'ютер, то можете вибрати його.


Відкриється вікно


Зверніть увагу, що завантаження даних здійснюватиметься у два етапи: Етап 1 – завантаження найменувань та встановлення значень реквізитів нових елементів довідників необхідних для початку роботи (одиниця виміру, ставка ПДВ, ознака товар/послуга). Етап 2 – завантаження цін.

Завантаження найменувань

Встановлюємо «Режим завантаження» - Завантаження у довідник «Вигляд довідника» - Номенклатура

В закладці «Таблічний документ»

Натискаємо кнопку ex1_b01.jpg «Відкрити файл», у вікні вибору знаходимо каталог, в якому у нас знаходиться прайс-лист в Excel з якого ми плануємо завантажувати дані в 1С.


Спочатку файл може не відобразитись. Встановіть тип файлу «Аркуш Excel (*.xls)»


Вибираємо наш файл



Відображаються реквізити картки номенклатури.

Налаштовуємо параметри завантаження найменувань

Ми хочемо загострити вашу увагу на аспекті розпізнавання структурних одиниць номенклатурних довідників у програмі 1С:Бухгалтерія версія 8,оскільки одним з ключових моментів в ідентифікації даних елементів є найменування. Якщо ж спочатку позиції інформаційної бази були заповнені, потрібно буде відстежувати повторювані позиції і якщо такі є, видаляти їх.


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


Справа ускладнюється тим, що працівникові доводиться стикатися з різними абревіатурами та іншими скороченнями, двояким написанням найменування та використання різних розділових знаків.


При багаторазовому використанні та значному масиві завантажених відомостей ми радимо застосовувати інше програмне забезпечення із серії «1С:Підприємство 8», наприклад «1С: Управління торгівлею 8», «1С: Управління невеликою фірмою 8», або «1С: Комплексна автоматизація 8», в яких є параметр «Артикул», що забезпечує надійність розпізнавання даних, що завантажуються в номенклатурні довідники, і виключає можливість дублювання найменувань.


Рядок «Базова одиниця виміру» - у колонці «Режим завантаження» вибираємо «Встановлювати», у колонці «Значення за замовчуванням» вибираємо одиницю виміру (у нашому випадку - шт.)


Рядок «Ставка ПДВ» - у нашому випадку для всіх завантажуваних елементів встановлюємо ПДВ 18%, для цього в колонці «Режим завантаження» вибираємо «Встановлювати», у колонці «Значення за замовчуванням» вибираємо «18%».


Якщо товари йдуть з різним ПДВ, який вказується в окремій колонці прайс-листа, що завантажується, то в колонці «Режим завантаження» встановіть «Шукати» і номер відповідної колонки прайс-листа в «№ Колонки табличного документа».

Рядок «Послуга» - у колонці «Режим завантаження» вибираємо «Встановлювати», у колонці «Значення за замовчуванням» вибираємо «Ні» (у нашому випадку всі позиції – це товари).


Ми задали мінімальні значення нових елементів довідника номенклатури, які дозволять працювати. Для закриття місяця, розподілу витрат, формування бухгалтерської та податкової звітності необхідно буде задати значення «Номенклатурна група» та «Стаття витрат», для імпортних товарів задати «Країна походження» та «Номер ВМД», але це можна буде зробити пізніше, використовуючи групову обробку.


Якщо ви готові встановити значення даних реквізитів зараз, то вкажіть. Натискаємо «Завантажити» у правому нижньому кутку, на запитання натискаємо «Так»



Перевіряємо наявність нових елементів у відповідній групі довідника номенклатури

Відкриваємо картку товару, перевіряємо правильність завантаження реквізитів.


Якщо все правильно, то можна розпочати другий етап - завантаження цін з прайс-листа в Excel.


Якщо в майбутньому планується використовувати цю процедуру завантаження даних з такими ж параметрами завантаження, рекомендуємо зберегти поточні налаштування. Для цього натисніть кнопку ex1_b03.jpg «Зберегти налаштування» і зрозуміло назвіть поточне налаштування, наприклад, «Завантаження найменувань товарів з прайс-листа Excel».


Наступного разу зможете завантажити збережені налаштування, натиснувши кнопку ex1_b03.jpg «Відновити налаштування» і вибравши потрібну зі списку.

Завантаження цін

У «Бухгалтерії підприємства» Ред.2.0 встановлення цін провадиться за допомогою документа «Установка цін номенклатури».

Встановлюємо "Режим завантаження" - "Завантаження в табличну частину".

У полі "Посилання" вибираємо "Встановлення цін номенклатури".


Тут можна вибрати вже існуючий документ, який ми хочемо додати нові елементи, або створити Новий (рекомендується), в документі вказуємо який «Тип цін» завантажуватимемо (у нашому прикладі «Роздрібна»).


Натискаємо «Ок» і зберігаємо поки що порожній документ. Тепер вибираємо цей новий документ з журналу в рядку «Посилання». У полі «Таблична частина» вибираємо «Товари»

Зараз потрібно перейти закладку «Таблічний документ»

Знову виберіть наш прайс-лист в Excel з якого ми завантажили найменування, а тепер завантажуватимемо ціни (див. пункт 5).

Досить часто, спілкуючись із потенційними клієнтами, я чую про те, що їм цілком вистачає функціонала таблиці від офісного пакету, і вони не бачать сенсу в програмах «1С». Все тому, що деякі, як і раніше, асоціюють це рішення лише з програмами для бухгалтера, що є неправдою.

"Excel" - універсальний і масовий продукт, з цим не посперечаєшся. Практично кожен може скористатися цією програмою, на відміну від розробок «1С», спрямованих на вузьких спеціалістів. Використовуючи «зелені» таблиці, можна довільно реалізовувати необхідний функціонал, який буде зручним: тут і фінансова модель організації з усіма взаєморозрахунками, управлінський облік, навіть регламентований великий вибір візуалізації даних, можливість власноруч розширювати можливості програми, використовуючи різні надбудови – все у Ваших руках , все з нуля...

Добре, якщо Ви тільки починаєте свій бізнес, поступово враховуючи необхідні дані в таблиці з клієнтами, постачальниками, контролюючими органами, вибудовуючи свою довільну структуру, але як бути далі, коли база даних стане об'ємною, а штат співробітників обчислюватиметься десятками? Так само вважати за власними параметрами? Я за те, щоб не плутати зручність із звичкою, яка найчастіше заважає систематизації бізнесу, а отже – його оптимізації.

Для наочності давайте уявимо, які можу виникнути потреби в автоматизації обліку, наприклад, у торгівлі:

1. Аналіз продажів у межах певного періоду.

Керівник відділу продажів може аналізувати дані з продажу. Адже йому важливо розуміти, чи виконується план, наскільки ефективні його стратегії, щоб у разі неефективності вчасно внести коригування в роботу.

2. Складський облік.
Чи потрібно пояснювати, що для продажу також важливим є розуміння наявності товару на складі, який товар може бути зарезервований, а якого немає в наявності і що потрібно замовити? Думаю, тут і так зрозуміло.

3. Ведення основи контрагентів.
Навіть якщо власник продає лише те, що можна купити тут і зараз, що характерно для сектора B2C, то з базою постачальників у нього трохи інші стосунки – договори, первинки... Уявіть, наскільки це зручно, коли все, що пов'язане з постачальником автоматично відразу відображається в єдиній базі? Менеджер, який відповідає за склад, відразу бачить наявність товару на складі, інший співробітник, відповідальний за документи, моніторить інформацію щодо їх наявності, чи виконуються всі зобов'язання за договірними відносинами, хто і скільки кому винен. А у разі розбіжностей можна звірити дані за певний період, сформувавши результат менш ніж за хвилину.

4. Прибуток організації.
Сформувати звіт з прибутку не складе величезної праці, оскільки всі дані щодо витрат і доходів вже й так є в базі. За умови, якщо інформація вноситься своєчасно, принаймні, потрібною датою. Тут основний чинник – особиста відповідальність користувача.

Якщо у Вас не так багато клієнтів та постачальників, Вам дійсно підійде «Excel», оскільки часу достатньо для конструювання власних схем у таблиці та їх заповнень, з наступним розподілом документів по різних папках на комп'ютері: договори, постачальники, клієнти, клієнти по сусідству , клієнти у розробці, клієнти на видалення – нескінченний та захоплюючий процес створення папок у папці. А якщо інформації стає багато, чи зручно в цьому випадку вести облік бази? Звичайно, завжди є винятки, часом трапляються організації з великими оборотами, у яких дані щодо фінансів ведуться лише у «Excel». Скільки ж при цьому часу вони йдуть на обмін і об'єднання даними між відділами? Відповім: багато.

Я не уявляю, як у великій кількості документів Excel, організованих довільною системою, оперативно знайти потрібний. Наприклад, під час надання документів на вимоги від податкової. Як бухгалтер здаватиме звітність до контролюючих органів, коли інформація вся розрізнена? Бухгалтерія, звичайно, може бути на аутсорсингу і деяких власників бізнесу, на жаль, може не хвилювати які у даного фахівця можуть бути лише процеси баланси зводив. Але навіть якщо так, то як тоді організовано процес обміну документами? Наскільки швидко співробітник на стороні розбереться в імпровізованій інформаційній структурі?

Про «1С» такого сказати не можу, оскільки там уся інформація структурована та взаємопов'язана:

    Єдина база як для віддалених, так і для штатних співробітників, у якій можна працювати з усіма стандартизованими та довільними документами;
    Формування звітності до контролюючих органів відбувається на підставі даних, які вже відображені в програмі, немає необхідності відкривати безліч файлів, зводити кілька значень в одну таблицю, отримуючи підсумкові результати.
«1С», по-хорошому, – багатозадачна система, спрямовану як у типові завдання обліку, і автоматизацію всіх процесів організації залежно від сфери діяльності. Основне слово тут – система. Ніхто Вам не заважає організувати систему свого бізнесу в Excel, але навіщо винаходити велосипед, коли є рішення, які покривають практично всі потреби в оптимізації тимчасових фінансових витрат, допомагаючи систематизувати роботу?

На захист «Excel»

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

Та й потім, для перегляду вивантажених файлів з 1С все одно знадобиться Excel, так як дані в 1С зберігаються в електронних таблицях. Вам здається, що це замкнене коло? Я скажу по-іншому: «1С» та «Excel» йдуть поряд як два напарники, але у кожного з них своє призначення, вони добре доповнюють один одного, але не взаємозамінюють.

Якщо Вам потрібно систематизувати ваші справи з урахуванням законодавчої системи нашої держави, з урахуванням специфіки та спрямованості бізнесу, тим більше коли справа стосується великих обсягів інформації, то Вам потрібен «1С». Якщо Вам потрібні довільні розрахунки, побудова стратегії з нуля, візуалізація нестандартних даних з аналітики, то до послуг «Excel». Але набагато зручніше працювати з цими рішеннями одночасно.


Що в результаті - "1С" або "Excel"?

На самому старті, якщо питання саме у фінансах на автоматизацію, хоча базові програми «1С» коштують не таких вже й великих грошей, я скористався б «Excel». Величезний плюс, у тому, що дані із «зелених» таблиць без втрат можна підвантажити в «1С». Але в міру масштабування, я б радив звернути увагу на програми автоматизації бізнес-процесів. Їх багато, і не обов'язково це може бути «1С».

Перехід на «1С» можна здійснити тоді, коли Ви розумієте, що необхідно оптимізувати свої ресурси, у тому числі автоматизувати питання щодо взаємовідносин із клієнтами та постачальниками, з наглядовими органами. Загалом, налагодити свої робочі процеси, щоб підвищити ефективність бізнесу, коли обробка інформації займатиме велику кількість часу, а файли «Excel» вже не справлятимуться з обсягами даних, що вводяться.

Однак не кожна «1С» може Вам підійти, потрібно враховувати різні фактори: специфіку та сферу бізнесу, масштаби, потребу в щоденних завданнях, рутину якої необхідно звести до мінімуму. Усі індивідуально. Істина, як я вже казав, десь між "1С" та "Excel" - вона в доповненні один одного.

На цьому, мабуть, усі. Але якщо виникнуть питання, то звертайтеся, чи постараємося Вам допомогти. Успішних бізнес-процесів, колеги!

  • При виконанні обміном інформацією між контрагентами (прайс-листи, акти звіряння тощо);
  • Для полегшення роботи операторів у випадках, коли основний облік ведеться до 1С, а деяка його частина виконується у таблицях Excel;
  • При первинному наповненні бази даних.

Для виконання цієї операції можна використовувати як типовий функціонал, доступний за наявності передплати інформаційно-технологічного супроводу (ІТС), так і самостійно написані обробки, реалізовані через різні варіанти підключення. У нашій статті ми намагатимемося максимально повно розібрати всі можливі випадки та відповісти на більшість існуючих питань щодо завантаження даних з Excel у 1С.

Універсальний механізм

На дисках ІТС, а також на порталі 1С, зайшовши в меню "Технологічна підтримка" -> "Універсальні звіти та обробки", у папці "Завантаження даних з табличного документа" знаходиться відповідна обробка.

При її запуску відкривається форма (Рис.1):

Як видно з форми, вона дозволяє виконувати перенесення інформації до наступних об'єктів конфігурації:

  1. Довідник;
  2. Табличну частину документа чи довідника;
  3. Регістр відомостей.

Залежно від того, в яке положення встановлено перемикач, змінюється поле вибору об'єкта.

Таблична форма обробки заповнюється при відкритті файлу, що завантажується.

Типова обробка підтримує вивантаження з:

  • Розробленого фахівцями фірми 1С, файлів форматуmxl;
  • Листаxls, збереженого у форматіExcel 97-2003;
  • Текстовий файлtxt;
  • Таблиціdbf.

Excel файли великого обсягу можуть завантажуватися досить довго, так що, якщо передбачається, що завантаження даних може відбуватися в кілька етапів або Ви точно знаєте, що Вам доведеться кілька разів відкривати існуючий файл, для економії нервів і часу, інформацію з нього краще зберегти в mxl формат. Зробити це можна безпосередньо із форми обробки.

Важливо розуміти, що якщо у вихідному файлі існують угруповання рядків, підзаголовки та примітки, їх треба буде видалити вручну.

Тепер перейдемо до закладки «Налаштування» (Рис.2):

Рис.2

Досить часто еселівські таблиці містять шапку з усілякими реквізитами та даними (найменування друкованої форми, реквізити контрагента, дату та номер вхідного документа, імена колонок тощо), щоб виключити їх обробку програмою на формі, у реквізиті «Перший рядок табличного документа перший рядок з інформацією, що переноситься

Після вибору об'єкта метаданих, на який буде здійснюватися запис інформації, таблична частина закладки «Налаштування» буде автоматично заповнена іменами реквізитів, описом їх типів та іншою важливою інформацією. Розгляду колонок табличної частини закладки «Налаштування» слід присвятити окремий розділ.

Колонки «Налаштування»

Позначка – встановленням чи зняттям прапорця у рядку визначається, чи заповнюватиметься відповідний реквізит.

Подання реквізиту – тут прописується синонім (найменування) реквізиту метаданих, як його в конфігураторі.

Поле пошуку – якщо встановити галочку в цьому полі, обробка здійснюватиме пошук елементів за відповідним реквізитом і, у разі успіху, змінювати наявні дані, додаткова функція цього поля – захист від появи дублікатів.

Опис типів – відображає тип даних, який має той чи інший реквізит метаданих.

Режим завантаження – пропонує три варіанти на вибір (Рис.3):

Рис.3

  • Шукати – здійснюватиметься пошук відповідного елемента, у разі його відсутності може бути створено новий;
  • Встановлювати - підпорядкованим чином встановлюється певне значення;
  • Обчислювати – у цьому випадку в полі створюваного елемента буде встановлений результат обчислення виразу, вказаного в колонці «Умова зв'язку/Вираз значення».

У разі, активація поля Вираз викликає відкриття форми (Рис.4).

Рис.4

Номер колонки - поле, яке використовується для вказівки, з якої колонки еселівської таблиці необхідно брати дані для заповнення.

Значення за замовчуванням - досить часто виникає ситуація, коли в файлі, що завантажується, містяться не всі необхідні для запису елемента дані, в цьому випадку для заповнення буде проставлена ​​інформація, що міститься в даному полі.

Умова зв'язку/Вираз значення – частково ми вже торкнулися цього поля, коли розглядали поля, додатково в ньому можна вказати умову, відповідно до якої будуть синхронізовані вихідні дані.

Ось, в принципі, і вся інформація, яка доступна на закладці «Налаштування».

Щоб щоразу не вбивати багато часу на завантаження, прописування відповідностей та виразів, розробники передбачили можливість збереження варіанта налаштування у файл з розширенням mxlz.

Перевірити коректність даних можна натисканням на кнопку «Контроль заповнення» (Рис.1). Після цього можна запускати процес завантаження. Про успішне виконання процедури або нестандартні ситуації Ви будете оповіщені окремо.

Існує ще один механізм для завантаження даних з Екселя в інформаційних базах «Управління та торгівля». Він менш універсальний, ніж наведений вище спосіб, проте не вимагає підписки ІТС і міститься у типовій поставці.

Цю обробку можна знайти на закладці «Закупівлі», в меню «Сервіс», вона має назву «Завантаження цін постачальника з файлів» (Мал.5)

Рис.5

Форма обробки містить:

  1. поле вибору дати, яка вказуватиме, на який час актуальна дана ціна;
  2. Поле вибору контрагента, який надіслав свій прайс-лист;
  3. Кнопку, що дозволяє вибрати тип цін, що встановлюються;
  4. Табличну частину, яку можна заповнити даними, що завантажуються.

Цю форму можна побачити на Рис.6

Рис.6

Пояснення у верхній частині форми пояснює, як користуватись першою закладкою форми.

Після вибору контрагента (залежно від того, чи виступає він постачальником, комісіонером чи продавцем) у таблиці стануть доступні додаткові колонки для кожного типу цін.

При роботі через веб-інтерфейс, в деяких браузерах може знадобитися встановлення браузерного доповнення (Мал.7). Нам потрібно натиснути кнопку «Почати встановлення» та перезапустити наше підключення.

Рис.7

Після цього ми, використовуючи буфер обміну, зможемо переносити інформацію з однієї таблиці до іншої. Коли необхідні колонки («Артикул», «Найменування», «Ціна») будуть заповнені, ми натискаємо кнопку «Далі» і переходимо на другу сторінку (Рис.8)

Рис.8

Програма автоматично виконає пошук відповідності всередині бази даних і, якщо таких не знайдеться, запропонує варіанти усунення помилки. Зовнішній вигляд табличної частини можна контролювати за допомогою перемикача. Крім того, користувач може самостійно зіставити елементи файлу, що завантажується наявним в базі даних.

  • Реєструвати все поспіль;
  • Реєструвати тільки ті, що змінилися порівняно з наявними в базі.

У текстовому полі можна внести коментар, записаний у документі (Рис.9):

Рис.9

Після виконання обробки:

  • У довіднику "Номенклатура постачальника" буде створено відповідний елемент (якщо його не було);
  • Йому буде зіставлено елемент довідника «Номенклатура»;
  • Буде створено та проведено документ «Встановлення цін номенклатури» із зазначенням: постачальника, типу цін та дати фіксації даних.

Аналогічно працює обробка «Завантаження товарів із зовнішніх файлів».

Варіанти обробки перенесення своїми руками

Головна проблема у висмикуванні даних з екселівського файлу полягає в тому, що 1С не має вбудованого однозначного механізму його відкриття. Існує кілька варіантів підключення Excel до 1С:

  • Через Microsoft ADODB - досить швидкий спосіб, який, як правило, застосовується і для файлового і клієнт-серверного варіанту зберігання бази;
  • Через використання Microsoft Office - метод, який іноді збоїть при роботі з SQL базами, як правило, працює дещо повільніше першого способу, до того ж потрібний встановлений Office;
  • Через Libre Office - на відміну від попереднього методу безкоштовний, крім xls і xlsx форматів підтримує ще й власні таблиці, але вимагає встановленого пакета LibreOffice і деякої підготовки файлу, що завантажується (перший рядок таблиці повинен містити імена колонок).

Розглянемо докладніше різні способи та варіанти.

Через ADODB.Connection

Взагалі, ADO розшифровується як ActiveX Data Object і служить для програмного доступу до різних баз даних. Найбільша проблема при створенні будь-якого підключення до стороннього файлу (у тому числі й до еселівського) – грамотно скласти рядок підключення.

Для файлів Excel тут можливі три варіанти:

Параметри рядка підключення:

  • Provider – тут визначається драйвер;
  • Data Source – визначає ім'я файлу, який ми відкриватимемо;
  • Extended Properties – тут можна вказати: чи потрібний рядок-заголовок для таблиці (HDR = YES говорить про те, що дані будуть зчитуватися з першого рядка, HDR = NO – що з другого), чи відкривається файл тільки для читання (ReadOnly) та деякі Інші додаткові параметри.

Створивши рядок підключення, ми можемо з'єднатися із файлом, що завантажується (Рис.13)

Рис.13

Тепер ми можемо за допомогою простого запиту (Рис.14) запустити вибірку інформації із файлу, що завантажується.

В даному випадку параметр «Аркуш» визначає, з яким листом з екселівської книги нам доведеться працювати.

Набір записів, що зберігаються на аркуші, можна прочитати за допомогою об'єкта Recordset. При цьому перший запис листа можна отримати параметром BOF (початок файлу), а останній EOF (кінець файлу).

Через Excel додаток

Головна відмінність від попереднього способу – крім драйверів роботи з базами даних, на комп'ютері, де виконується з'єднання, має бути встановлений Excel. Тільки в цьому випадку ми можемо ініціалізувати програму для читання даних з таблиці (Рис 16).

Цей COM об'єкт має кілька дочірніх параметрів, але головним нам, за поточних умов завдання, є параметр WorkBooks (Рис.17).

Після ініціалізації книги необхідно визначити аркуш, з якого зчитуватимуться дані (Рис.18).

Після цього можна перебирати всередині циклів рядки і колонки таблиці файлу, що відкривається.

Декілька слів про можливі помилки

Левова частка помилок при підключенні до файлу виникає через те, що файл вже зайнятий іншою програмою. Добре, якщо в панелі завдань видно, що Excel запущено на комп'ютері, але якщо Ви або інший користувач відкрили його із зовнішньої обробки, візуально це можна визначити лише через «Диспетчер завдань», так що не забувайте перед закінченням перенесення закрити підключення:

Що стосується роботи через ADO (Рис.19);

Рис.19

  • У разі роботи з додатком (Мал. 20).

Мал. 20.

Підключення та процедуру завершення роботи з даними найкраще організовувати всередині конструкції Спроба-Виключення-КінецьСпроби, викликаючи у винятковій ситуації опис помилки. Хоча це іноді й уповільнює роботу, але значно спрощує визначення причини виникнення помилки і, зрештою, способів її усунення.

У 1С існує два способи роботи з файлами 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");

ДаніФайла = ОтриматиЗ ТимчасовогоСховища(Адреса);

ДаніФайла.Записати(Ім'яТимчасовогоФайлу);

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

Повернення ТабличнийДокумент;

 

 

Це цікаво: