Универсальная загрузка данных формата Excel

Публикация № 1422802

Разработка - Обмен данными 1С - Загрузка и выгрузка в Excel

Excel com ТабличныйДокумент Загрузка чтение данных

Универсальная обработка по чтению/импорту данных формата Excel в базы 1С.

 

В данной публикации приведено описание механизма загрузки данных в 1С из "двумерного формата" Excel, а также ряд примеров использования механизма.

Если лень читать длинное описание и смотреть унылые картинки: код можно взять здесь: https://github.com/artkor83/-ImportExcelOnec. И в дальнейшем разбираться самостоятельно: код полностью открыт.

 

Оглавление

Введение

Получение  данных

Получение данных: общее описание, алгоритмы

Получение данных: Порядок работы

Получение данных из листа excel

Получение данных из макета (буфера)

Режим чтения макета из внешнего файла

Режим чтения макета из буфера ячеек

Дополнительные команды

Дополнительные команды: Номера колонок: чтение наименований из файла

Дополнительные команды: Номера колонок: выбор типов

Дополнительные команды: Номера колонок: определение типов

 

Загрузка данных

Загрузка данных: Внешние файлы: обработки, макеты

Загрузка данных: Алгоритмы "Перед загрузкой", "Загрузка данных строки"

Загрузка данных: буфер вспомогательного кода

 

Примеры загрузки данных

Построчная загрузка данных: пример

Построчная загрузка данных: редактирование алгоритмов

Построчная загрузка данных: Загрузка данных в базу

Общая (непострочная) загрузка данных: пример

Общая (непострочная) загрузка данных:редактирование алгоритмов

Общая (непострочная) загрузка данных:загрузка данных в базу

 

Отладка алгоритмов

Отладка построчной загрузки

Отладка общей (непострочной) загрузки.

 

Сохранение / загрузка настроек

Интерфейс сохранения, краткое описание

Примеры файлов настроек, рекомендации

 

 

Введение.

В процессе работы очень часто встают задачи по импорту информации в базы 1С (далее БД1С) из различных excel-файлов. Наиболее распространенные варианты:

  • импорт начальных остатков,

  • прайс-листы различных видов и модификаций

  • сегменты номенклатуры, клиентов

  • прочее: справочники, документы, регистры сведений различного назначения

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

 

 

На практике все неумолимо сводится к написанию программного кода, где на входе поступает некий объект "ТаблицаЗначений", полученный из Excel, на выходе "все что угодно":

  • Набор элементов ссылочного типа с фиксированными полями. Пример: элементы типа "Справочник.Контрагенты" с видом(физическое лицо/ юридическое лицо), зависящим от длины ИНН из файла excel

  • Набор элементов ссылочного типа нескольких метаданных. Пример: элементы типа Справочник.Сотрудники и "приклеенные" к ним физические лица: Справочник.ФизическиеЛица. При этом не забываем, что наименование физ.лица вовсе не единственное "обязательное поле": необходимо еще указать ФИО, разбивку по реквизитам "Фамилия Имя Отчество".

  • Документ по вводу начальных остатков: тут комментарии излишни. Вариантов "видов операций по вводу остатков" множество в базе формата УТ11, не говоря про ERP ;) И все их нужно как-то обыграть.

В противном случае столкнемся с недовольством пользователей в процессе работы с БД1С, которые никак не могут отредактировать карточку физ.лица. Система ругается на незаполненность полей, либо не получается исправить циферки при вводе начальных остатков.

 

 

При записи объекта система зачастую ругается на поля которые и на форме-то не видны (являются скрытыми), пользователи в ярости, разработчик "на измене".

При импорте данных через формат excel процесс требует значительных программных доработок. Целесообразно под рукой иметь удобный механизм для чтения/обработки/загрузки данных...

Загрузка обработками "на коленке"

Это - плохой путь: не делайте так.

Путем практического опыта с различными загрузками из excel вначале все сводилось к следующему алгоритму:

  1. Есть заготовленный шаблон внешней обработки, который через com читает excel-файл и в нужной закладке собирает данные. Пример кода ниже, образцов можно нагуглить великое множество:

    Excel         = Новый COMОбъект("Excel.Application");
    Excel.Visible = 0;
    Excel.DisplayAlerts = 0;
    Excel.WorkBooks.Open(ИмяФайлаЗагрузки);
  2. Каждая прочитанная строка преобразуется в массив строковых ячеек, которые имеют свое назначение и в дальнейшем используются для загрузки данных

  3. Набор данных выводится на форму в таблицу значений. Как правило, случаются пользовательские ошибки в файле excel. Например:

    • вместо числового поля ввели какую-то непонятную "чудо-строку", которая в момент преобразования значения в число дала ошибку и тем самым файл даже не дочитался

    • ключевое значение типа "артикул номенклатуры" введен в файле неверно - тем самым имеем множество пустых строк товаров, по которым заполнены показатели, а "всего-то нолик вначале забыли добавить до длины=10 символов"

    • файл excel модифицировался: добавили 2 колонки данных в листе excel между "номенклатура" и "цена", а программисту сказать забыли ;)

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

    Процедура ЗагрузитьДанные(ТаблицаЗначенийИзExcel)

    Для каждого ДанныеСтроки Из ТаблицаДанныхExcel Цикл R03; // алгоритм обработки загрузки

    КонецЦикла;

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

    никак не удаестся обойтись.

    Требуется множество процедур и функций на каждый конкретный случай.

  5. Итог: хаос из непонятных обработок чтения-загрузки, файлов-шаблонов excel различного вида "Штатнаярасстановка.xls, Штатнаярасстановка-02.xls, Штатнаярасстановка-03.xls, Штатнаярасстановка-03безОшибокФИО.xls, Штатнаярасстановка-03СНумерацией.xls, Штатная_расстановка-03Сбантиком.xls" и на каждый своя обработка загрузки... Решено было сделать хорошие вещи (ну хотя-бы попытаться).

Получение данных.

 

Общий интерфейс.

Пришли к выводу, что для чтения данных нужно: сам файл excel, расположенный на диске, закладка для чтения данных, интервал чтения строк данных, и кнопка "Получить данные" для вывода данных в ТЗ на форму:

 

 

Кроме этого требуется набор колонок с настройкой типов:

  • Нужна таблица настроек колонок вида "Имя колонки, номер колонки, Тип значения"

  • На форме обработки их нужно как-то сохранять, иначе будет "грустно" при каждом открытии формы заново их вводить.

  • Желательно сохранять их в какой-нибудь внешний файл и впоследствии читать из файла в другой копии БД1С.

В итоге решено было сделать такие настройки в виде таблицы на форме:

 

 

