Импорт товаров и комплектов из Excel

Общая информация

- При помощи приложения XLS2SH4.EXE (мастер загрузки данных) появилась возможность закачивать данные из XLS-файла (книги) определенного формата в базу SH4. На момент написания статьи (26.09.14), была реализована загрузка:

1. Списка новых (отсутствующих в справочнике товаров базы) товаров.
2. Списка новых (отсутствующих в справочнике комплектов базы) комплектов.

Примечание: ПО рекомендуется использовать с версиями SH 4.95 и выше.

Важно!!! Закачивать пока можно только НОВЫЕ товары и комплекты В УЖЕ СУЩЕСТВУЮЩИЕ (или заранее созданные) в базе "группы товаров" и "группы комплектов". 

Важно!!! Приложение работает только с файлами имеющими расширение - *.XLS (т.е. книга EXEL 97-2003).

Важно!!! Перед всеми действиями сделать резервную копию базы данных SH4!!!

Формат файла xls 

- Формат должен быть следующим:

- Первая страница файла книги EXEL будет использоваться для загрузки списка новых товаров. Саму страницу необходимо переименовать в "Товары":

- далее, заполнить по формату представленному на скриншоте выше:

Столбец "КОД" - задается список уникальных кодов (отсутствующих в базе SH!!!) загружаемых товаров.
Столбец "Наименование" - задается загружаемая номенклатура товаров.
Столбец "Группа товаров" - существует/используется только для сопоставления его содержимого с существующими группами товаров в базе SH (т.е. данные этого столбца в БД не заносятся, а только сопоставляются).
Столбец "Единица измерения" - существует/используется только для сопоставления его содержимого с существующими в базе SH единицами измерения (т.е. данные этого столбца в БД не заносятся, а только сопоставляются).
Столбец "Ставка налога" - существует/используется только для сопоставления его содержимого с существующими в базе SH ставками налога (т.е. данные этого столбца в БД не заносятся, а только сопоставляются).

- Все последующие страницы (независимо от их названия) в книге XLS будут использоваться для загрузки комплектов. Каждая страница может содержать только один комплект, причем состав этого комплекта должен быть новым для базы SH но может ссылаться на записи из страницы товары или на страницы с другими комплектами. Именно по-этому, утилита при работе с файлом использует несколько проходов по страницам файла (количество проходов можно задать в настройках самой утилиты), что бы  в итоге скомпановать полную инфорацию по всем позициям файла.

- Таким образом, следующим шагом, создается необходимое количество страниц и заполняется данными новых комплектов:

- Описание полей:

Поле A1 - вписать уникальный (отсутствующий в базе SH4) код комплекта. Это поле относится к заголовку комплекта.
Поле A2 - вписать название комплекта. Это поле относится к заголовку комплекта.
Поле A3 - вписать единицу измерения нормы закладки комплекта.
Поле A4 - вписать количество нормы закладки комплекта.
Поле A5 - вписать КОД товара/ингредиента/комплекта.
Поле B5 - вписать тип ингредиента (G - товар, S - подкомплект).
Поле С5 - вписать единицу измерения ингредиента.
Поле D5 - вписать количество (брутто) ингредиента.

 

Установка XLS2SH4

Важно!!! Для работы ПО требуется наличие установленного на ПК - NET Framework Version 4.5! Если его нет, - установить.

- Скопировать содержимое дистрибутива утилиты перекачки в каталог с установленным клиентом SH4 (Например, - D:\UCS\SH4).

- Создать в \SH4 (если их не было в дистрибутиве) следующие каталоги:

\Input - для закачиваемых xls-файлов
\Done - в этот каталог будут перемещаться из каталога \Input xls-файлы, если они были успешно закачаны в БД SH4.
\Error - в этот каталог будут перемещаться из каталога \Input xls-файлы, если при их закачке возникли ошибки и данные из них не были загружены в БД SH4.

- Дополнительно:

\LOG - в этот каталог будет записан лог-файл (xls2SH4.log) работы приложения, в котором так же фиксируются ошибки связанные с перекачкой.

- Поместить в каталог \Input заполненный данными xls-файл и запустить приложение XLS2SH4.EXE.

Использование

Важно!!! Перед всеми действиями, не забыть сделать резервную копию рабочей базы SH4!!!

- После запуска, появится запрос на подключение к серверу SH (для этого в ShSetup.exe должно быть настроено подключение к серверу sh стандартным образом):

- Если связь с сервером отсутствует:

- в таком случае необходимо проверить параметры подключения и например, подключиться к серверу обычным клиентом SH4 (sh.exe). Если подключение произошло успешно, кнопка [Далее >] станет активной.

- Заполнить параметры диалогового окна "Настройки":

"Путь до LOG-файла" - указать каталог в который будет писаться лог-файл выполненных операций.

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

"Папка с обработанными файлами" - указать каталог в который, будут перенесены успешно обработанные xls-файлы.

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

Максимальное число проходов по страницам - по-умолчанию = 4294967295 (максимальное значение). Может портебоваться изменить, если xls-файл содержит большой список товаров и большое количество страниц с комплектами, коды которых (комплектов/товаров/ингредиентов) связаны между собой и мастеру перекачки данных необходимо совершить несколько проходов для получения полной информации по всем позициям из закачиваемого файла.

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

- После определения параметров первого окна, перейти ко второму нажав кнопку [Далее >]:

- Указать параметры для импорта товаров ("Категория" и "Бух.категория").

-  Указать склад, в который будут помещены комплекты.

- Указать группу, в которую будут помещены комплекты.

- Все выбранные поля должны подсветиться зеленым цветом. После чего можно перейти на следующий экран настроек, нажав кнопку [Далее >]:

