Перейти к содержимому

Как открыть эксель в либре офисе

  • автор:

Работа в Microsoft Office и LibreOffice

LibreOffice can open and save documents in the Microsoft Office file formats, including Microsoft Office Open XML formats.

Открытие файла Microsoft Office

  1. Выберите команду Файл — Открыть . В LibreOffice, в диалоговом окне открытия файлов, выберите файл Microsoft Office.

. будет открываться в модуле LibreOffice

Microsoft Word, *.doc, *.docx

Microsoft Excel, *.xls, *.xlsx

Microsoft PowerPoint, *.ppt, *.pps, *.pptx

Сохранение как файл Microsoft Office

  1. Выберите команду Файл — Сохранить как .
  2. В списке поля Тип файла выберите формат файла Microsoft Office.

Сохранение документов в форматах Microsoft Office по умолчанию

  1. Choose LibreOffice — Preferences Tools — Options — Load/Save — General .
  2. В области Стандартный формат файла и параметры настройки ODF сначала выберите тип документа, а затем выберите тип файла для сохранения.

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

Открытие файлов Microsoft Office по умолчанию

  1. В Windows Explorer щёлкните правой кнопкой мыши по типу файла, который вы хотите назначить другому приложению.
  2. In the context menu, choose Open with — Choose another app .
  3. В списке приложений выберите ту программу, которая должна открывать этот тип файлов. Обязательно выберите «Всегда использовать эту программу». Если описанная операция не работает с вашей версией Microsoft Windows, откройте Справку вашей системы Microsoft Windows и прочитайте инструкции о том, как изменять ассоциации файлов.

Преобразование многих файлов Microsoft Office в формат OpenDocument

Мастер преобразования документов будет копировать и преобразовывать все файлы Microsoft Office в папке в документы LibreOffice с форматом файлов OpenDocument. Можно указать папку, которую нужно просматривать, и папку, в которой должны быть сохранены преобразованные файлы.

  1. Выберите команду Файл — Мастер — Преобразование документов , чтобы запустился мастер.

Работа в Microsoft Office и LibreOffice

За некоторыми исключениями, Microsoft Office и LibreOffice не могут запускать один и тот же код макроса. Microsoft Office использует код VBA (Visual Basic для приложений), а LibreOffice использует код Basic, основанный на среде LibreOffice API (интерфейс прикладного программирования). Несмотря на то, что язык программирования один и тот же, объекты и методы отличаются.

Значок примечания

The most recent versions of LibreOffice can run some Excel Visual Basic scripts if you enable this feature at LibreOffice — Preferences Tools — Options — Load/Save — VBA Properties .

Если макрос используется в одном из приложений и есть желание использовать те же функциональные возможности в другом приложении, необходимо отредактировать этот макрос. Для этого следует загрузить в LibreOffice макрос, которые содержатся в файлах Microsoft Office, просмотреть и отредактировать его код в интегрированной среде разработки LibreOffice Basic IDE.

При загрузке документа можно сохранить или удалить VBA-макрос.

Откройте документ Microsoft Office, который содержит код макроса VBA. Измените только обычное содержимое (текст, ячейки, графические объекты), но не редактируйте макрос. Сохраните документ с типом файла Microsoft Office. Откройте файл в Microsoft Office, и VBA-макрос будет работать, как прежде.

Можно также удалить VBA-макрос из файла Microsoft Office при загрузке или сохранении.

  1. Choose LibreOffice — Preferences Tools — Options — Load/Save — VBA Properties to set the VBA macro handling of LibreOffice.

LibreOffice резко похорошел и научился работать с файлами новейшего Microsoft Office

Состоялся релиз очередной мажорной версии офисного пакета с открытым исходным кодом LibreOffice, который может рассматриваться в качестве бесплатной альтернативы знаменитому Microsoft Office. В числе значимых изменений LibreOffice 7.0 – полноценная работа с файлами MS Office 2013/2016/2019, поддержка Google Skia и Vulkan API, а также новые наборы пиктограмм по умолчанию, которые хорошо вписываются в визуальный дизайн графических интерфейсов macOS и Windows.

Новый LibreOffice

Некоммерческая организация The Document Foundation (TDF) выпустила очередное крупное обновление LibreOffice. Седьмой по счету мажорный релиз бесплатного офисного пакета предлагает улучшенную совместимость с форматами файлов конкурирующего Microsoft Office, обновления функциональности, визуальные улучшения, а также важные изменения «под капотом», не всегда заметные пользователю.