Пока нужно знать следующее: есть таблица имен колонок, соотствествие номеру колонки из excel "№ кол" и выбранный "Тип значения" колонки. Назначение команд формы "Прочитать колонки по номеру строки", "Поиск типов" будет описано ниже.

 

По команде "Получить данные" производится чтение данных из указанного диапазона строк excel-файла (это очевидно). Следует выделить 3 режима получения:

  • 1 лист excel

  • несколько листов excel

  • режим "по макету": вставка данных из буфера в табличное поле на форме

Получение данных: общее описание, алгоритмы

По команде "Получить данные" производится чтение данных из указанного диапазона строк excel-файла (это очевидно), после этого полученные данные требуется преобразовать в типы, введенные на закладке "Номера колонок".

Если тип примитивный (Число,Строка,Дата,Булево) - обработка автоматически преобразует строковое значение ячейки в полученный тип. Для прочих типов:

  • Справочник, план видов характеристик - "НайтиПоНаименованию"

  • План счетов, план видов расчета: "НайтиПоКоду"

  • Документ: "НайтиПоНомеру"

  • Перечисление: поиск по синониму или по имени реквизита. Для примера "ПеречислениеСсылка.ВидыЗанятости" по строке "Основное место работы" или "ОсновноеМестоРаботы" вернет элемент перечисления с данным синонимом.

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

Получение данных: Порядок работы

  1. Переходим на закладку "Алгоритмы", редактируем поле "Поиск данных строки":

  1. В примере текст кода уже заполнен, предположим что "его нет". нажимаем кнопку "Поиск данных строки". В левой части подсказка кода (не редактируется), в правой - сам код: при желании можно изменять:

 

Наиболее "интересные" переменные:

  • ТекКолонкаЗначение - Значение реквизита (строкой). Это та строка, которая получена из ячейки excel - то есть значение колонки. Его можно преобразовывать к нужному типу программно.

  • ТекКолонкаЗначениеЗапись - !!! Значение реквизита ДЛЯ ЗАПИСИ. Это как раз то, что будет подставлено в колонку данных на форме 1С, то есть значение "ТекКолонкаЗначение", преобразованное в нужный тип.

    ПРИМЕЧАНИЕ: если преобразование по умолчанию удалось (например найден справочник по наименованию, или перечисление по синониму), то в данной переменной уже будет преобразованное значение и его можно программно использовать.

  • ТекОтказ: признак отказа от вывода строки. Если какие-то числовое значение в строке не заполнено, или строковое не обнаружено - то возможно, что эта строка вообще к загрузке не нужна. К примеру ФИО сотрудника пустое, оклад не указан итд..

  • Прочие функции: набор вспомогательных функций для преобразования данных из строки (бывает полезно).

  • Фиксированные значения. Можно задать фиксированные параметры данных на специальной закладке. Дабы не искать определенные статические параметры через "НайтиПоКоду", "НайтиПоНаименованию" (это нехорошо) предусмотрена спец. закладка:

 

Для примера подстановка организации в каждую колонку данных выглядит так:

 

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

    Пример:

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

    Для примера допишем код, чтобы строки файла, в которых ФИО сотрудника не заполнено, просто не выводились:

  • Для сохранения кода нажимаем "Принять"

  • Также есть 2 вспомогательные кнопки "Сохранить, Восстановить" для импорта/экспорта кода во внешний текстовый файл, но про них позже.

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

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

     

  2. Чтение большого объема данных. В случае, если файл excel имеет большой объем - будет показан "прогресс бар" с процессом вывода на форму. При желании можно приостановить процесс, нажав Ctrl-break:

Если приостановить чтение - то будет выведена только часть данных, которые "удалось прочитать":

 

Получение данных из листа excel

Самый простой режим: требует указания:

  • Файл excel: можно выбрать через "диалог выбора файла"

  • Лист excel: выбирается из списка, который заполнится после выбора файла

  • интервал строк чтения данных.

Получение данных из нескольких листов excel

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

  • Файл excel: можно выбрать через "диалог выбора файла"

  • Список листов excel: выбирается из списка, который заполнится после выбора файла: откроется "список с галочками"

  • интервал строк чтения данных: как правило каждый лист содержит заголовок, а сами данные начинаются с единого номера строк .

ПРИМЕЧАНИЕ: в алгоритме "поиск данных строки" бывает необходимо прописать параметр вида "ИмяЛиста", в частности на примере чтения штатного расписания каждый лист - это организация.

Выбираем набор листов в списке, нажимаем "Получить данные".

Получение данных из макета (буфера)

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

Режим чтения макета из внешнего файла

Указываем:

  • Имя файла загрузки: можно выбрать из диалога выбора файла с диска (формат mxl), можно

  • интервал строк чтения данных

После выбора файла имеем:

Далее по интервалу строк производим чтение данных в закладку "Вывод данных"

Режим чтения макета из буфера ячеек

Указываем:

  • Текст ячеек на закладке "макет данных" методом "копи-пасты": можно для тестирования взять из файла excel

  • Имя файла загрузки: можно выбрать из диалога выбора файла с диска (формат mxl), можно в табличном поле сделать "ctrl-C ctrl-V"

  • интервал строк чтения данных

Далее по интервалу строк производим чтение данных в закладку "Вывод данных" (аналогично подбору файла с диска). По итогу получится нечто вроде:

 

Дополнительные команды

Дополнительные команды: Номера колонок: чтение наименований из файла

Часто бывает, что в листе excel заголовки колонок стоят вверху листа: на 1-й строке (либо чуть ниже). Дабы облегчить жизнь разработчику решено предусмотреть режим чтения колонок по номеру строки: чтобы не вводить их в таблице.

В режиме excel: нажимаем кнопку на закладке "Номера колонок" и вводим число (номер строки шапки):

В таблицу будут считаны колонки по номеру строки:

Остается только задать нужные типы колонок:

Аналогично в режиме "По макету": в панели инструментов есть аналогичная команда:

 

Дополнительные команды: Номера колонок: выбор типов

По сути самое "противное" во всей работе - поиск нужных типов колонок в огромном "безликом" списке всех типов. Сделаны следующие полезные вещи:

  • Придуман специальный удобный диалог типов:

  • В диалоге есть поиск типа по подстроке:

  • Значение типа: редактирование. Иногда чтобы не "копаться" в диалоге подбора типов бывает удобно просто ввести тип строкой: в случае когда мы знаем точное представление типа, либо хотим "скопипастить" из типа другой колонки.

    Например, задан тип "Число (15,2)" в одной из колонок: просто берем его в буфер ОС и копируем в другую колонку с таким же типом:

  • Автоподбор типа по тексту ввода. При желании можно не вызывать диалог типов, а просто писать название в ячейке таблицы: будет отобрано 1-е 10 вхождений строки:

На примере видно, что есть справочник "Должности": и он-то нам как раз и нужен, нет необходимости вызывать диалог по кнопке "..." справа в поле.