- В правом окне, необходимо проставить соответсвие ДЛЯ КАЖДОЙ строки группы товаров из файла к группе товаров из базы данных SH4:

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

- Так же необходимо, указать "Значение по-умолчанию", оно сыграет роль для товаров у которых в xls-файле поле "Группа товаров" не было заполнено вовсе. Для этого, нажать кнопку "Определить значение по умолчанию", затем выбрать из дерева базы нужный каталог, после чего нажать кнопку "Закончить определение" и убедиться что в поле "Значение по умолчанию" указан требуемый каталог.

- После заполнения всех полей и их подсветки зеленым цветом, перейти к следующему окну нажав кнопку [Далее >]:

- В окне настроек соответсвий единиц измерения выполнить те же действия что и в предыдущем окне. А именно:

 - Указать соответсвие для ВСЕХ строк в левом окне выбирая их поочередно и затем проставляя требуемое соответсвие (в базе) из окон правее.

- Указать "Значение по-умолчанию" для тех товаров у которых поле "Единица измерения" не заполнено. Т.е. как и в предыдущем окне, сначала нажимаем кнопку "Определить значение по умолчанию", затем в окнах правее проставить соответсвие, после чего подтвердить нажав кнопку "Закончить определение". После указания всех соответствий и подсветки зеленым цветом, нажать [Далее >] для настройки следующего диалогового окна ("Ставка налога"):

- По аналогии с предыдущими окнами сопоставить ставки налогов из файла таковым в базе данных SH (ДЛЯ КАЖДОЙ СТРОКИ). А также указать значение по умолчанию, для товаров с пустым полем "Ставка налога". После указания и подсвечивания всех полей зеленым цветом перейти к следующему окну, нажав [Далее >]:

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

Приложение

Пример файла xls2sh4.xml

<Config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <LogFilePath>D:\2_SH4xx\SH_95\SH4_XLS\LOG</LogFilePath>
  <InputFolder>D:\2_SH4xx\SH_95\SH4_XLS\Input</InputFolder>
  <DoneFolder>D:\2_SH4xx\SH_95\SH4_XLS\Done</DoneFolder>
  <ErrorFolder>D:\2_SH4xx\SH_95\SH4_XLS\Error</ErrorFolder>
  <GoodColor>0</GoodColor>
  <BadColor>0</BadColor>
  <GoodsCtgId>4</GoodsCtgId>
  <GoodsCtg2Id>2</GoodsCtg2Id>
  <DefComplGroupId>138</DefComplGroupId>
  <CorrId>50</CorrId>
  <MaxPassNumber>4294967295</MaxPassNumber>
  <DefGoodsGroupId>484</DefGoodsGroupId>
  <DefMeasureId>1</DefMeasureId>
  <DefTaxRateId>1</DefTaxRateId>
  <GoodsGroupsRelation>
    <ValueToDatabaseRelation>
      <Value>Товары в xls</Value>
      <DatabaseId>484</DatabaseId>
    </ValueToDatabaseRelation>
  </GoodsGroupsRelation>
  <MeasureRelation>
    <ValueToDatabaseRelation>
      <Value>кг</Value>
      <DatabaseId>1</DatabaseId>
    </ValueToDatabaseRelation>
    <ValueToDatabaseRelation>
      <Value>порция</Value>
      <DatabaseId>6</DatabaseId>
    </ValueToDatabaseRelation>
  </MeasureRelation>
  <TaxRateRelation>
    <ValueToDatabaseRelation>
      <Value>0</Value>
      <DatabaseId>1</DatabaseId>
    </ValueToDatabaseRelation>
    <ValueToDatabaseRelation>
      <Value>10</Value>
      <DatabaseId>2</DatabaseId>
    </ValueToDatabaseRelation>
  </TaxRateRelation>
</Config>

 

10.10.2014

XLS2SH4 v. 1.1 - Импорт товарных групп

- C версии программы 1.1 дополнительно реализована возможность импорта товарных групп.
 
- В случае отсутствия в папке с файлами для обработки файла с именем "Товарные группы.xls", программа импортирует товары и комплекты точно так же, как и в предыдущей версии.
 
- В случае наличия там такого файла, логика работы программы меняется следующим образом.
 
1. Файл "Товарные группы.xls" должен содержать единственную страницу с именем "Товарные группы".
 
2. На этой странице первая строка занята под название столбцов; их три: "КОД", "Наименование группы товаров", "Принадлежит группе".
 
3. Начиная со второй строки файла, в нем должны быть перечислены товарные группы: в первом столбце уникальный код, во втором - наименование товарной группы и в третьем - код товарной группы, чьей подгруппой является данная товарная группа. В случае отсутствия кода в третьем столбце, такая товарная группа импортируется как корневая вершина в дерево товарных групп SH4.
 
4. В остальных импортируемых файлах на странице "Товары" вместо наименования товарных групп, к которым относятся импортируемые товары, должны быть указаны коды товарных групп: или находящиеся в файле "Товарные группы.xls" (с первом столбце), или коды товарных групп, уже имеющихся в базе данных SH4, в зависимости от того, к какой товарной группе необходимо отнести тот или иной импортируемый товар.
 
5. Во время работы программы, в отличие от варианта ее работы без импорта товарных групп, игнорируется шаг установки соответствия между товарными группами, указанными в импортируемых файлах на странице "Товары" и товарными группами, имеющимися в базе данных SH4.
 
6. Использование товарной группы "по-умолчанию" для импортируемых товаров в случае импорта товарных групп не допускается: для каждого товара на странице "Товары" в импортируемых файлах должно быть указано соответствие той товарной группе, к которой данный товар относится, путем указания ее кода.
 
- На этом отличия двух алгоритмов работы программы заканчиваются.