Сборки офисного пакета для ОС Windows (x64; Windows 7 SP1 и новее), Linux (x64; rpm, deb), macOS (10.10 и более поздние) доступны для скачивания с официального сайта проекта. Там же можно найти его исходный код, а также набор средств разработки (SDK).

По данным TDF, 74% изменений в код нового выпуска внесены разработчиками, которые представляют входящие в консультативный совет организации компании, к примеру, Collabora, Red Hat и CIB. Авторство 26% правок принадлежит независимым специалистам.

Совместимость с MS Office и новым стандартом ODF

С выходом LibreOffice 7.0 у пользователей появилась возможность сохранять документы в родном для Microsoft Office 2013/2016/2019 формате docx. Предыдущие версии пакета поддерживали экспорт в режиме совместимости с Office 2007.

Кроме того, стал возможен экспорт в файлы формата xlsx (Microsoft Excel) с именами листов (sheets) длиной более 31 символа, а также содержащие элемент управления checkbox (переключатель-галочка).

newsukapuraicontheme.png

LibreOffice 7.0 для macOS получил новый набор иконок

Устранена «Ошибка недопустимого содержимого» (Invalid content error), которая могла возникать при открытии экспортированных файлов xlsx с фигурами из соответствующих галерей. Наконец, улучшен фильтр импорта/экспорта pptx (Power Point).

Новый LibreOffice поддерживает актуальную версию открытого формата документов OpenDocument 1.3 (ODF), в которую включены функции безопасности. В частности, теперь документы формата ODF можно заверять цифровой подписью, а их содержимое – шифровать с помощью ключей OpenPGP.

Поддержка Google Skia и API Vulkan

В LibreOffice 7.0 реализована возможность отрисовки текста, фигур и изображений с помощью графической библиотеки Google Skia вместо Cairo. Аппаратное ускорение теперь может осуществляться с использованием API Vulkan.

Визуальные улучшения

Добавлены новые темы значков. В macOS теперь по умолчанию будет использоваться тема Sukapura, цветовая схема которой приведена в соответствие с рекомендациями Apple.

В Windows же по умолчанию применяется тема Colibre, визуальный стиль которой теперь соответствует MS Offfice 365. Помимо нее «Отполирован» набор иконок Stifr. Удалена из дистрибутива тема Tango, однако ее по-прежнему можно установить в виде дополнения.

neocolibrestandard.png

Тема значков Colibre теперь установлена по умолчанию в Windows-версии LibreOffice

Наконец, после выполнения новой установки перемещение любых панелей инструментов в приложениях из состава LibreOffice 7.0 по умолчанию заблокировано.

Функциональные изменения

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

Большинство шаблонов презентаций Impress приведено к более актуальному соотношению сторон экрана (16:9 вместо 4:3), некоторые из них получили поддержку стилей. В Impress наравне с графическим редактором Draw и текстовым процессором Writer реализована возможность преобразования текста в полупрозрачный.

swsemitransparenttext.png

Во Writer, Draw и Impress появилась поддержка полупрозрачного текста

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

writerbookmarkdisplay.png

Реализовано выделение установленных закладок прямо в тексте

Существенно улучшен «Навигатор» во Writer, реализовано выделение установленных закладок непосредственно в тексте, а также защита закладок и полей от изменения.

Несколько слов о проекте LibreOffice

LibreOffice является кроссплатформенным и свободно распространяемым на условиях лицензии MPL 2.0 (Mozilla Public License) офисным пакетом с открытым исходным кодом.

Представляет собой бесплатный аналог Microsoft Office. В качестве базового формата для хранения файлов использует OpenDocument Format (ODF), представляющий собой альтернативу Office Open XML, используемому корпорацией Microsoft. Несмотря на это, LibreOffice полностью поддерживает открытие и сохранение документов в форматах Microsoft Office (Word, Excel, Powerpoint и др).

Айдар Гузаиров, Innostage: Пора менять отношение отрасли к Bug Bounty
Безопасность

Разработка LibreOffice началась в 2010 г. на основе кода офисного пакета OpenOffice.org (сейчас Apache OpenOffice), принадлежащего корпорации Oracle и доставшегося ей от поглощенной в 2010 г. Sun Microsystems.