Дополнительные команды: Номера колонок: определение типов

Также придумана специальная команда "Поиск типов". В случае с конфигурациями типа "ЗУП, ERP" имеет место множество типов данных: например перечисления с одинаковым назначением, похожие справочники, которые меняются от версии к версии на "такие же, но более актуальные".

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

ПРИМЕР:

Мы хотим разыскать типы для всех колонок, которые остались неопределенными. Нажимаем команду "Поиск типов":

В списке остаются только те колонки, по которым тип еще не выбран, но при желании можно отметить и другие:

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

При нажатии "Начать поиск" выведется окно выбора метаданных. Отмечаем "все регистры сведений" и начинаем поиск совпадений по синониму:

Спустя 5 секунд система найдет, что реквизит "вид занятости" есть в одном из регистров базы данных, измерений, ресурсов с наименованием "График" в регистрах сведений нет:

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

 

Чтение данных: окончание

В целом по чтению данных все описано, других особенностей нет. Остается добавить, что прочитанные данные сохраняются в настройки "ХранилищеСистемныхНастроек" при закрытии формы обработки. Также предусмотрено сохранение в специальный каталог, но это будет отдельно описано в разделе "Сохранение / загрузка настроек".

 

Загрузка данных

После того, как данные прочитаны в таблицу формы можно произвести загрузку данных. Для загрузки подразумевается использование специфических обработок, которые соlержат алгоритмы, предназначенные для преобразования данных, полученных из таблицы-excel. Но в целом, если алгоритм загрузки простой и уместится в 1 процедуру - можно обходиться и без внешних обработок, а просто писать/ сохранять код в режиме предприятия.

Загрузка данных: Внешние файлы: обработки, макеты

Предусмотрены специальные внешние файлы для загрузки данных. Различаем 2 вида:

а) "Внешняя обработка" - это файл EPF обработчик загрузки таблицы данных,

б) "Макет mxl": файлы печатных макетов. Основное название: печать различных отчетов по загрузке, а также можно использовать как внешний табличный документ, с которого можно брать фиксированные данные для загрузки (бывает весьма удобно, дабы не создавать большие массивы, структуры).

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

Для добавления нового файла обработки используем кнопку подбора файла:

  • Табличные макеты. Придуманы как правило для печати отчета по загруженным данным, но в целом можно использовать и для других алгоритмических целей. Располагается также на закладке "Внешние файлы", Установка файлов в закладку осуществляется по кнопке выбора: открывается диалог подбора файла - далее "вопрос техники":

  • Фиксированные значения: уже ранее были описаны: могут применяться как при получении, так и для загрузки данных:

     

    Загрузка данных: Алгоритмы "Перед загрузкой", "Загрузка данных строки"

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

Загрузка данных: буфер вспомогательного кода

При редактировании алгоритма загрузки предусмотрен специальный вспомогательный код, дабы облегчить работу программиста.

Как видно из описания вверху текста: код предназначен для копирования во внешнюю обработку загрузки: копируем, раскомментируем...

Рассмотрим составляющие процедуры по порядку:

  • Макеты из закладки "Внешние файлы"

Содержит список данных с закладки "Внешние файлы" вида "макет mxl":

Имеет тип "ТабличныйДокумент"

  • Значения параметров.

    Здесь также все прозрачно - см закладку "Параметры".

    • Отчет по загрузке, шаблон для формирования печати

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

    ВАЖНО: Есть следующий код:

    ПараметрыЗагрузкиДанных.ОтчетыПоЗагрузке.Вставить("Отчет по загрузке данных", ТабДок);

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

    • Прочее. Добавлена свертка колонок: в 1 очередь чтобы имена колонок не вспоминать в процессе написания обработки загрузки; признак отказа от загрузки

 

Загрузка данных: дополнительные параметры

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

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

Зададим шаг загрузки: видеть "прогресс-бар" в процессе построчной загрузки данных, чтобы видеть "как идет процесс".

На примере шаг=10, это значит, что через каждые 10 загруженных строк будет взята паза и на клиентской форме изменен шаг прогресс-бара загрузки.

 

 

Примеры загрузки данных

 

Все примеры можно взять в репозитории в папочке "\ImportExcelOnec\tests". И использовать в тестовой базе данных ЗУП 3.1

 

Построчная загрузка данных: пример

Рассмотрим пример создания/использования кода загрузки. Для примера есть таблица с данными по сотрудникам: ФИО, должности, ставки итд... :

Задача состоит в том, чтобы создать набор данных: сотрудников, физ.лица к ним, штатное расписание, документы приема на работу...

 

Перед загрузкой данных: редактирование кода.

В данном алгоритме следует создать обработку загрузки и привязать ее к алгоритму. В данном случае она однозначно понадобится, так как алгоритм явно не умещается в 1 процедуру: сразу представляем, что штатное расписание нужно упаковать в отдельную процедуру, заполнение приема на работу в другие итд...

Переходим на закладку "алгоритмы", нажимаем кнопку открытия алгоритма:

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

Как понятно из написанного: вниманию представляются все внешние обработки, введенные на закладке "Внешние файлы". Нужно выбрать "правильную обработку". Обычно редко бывает нужно "несколько штук на 1 алгоритм": выбираем одну; лишний код убираем:

 

"Добавить буфер кода". Данная полезная кнопка выдает набор строк кода, который осуществляет загрузку. Нажимаем кнопку, получаем код. на данном этапе нас интересует только печатный отчет о загрузке, все остальное пока не интересно, так как загрузка производится внешней обработкой:

По итогу после редактирования кода получаем следующее - подключение обработки и создание отчета по загрузке:

Все, обработка подключена: можно делать построчную загрузку

Построчная загрузка данных: редактирование алгоритмов

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

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

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

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

image-20210409115248509

 

Макет печати: это файл mxl с закладки "Внешние файлы". По сути, простенький отчет по загрузке: можно было его использовать в самой обработке в разделе "Макеты", но для демонстрации сделан внешним:

 

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

 

Замечательно, обработка готова, после этого обновляем ее в закладке "Внешние файлы":

И проверяем написанный коды вызова обработки, все ли ОК:

 

 

Построчная загрузка данных: Загрузка в базу

 

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

В результате получаем следующий отчет:

Понимаем, что проблем в загрузке нет, можно грузить в боевом режиме.

Шаг загрузки. Бывает полезно видеть "прогресс-бар" в процессе построчной загрузки данных, чтобы видеть "как идет процесс". Для этого предусмотрен реквизит "Шаг загрузки":

По окончанию будет распечатан отчет, для просмотра можно нажать на "лупу в строке" и просмотреть загруженные данные:

Как видно, документ в случайно выбранной строке корректный, без лишних "косяков".

 

Общая (непострочная) загрузка данных: пример.

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

