Здравствуйте.
Идея интерфейса обработки, а также работа с Excel взята из //infostart.ru/public/20610/.
Обработка умеет:
- загружать данные из файлов xls (с любого листа) и dbf
- загружать картинки из файлов xls
- загружать номенклатуру, а именно:
- любые реквизиты номенклатуры
- свойства номенклатуры
- подчинённые справочники номенклатуры
- штрих-коды номенклатуры
- цены номенклатуры
- перед загрузкой искать существующую номенклатуру по штрих-коду, а также по любым реквизитам, в том числе по первым символам.
- выполнять групповую обработку (типовую) над найденными позициями номенклатуры
- заполнять при загрузке задаваемыми значениями по-умолчанию любые реквизиты, свойства и т.д.
- загружать найденную/созданную номенклатуру в табличную часть "Товары" любого документа.
Чтение файла
После выбора файла происходит автоматическая загрузка данных из него. Если в файле несколько листов, можно выбрать нужный лист (справа вверху основного окна). Для загрузки из файла наличие Excel не нужно. Сверху есть флажок «Считывать картинки» если его нажать (до или после выбора файла) из файла также считаются картинки. Для считывания картинок наличие Excel обязательно. Для загрузки из файлов dbf необходимо наличие на компьютере установленного провайдера Microsoft OLE DB Provider for Visual FoxPro 9.0, который можно скачать здесь.
После считывания файла необходимо произвести основные настройки для последующей загрузки. Бóльшая часть настроек выполняется через контекстное меню(правая кнопка мыши) табличного поля. Сопоставление колонок производится через контекстное меню табличного поля. Лишние строчки можно удалять просто клавишей, а также с помощью контекстного меню.
Контекстное меню поля таблицы
- «Прочитать ИНН контрагента» – пытается в текущей ячейке найти последовательность вида «ИНН: 12242551231» и вычленив из неё номер найти в справочнике Контрагенты элемент с таким ИНН. В случае успеха этот контрагент будет автоматически установлен в документ, который мы будем загружать.
- «Выделить артикул» – создаётся новая колонка «Артикул», из текущей колонки выделяется часть слева или справа (выбирается), похожая на артикул. Принцип выделения следующий: ищется первый русский символ, всё, что левее – считается артикулом. В случае, если строка начинается с русского символа, ищется второе вхождение русских символов и всё, что левее – считается артикулом. Это бывает нужно, когда поставщики присылают файлы, где наименование и артикул находятся в одной колонке.
- «Отменить назначение имени колонке» – назначенное имя колонки освобождается, и его можно назначить другой колонке. Отменить назначение также можно, если повторно выбрать в назначенной колонке тот же реквизит.
- «Удалить незаполненные в колонке строки» – удаляет строки в которых значение текущей колонки – пустое. Для числовых колонок (цена, количество, сумма) удаляются все строки, в которых нет числа. Колонка считается числовой, если ей назначено числовое имя (цена, количество, сумма).
- «Колонка поиска» – назначает колонку, по которой в базе будет происходить поиск номенклатуры, подробнее ниже.
- «Назначить шаблон выбранным строкам» – позволяет назначить один шаблон сразу нескольким выделенным строкам (поддерживается множественное выделение). Подробности ниже.
- «Умножить значение в колонке» – умножает колонку на любое число. Имеет смысл для числовых колонок.
- «Скрыть неназначенные колонки» – делает невидимыми все колонки, кроме тех, которым назначено имя поля для загрузки. Колонки при этом не удаляются, их можно снова сделать видимыми с помощью стандартного действия «Настройка списка»
- В нижней части меню находится список реквизитов, которые можно назначить колонкам исходного файла. При назначении имя колонки меняется с «Fx» на назначенное и выделяется жирным.
Настройка загружаемых реквизитов
В правой части формы есть табличное поле со списком реквизитов, доступных к загрузке. В списке имеются все реквизиты справочника "Номенклатура", все свойства, назначенные справочнику "Номенклатура", типы цен номенклатуры, штрихкоды и подчинённые справочники (Серии, Характеристики и т.д.) и некоторые дополнительные значения, необходимые для загрузки данных в документ (Цена, Количество, Сумма) В этой таблице 3 колонки.
У реквизитов, загружаемых из колонки слева может быть плюсик, это означает, что реквизит является ссылкой на справочник, и для него можно настроить загрузку каждого из его реквизитов. Реквизит-справочник нельзя загрузить напрямую из колонки, можно загрузить только отдельные его реквизиты. Поиск реквизита справочника осуществляется по совокупности его реквизитов, назначенных для загрузки из колонки. Если такой элемент справочника не найден, он будет создан. Красным выделены реквизиты, обязательные для загрузки. Например, наименование. |
Поиск номенклатуры в базе
Чтобы найти номенклатуру в базе, нужно сначала определить реквизит поиска. Это можно сделать в контекстном меню:
Или добавляя строчки в таблицу настройки поиска:
Поиск осуществляется с помощью кнопки «Найти в базе». Поиск происходит в соответствии с настройками поиска, расположенными над кнопкой поиска. Строки в таблицу настроек можно добавлять либо кнопкой Insert, либо через контекстное меню, также строки автоматически добавляются при назначении в основной таблице какой-нибудь колонки колонкой поиска. В таблице настроек 4 колонки. Смысл колонок будет понятен из примеров.
Пример1.
Колонка поиска = Артикул
Реквизит поиска = Артикул
Поиск будет выполнятся по равенству реквизита Артикул значению в колонке Артикул.
Пример2.
Колонка поиска = Артикул
Реквизит поиска = НаименованиеПолное
По первым символам = Истина
Количество первых символов = 6
Поиск будет выполняться в реквизите НаименованиеПолное, по первым 6-ти символам из колонки Артикул, причём с этой подстроки НаименованиеПолное должно начинаться.
Если в таблице настройки поиска несколько строк, то сначала поиск происходит по первой строке, затем ненайденные позиции ищутся по второй строке, и т.д.
После выполнения поиска в таблицу добавляется 2 колонки: Шаблон и «Номенклатура 1с». В колонке «Номенклатура 1с» находится найденная номенклатура из базы данных. Если найдено несколько позиций для строки, то в колонке написано «выберите из списка». Для любой строчки можно выбрать соответствие вручную. При выборе из нескольких найденных открывается список номенклатуры с отбором по найденным позициям. Если нужно выбрать другую позицию, необходимо снять отбор и выбрать из всего справочника.
При повторном нажатии на кнопку поиска результат предыдущего поиска и назначенных вручную соответствий полностью очищается и производится новый поиск.
Групповая обработка
После поиска и сопоставления номенклатуры, становится доступна кнопка, которая вызывает стандартную обработку из конфигурации с установленным отбором по найденным позициям номенклатуры.
Загрузка картинок
Если отмечен флажок «Считывать картинки», и в файле были картинки, то в таблице отображаются уменьшенные картинки. У каждой картинки есть кнопка просмотра (Лупа), которая открывает окно просмотра картинки в увеличенном масштабе. Окно отображает 2 картинки, слева основное изображение из колонки «Номенклатура 1с», а справа картинку из ячейки, в которой нажата кнопка «Просмотр». Если колонке с картинками назначить имя «Основное изображение» - картинки будут загружены в базу данных и назначены реквизиту «Основное изображение» номенклатуры.
Загрузка номенклатуры
Предусмотрено 2 режима загрузки номенклатуры: только создавать ненайденные позиции и перезаписывать всё. В обоих режимах ненайденные позиции создаются. Для новых позиций необходимо задать некоторые обязательные значения. Второй способ задать значения по-умолчанию это выбрать номенклатуру-образец в колонке «Шаблон». Для каждой строчки можно выбрать свой шаблон, также можно выбрать шаблон для группы строк, для этого нужно выделить несколько строк и в контекстном меню нажать «Назначить шаблон выбранным строкам». Из шаблона в номенклатуру переписываются реквизиты, для которых установлен режим загрузки "Из шаблона", а также Характеристики (создаются по образцу).
Если назначить какой-нибудь колонке, или нескольким Тип цен, то будет создан документ установки цен и загружены цены .
Далее нужно нажать кнопку «Загрузить в базу».
Если стоит флажок Перезаписать существующую номенклатуру, то реквизиты номенклатуры из колонки "Номенклатура 1с" будут заполнены установленными значениями. Если при этом также стоит флажок "Не заменять пустыми значениями", то пустые значения записываться не будут. Например, если не указать Родителя для номенклатуры, то при перезаписи, вся уже существующая номенклатура останется в своих группах.
Загрузка документов
После того, как колонка «Номенклатура в 1с» целиком заполнена можно загрузить данные в любой документ, который имеет табличную часть «Товары».
Обработку можно подключить через стандартный механизм в конфигурациях УТ10, КА1, УПП, БП в качестве обработки заполнения табличных частей. Её также можно сконвертировать под платформу 8.2, проверено - работает.
Сохранение и применение настроек
Настройки можно сохранить с помощью кнопки "Сохранить значения".
Сохраняются: настройки колонок, настройки поиска, последнее действие "удалить незаполненные в колонке строки", нажатие кнопки "Найти в базе".
В дальнейшем, при загрузке аналогичного по структуре файла, можно просто "Восстановить значения" и все настройки применятся к новому файлу. Эту кнопку необходимо нажимать после загрузки файла.