Часть независимых разработчиков проекта оказалась недовольна авторитарным руководящим стилем Oracle, в результате чего приняла решение основать TDF и под ее эгидой заняться развитием форка или ответвления проекта под другим именем и в соответствии с собственной стратегией. Oracle препятствовать этому не стала.

LibreOffice, в свою очередь, также породил множество форков, в том числе за авторством российских разработчиков.

Так, в ноябре 2019 г. CNews писал об исключении одного из таких продуктов – Alteroffice – из Единого реестра отечественного ПО Минкомсвязи. По словам участника рынка, знакомого с подоплекой удаления, офисный пакет сгубили не столько сами заимствования кода из открытого ПО, сколько прямое нарушение свободной лицензии на его использование. В Alteroffice якобы отсутствовали отсылки к реальному авторству элементов. Из-за этого «Алми партнер», разработчик продукта, утратил законное право на переработку LibreOffice и выпуска на его основе продуктов со сходными свойствами, но под собственной маркой.

Как пользоваться LibreOffice

Как пользоваться LibreOffice

В операционной системе Linux вы не сможете установить пакет Microsoft Office, то есть использовать программы Word или Excel не получится. Но есть отличная альтернатива – бесплатная программа LibreOffice, включающая множество похожих продуктов. С ее помощью можно создавать таблицы, текстовые файлы, презентации, рисунки и так далее.

Я расскажу, что представляет собой это приложение, и научу им пользоваться.

Как установить LibreOffice

LibreOffice практически не отличается от аналогичного продукта корпорации Microsoft. Точнее так – все, что в Office поставляется по отдельности, тут объединено в один сервис. Libre поддерживает и использует собственные форматы, шрифты, стили и так далее. Программа полностью совместима со всеми форматами, что используются в Microsoft Office.

LibreOffice входит в стандартные репозитории основных дистрибутивов Linux. Кроме того, пакет доступен для Windows и macOS.

Как скачать LibreOffice для ОС Windows или masOS

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

Один нюанс – установка в Windows может быть с автоматической или ручной настройкой. Во втором случае вы, конечно же, сможете убрать ненужные компоненты, а также дадите разрешение или запрет на ассоциацию с некоторыми файлами Microsoft Office. Ясное дело, при автоматической установке все ассоциации будут применены по умолчанию.

Если вы используете Линукс, то установить программу можно простой командой – открываете Терминал, потом вводите вот такой запрос:

sudo apt install libreoffice

Подтверждаете запрос вводом пароля и дожидаетесь окончания скачивания. После этого программа готова к использованию!

Комьюнити теперь в Телеграм
Подпишитесь и будьте в курсе последних IT-новостей

Интерфейс LibreOffice

Что сразу хочется отметить у LibreOffice – то, что для создания документов разных форматов не приходится открывать разные приложения. После открытия просто выбираете нужный тип файла. Далее я буду описывать интерфейс программы в ОС Windows при создании текстовых файлов и таблиц.

Стартовое окно программы LibreOffice

Если говорить о текстовом редакторе, то внешне он мало чем отличается от того же Word. По стилю напоминает версию 2007 года. Здесь примерно похожее расположение инструментов, линейки, меню. Лишь часто используемые инструменты и функции у Libre перемещены в правую панель. Еще и шрифты по умолчанию стоят совсем другие, но изменить это легко.

Каковы отличия текстовых редакторов LibreOffice и Microsoft Office

При сохранении по умолчанию будет предлагаться формат Libre (ODF). Чтобы изменить его, необходимо выбрать нужный вам формат из выпадающего меню. Кстати, по устройству интерфейса версии на ОС Windows и Linux практически не отличаются, что отлично видно на скриншоте ниже (с дистрибутива Fedora).

Как выглядит интерфейс текстового редактора ЛибреОффис в дистрибутиве Fedora

Одна отличительная штука в LibreOffice мне сильно понравилась, и ее, можно сказать, нет в таком виде в Word – речь идет о навигаторе. В Либре он показывает, какие заголовки, таблицы, изображения, ссылки, гиперссылки, а также прочие составляющие есть в одном файле. Если мне надо быстро перейти к определенному изображению или комментарию, я смогу это сделать через навигатор. Ворд тоже имеет свой навигатор, но он сильно упрощен и показывает только заголовки, страницы, результаты поиска.