Примером служит момент с загрузкой начальных остатков по ЗУП:

В данном примере после поиска сотрудников нужно сгруппировать их по "Организация+месяц", затем расположить в документы по вводу начальных остатков для расчета среднего по больничным листам. Построчная загрузка здесь не подходит.

 

Общая (непострочная) загрузка данных: редактирование алгоритмов.

Как и в случае с построчной загрузкой, подключаем обработку из внешнего хранилища.

ВАЖНО: вначале программной обработки указано "СтандартнаяОбработка = Ложь;" - это означает, производится загрузка единым алгоритмом, построчная загрузка не используется.

 

Производим печать буфера кода - оно нам очень пригодится.

Берем полученный код, вставляем во внешнюю обработку, раскомментируем.

  • Алгоритм перебора строк

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

Сгруппировали исходную таблицу по "Организация+месяц", затем производим программную загрузку

  • Алгоритм печати отчета. Это также полезный код для печати отчета по загрузке:

Путем несложных преобразований получим отчет: берем запрос и "кидаем" его в "Конструктор запроса с обработкой результата", как написано в комментарии:

По итогу получим готовый макет отчета и набор секций, лишний код убираем:

После этого пишем код загрузки данных, в нужные места подставляем участки по формированию отчета по загрузке:

 

 

Замечательно, обработка готова, после этого обновляем ее в закладке "Внешние файлы":

И проверяем написанный код вызова обработки, все ли ОК:

 

Загрузка данных в базу.

Загружаем аналогично построчной загрузке: можно произвести тестовый импорт данных, можно грузить сразу (если база тестовая или уверены что все верно):

 

Исполняем код, по итогу получим вот такую красивую таблицу, сформированную "Конструктором запроса с обработкой результата" и программными вставками:

В целом вполне наглядный пример использования загрузки данных: все будет выложено в репозитории.

 

Отладка алгоритмов

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

  • Построчная загрузка данных

  • Общая (непострочная) загрузка данных

Передача входных параметров для отладки функций загрузки: рассмотрим примеры.

Отладка построчной загрузки.

Процедура обработки имеет 2 входных параметра:

ДанныеСтроки, ПараметрыЗагрузкиДанных.

Для примера: "Процедура ЗагрузкаДанныхПриемНаРаботу(ДанныеСтроки, ПараметрыЗагрузкиДанных) Экспорт"

Чтобы получить значение "ДанныеСтроки" типа "Структура" предусмотрена специальная команда формы. выбираем 1 строку в таблице полученных данных и нажимаем "Отладка (строка таблицы)"

Печатается некий текст: это строковое представление строки в виде структуры:

Порядок отладки:

  • Берем нужную внешнюю обработку - в примере Алгоритм_ПриемНаРаботу.epf

  • Создаем форму для внешней обработки,

  • На форме создаем реквизит "ОтладкаТекст" и команду для вызова нашего метода

     

  • В форме следует ввести программный код. Шаблон можно сформировать по кнопке "Добавить код отладки" в редакторе кода алгоритмов (только потом очистить за собой):

     

    И немного заменим участи кода:

  • &НаСервере Процедура ЗагрузкаДанныхПриемНаРаботуНаСервере()

      ...

      &НаКлиенте

      Процедура ЗагрузкаДанныхПриемНаРаботу(Команда) ЗагрузкаДанныхПриемНаРаботуНаСервере();

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

 

  • В режиме предприятия в форме обработки вводим строковое представление строки в виде структуры, устанавливаем точку останова, нажимаем кнопку команды.

  • В реквизите "ДанныеСтроки" видим строку из таблицы значений.

Можем отлаживать алгоритм.

Отладка общей (непострочной) загрузки.

Принцип такой же: В обработке реализации алгоритма создаем форму с большим текстовым полем, в форме вводим текст "сериализованной" таблицы значений, пишем простенький программный код для отладки.

Процедура обработки имеет 3 входных параметра:

ТаблицаДанныхExcel, ПараметрыЗагрузкиДанных, СтандартнаяОбработка

Для примера "Процедура ЗагрузитьСуммыФСС(ТаблицаДанныхExcel, ПараметрыЗагрузкиДанных, СтандартнаяОбработка) Экспорт"

ВАЖНО: для отладки правильнее будет прочитать небольшое количество строк в форму обработки, нет нужды в отладку выкладывать всю огромную таблицу.

  • Берем нужную внешнюю обработку - в примере Алгоритм_ДляРасчетаСреднего.epf

  • Создаем форму для внешней обработки,

  • На форме создаем реквизит "ОтладкаТекст" и команду для вызова нашего метода

  • В форме вводим программный код:

    &НаСервере 
    Процедура ЗагрузкаДанныхПриемНаРаботуНаСервере() 
    ПараметрыЗагрузкиДанных = Новый Структура; 
    ПараметрыЗагрузкиДанных.Вставить("ОтчетыПоЗагрузке", Новый Соответствие); 
    ТабДок = Новый ТабличныйДокумент; 
    ТабДок.ТолькоПросмотр = истина; 
    ПараметрыЗагрузкиДанных.ОтчетыПоЗагрузке.Вставить("Отчет по загрузке данных", ТабДок); 
    РеквизитФормыВЗначение("Объект").ЗагрузитьСуммыФСС(ДеСериализоватьОбъект(ОтладкаТекст), ПараметрыЗагрузкиДанных, Ложь) 
    КонецПроцедуры
    
    &НаКлиенте 
    Процедура ЗагрузкаДанныхПриемНаРаботу(Команда) 
    ЗагрузкаДанныхПриемНаРаботуНаСервере(); 
    КонецПроцедуры
    
    &НаСервереБезКонтекста 
    Функция ДеСериализоватьОбъект(СтрокаXML) Экспорт
    
    //Создаем объект чтения из XML
    ЧтениеXML = Новый ЧтениеXML;
    ЧтениеXML.УстановитьСтроку(СтрокаXML);
    //Читаем таблицу значений из XML    
    ОбъектТЗ = СериализаторXDTO.ПрочитатьXML(ЧтениеXML);
        
    Возврат ОбъектТЗ
    КонецФункции

     

  • В режиме предприятия "распечатываем таблицу значений" для отладки:

  • В режиме предприятия в форме обработки вводим строковое представление строки в виде структуры, устанавливаем точку останова, нажимаем кнопку команды

  • В отладке видим таблицу значений, которая введена в форме:

 

Сохранение / загрузка настроек

Если кто-либо осилил прочитать до этого места: заметил, что есть множество различных настроек: это и номера+типы колонок и тексты алгоритмов, параметры...

Ключи настроек

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

  • Если загрузка идет из нескольких листов excel - ключом является имя файла excel

  • Если загрузка по макету / из буфера -то "идентификатор файлазагрузки"

  • Если загрузка из листа excel - ключом сохранения является "Имя файла+Лист"

 