Как пользоваться навигатором в текстовом редакторе

Кстати, если вы хотите закрыть документ, не выходя из приложения LibreOffice, нужно нажать не на привычный крестик, а на тот, что поменьше. У Linux он имеет похожее расположение, только иногда выделяется другим цветом, поэтому вы точно не запутаетесь.

Как закрыть рабочий файл в LibreOffice, не выходя из приложения

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

Отличия табличных редакторов Microsoft Excel и LibreOffice

От себя скажу: программы Microsoft Office мне нравится тем, что рабочую панель можно откреплять и скрывать, тем самым освобождая пространство (я обычно работаю на половину экрана, мне так удобнее). В Libre же скрыть панель инструментов нельзя, только полностью убрать ее через меню «Вид». Это не очень удобно и несколько огорчает, ведь программа-то достойная.

Пока я копалась в настройках, назрел хороший вопрос – можно ли в программе одновременно создавать файлы нескольких типов? Еще как! Для этого нужно открыть меню «Файл», перейти к подпункту «Создать» и уже там выбрать подходящий формат.

Можно ли в LibreOffice одновременно работать с файлами разных форматов

Форматирование в LibreOffice

Как я уже говорила, в LibreOffice предусмотрены собственные стили форматирования документов и шрифты. Но базовые функции вроде выделения текста, изменения его цвета и выравнивания все же выделены в главном меню. Регулировать отступы и интервалы можно как с помощью линейки, так и через настройки.

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

Как применить различные стили в текстовом редакторе LibreOffice

Шаблоны для разных случаев жизни тоже предусмотрены. Для их просмотра потребуется перейти в менеджер – открыть раздел «Файл», затем перейти во вкладку «Шаблоны», выбрать «Управление шаблонами». Доступно несколько вариантов для текстовых файлов и презентаций. При желании вы сможете создать собственный шаблон и сохранить его в приложении.

Шаблоны, доступные для использования в LibreOffice

Заголовки, оглавление, библиография

С разметкой заголовков тут проблем нет. Все как в Word – нужно выделить определенное предложение и применить к нему конкретный стиль. Но это вершина айсберга, ведь суть всего процесса сводится к составлению оглавления… Сразу скажу, работать в LibreOffice с оглавлением и библиографией в разы проще.

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

Вставка оглавление и настройка параметров в текстовом редакторе

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

Добавление новых источников в базу данных библиографии в LibreOffice

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

Вставка изображений, диаграмм и таблиц

Вставлять изображения в документы, создаваемые в LibreOffice, можно несколькими способами – из буфера обмена, перемещением из папки сразу в файл, а также через меню. В последнем случае нужно будет открыть меню «Вставка», затем кликнуть по пункту «Изображение» и выбрать его в файловом менеджере.

Способы вставки изображений в текстовом редакторе

После того как изображение будет вставлено, под панелью управления появится новое меню с инструментами для изменения параметров изображения. Так, можно установить обтекание текста, центрирование, расположение на странице, а также обрамление и положение. При желании вы сможете и фильтр применить.

Редактирование изображения через специальную панель инструментов

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

Вставка новой таблицы и изменение ее стиля

После нажатия на кнопку «Вставить» новая таблица отобразится на странице. Ниже появится панель инструментов для работы с ней, с помощью которой можно добавлять и удалять строки, менять стили, а также применять формулы.

Панель инструментов для таблицы в текстовом редакторе LibreOffice

К сожалению, в текстовом редакторе LibreOffice (как и в Word) не предусмотрена возможность создания диаграммы на основе данных из готовой таблицы. Поэтому, если вы хотите создать диаграмму, лучше сначала создать ее, а затем отредактировать значения. Для начала потребуется перейти в раздел «Вставка», затем выбрать одноименный пункт. Диаграмма будет с рандомными значениями – чтобы изменить их, следует нажать на пункт «Таблица данных» в меню. Меняете по необходимости все значения, цветовые схемы, наименования элементов и применяете изменения.

Как создать и редактировать диаграмму в LibreOffice

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

Как поменять оформление и тип готовой диаграммы

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

Как создать диаграмму в табличном редакторе LibreOffice

Заключение