Интерфейс сохранения, краткое описание

Производится сохранение:

  • "ХранилищеОбщихНастроек": при открытии/ закрытии формы обработки идет восстановление-сохранение. Тем самым при открытии формы все редактируемые значения будут подставлены в обработку.

  • Предусмотрено несколько наборов кнопок сохранения-загрузки в файлы/каталоги:

    Сохраняют колонки в файл xml: формат файла "ТаблицаНомеровКолонок_" +Ключ настроек.

Сохраняют колонки в файл txt: формат файлов алгоритмов: "Алгоритм_ПоискДанныхСтроки_" +Ключ настроек, "Алгоритм_ПередЗагрузкойДанных_" +Ключ настроек.

Это просто список файлов: как в таблице, так и на диске.

Сохраняют колонки в файл xml: формат файла "ТаблицаПараметры_" +Ключ настроек.

  • Также есть общие команды сохранения-восстановления настроек:

     

ВАЖНО: данная команда сохраняет все настройки кроме внешних обработок: иначе можно "натворить плохих дел" в процессе написания обработок. Это пожалуйста делайте на закладке "Внешние файлы".

Примеры файлов настроек, рекомендации

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

    1. Желательно производить версионирование папки настроек в git, применять полезные плагины для репозитория типа precommit4onec.

    Хотя бы чтобы

    • иметь историю разработок и ничего не потерять в процессе разработки,

    • иметь возможность откатить настройки к стабильному варианту.

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. tvv56 15.04.21 09:18 Сейчас в теме
IMHO. Для оттачивания собственных навыков рабоота проделана интересная, но в практическом применении по времени не окупаемая. Под все разнообразие задач загрузок заранее код не написать, а на модификации алгоритмов всё равно придется тратить время и это удобнее делать в конфигураторе. 90% задач по загрузке одноразовые и для них хранение настройки бесполезно.Пользователям такое решение не отдать, в лучшем случае даже разбираться не станут, в худшем всё напутают и запорят базу а виноват будет конечно разратчик. Значит загрузку придется делать сопровожденцам, а то и самому разработчику. Проще поправить шаблончик с 1 кнопкой "загрузить", отдать и забыть.
gigapevt; Gulloper; itmind; IgorS; papche; UncleLu; Aluvika4; kupala; hiduk; serg-666; qwinter; cleaner_it; konashenkov; JohnyDeath; Yashazz; papami; Pawlick; GATTUSO; etmarket; user618912_redgad; +20 Ответить
3. artkor 185 15.04.21 11:36 Сейчас в теме
(1) В планах как раз "впилить" историю настроек с возможностью выбора из спсика (чтобы похожие файлы загружать) - а то пока заставляю файлы переименовывать и в единый каталог размещать. Благо юзеры вменяемые. Ну и какую-нибудь "пародию" на систему прав сделать: в частности чтобы алгоритмы не трогали, а только номера колонок итд...
2. Cmapnep 14 15.04.21 10:50 Сейчас в теме
Проделанная работа внушает уважение!
Не планируете подключить редактор с подсказками и раскраской кода на основе монако?
4. artkor 185 15.04.21 11:37 Сейчас в теме
(2) Подскажите это о чем? а то про монако ничего не слышал кроме страны в Европе )
6. Cmapnep 14 15.04.21 13:55 Сейчас в теме
(4) посмотрите вот этот проект https://github.com/salexdv/bsl_console
Вот тут еще коллега интегрировал в КД3 https://github.com/ViktorErmakov/Conversion-3-Plus
artkor; vulli; +2 Ответить
7. artkor 185 15.04.21 15:59 Сейчас в теме
(6) Спасибо, надо ознакомиться, может что-то полезного почерпну, добавлю
5. gorakh 25 15.04.21 13:18 Сейчас в теме
А БСП шная подсистема чем не устроила?
8. artkor 185 15.04.21 16:02 Сейчас в теме
(5) Когда просто каталог номенклатуры или заказ клиента надо залить - вполне годится, для всего остального этот "велосипед" и придумал
9. user925427 92 15.04.21 21:32 Сейчас в теме
Мне статья понравилась. Автор поделился инструментом, разработанным для решения нетривиальных задач по загрузкам информации из Excel. Полагаю, что времени на его освоение и привыкание к нему уйдёт меньше, чем на решение какой-либо одной нестандартной задачи имеющимися средствами. Спасибо за потраченное время на ясную постановку задачи, что важно для статьи в целом, и подробное описание разработки, что встречается реже, чем хотелось бы.
natremiz; cleaner_it; artkor; +3 1 Ответить
10. Yashazz 3752 16.04.21 09:22 Сейчас в теме
Ну, баян, конечно, лютый, и нового совершенно ничего, примитивный com-обмен... Но работа проделана немалая, причём именно по автоматизации промежуточных действий. Правда, соглашусь с (1), это работа почти всегда бесполезная - чем круче и универсальнее универсал, тем труднее им рулить и тем более грамотный спец нужен, делать маленькие загрузчики "по месту" быстрее и дешевле. Я подобную супер-обработку (причём умевшую делать упрощённые грузилки) ещё на 7.7 наваял и тогда же все плюсы и минусы понял.
Оформлено хорошо. Продумано толково. Но, имхо, зря)
IgorS; rpgshnik; Aluvika4; kupala; cleaner_it; qwinter; +6 Ответить
16. artkor 185 16.04.21 17:59 Сейчас в теме
(10) Частично согласен с Вами. Целью было собрать "для себя" все накопленные наработки воедино, потому как надоело 1 и тотже код "копипастить" из различных мест. Заодно может кому-то еще в работе пригодится: для этого на гитхаб и выложил, чтобы не обидно было никому после скачивания )
11. user1145156 16.04.21 09:33 Сейчас в теме
Работу с почтой бы добавить и регламентные задания
12. cleaner_it 221 16.04.21 09:48 Сейчас в теме
Имеет смысл добавить группировку, вот как тут: https://infostart.ru/1c/articles/1020565/
15. tormozit 6304 16.04.21 13:00 Сейчас в теме
(12) Свернутые группировки блокируют поиск. А раскрыть их все сразу - насколько я знаю, способа нет.
13. qwinter 631 16.04.21 10:48 Сейчас в теме
Поздравляю, теперь вы опытный разработчик загрузок из эксель! Но зачем???
rpgshnik; +1 Ответить
17. artkor 185 16.04.21 18:00 Сейчас в теме
(13) Могу с ходу набор причин назвать - но боюсь ни одна Вас не убедит)
14. ITSolncev 16.04.21 11:39 Сейчас в теме
Плюс за проделанную работу!
(Пусть и "велосипед")
natremiz; +1 Ответить
18. Olenevod 26 18.04.21 22:51 Сейчас в теме
Уж не знаю на счет велосипеда, но на мой взгляд, вещь очень полезная. Допустим есть интеграционные механизмы с использованием Excel и гораздо удобней настроить что-то в пользовательском режиме, чем выпускать очередной релиз. Может есть, конечно, что-то подобное, но что-то не встречал.
Автору спасибо.
19. artkor 185 18.04.21 23:12 Сейчас в теме
(18) Пожалуйста, рад что полезно ;)
20. rpgshnik 2535 19.04.21 04:27 Сейчас в теме
Молодец конечно, прокачался.