Может показаться, что LibreOffice является копией офисного пакета Microsoft. Отчасти это правда, но в этой программе есть куча своих функций, которые в Word или Excel не найти (о чем я говорила выше). Тем, кто переходит на это приложение с Microsoft Office, интерфейс сначала может показаться не самым удобным, но вы быстро к нему привыкните.

Как прочитать файл Excel,если установлен Libre Office

Написана обработка печати этикеток для склада с товарной накладной,которая приходит от поставщика в формате Excel. В режиме тестирования все прошло успешно.
А при сдаче программы на склад выяснилось,что там не установлен Excel(нет лицензии),а установлен Libre Office.

И программа навернулась при попытке прочитать файл с расширением xls.
Вот фрагментф кода:
По кнопке открыть файл работает:
Процедура КоманднаяПанельТабличногоДокументаОткрыть(Кнопка)
ДиалогВыбораФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);

ДиалогВыбораФайла.Заголовок = «Прочитать табличный документ из файла»;
ДиалогВыбораФайла.Фильтр = «Лист Excel (*.xls)|*.xls|Табличный документ (*.mxl)|*.mxl|Текстовый документ (*.txt)|*.txt|dBase III (*.dbf)|*.dbf|»;
Если ДиалогВыбораФайла.Выбрать() Тогда

ТабличныйДокумент1 = ЭлементыФормы.ТабличныйДокумент1;
ФайлНаДиске = Новый Файл(ДиалогВыбораФайла.ПолноеИмяФайла);
Если нРег(ФайлНаДиске.Расширение) = «.xls» Тогда
ПрочитатьТабличныйДокументИзExcel(ТабличныйДокумент1,ДиалогВыбораФайла.ПолноеИмяФайла);
==========================

Функция ПрочитатьТабличныйДокументИзExcel(ТабличныйДокумент, ИмяФайла, НомерЛистаExcel = 1) Экспорт
xlLastCell = 11;

ВыбФайл = Новый Файл(ИмяФайла);
Если НЕ ВыбФайл.Существует() Тогда
Сообщить(«Файл не существует!»);
Возврат Ложь;
КонецЕсли;

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

И здесь программа ломается с ругательством:

: Ошибка при вызове конструктора (COMОбъект): Недопустимая строка с указанием класса
Excel = Новый COMОбъект(«Excel.Application»);
по причине:
Недопустимая строка с указанием класса

Как же выйти из этой ситуации? Не хотелось бы ломать отработанную схему. Может другой COMОбьект надо подключать?

По теме из базы знаний

  • Загрузка из EXCEL в 1С. com.sun.star.ServiceManager (LibreOffice/OpenOffice)
  • Загрузка из EXCEL в 1С. Список листов EXCEL
  • Дата
  • Дата
  • Рейтинг всех уровней
  • Рейтинг 1-го уровня
  • Древо развёрнутое
  • Древо свернутое

Свернуть все
2. Guyer 19 29.11.12 09:41 Сейчас в теме

У меня есть обработка, читает Excel при установленном OpenOffice
В Модуле обработки

Процедура LoadDocument(HiddenMode, FileName) Экспорт
Если ПустаяСтрока(FileName) = 1 Тогда
FilePath = «private:factory/scalc»;
Иначе
FilePath = convertToURL(FileName);
КонецЕсли;

MyStruct = ServiceManager.Bridge_GetStruct(«com.sun.star.beans.PropertyValue»);
VariantArray = Новый COMSafeArray(«VT_VARIANT», 1);
MyStruct.name = «Hidden»;
MyStruct.value = HiddenMode;
VariantArray.SetValue(0, MyStruct);

Document = Desktop.LoadComponentFromURL(FilePath, «_hidden», 0, VariantArray);
КонецПроцедуры // LoadDocument()

Процедура CloseDocument() Экспорт
Document.close(-1);
КонецПроцедуры

Функция convertToURL(FileName)
URL = СтрЗаменить(FileName,» «,»%20»);
URL = СтрЗаменить(URL,»\»,»/»);

Возврат «file://localhost/» + URL;
КонецФункции // convertToURL()

ServiceManager = Новый COMОбъект(«com.sun.star.ServiceManager»);
Desktop = ServiceManager.createInstance(«com.sun.star.frame.Desktop»);

В Форме обработки

Процедура КнопкаВыполнитьНажатие(Кнопка)
// Вставить содержимое обработчика.