Но имхо, мне вот эта нравится включенная в Универсальные инструменты - https://infostart.ru/public/1178280/ (первоисточник https://infostart.ru/public/269425/).
Оставьте свое сообщение

См. также

Копирование числовых ячеек из 1С в Excel Промо

Загрузка и выгрузка в Excel Администрирование данных 1С v8 1cv8.cf Бесплатно (free)

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

15.01.2019    30395    itriot11    27    

Удаление из файла эксель ненужных страниц средствами 1С без COM и через COM

Загрузка и выгрузка в Excel v8 1cv8.cf Бесплатно (free)

Как средствами 1С из файла эксель удалить ненужные листы без COM и с ним. Я разрабатывал на платформе 1С:Предприятие 8.3 (8.3.14.1694)

28.01.2020    3205    pavel_pss    12    

Обертка функций Excel на русском. Ускорение процесса разработки.

Загрузка и выгрузка в Excel Универсальные функции v8 Бесплатно (free)

Устали переключаться с русского на английский и обратно при работе с таблицами Excel из 1С? Сборка наиболее необходимых функций и методов работы с Excel, обернутых в функции 1С на русском языке.

24.10.2019    7712    DmitryKotov    6    

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

Загрузка и выгрузка в Excel Внешние источники данных v8 УТ11 Россия Бесплатно (free)

Я так и не смог найти простой инструкции или обработки, чтобы выгрузить из 1С: Управление торговлей 11 номенклатуру вместе со штрихкодами, поэтому решил написать собственную инструкцию.

28.08.2019    20414    user1114182    4    

Excel vs 1С: битва с неожиданным исходом Промо

Анализ учета Универсальные обработки Загрузка и выгрузка в Excel Финансовые Управленческие v8 1cv8.cf Россия Бесплатно (free)

Что лучше 1С или Excel? Разберемся, в казалось бы, очевидном, чтобы получить невероятное!

11.04.2019    39084    bolefirenko    121    

Простая работа с dbf и перевод в excel

Загрузка и выгрузка в Excel Файловые протоколы обмена, FTP Россия Бесплатно (free)

Хочу рассказать, как просто создать и отредактировать dbf файл, переведя его в excel.

23.08.2019    4010    WWWWW    3    

Загрузка картинок в справочники (Универсальная загрузка из табличного документа)

Обработка справочников Загрузка и выгрузка в Excel v8 1cv8.cf Бесплатно (free)

Пример загрузки картинок в справочник Номенклатура (с помощью обработки универсальная загрузка данных из табличного документа). Проверялось на конфигурации УТ 11.4.7.

28.05.2019    9148    rasdag    5    

Повторение строк заголовка на каждой странице при обработке файлов Excel средствами платформы 1С:Предприятие

Практика программирования Загрузка и выгрузка в Excel Разработка v8 Россия Бесплатно (free)

Вопросы повторения строк на каждой странице при работе с файлом Excel из программы, работающей в системе 1С.

23.01.2019    6970    senshkr    3    

Из Excel в 1С запросом Промо

Загрузка и выгрузка в Excel v8 1cv8.cf Бесплатно (free)

... ну, конечно, не прям так типовым языком запросов, а расширенным языком запросов. Речь пойдет о том, как "залить" данные в таблицы 1С и не пилить при этом бесконечного количества наколеночных обработок.

14.08.2018    20967    m-rv    5    

Запись одной книги Excel на нескольких листах средствами 1С (без внешних компонент)

Загрузка и выгрузка в Excel v8 1cv8.cf Бесплатно (free)

Пользователи часто просят сохранить им стопиццот отчетов в один файл Excel, чтобы отчеты были в одном файле. Ну или клиент хочет счет, накладную и счет-фактуру получить в одном документе. 1С умеет это делать без всяких там COM-объектов. Давайте разберемся, куда нажимать и что крутить.

14.01.2019    25315    starik-2005    33    

Как легко загружать данные из электронных таблиц (Excel, OpenOffice и т.д)

Загрузка и выгрузка в Excel v8 1cv8.cf Бесплатно (free)

Как легко загружать данные из электронных таблиц (Excel, OpenOffice и т.д). На примере загрузки в табличную часть документа Поступление товаров и услуг в УТ 11.4.

09.01.2019    14848    rasdag    14    

Работа с Excel через COM

Загрузка и выгрузка в Excel v8 1cv8.cf Бесплатно (free)

Несколько примеров работы с excel (ms office 2010, в моем случае) через COM.

01.10.2018    12361    jaroslav.h    0    

Загрузка из EXCEL в 1С на платформе 8.3.6/8.3.7/8.3.8/8.3.9/8.3.10 (с картинками) Промо

Практика программирования Загрузка и выгрузка в Excel v8 1cv8.cf Бесплатно (free)

Импорт содержимого из файлов в форматах XLS (Microsoft Excel 97), Microsoft Office OpenXML (Microsoft Excel 2007- 2010) и ODS (OpenDocument) в таблицу значений.

06.04.2015    255865    StepByStep    76    

Выгрузка в Excel с использованием формата OpenXML, разбор файла sheet1.xml

Загрузка и выгрузка в Excel v8 1cv8.cf Бесплатно (free)

Судя по количеству просмотров темы https://infostart.ru/public/900022/ решил описать структуру файла Листа excel. На полноту не претендую, опишу то, что знаю.

21.09.2018    8396    user1045404    2    

Excel: создание в формате xlsx без COM технологии

Загрузка и выгрузка в Excel v8 1cv8.cf Бесплатно (free)

По работе приходится часто выгружать данные в Excel формате. При большом количестве строк и формул этот процесс достаточно длительный. Решил написать для своих целей небольшую библиотечку для выгрузки данных. Используется технология open-xml. Никаких библиотек не надо, пишу напрямую в xml файлики. На данном этапе сделано форматирование, формулы.

10.09.2018    12171    user1045404    16    

Маркировка ячеек цветом. Отладка загрузки данных из эксель.

Практика программирования Загрузка и выгрузка в Excel v8 1cv8.cf Бесплатно (free)

После 100-ой кривой загрузки родился способ, как отладить алгоритм.

05.07.2018    9788    Rustig    7    