LoadDocument(1, ИмяФайла);
Sheets = Document.getSheets();
Sheet = Sheets.getByName(«Лист1»);

Sh = Sheet.getCellRangeByName(«A1:Z600»);
//Здесь Мой Диапазон
НС = 0;
Док = Документы.ПоступлениеТоваровУслуг.СоздатьДокумент();
Док.Дата = ДатаДок;
Док.Записать();
ЗаполнениеДокументов.ЗаполнитьШапкуДокумента(Док.ЭтотОбъект, глТекущийПользователь, мВалютаРегламентированногоУчета, «Покупка»);

Док.Организация = Организация;
Док.Контрагент = Поставщик;
Док.ДоговорКонтрагента = Договор;
Док.СкладОрдер = Склад;
Док.ДатаВходящегоДокумента = ДатаДок;
Док.Дата = ДатаДок;
Док.НомерВходящегоДокумента = НомерДок;
Док.ТипЦен = ТипЦен;
Док.РегистрироватьЦеныПоставщика = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глТекущийПользователь, «РегистрироватьЦеныПоставщика»);
Док.УстановитьНовыйНомер();

Док.ОтражатьВУправленческомУчете = Истина;
Док.ОтражатьВУправленческомУчете = Истина;
Док.ОтражатьВНалоговомУчете = Истина;

Для НС = НомерПервойСтроки По НомерПоследнейСтроки Цикл

ЯчТовар = Sh.getCellByPosition(НомерСтТовар-1, НС-1);
ЯчТоварНаим = Sh.getCellByPosition(НомерСтНаим-1, НС-1);
ЯчКоличество = Sh.getCellByPosition(НомерСтКоличество-1, НС-1);
ЯчСумма = Sh.getCellByPosition(НомерСтСумма-1, НС-1);
ЯчНДС = Sh.getCellByPosition(НомерСтНДС-1, НС-1);