Загрузка из EXCEL в 1С. Чтение файла XLSX средствами 1С. ПостроительDOM Промо

Универсальные обработки Загрузка и выгрузка в Excel Обмен через XML v8 1cv8.cf Бесплатно (free)

ПРАКТИЧЕСКОЕ ПОСОБИЕ РАЗРАБОТЧИКА: Метод "NativeXLSX" (ПостроительDOM). Обрабатываются данные EXCEL типов: "Строка", "Число", "Дата" ("Время"), "Булево", "Процент", а также изображения.

11.09.2014    76747    StepByStep    27    

Загрузка из Excel в управляемом приложении

Загрузка и выгрузка в Excel v8::УФ Бесплатно (free)

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

30.11.2017    39475    alex_bitti    17    

Функция сохранения картинок из книги Excel в каталог с определением координат на листе

Загрузка и выгрузка в Excel Универсальные функции v8 Бесплатно (free)

Разбор файла *.xlsx как Web-архива, выгрузка изображений без потери качества, с определением положения изображений.

12.11.2017    11228    user634820_zergemoth    1    

Работа с Excel

Практика программирования Загрузка и выгрузка в Excel v8 Бесплатно (free)

Собрал различные полезности для работы с Excel из 1С. Иногда приходится форматировать документ Excel программно из 1С. Так вот, чтобы не искать постоянно на просторах интернета как сделать левое выравнивание в ячейке Excel из 1С и т.п. решил опубликовать это...

23.10.2017    51610    arakelyan    41    

Загрузка из EXCEL в 1С. MS ADODB.Connection Промо

Практика программирования Универсальные обработки Загрузка и выгрузка в Excel v8 1cv8.cf Бесплатно (free)

ПРАКТИЧЕСКОЕ ПОСОБИЕ РАЗРАБОТЧИКА: Метод "MS ADODB" (ADODB.Connection). Поддерживаемые типы: *.xls,*.xlsx.

30.11.2012    157942    StepByStep    89    

Невалидный XLSX при сохранении Табличного документа

Загрузка и выгрузка в Excel v8 1cv8.cf Бесплатно (free)

Ошибка открытия XLSX файлов, созданных при сохранении Табличного документа. (Невалидный формат файла)

21.10.2017    15611    saddy    3    

Почему при загрузке таблицы Excel в 1С возникают ошибки?

Загрузка и выгрузка в Excel v8 Бесплатно (free)

При загрузке из EXCEL в 1С методом MS ADODB.Connection столкнулся с некоторыми проблемами, которые попытался устранить в ниже приведенной статье. Надеюсь, что статья поможет вам сократить время разработки.  Особая благодарность Андрею М. за публикацию //infostart.ru/public/163640/

28.04.2017    17493    dakork    4    

Загрузка значений свойств номенклатуры в Альфа-Авто с использованием обработки загрузки данных из табличного документа

Загрузка и выгрузка в Excel Учет ТМЦ Учет ТМЦ v8 1cv8.cf Автомобили, автосервисы Россия УУ Бесплатно (free)

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

13.10.2016    18440    miavolas    16    

Вредные советы (загрузка из таблиц Excel) Промо

Практика программирования Загрузка и выгрузка в Excel Россия Бесплатно (free)

Программисты просят вас предоставить данные в xls для загрузки? Обязательно почитайте и проверьте все ли пункты присутствуют в вашем файле.... Иначе загрузка будет скучной и не интересной для них.

01.04.2012    26051    opx    23    

Решение проблемы медленной загрузки из файла Excel, защищенного паролем

Загрузка и выгрузка в Excel v8 Россия Бесплатно (free)

Столкнулся с проблемой загрузки из файла Excel. Загрузка занимала около получаса и не всегда заканчивалась успешно. Решение проблемы изложу в данной статье.

27.09.2016    11134    HAMMER_59    4    

Сервис для преобразования файла Тинькофф, или моя любовь к phpExcel

Загрузка и выгрузка в Excel WEB Бесплатно (free)

Статья для тех, кому интересно кроссплатформенное чтение и запись Exсel файлов, а также для тех, кто пользуется табличкой Тинькова, чтобы следить за своим ежедневным бюджетом.

19.08.2016    15843    Ibrogim    5    

Быстрая выгрузка больших плоских отчетов в Excel

Загрузка и выгрузка в Excel v8 Бесплатно (free)

Предлагаю способ для того, чтобы быстрее выгружать большие плоские отчеты из 1С 8 в Excel, без использования оперативной памяти на сервере и на клиенте, что очень важно, поскольку помогает избежать ошибок вида "Недостаточно памяти на клиенте" или "Недостаточно памяти на сервере". Не использует внешние компоненты. Минусы в том, что отчет выходит неформатированный, приходится настраивать ширину колонок, закрашивать границы, шрифты, жирность и т.п. Но когда отчет, выгружавшийся 3 часа, выгружается 20 минут, эти проблемы мои клиенты считают несущественными.

29.11.2015    18061    matveev.andrey.v    17    

СТАБИЛЬНАЯ Загрузка справочника номенклатуры в 1С:Управление торговлей 8 из прайс-листа в Excel (код открыт скачать можно бесплатно) Промо

Перенос данных из 1C8 в 1C8 Загрузка и выгрузка в Excel v8 УТ10 Россия Бесплатно (free)

В таких случаях многие заказывают соответствующие обработки у собственных штатных программистов, фирм-франчайзи или сторонних разработчиков, но это дополнительные расходы и время. Как быть, если по различным причинам такой возможности нет? У каждого пользователя профессиональной версии 1С:Предприятие 8 подобная обработка уже есть! На диске ИТС! Типовая обработка «ЗагрузкаДанныхИзТабличногоДокумента.epf», находиться в разделе «Технологическая поддержка» > «Методическая поддержка 1С:Предприятие 8» > «Универсальные отчеты и обработки» > «Загрузка данных из табличного документа». Обратите внимание, начиная с Февраля 2010 г. на диске ИТС данная обработка для конфигураций на платформе 8.1 находиться в другом разделе: «Технологическая поддержка» > «Методическая поддержка 1С:Предприятие 8» > «Платформа 1С:Предприятие 8.1» > «Универсальные отчеты и обработки» > «Загрузка данных из табличного документа».

07.11.2011    188500    SkyLink2012    132    

Экспорт нескольких MXL таблиц в один XLS файл, на отдельные листы. Простой алгоритм

Загрузка и выгрузка в Excel Практика программирования v7.7 v8 Бесплатно (free)

Статья посвящена распространённому вопросу - как сохранить несколько таблиц (отчетов) в формате MXL, с которым работает 1С, на отдельные листы одного Excel файла. Освещается простой алгоритм решения проблемы штатными средствами, без использования внешних модулей и библиотек (не относящихся к 1С и Excel).

23.11.2015    17673    etmarket    14    

Как вывести табличный документ на печать в управляемой форме внешней обработки

Практика программирования Загрузка и выгрузка в Excel v8 v8::УФ 1cv8.cf Бесплатно (free)

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

02.09.2015    49539    kiv1c    30    

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

Бухгалтерский учет Загрузка и выгрузка в Excel Рабочее место Оптовая торговля Розничная торговля Учет ТМЦ Оптовая торговля Розничная торговля Учет ТМЦ v8 v8::ОУ УТ11 Оптовая торговля, дистрибуция, логистика Россия УУ УСН Бесплатно (free)

Каких-то 10 лет назад бюджет внедрений адресных складов составлял десятки тысяч долларов и месяцы работ целой команды, а теперь - типовое решение от 1С вполне рабочее и без кастомизации: немного интеграции, немного консультирования – и в продуктив. Внедрение адресного склада, в массе внедрений 1С:Управление торговлей, ред. 11.1 (далее УТ), штука до сих пор довольно-таки редкая. Данная статья описывает опыт одного маленького, но свежего внедрения адресного склада в УТ (11.1.10) и может быть интересна как практический кейс.

1 стартмани

10.08.2015    22673    papche    12    

Две функции Excel, которые "спасут мир" Промо

Загрузка и выгрузка в Excel Универсальные функции Россия Бесплатно (free)

Excel несомненно обладает богатейшим инструментарием по обработке больших массивов информации. Много трудов написано по этой замечательной программе. Я же хочу остановиться на двух практически полезных функциях и их возможном применении при работе с 1С.

15.06.2011    102578    1cspecialist    167    

Выгрузка таблицы значений в Excel

Загрузка и выгрузка в Excel v8 1cv8.cf Бесплатно (free)

Примитивно, грубо, без дизайна, но очень быстро.

28.06.2015    26268    Yashazz    31    

Скорость закачки с EXCEL при работе с большими файлами

Производительность и оптимизация (HighLoad) Загрузка и выгрузка в Excel v8 1cv8.cf Бесплатно (free)

Поставлена задача уменьшить время загрузки данных с EXCEL. Пока ждал ответа от разработчиков ядра, сам начал копать всё, что угодно. ЗАДАЧА решена, с чем спешу поделиться.

09.06.2015    17466    ybatiaev    33    

Чтение из Эксель-файла

Загрузка и выгрузка в Excel Практика программирования v8 1cv8.cf Бесплатно (free)

Некоторые выдержки из моих наработок, связанных с работой 1С и приложений майкрософт-оффис

26.05.2015    11782    mack198109    7    

Как программисту быстро загрузить данные из Excel Промо

Загрузка и выгрузка в Excel v8 1cv8.cf Бесплатно (free)

Встала как-то разовая задача - загрузить данные из Excel в базу... Идея не новая, на ИС имеются уже готовые подобные разработки, но предлагается сделать самостоятельно. Пригодится в будущем.

26.10.2011    25898    DrAku1a    53    

Вывод таблицы значений в Excel

Практика программирования Загрузка и выгрузка в Excel v8 1cv8.cf Бесплатно (free)

Изложена методика вывода таблицы значений в Excel с помощью именованных ячеек.

21.01.2015    15859    scientes    6    

Хитрости сохранения табличного документа в Excel для дальнейшей работы с ним

Загрузка и выгрузка в Excel Практика программирования v7.7 v8 1cv8.cf 1cv7.md Бесплатно (free)

Все пользователи 1С всех версий (начиная с 7-й) сталкиваются с проблемой нормальной работы с данными, сохраненными в Excel файл. Есть некоторые хитрости, которые позволяют облегчить работу с сохраненными данными из 1С в формат Excel.

16.01.2015    96331    shmellevich    39    

Простой способ программного сохранения больших отчетов из СКД в формат Excel

Универсальные функции Загрузка и выгрузка в Excel v8::СКД 1cv8.cf Бесплатно (free)

Перерыв весь интернет не смог найти простого способа сохранить отчет с большим числом строк в формате Excel. Везде предлагалось писать процедуры построчной записи, ADO, COMSafeArray и прочее. Метод же, используемый во всех найденный публикациях "Результат.Записать(ИмяФайла,ТипФайлаТабличногоДокумента.XLSX)", не работает при большом числе строк. Публикация http://infostart.ru/public/77128/ натолкнула на простую идею, которую и реализовал.

07.08.2014    32659    den_valley    15    

Преобразование Универсального отчета в сводную таблицу Excel.

Загрузка и выгрузка в Excel v8 1cv8.cf Бесплатно (free)

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

16.06.2014    17510    Mos    4    

Запись макроса Excel для отображения ярлычков.

Загрузка и выгрузка в Excel Бесплатно (free)

Макрос для отображения скрытых ярлычков листов.

03.04.2014    16790    akor77    2    

Как предотвратить возникновение ошибки при одновременном обращении пользователя и обработки к Excel.

Загрузка и выгрузка в Excel v8 1cv8.cf Бесплатно (free)

Если открыт (или открыть) файл Excel (к которому будет обращаться обработка), и активировать какую-либо ячейку или любое диалоговое окно и при этом обработка обратится к этому файлу, то возникнет ошибка. Так же, ошибка может возникнуть, если обработка запустила один экземпляр Excel, если пользователь, во время работы обработки откроет другой файл Excel или тот, к которому обращается обработка, то этот файл откроется в том же экземпляре приложения Excel и тогда опять возможна ошибка. Как этого избежать?

30.03.2014    20056    akor77    13    

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

Загрузка и выгрузка в Excel Бесплатно (free)

Все, кто делал выгрузку в Excel, рано или поздно столкнулся с такой проблемой, как преобразование «строк из цифровых символов» в «числа». Например код «00001» (строка) или «001 » (строка) в результате выгрузки преобразуются в числа «1» (число) и «1» (число). Хотя, на экране, Excel будет отображать «00001» и «00001». Но, если мы активизируем любую из двух ячеек и посмотрим в строку формул, то увидим реальное содержимое – «1» (число). В этой статье будет рассмотрено то, как решить этот момент и где в последующем это пригодится.

29.03.2014    56862    akor77    21    

Загрузка из EXCEL в 1С. Чтение файла XLSX средствами 1С. ЧтениеXML

Загрузка и выгрузка в Excel Обмен через XML Практика программирования v8 1cv8.cf Бесплатно (free)

ПРАКТИЧЕСКОЕ ПОСОБИЕ РАЗРАБОТЧИКА: Метод "NativeXLSX" (ЧтениеXML). Обрабатываются данные EXCEL типов: "Строка", "Число", "Дата" ("Время"), "Булево", "Процент".

01.11.2013    116723    StepByStep    77