ЗначИдТовара = СтрЗаменить(Формат(ЯчТовар.String,»ЧРГ = ‘+'»),»+»,»»);
ЗначНаимТовара = Строка(ЯчТоварНаим.String);
НайденнаяСсылка = НайтиНоменклатуру(ЗначИдТовара); // Справочники.Номенклатура.НайтиПоРеквизиту(«Артикул»,ЗначИдТовара);
если НайденнаяСсылка.Пустая() ТОгда
// пробуем взять артикул из квадратных скобок наименования
Стр = ЗначНаимТовара;
ПозОткрСкобки = Найти(Стр,»[«);
ПозЗакрСкобки = Найти(Стр,»]»);
Если (ПозОткрСкобки>0) И (ПозЗакрСкобки > 0) И (ПозЗакрСкобки > ПозОткрСкобки) Тогда
Артикул2 = Сред(Стр,ПозОткрСкобки+1,(ПозЗакрСкобки-ПозОткрСкобки-1));
НайденнаяСсылка = НайтиНоменклатуру(Артикул2); //Справочники.Номенклатура.НайтиПоРеквизиту(«Артикул»,Артикул2);
ЗначИдТовара = Артикул2;
КонецЕсли;
КонецЕсли;

если НайденнаяСсылка.Пустая() ТОгда
ТекстВопроса = «Артикул: «+ЗначИдТовара+», наименование «+ЗначНаимТовара+»:
|товар не найден в справочнике Номенклатура.
|Создать новый элемент? ДА — создать, НЕТ — выбрать из справочника.
|Если элемент не будет выбран, элемент будет создан автоматически.»;
если Вопрос(ТекстВопроса,РежимДиалогаВопрос.ДаНет )=КодВозвратаДиалога.Нет Тогда
// выбираем
ВвестиЗначение(НайденнаяСсылка,»»+ЗначИдТовара+» «+ЗначНаимТовара+»?»,тип(«СправочникСсылка.Номенклатура»));
КонецЕсли;

если НайденнаяСсылка.Пустая() ТОгда
СпрНоменклатура = Справочники.Номенклатура.СоздатьЭлемент();
СпрНоменклатура.Наименование = ЗначНаимТовара;
СпрНоменклатура.НаименованиеПолное = ЗначНаимТовара;
СпрНоменклатура.Артикул = ЗначИдТовара;
СпрНоменклатура.БазоваяЕдиницаИзмерения = Справочники.КлассификаторЕдиницИзмерения.НайтиПоКоду(1);
СпрНоменклатура.СтавкаНДС = Перечисления.СтавкиНДС.НДС18;
СпрНоменклатура.Записать();
ЕХО = Справочники.ЕдиницыИзмерения.СоздатьЭлемент();
ЕХО.Владелец = СпрНоменклатура.Ссылка;
ЕХО.Коэффициент = 1;
ЕХО.ЕдиницаПоКлассификатору = СпрНоменклатура.БазоваяЕдиницаИзмерения;
ЕХО.Наименование = ЕХО.ЕдиницаПоКлассификатору.Наименование;
ЕХО.Записать();
СпрНоменклатура.ЕдиницаХраненияОстатков = ЕХО.Ссылка;
СпрНоменклатура.Записать();
НайденнаяСсылка = СпрНоменклатура.Ссылка;
КонецЕсли;
Иначе
Если (НайденнаяСсылка.Родитель.Наименование=»01″) ИЛИ
(НайденнаяСсылка.Родитель.Наименование=»02″) ИЛИ
(НайденнаяСсылка.Родитель.Наименование=»03″) ИЛИ
(НайденнаяСсылка.Родитель.Наименование=»04″) ИЛИ
(НайденнаяСсылка.Родитель.Наименование=»05″) ИЛИ
(НайденнаяСсылка.Родитель.Наименование=»06″) ИЛИ
(НайденнаяСсылка.Родитель.Наименование=»07″) ИЛИ
(НайденнаяСсылка.Родитель.Наименование=»08″) ИЛИ
(НайденнаяСсылка.Родитель.Наименование=»09″) ИЛИ
ЛЕВ(НайденнаяСсылка.Родитель.Наименование,2)=»10″ ИЛИ
ЛЕВ(НайденнаяСсылка.Родитель.Наименование,2)=»11″ ИЛИ
(НайденнаяСсылка.Родитель.Наименование=»12″) ИЛИ
(НайденнаяСсылка.Родитель.Наименование=»Детское питание») ИЛИ
(НайденнаяСсылка.Родитель.Наименование=»Каша молочная») ИЛИ
(НайденнаяСсылка.Родитель.Наименование=»15″) ИЛИ
(НайденнаяСсылка.Родитель.Наименование=»16″) ИЛИ
(НайденнаяСсылка.Родитель.Наименование=»17″) ИЛИ
(НайденнаяСсылка.Родитель.Наименование=»19″) ИЛИ
(НайденнаяСсылка.Родитель.Наименование=»18″)
Тогда
Иначе
ТекстВопроса = ЗначНаимТовара+»
|совпадает с
|»+НайденнаяСсылка+»
|
|Да — Использовать найденное, НЕТ — выбрать из справочника.
|Если элемент не будет выбран, элемент будет выбран автоматически.»;
если Вопрос(ТекстВопроса,РежимДиалогаВопрос.ДаНет )=КодВозвратаДиалога.Нет Тогда
// выбираем
ВвестиЗначение(НайденнаяСсылка,»»+ЗначИдТовара+» «+ЗначНаимТовара+»?»,тип(«СправочникСсылка.Номенклатура»));
КонецЕсли;
КонецЕсли;
КонецЕсли;

// сертификат и № КУ
ЗначСертификат =0;
ЗначКУ = 0;
ЗначДР = 0;
ЗначДВ = 0;

если НомерСтолбцаСертификат>0 Тогда
ЯчСертификат = Sh.getCellByPosition(НомерСтолбцаСертификат-1, НС-1);
ЗначСертификат = Строка(ЯчСертификат.String);
КонецЕсли;
если НомерСтолбцаКУ >0 Тогда
ЯчКУ = Sh.getCellByPosition(НомерСтолбцаКУ-1, НС-1);
ЗначКУ = Строка(ЯчКУ.String);
КонецЕсли;
если НомерСтолбцаДР > 0 Тогда
ЯчДР = Sh.getCellByPosition(НомерСтолбцаДР-1, НС-1);
ЗначДР = Строка(ЯчДР.String);
КонецЕсли;

если НомерСтолбцаДВ > 0 Тогда
ЯчДВ = Sh.getCellByPosition(НомерСтолбцаДВ-1, НС-1);
ЗначДВ = Строка(ЯчДВ.String);
КонецЕсли;

Набор = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьНаборЗаписей();
Набор.Отбор.Объект.Установить(НайденнаяСсылка);
// сертификат
если ЗначениеЗаполнено(ЗначСертификат) Тогда
спрЗначСертификат = Справочники.ЗначенияСвойствОбъектов.НайтиПоНаименованию(ЗначСертификат);
СсылкаСертификат = спрЗначСертификат.Ссылка;
если спрЗначСертификат.Пустая() Тогда
спрЗначСертификат = Справочники.ЗначенияСвойствОбъектов.СоздатьЭлемент();
спрЗначСертификат.Владелец = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоКоду(«00112»);
спрЗначСертификат.Наименование = ЗначСертификат;
спрЗначСертификат.Записать();
СсылкаСертификат = спрЗначСертификат.Ссылка;
Конецесли;
тСвойство = глПоНаименованию(«СвойстваОбъектов»,»Сертификат»);
Запись = лкПолучитьЗаписьНабора(Набор, НайденнаяСсылка, тСвойство);//Набор.Добавить();
Запись.Объект = НайденнаяСсылка;
Запись.Свойство = тСвойство;//глПоНаименованию(«СвойстваОбъектов»,»Сертификат»);
Запись.Значение = СсылкаСертификат;
Набор.Записать();
КонецЕсли;

// КУ
если ЗначениеЗаполнено(ЗначКУ) Тогда
тСвойство = глПоНаименованию(«СвойстваОбъектов»,»Качественное удостоверение»);
Запись = лкПолучитьЗаписьНабора(Набор, НайденнаяСсылка, тСвойство);//Набор.Добавить();
Запись.Объект = НайденнаяСсылка;
Запись.Свойство = тСвойство;
Запись.Значение = ЗначКУ;
Набор.Записать();
КонецЕсли;

// Дата реализации
если ЗначениеЗаполнено(ЗначДР) Тогда
тСвойство = глПоНаименованию(«СвойстваОбъектов»,»Дата реализации»);
Запись = лкПолучитьЗаписьНабора(Набор, НайденнаяСсылка, тСвойство);//Набор.Добавить();
Запись.Объект = НайденнаяСсылка;
Запись.Свойство = тСвойство;//глПоНаименованию(«СвойстваОбъектов»,»Дата реализации»);
Запись.Значение = ЗначДР;
Набор.Записать();
КонецЕсли;

// Дата выработки
если ЗначениеЗаполнено(ЗначДВ) Тогда
тСвойство = глПоНаименованию(«СвойстваОбъектов»,»Дата выработки»);
Запись = лкПолучитьЗаписьНабора(Набор, НайденнаяСсылка, тСвойство);//Набор.Добавить();
Запись.Объект = НайденнаяСсылка;
Запись.Свойство = тСвойство;
Запись.Значение = ЗначДВ;
Набор.Записать();
КонецЕсли;

ЗначКолво = Число(ЯчКоличество.Value);
ЗначСумма = ЯчСумма.Value;
ЗначНДС = ЯчНДС.Value;

СтрокаТабЧасти = Док.Товары.Добавить();
СтрокаТабЧасти.Номенклатура = НайденнаяСсылка;
СтрокаТабЧасти.ЕдиницаИзмерения = НайденнаяСсылка.ЕдиницаХраненияОстатков;
СтрокаТабЧасти.ЕдиницаИзмеренияМест = НайденнаяСсылка.ЕдиницаХраненияОстатков;
СтрокаТабЧасти.Коэффициент = НайденнаяСсылка.ЕдиницаХраненияОстатков.Коэффициент;
СтрокаТабЧасти.Количество = ЗначКолво;
СтрокаТабЧасти.Сумма = ЗначСумма;
СтрокаТабЧасти.СуммаНДС = ЗначНДС;
СтрокаТабЧасти.СтавкаНДС = НайденнаяСсылка.СтавкаНДС;
СтрокаТабЧасти.Склад = Склад;
ОбработкаТабличныхЧастей.ПриИзмененииСуммыТабЧасти(СтрокаТабЧасти, Док.ЭтотОбъект, глТекущийПользователь);
Сообщить(«Загружена строка «+СтрокаТабЧасти.НомерСтроки);
КонецЦикла;

Док.Записать();
Сообщить(«Записан документ «+Док.Ссылка);
CloseDocument();
КонецПроцедуры

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *