Импорт баз данных — различия между версиями

Материал из Меасофт
Перейти к: навигация, поиск
м
м
Строка 1: Строка 1:
==Логика загрузки заказов==
+
== Логика загрузки заказов ==
 +
Чтобы загрузить заказы из Excel, используются внутренние шаблоны. Шаблон описывает соответствие между столбцами электронной таблицы и параметрами заказа в системе. Например, в файле Excel в столбце H указан телефон получателя. Шаблон нужен, чтобы система записала значение из столбца H в параметр заказа «Телефон получателя».
  
Чтобы загрузить заказы из Excel, КС 2008 использует внутренние шаблоны. Шаблон описывает соответствие между столбцами электронной таблицы и параметрами заказа в системе. Например, в файле Excel в столбце H указан телефон получателя. Шаблон нужен, чтобы система записала значение из столбца H в параметр заказа “Телефон получателя”.
+
В системе нет готовых шаблонов. Как правило, шаблоны каждой курьерской службы уникальны. Содержимое шаблона зависит от формата информации во входящих Excel-файлах.
  
В системе нет готовых шаблонов. Как правило, шаблоны каждой курьерской службы уникальны. Содержимое шаблона зависит от формата информации во входящих Excel-файлах.  
+
В процессе импорта система может выполнить обработку отдельных значений. Для этого добавьте в шаблон выражение на внутреннем языке разработки. Подробнее см. в статье [[Руководство программиста]]. Например, рекомендуем приводить адрес доставки к внутреннему формату системы.
  
В процессе импорта система может выполнить обработку отдельных значений. Для этого добавьте в шаблон выражение на внутреннем языке разработки. Подробнее см. в статье [[Руководство программиста]]. Например, рекомендуем приводить адрес доставки к внутреннему формату системы.  
+
MeaSoft поддерживает импорт из всех форматов данных, которые поддерживает Excel. Подробнее см. [https://support.office.com/ru-ru/article/поддерживаемые-excel-форматы-файлов-0943ff2c-6014-4e8d-aaea-b83d51d46247 на официальном сайте Microsoft Office].
  
КС 2008 поддерживает импорт из всех форматов данных, которые поддерживает Excel. Подробнее см. [https://support.office.com/ru-ru/article/поддерживаемые-excel-форматы-файлов-0943ff2c-6014-4e8d-aaea-b83d51d46247 на официальном сайте Microsoft Office].
+
== Создание шаблона ==
 
+
На форме настройки шаблона есть несколько вкладок: '''Основное''', '''Места''', '''Вложения''', '''Услуги''' и '''Дополнительные'''. Для загрузки по шаблону настройте вкладку '''Основное'''. Настройка остальных вкладок необязательна и зависит от формата заказов в Excel-файле.
==Создание шаблона==
 
 
 
На форме настройки шаблона есть несколько вкладок: '''Основное''', '''Места''', '''Вложения''', '''Услуги''' и '''Дополнительные'''. Для загрузки по шаблону обязательно настройте вкладку '''Основное'''. Настройка остальных вкладок необязательна и зависит от формата заказов в Excel-файле.  
 
  
 
{{Note|Не рекомендуем самостоятельно писать скрипты на '''Дополнительных''' вкладках. Если надо изменить логику обработки заказов, то обратитесь в службу поддержки MEA Soft.}}
 
{{Note|Не рекомендуем самостоятельно писать скрипты на '''Дополнительных''' вкладках. Если надо изменить логику обработки заказов, то обратитесь в службу поддержки MEA Soft.}}
  
===Как добавить шаблон===
+
=== Как добавить шаблон ===
 
+
Создать шаблон загрузки может пользователь с доступом к созданию заказа. Чтобы создать шаблон:
Создать шаблон загрузки может пользователь с доступом к созданию заказа. Чтобы создать шаблон:  
+
# Перейдите в '''Связь''' → '''Импорт БД из Excel'''.
#Перейдите в '''Связь''' → '''Импорт БД из Excel'''.  
+
# Нажмите '''Шаблоны''' → '''F3''', чтобы добавить шаблон.
#Нажмите '''Шаблоны''' → '''F3''', чтобы добавить шаблон.  
+
# Укажите '''Название''' шаблона.
#Укажите '''Название''' шаблона.  
+
# Включите опцию '''Личный шаблон''', чтобы другие пользователи не могли его редактировать. Личный шаблон может изменить его владелец или администратор системы.
#Включите опцию '''Личный шаблон''', чтобы другие пользователи не могли его редактировать. Личный шаблон может изменить его владелец или администратор системы.  
+
# Укажите номер '''Первой строки''' с заказом в электронной таблице. Не указывайте номер строки с заголовком таблицы. Например, если в шаблоне '''Первая строка''' это заголовок таблицы и поле '''Условие загрузки''' пустое, то система создаст заказ на основе заголовка таблицы.
#Укажите номер '''Первой строки''' с заказом в электронной таблице. Не указывайте номер строки с заголовком таблицы. Например, если в шаблоне '''Первая строка''' это заголовок таблицы и поле '''Условие загрузки''' пустое, то система создаст заказ на основе заголовка таблицы.
+
# Включите опцию '''Адрес не пустой''', чтобы система создавала заказы только из строк с указанным адресом.
#Включите опцию '''Адрес не пустой''', чтобы система создавала заказы только из строк с указанным адресом.
+
# Если требуется дополнительное условие, то укажите '''Условие загрузки''' — логическое выражение на [[Руководство программиста|внутреннем языке разработки]]. <rspoiler text ="Посмотреть примеры условий"> <p><nowiki>A!''</nowiki></p> <p>A!'Итого'</p> <p>A!A(-1)</p> </rspoiler>. Во время чтения таблицы система проверяет каждую строку по указанному условию:
#Если требуется дополнительное условие, то укажите '''Условие загрузки''' логическое выражение на [[Руководство программиста| внутреннем языке разработки]]. <rspoiler text ="Посмотреть примеры условий"> <p><nowiki>A!''</nowiki></p> <p>A!'Итого'</p> <p>A!A(-1)</p> </rspoiler>. Во время чтения таблицы система проверяет каждую строку по указанному условию:
+
#* условие выполнено — система формирует новый заказ из строки;
#*условие выполнено — система формирует новый заказ из строки;  
+
#* условие не выполнено — система пропускает строку и переходит к следующей.
#*условие не выполнено — система пропускает строку и переходит к следующей.
+
# Включите опцию '''Контролировать уникальность шифра''', чтобы пропускать заказы с шифром, который уже есть в системе.
#Включите опцию '''Контролировать уникальность шифра''', чтобы пропускать заказы с шифром, который уже есть в системе.  
+
# Включите опцию '''Только в недоставленных''', чтобы система не проверяла уникальность шифра среди доставленной корреспонденции.
#Включите опцию '''Только в недоставленных''', чтобы система не проверяла уникальность шифра среди доставленной корреспонденции.  
+
# Выберите способ '''Идентификации отправителя'''. Укажите '''Столбец''' и '''Строку''' с информацией об отправителе.
#Выберите способ '''Идентификации отправителя'''. Укажите '''Столбец''' и '''Строку''' с информацией об отправителе.  
+
# Включите опцию '''Пересчитать стоимость после загрузки''', чтобы система рассчитала стоимость доставки после завершения загрузки из файла.
#Включите опцию '''Пересчитать стоимость после загрузки''', чтобы система рассчитала стоимость доставки после завершения загрузки из файла.  
+
# В таблице настройте соответствие столбцов в Excel с параметрами заказа в системе. Столбцы в таблице:
#В таблице настройте соответствие столбцов в Excel с параметрами заказа в системе. Столбцы в таблице:
+
#* '''Поле''' — внутреннее имя параметра заказа;
#* '''Поле''' внутреннее имя параметра заказа;
+
#* '''Название''' параметра в MeaSoft;
#* '''Название''' параметра в системе КС 2008;
+
#* '''По умолчанию''' — значение параметра, если столбец Значение пустой;
#* '''По умолчанию''' значение параметра, если столбец Значение пустой;  
+
#* '''Значение''' параметра. Укажите буквенное обозначение столбца в Excel. Система использует значение из указанного столбца текущей строки. Чтобы отредактировать исходное значение, используйте внутренний язык разработки. Например, в Excel фамилия имя и отчество получателя указаны в отдельных столбцах: A, B и C. MeaSoft хранит эти данные в одном параметре «ФИО получателя» (name). Чтобы сложить значения из трех столбцов в один параметр, для ФИО получателя укажите следующее: «A+' '+B+' '+.
#* '''Значение''' параметра. Укажите буквенное обозначение столбца в Excel. Система использует значение из указанного столбца текущей строки. Чтобы отредактировать исходное значение, используйте внутренний язык разработки. Например, в Excel фамилия имя и отчество получателя указаны в отдельных столбцах: A, B и C. Система КС 2008 хранит эти данные в одном параметре “ФИО получателя” (name). Чтобы сложить значения из трех столбцов в один параметр, для ФИО получателя укажите следующее: “A+' '+B+' '+C”.  
 
  
 
{{Note|Для параметра '''Адрес получателя''' используйте значение вида "MakeAddress(буква столбца)". Такой подход преобразует адрес во внутренний формат системы. }}
 
{{Note|Для параметра '''Адрес получателя''' используйте значение вида "MakeAddress(буква столбца)". Такой подход преобразует адрес во внутренний формат системы. }}
  
Форма настройки шаблона:  
+
Форма настройки шаблона:
[[File:Vlog 5.png|center|600px|]]
+
[[Файл:Vlog 5.png|center|600px|]]
 
 
===Как указать лист с заказами в Excel-файле===
 
  
По умолчанию система ищет информацию о товарах на первом листе Excel-файла. Эту логику можно изменить вручную. Для этого:  
+
=== Как указать лист с заказами в Excel-файле ===
# Откройте существующий шаблон на редактирование. Или добавьте новый шаблон.  
+
По умолчанию система ищет информацию о товарах на первом листе Excel-файла. Эту логику можно изменить вручную. Для этого:
# Перейдите на вкладку '''Дополнительно'''.  
+
# Откройте существующий шаблон на редактирование. Или добавьте новый шаблон.
# В поле '''Скрипт до загрузки''' напишите формулу:  
+
# Перейдите на вкладку '''Дополнительно'''.
 +
# В поле '''Скрипт до загрузки''' напишите формулу:
 
  <?>
 
  <?>
 
  SetSheet(2);
 
  SetSheet(2);
  
В указанной формуле 2 это номер листа с заказами в Excel-файле. Замените 2 на подходящее вам число.  
+
В указанной формуле 2 это номер листа с заказами в Excel-файле. Замените 2 на подходящее вам число.
  
[[File:template_setsheet.png|center|600px|]]
+
[[Файл:template_setsheet.png|center|600px|]]
  
==Как загрузить заказы==
+
== Как загрузить заказы ==
  
===Загрузка из одного файла===
+
=== Загрузка из одного файла ===
 
+
# Убедитесь, что в систему добавлен нужный клиент. Для этого перейдите на вкладку '''Клиенты''' и используйте поиск в правой части окна. Например, укажите название '''Компании''', '''ФИО''' менеджера и нажмите '''Вывести'''.
#Убедитесь, что в систему добавлен нужный клиент. Для этого перейдите на вкладку '''Клиенты''' и используйте поиск в правой части окна. Например, укажите название '''Компании''', '''ФИО''' менеджера и нажмите '''Вывести'''.
+
# Если клиент не найден, то нажмите '''F3''', чтобы добавить нового. В открывшемся окне обязательно заполните вкладки '''Основное''', '''Реквизиты''' и '''Финансы'''. Их подробное описание см. в статье [[Клиенты и партнеры]].
#Если клиент не найден, то нажмите '''F3''', чтобы добавить нового. В открывшемся окне обязательно заполните вкладки '''Основное''', '''Реквизиты''' и '''Финансы'''. Их подробное описание см. в статье [[Клиенты и партнеры]].
+
# Перейдите на вкладку '''Заказы''' и нажмите '''F3''', чтобы создать новый заказ. Система откроет окно Информация о заказе.
#Перейдите на вкладку '''Заказы''' и нажмите '''F3''', чтобы создать новый заказ. Система откроет окно Информация о заказе.
+
# Укажите '''Заказчика'''. В поле работает автозаполнение: введите часть значения и нажмите '''Tab''', когда предложено подходящее. Система автоматически заполнит часть полей, используя информацию о клиенте.
#Укажите '''Заказчика'''. В поле работает автозаполнение: введите часть значения и нажмите '''Tab''', когда предложено подходящее. Система автоматически заполнит часть полей, используя информацию о клиенте.
+
# Выберите '''Тип заказа'''.
#Выберите '''Тип заказа'''.
+
# Нажмите '''OK''', чтобы создать заказ.
#Нажмите '''OK''', чтобы создать заказ.
+
# В верхнем меню выберите '''Связь''' → '''Импорт БД из Excel'''.
#В верхнем меню выберите '''Связь''' → '''Импорт БД из Excel'''.  
+
# В поле '''Формат''' выберите шаблон импорта.
#В поле '''Формат''' выберите шаблон импорта.  
+
# Укажите созданный '''Заказ'''.
#Укажите созданный '''Заказ'''.  
+
# Выберите '''Файл''' Excel с информацией о заказах.
#Выберите '''Файл''' Excel с информацией о заказах.  
+
# Нажмите '''Старт''', чтобы начать импорт данных.
#Нажмите '''Старт''', чтобы начать импорт данных.  
 
  
 
Форма импорта заказов:
 
Форма импорта заказов:
[[File:Import.png|center|500px]]
+
[[Файл:Import.png|center|500px]]
  
===Загрузка из нескольких файлов===
+
=== Загрузка из нескольких файлов ===
 
+
# Убедитесь, что в систему добавлен нужный клиент. Для этого перейдите на вкладку '''Клиенты''' и используйте поиск в правой части окна. Например, укажите название '''Компании''', '''ФИО''' менеджера и нажмите '''Вывести'''.
#Убедитесь, что в систему добавлен нужный клиент. Для этого перейдите на вкладку '''Клиенты''' и используйте поиск в правой части окна. Например, укажите название '''Компании''', '''ФИО''' менеджера и нажмите '''Вывести'''.
+
# Если клиент не найден, то нажмите '''F3''', чтобы добавить нового. В открывшемся окне обязательно заполните вкладки '''Основное''', '''Реквизиты''' и '''Финансы'''. Их подробное описание см. в статье [[Клиенты и партнеры]].
#Если клиент не найден, то нажмите '''F3''', чтобы добавить нового. В открывшемся окне обязательно заполните вкладки '''Основное''', '''Реквизиты''' и '''Финансы'''. Их подробное описание см. в статье [[Клиенты и партнеры]].
+
# Укажите '''Папку''' с нужными Excel-файлами. Убедитесь, что в папке хранятся только файлы с заказами. Система не проверяет содержимое файлов.
#Укажите '''Папку''' с нужными Excel-файлами. Убедитесь, что в папке хранятся только файлы с заказами. Система не проверяет содержимое файлов.
+
# Укажите '''Клиента''', для которого система создаст новый заказ.
#Укажите '''Клиента''', для которого система создаст новый заказ.  
+
# Выберите '''Шаблон''' импорта для обработки первого файлу в списке. Для удобства рекомендуем в названии Excel-файлов писать название подходящего шаблона или клиента.
#Выберите '''Шаблон''' импорта для обработки первого файлу в списке. Для удобства рекомендуем в названии Excel-файлов писать название подходящего шаблона или клиента.  
+
# Нажмите '''Загрузить'''. Система обработает первый файл и уберет его из списка.
#Нажмите '''Загрузить'''. Система обработает первый файл и уберет его из списка.  
+
# Если в списке остались элементы, то вернитесь на пункт 2 и повторите действия для следующего файла.
#Если в списке остались элементы, то вернитесь на пункт 2 и повторите действия для следующего файла.
 
  
 
Форма импорта из нескольких файлов:
 
Форма импорта из нескольких файлов:
[[File:Importfromfolder.png|center|500px]]
+
[[Файл:Importfromfolder.png|center|500px]]
  
==Шаблон как отдельный файл==
+
== Шаблон как отдельный файл ==
 
+
Вы можете сохранить шаблон в отдельный XML-файл. Или загрузить шаблон в систему из XML-файла.
В КС 2008 есть возможность сохранить шаблон в отдельный XML-файл. Или загрузить шаблон в систему из XML-файла.  
 
 
{{Note|При выгрузке и загрузке шаблона система не копирует настройки на вкладке '''Услуги'''. Укажите эти настройки вручную после импорта шаблона.}}
 
{{Note|При выгрузке и загрузке шаблона система не копирует настройки на вкладке '''Услуги'''. Укажите эти настройки вручную после импорта шаблона.}}
  
===Сохранить шаблон в файл===
+
=== Сохранить шаблон в файл ===
 +
# Перейдите в '''Связь''' → '''Импорт БД из Excel''' → '''Шаблоны'''.
 +
# Выберите шаблон для выгрузки и кликните на нем правой кнопкой мыши.
 +
# Нажмите '''Сохранить в файл'''.
 +
# Выберите папку и нажмите '''Сохранить'''.
  
#Перейдите в '''Связь''' → '''Импорт БД из Excel''' → '''Шаблоны'''.
+
Сохранение шаблона:
#Выберите шаблон для выгрузки и кликните на нем правой кнопкой мыши.
+
[[Файл:Vlog 12_1.png|center|300px]]
#Нажмите '''Сохранить в файл'''.
 
#Выберите папку и нажмите '''Сохранить'''.  
 
  
Сохранение шаблона:
+
=== Добавить в систему шаблон из файла ===
[[File:Vlog 12_1.png|center|300px]]
+
# Перейдите в '''Связь''' → '''Импорт БД из Excel''' → '''Шаблоны'''.
 
+
# Выберите шаблон для выгрузки и кликните на нем правой кнопкой мыши.
===Добавить в систему шаблон из файла===
+
# Нажмите '''Добавить из файла'''.
 
+
# Выберите XML-файл шаблона и нажмите '''Открыть'''.
#Перейдите в '''Связь''' → '''Импорт БД из Excel''' → '''Шаблоны'''.
 
#Выберите шаблон для выгрузки и кликните на нем правой кнопкой мыши.  
 
#Нажмите '''Добавить из файла'''.  
 
#Выберите XML-файл шаблона и нажмите '''Открыть'''.  
 
  
 
Загрузка шаблона:
 
Загрузка шаблона:
[[File:Vlog 12_2.png|center|300px]]
+
[[Файл:Vlog 12_2.png|center|300px]]
  
 
== Пример создания простого шаблона для загрузки вложений ==
 
== Пример создания простого шаблона для загрузки вложений ==
 
 
{{Note|Пример построения простого шаблона рассмотрен в этой статье в целях обучения и для возможности самостоятельного создания шаблона пользователем. В случае необходимости создания сложного шаблона для клиента, который включает в себя сложные модификаторы формул, процедуры преобразования типов и множество прочих нюансов - следует обращаться с вопросами в техническую поддержку (желательно с файлом реестра Вашего клиента и описанием желаемых требований для его загрузки в MeaSoft).}}
 
{{Note|Пример построения простого шаблона рассмотрен в этой статье в целях обучения и для возможности самостоятельного создания шаблона пользователем. В случае необходимости создания сложного шаблона для клиента, который включает в себя сложные модификаторы формул, процедуры преобразования типов и множество прочих нюансов - следует обращаться с вопросами в техническую поддержку (желательно с файлом реестра Вашего клиента и описанием желаемых требований для его загрузки в MeaSoft).}}
  
Для импорта базы рассылки в формате Microsoft Excel необходимо сделать заказ (вкладка основного окна программы '''«Заказы»'''), в который будет производиться импорт. Затем, в главном меню основного окна программы выберите пункт меню '''«Связь» → «Импорт БД из Excel»''' (необходимо наличие прав создания почтовых заказов). Откроется окно следующего вида:
+
Для импорта базы рассылки в формате Microsoft Excel необходимо сделать заказ (вкладка основного окна программы '''«Заказы»'''), в который будет производиться импорт. Затем, в главном меню основного окна программы выберите пункт меню '''«Связь» → «Импорт БД из Excel»''' (необходимо наличие прав создания почтовых заказов). Откроется окно следующего вида:
  
  
[[Файл:vlog_1.png|none]]
+
[[Файл:vlog 1.png|none]]
  
  
Строка 125: Строка 115:
  
  
[[Файл:vlog_2.png|none]]
+
[[Файл:vlog 2.png|none]]
  
  
Редактирование шаблонов доступно путем нажатия на кнопку '''«Шаблоны…»'''. Можно использовать существующий шаблон или же создать новый путём нажатия клавиши '''«F3»'''.
+
Чтобы редактировать шаблон, нажмите на кнопку '''Шаблоны'''. Можно использовать существующий шаблон или же создать новый путём нажатия клавиши F3.
  
Шаблон состоит из заголовка, который включает в себя название шаблона, порядковый номер первой загружаемой строки в таблице, а также условие загрузки каждой конкретной строки (номер первой строки и условие загрузки могут задаваться формулами), и строк описания значений, помещаемых в каждое конкретное поле базы данных адресов. Строка состоит из названия поля в БД по-английски и описания по-русски, значения по умолчанию, и значения ячейки. Если поле '''«значение»''' пустое – программа использует значение поля '''«значение по умолчанию»'''. Поля «значение» и «значение по умолчанию» описывают преобразования данных на внутреннем языке формул (описание языка приведено по ссылке [http://wiki.courierexe.ru/index.php/Руководство_программиста]).
+
Шаблон состоит из заголовка, который включает в себя название шаблона, порядковый номер первой загружаемой строки в таблице, а также условие загрузки каждой конкретной строки (номер первой строки и условие загрузки могут задаваться формулами), и строк описания значений, помещаемых в каждое конкретное поле базы данных адресов. Строка состоит из названия поля в БД по-английски и описания по-русски, значения по умолчанию, и значения ячейки. Если поле '''значение''' пустое — программа использует значение поля '''значение по умолчанию'''. Поля «значение» и «значение по умолчанию» описывают преобразования данных на внутреннем языке формул (описание языка приведено по ссылке [http://wiki.courierexe.ru/index.php/Руководство_программиста]).
  
Процесс импорта реестра заказов из Microsoft Excel в систему будет выполнен на примере построения шаблона с именем '''“пример”'''. На рисунке ниже изображено содержимое таблицы Microsoft Excel с заказами клиента:
+
Процесс импорта реестра заказов из Microsoft Excel в систему будет выполнен на примере построения шаблона с именем '''«пример»'''. На рисунке ниже изображено содержимое таблицы Microsoft Excel с заказами клиента:
  
  
Строка 138: Строка 128:
  
  
В данном реестре мы видим, что заказы №1-3 имеют одного и того же получателя, поэтому для удобства выполнения их можно объединить в одну единицу корреспонденции. Такая же ситуация с заказами №4-6.  
+
В данном реестре мы видим, что заказы № 1-3 имеют одного и того же получателя, поэтому для удобства выполнения их можно объединить в одну единицу корреспонденции. Такая же ситуация с заказами № 4-6.
  
Примечание: На рисунке выше, поля столбцов по горизонтали нумеруются буквами латинского алфавита (A-N), однако данное представление в пакете MS Office может отличаться от привычного и иметь цифровую нумерацию (R1C1). На рисунке ниже представлено меню настроек (включение/отключение) в программе Microsoft Excel для стиля ссылок R1C1. Для работы с цифровым представлением столбцов Microsoft Excel - соответствие цифровой нумерации буквенной происходит путем простого преобразования: номер цифры = порядковому номеру буквы алфавита (1-‘A’, 2-‘B’, 3-‘C’ и т.д.):
+
Примечание: На рисунке выше, поля столбцов по горизонтали нумеруются буквами латинского алфавита (A-N), однако данное представление в пакете MS Office может отличаться от привычного и иметь цифровую нумерацию (R1C1). На рисунке ниже представлено меню настроек (включение/отключение) в программе Microsoft Excel для стиля ссылок R1C1. Для работы с цифровым представлением столбцов Microsoft Excel — соответствие цифровой нумерации буквенной происходит путем простого преобразования: номер цифры = порядковому номеру буквы алфавита (1-‘A’, 2-‘B’, 3-‘C’ и т. д.):
  
  
[[Файл:vlog_4.png|none]]
+
[[Файл:vlog 4.png|none]]
  
  
 
'''Примечание:''' Обработка программой реестра заказов из файла происходит с первого листа документа, поэтому таблица заказов должна находиться на первой странице.
 
'''Примечание:''' Обработка программой реестра заказов из файла происходит с первого листа документа, поэтому таблица заказов должна находиться на первой странице.
  
Редактирование старых и создание новых шаблонов доступно по нажатию на кнопку '''«Шаблоны…»''' в окне '''“Импорт из Excel”'''. Буквенные соответствия столбцов таблицы указаны напротив ячеек с названием. На рисунке ниже показано окно редактирования шаблона с именем '''“пример”'''.
+
Редактирование старых и создание новых шаблонов доступно по нажатию на кнопку '''«Шаблоны…»''' в окне '''«Импорт из Excel»'''. Буквенные соответствия столбцов таблицы указаны напротив ячеек с названием. На рисунке ниже показано окно редактирования шаблона с именем '''«пример»'''.
  
Для поля '''“Адрес получателя”''' указано значение с функцией '''MakeAddress'''(буква столбца с адресом из реестра в Excel файле). Функция '''MakeAddress'''(e) помогает и позволяет синтактически более точно преобразовывать адрес получателя путем его многократного преобразования и приведения к внутреннему стандарту программы. Параметры преобразования адреса можно задать путем нажатия кнопки '''«Автозамена…»''' в окне '''«Импорт из Excel»'''.
+
Для поля '''«Адрес получателя»''' указано значение с функцией '''MakeAddress'''(буква столбца с адресом из реестра в Excel файле). Функция '''MakeAddress'''(e) — помогает и позволяет синтактически более точно преобразовывать адрес получателя путем его многократного преобразования и приведения к внутреннему стандарту программы. Параметры преобразования адреса можно задать путем нажатия кнопки '''«Автозамена…»''' в окне '''«Импорт из Excel»'''.
  
 
Описание других полей интуитивно понятно и не требует дополнительных комментариев.
 
Описание других полей интуитивно понятно и не требует дополнительных комментариев.
  
  
[[Файл:vlog_5.png|none]]
+
[[Файл:vlog 5.png|none]]
  
  
В данном примере мы видим, что первой строкой, из которой программа начнёт считывать данные, является строка под номером 10. Условием загрузки является то, что ячейка ‘d’ (Контактное лицо (Ф.И.О.)) не равна своему же значению из предыдущей строки. Если равно, то такая строка будет считаться вложением к предыдущей строке. Вложения необходимы для того, чтобы можно было объединять несколько единиц корреспонденции в одну карточку при выполнении заданных условий (в нашем случае таким условием является то, что получателем корреспонденции является одно и то же лицо по одному и тому же адресу).  
+
В данном примере мы видим, что первой строкой, из которой программа начнёт считывать данные, является строка под номером 10. Условием загрузки является то, что ячейка ‘d’ (Контактное лицо (Ф.И.О.)) не равна своему же значению из предыдущей строки. Если равно, то такая строка будет считаться вложением к предыдущей строке. Вложения необходимы для того, чтобы можно было объединять несколько единиц корреспонденции в одну карточку при выполнении заданных условий (в нашем случае таким условием является то, что получателем корреспонденции является одно и то же лицо по одному и тому же адресу).
  
 
Для работы с вложениями необходимо перейти во вкладку '''«Дополнительно»''' и в окне '''«Скрипт после загрузки (используйте %zakaz% как код загружаемого заказа)»''' ввести следующий скрипт (первая строка должна быть пустой):
 
Для работы с вложениями необходимо перейти во вкладку '''«Дополнительно»''' и в окне '''«Скрипт после загрузки (используйте %zakaz% как код загружаемого заказа)»''' ввести следующий скрипт (первая строка должна быть пустой):
Строка 175: Строка 165:
 
  WHERE NOT EXISTS (SELECT r.code FROM boxes bb JOIN `returns` r ON r.box=bb.code WHERE bb.address=a.code) and a.date_put is null
 
  WHERE NOT EXISTS (SELECT r.code FROM boxes bb JOIN `returns` r ON r.box=bb.code WHERE bb.address=a.code) and a.date_put is null
  
[[Файл:vlog_6.png|none]]
+
[[Файл:vlog 6.png|none]]
  
  
Этот скрипт необходим для суммирования значений переменных '''«количество»''', '''«масса»''' и '''«цена»''' вложений в карточке корреспонденции.
+
Этот скрипт необходим для суммирования значений переменных '''«количество»''', '''«масса»''' и '''«цена»''' вложений в карточке корреспонденции.
  
Далее переходим во вкладку '''«Вложения»''':  
+
Далее переходим во вкладку '''«Вложения»''':
  
  
[[Файл:vlog_7.png|none]]
+
[[Файл:vlog 7.png|none]]
  
  
 
Ставим галку '''«Загружать вложения»'''.
 
Ставим галку '''«Загружать вложения»'''.
  
Условием загрузки в данном примере является то, что ячейка ‘d’ не пустая. Наименование вложения будет браться из ячейки ‘h’.
+
Условием загрузки в данном примере является то, что ячейка ‘d’ не пустая. Наименование вложения будет браться из ячейки ‘h’.
  
 
Поле '''«Код товара»''' используется как артикул в [[Модуль складского учета#Ввод данных|номенклатуре поставщика]] (актуально при использовании модуля складского учёта). В нашем случае оно пустое.
 
Поле '''«Код товара»''' используется как артикул в [[Модуль складского учета#Ввод данных|номенклатуре поставщика]] (актуально при использовании модуля складского учёта). В нашем случае оно пустое.
  
Каждое из полей в настройке шаблона соответствует определенному полю в карточке единицы корреспонденции, показанному на рисунке ниже. Заполнение полей шаблона “пример” происходит в соответствии со структурой и содержимым ячеек реестра в Excel файле. Поля на вкладке '''«Получатель»''' единицы корреспонденции заполняются следующим образом:
+
Каждое из полей в настройке шаблона соответствует определенному полю в карточке единицы корреспонденции, показанному на рисунке ниже. Заполнение полей шаблона «пример» происходит в соответствии со структурой и содержимым ячеек реестра в Excel файле. Поля на вкладке '''«Получатель»''' единицы корреспонденции заполняются следующим образом:
  
  
[[Файл:vlog_8.png|none]]
+
[[Файл:vlog 8.png|none]]
  
  
*Значения ячейеек ‘m’, ‘g’, ‘i’ в карточке корреспонденции будут суммироваться согласно своим значениям во вложениях.
+
* Значения ячейеек ‘m’, ‘g’, ‘i’ в карточке корреспонденции будут суммироваться согласно своим значениям во вложениях.
  
 
Поля на вкладке '''«Вложения»''' единицы корреспонденции заполнятся так:
 
Поля на вкладке '''«Вложения»''' единицы корреспонденции заполнятся так:
  
  
[[Файл:vlog_9.png|none]]
+
[[Файл:vlog 9.png|none]]
  
 
   
 
   
После создания и редактирования нового шаблона становится возможным автоматическая загрузка заказов из файла Excel. Для этого в окне '''«Импорт из Excel»''', последовательно указываем тип шаблона для обработки реестра заказов в Excel, номер заказа и файл реестра. По нажатию на кнопку '''“Cтарт”''' происходит последовательная обработка строк из файла Excel, ячейки которой считываются в базу данных заказов программы. Процесс завершения обработки сопровождается информационным сообщением содержащим статистику обработки записей:
+
После создания и редактирования нового шаблона становится возможным автоматическая загрузка заказов из файла Excel. Для этого в окне '''«Импорт из Excel»''', последовательно указываем тип шаблона для обработки реестра заказов в Excel, номер заказа и файл реестра. По нажатию на кнопку '''«Cтарт»''' происходит последовательная обработка строк из файла Excel, ячейки которой считываются в базу данных заказов программы. Процесс завершения обработки сопровождается информационным сообщением содержащим статистику обработки записей:
  
  
[[Файл:vlog_10.png|none]]
+
[[Файл:vlog 10.png|none]]
  
  
 
Из результата импорта видно, что программа обработала 6 записей из файла реестра Excel, которые были объеденены в 2 карточки корреспонденции согласно заданных в шаблоне условий.
 
Из результата импорта видно, что программа обработала 6 записей из файла реестра Excel, которые были объеденены в 2 карточки корреспонденции согласно заданных в шаблоне условий.
После этого мы можем перейти во вкладку '''«Адреса»''' где можно просмотреть те единицы корреспонденции, которые были импортированы в заказ (в данном случае это заказ №120340) и продолжить работу в программе:
+
После этого мы можем перейти во вкладку '''«Адреса»''' где можно просмотреть те единицы корреспонденции, которые были импортированы в заказ (в данном случае это заказ № 120340) и продолжить работу в программе:
  
  
Строка 219: Строка 209:
  
 
== Примеры модификаций содержимого ячеек при помощи формул ==
 
== Примеры модификаций содержимого ячеек при помощи формул ==
 
+
Иногда для приведения содержимого ячеек Excel к стандартному типу, который будет понятен программе, следует воспользоваться [[Руководство программиста|специальными функциями]]. Простые примеры применения функций рассмотрены ниже.
Иногда, для приведения содержимого ячеек Excel к стандартному типу, который будет понятен программе, следует воспользоваться специальными функциями (полное описание языка приведено по ссылке [http://wiki.courierexe.ru/index.php/Руководство_программиста Руководство программиста]). Простые примеры применения данных функций рассмотрены ниже:
 
 
   
 
   
  
'''1.'''Пример содержимого ячейки Excel “F”: “Россия, Москва, Горького ул., д. 23”
+
'''1.'''Пример содержимого ячейки Excel «F»: «Россия, Москва, Горького ул., д. 23»
  
Задача: Копировать из ячейки слово "Москва".
+
Задача: Копировать из ячейки слово «Москва».
  
 
Решение: '''PARAM(replace(f, ' ', ','), 2)'''
 
Решение: '''PARAM(replace(f, ' ', ','), 2)'''
  
Комментарий: Делим строку разделителями пробелов на параметры и читаем второй параметр. На выходе получаем "Москва".
+
Комментарий: Делим строку разделителями пробелов на параметры и читаем второй параметр. На выходе получаем «Москва».
  
  
'''2.'''Пример содержимого ячейки Excel “J”: “с 11 до 18”
+
'''2.'''Пример содержимого ячейки Excel «J»: «с 11 до 18»
  
Задача А: приведение строки к стандартному типу времени ЧЧ:ММ (например, для времени доставки). Необходимо к значению времени “11” добавить значение :00”.
+
Задача А: приведение строки к стандартному типу времени ЧЧ:ММ (например, для времени доставки). Необходимо к значению времени «11» добавить значение «:00».
  
 
Решение: '''LEFT(REMSPACE(replace(J, 'с', '')), 2)+':00''''
 
Решение: '''LEFT(REMSPACE(replace(J, 'с', '')), 2)+':00''''
  
Комментарий: Поиском слева ищем в строке значение “c”, после читаем второй параметр, разделенный символом пробел – число “11”, затем к нему прибавляем значение :00”. На выходе получаем “11:00”.
+
Комментарий: Поиском слева ищем в строке значение «c», после читаем второй параметр, разделенный символом пробел — число «11», затем к нему прибавляем значение «:00». На выходе получаем «11:00».
  
Задача Б: приведение строки к стандартному типу времени ЧЧ:ММ (например, для времени доставки). Необходимо к значению времени “18” добавить значение :00”.
+
Задача Б: приведение строки к стандартному типу времени ЧЧ:ММ (например, для времени доставки). Необходимо к значению времени «18» добавить значение «:00».
  
 
Решение: '''RIGHT(J, 2)+':00''''
 
Решение: '''RIGHT(J, 2)+':00''''
  
Комментарий: Копируем справа от начала строки 2 символа – значение ”18”, затем к нему прибавляем значение :00”. На выходе получаем “18:00”.
+
Комментарий: Копируем справа от начала строки 2 символа — значение «18», затем к нему прибавляем значение «:00». На выходе получаем «18:00».
  
  
'''3.'''Пример содержимого ячейки Excel “A”: 'забор груза', либо 'забор'
+
'''3.'''Пример содержимого ячейки Excel «A»: «'забор груза'», либо «'забор'»
  
Задача: Определять при чтении содержимого ячейки забор или доставку. В случае наличия слова 'забор груза', либо 'забор'” – подставлять в ячейку цифру “0”,  
+
Задача: Определять при чтении содержимого ячейки забор или доставку. В случае наличия слова «'забор груза'», либо «'забор'» — подставлять в ячейку цифру «0»,
 
иначе подставлять следующий порядковый номер.
 
иначе подставлять следующий порядковый номер.
  
 
Решение: '''if((C='забор груза')+(C='забор'), 0, GetNewNumber)'''
 
Решение: '''if((C='забор груза')+(C='забор'), 0, GetNewNumber)'''
  
Комментарий: При помощи условия if и логического ИЛИ выполняем проверку, если условие соблюдается – подставиться значение “0”, если не соблюдается - подставлять следующий порядковый номер (функция GetNewNumber).
+
Комментарий: При помощи условия if и логического ИЛИ выполняем проверку, если условие соблюдается — подставиться значение «0», если не соблюдается — подставлять следующий порядковый номер (функция GetNewNumber).
  
  
'''4.'''Пример содержимого ячейки Excel “K” -“забрать документы”, содержимого ячейки Excel “L” - “поставить печать”:
+
'''4.'''Пример содержимого ячейки Excel «K» -«забрать документы», содержимого ячейки Excel «L» — «поставить печать»:
  
Задача: сложить одержимое двух ячеек для загрузки поля “поручение курьера”.  
+
Задача: сложить одержимое двух ячеек для загрузки поля «поручение курьера».
  
 
Решение: '''k+', '+l'''
 
Решение: '''k+', '+l'''
  
Комментарий: Выполняем сложение содержимого двух ячеек “K” и “L”, разделенного запятой и пробелом. На выходе получаем “забрать документы, поставить печать”.
+
Комментарий: Выполняем сложение содержимого двух ячеек «K» и «L», разделенного запятой и пробелом. На выходе получаем «забрать документы, поставить печать».
  
  
'''5.'''Пример содержимого ячейки “масса, грамм” в Excel “N”: “2500”
+
'''5.'''Пример содержимого ячейки «масса, грамм» в Excel «N»: «2500»
  
Задача: Перевод значения ячейки “масса” из грамм в килограмм.  
+
Задача: Перевод значения ячейки «масса» из грамм в килограмм.
  
 
Решение: '''n/1000'''
 
Решение: '''n/1000'''
  
Комментарий: Выполняем операцию деления. На выходе получаем значение для поля масса “2.5 .
+
Комментарий: Выполняем операцию деления. На выходе получаем значение для поля масса "2.5 ".
  
  
Строка 281: Строка 270:
 
Решение: '''CalcDeliveryDate(ZakazRecord.source, Mode, TownTo, TownFrom, ZakazRecord.date_beg)'''
 
Решение: '''CalcDeliveryDate(ZakazRecord.source, Mode, TownTo, TownFrom, ZakazRecord.date_beg)'''
  
Комментарий: Вызываем функцию CalcTownDeliveryDate которая рассчитывает дату планируемой доставки по таблице сроков. В функцию передаем : ZakazRecord.date_beg - дата заказа, к ней будет добавлено найденное количество дней на доставку. ZakazRecord.source - код клиента, по нему будет найден тариф с указанными сроками. Mode - режим срочности. TownTo, TownFrom - коды городов отправителя и получателя.
+
Комментарий: Вызываем функцию CalcTownDeliveryDate которая рассчитывает дату планируемой доставки по таблице сроков. В функцию передаем : ZakazRecord.date_beg — дата заказа, к ней будет добавлено найденное количество дней на доставку. ZakazRecord.source — код клиента, по нему будет найден тариф с указанными сроками. Mode — режим срочности. TownTo, TownFrom — коды городов отправителя и получателя.
 
  Примечание:
 
  Примечание:
 
  функция CalcDeliveryDate до версии 804, имела имя CalcTownDeliveryDate
 
  функция CalcDeliveryDate до версии 804, имела имя CalcTownDeliveryDate

Версия 09:02, 7 сентября 2021

Логика загрузки заказов

Чтобы загрузить заказы из Excel, используются внутренние шаблоны. Шаблон описывает соответствие между столбцами электронной таблицы и параметрами заказа в системе. Например, в файле Excel в столбце H указан телефон получателя. Шаблон нужен, чтобы система записала значение из столбца H в параметр заказа «Телефон получателя».

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

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

MeaSoft поддерживает импорт из всех форматов данных, которые поддерживает Excel. Подробнее см. на официальном сайте Microsoft Office.

Создание шаблона

На форме настройки шаблона есть несколько вкладок: Основное, Места, Вложения, Услуги и Дополнительные. Для загрузки по шаблону настройте вкладку Основное. Настройка остальных вкладок необязательна и зависит от формата заказов в Excel-файле.

Note.png Не рекомендуем самостоятельно писать скрипты на Дополнительных вкладках. Если надо изменить логику обработки заказов, то обратитесь в службу поддержки MEA Soft.

Как добавить шаблон

Создать шаблон загрузки может пользователь с доступом к созданию заказа. Чтобы создать шаблон:

  1. Перейдите в СвязьИмпорт БД из Excel.
  2. Нажмите ШаблоныF3, чтобы добавить шаблон.
  3. Укажите Название шаблона.
  4. Включите опцию Личный шаблон, чтобы другие пользователи не могли его редактировать. Личный шаблон может изменить его владелец или администратор системы.
  5. Укажите номер Первой строки с заказом в электронной таблице. Не указывайте номер строки с заголовком таблицы. Например, если в шаблоне Первая строка это заголовок таблицы и поле Условие загрузки пустое, то система создаст заказ на основе заголовка таблицы.
  6. Включите опцию Адрес не пустой, чтобы система создавала заказы только из строк с указанным адресом.
  7. Если требуется дополнительное условие, то укажите Условие загрузки — логическое выражение на внутреннем языке разработки. Посмотреть примеры условий
    . Во время чтения таблицы система проверяет каждую строку по указанному условию:
    • условие выполнено — система формирует новый заказ из строки;
    • условие не выполнено — система пропускает строку и переходит к следующей.
  8. Включите опцию Контролировать уникальность шифра, чтобы пропускать заказы с шифром, который уже есть в системе.
  9. Включите опцию Только в недоставленных, чтобы система не проверяла уникальность шифра среди доставленной корреспонденции.
  10. Выберите способ Идентификации отправителя. Укажите Столбец и Строку с информацией об отправителе.
  11. Включите опцию Пересчитать стоимость после загрузки, чтобы система рассчитала стоимость доставки после завершения загрузки из файла.
  12. В таблице настройте соответствие столбцов в Excel с параметрами заказа в системе. Столбцы в таблице:
    • Поле — внутреннее имя параметра заказа;
    • Название параметра в MeaSoft;
    • По умолчанию — значение параметра, если столбец Значение пустой;
    • Значение параметра. Укажите буквенное обозначение столбца в Excel. Система использует значение из указанного столбца текущей строки. Чтобы отредактировать исходное значение, используйте внутренний язык разработки. Например, в Excel фамилия имя и отчество получателя указаны в отдельных столбцах: A, B и C. MeaSoft хранит эти данные в одном параметре «ФИО получателя» (name). Чтобы сложить значения из трех столбцов в один параметр, для ФИО получателя укажите следующее: «A+' '+B+' '+C».
Note.png Для параметра Адрес получателя используйте значение вида "MakeAddress(буква столбца)". Такой подход преобразует адрес во внутренний формат системы.

Форма настройки шаблона:

Vlog 5.png

Как указать лист с заказами в Excel-файле

По умолчанию система ищет информацию о товарах на первом листе Excel-файла. Эту логику можно изменить вручную. Для этого:

  1. Откройте существующий шаблон на редактирование. Или добавьте новый шаблон.
  2. Перейдите на вкладку Дополнительно.
  3. В поле Скрипт до загрузки напишите формулу:
<?>
SetSheet(2);

В указанной формуле 2 это номер листа с заказами в Excel-файле. Замените 2 на подходящее вам число.

Template setsheet.png

Как загрузить заказы

Загрузка из одного файла

  1. Убедитесь, что в систему добавлен нужный клиент. Для этого перейдите на вкладку Клиенты и используйте поиск в правой части окна. Например, укажите название Компании, ФИО менеджера и нажмите Вывести.
  2. Если клиент не найден, то нажмите F3, чтобы добавить нового. В открывшемся окне обязательно заполните вкладки Основное, Реквизиты и Финансы. Их подробное описание см. в статье Клиенты и партнеры.
  3. Перейдите на вкладку Заказы и нажмите F3, чтобы создать новый заказ. Система откроет окно Информация о заказе.
  4. Укажите Заказчика. В поле работает автозаполнение: введите часть значения и нажмите Tab, когда предложено подходящее. Система автоматически заполнит часть полей, используя информацию о клиенте.
  5. Выберите Тип заказа.
  6. Нажмите OK, чтобы создать заказ.
  7. В верхнем меню выберите СвязьИмпорт БД из Excel.
  8. В поле Формат выберите шаблон импорта.
  9. Укажите созданный Заказ.
  10. Выберите Файл Excel с информацией о заказах.
  11. Нажмите Старт, чтобы начать импорт данных.

Форма импорта заказов:

Import.png

Загрузка из нескольких файлов

  1. Убедитесь, что в систему добавлен нужный клиент. Для этого перейдите на вкладку Клиенты и используйте поиск в правой части окна. Например, укажите название Компании, ФИО менеджера и нажмите Вывести.
  2. Если клиент не найден, то нажмите F3, чтобы добавить нового. В открывшемся окне обязательно заполните вкладки Основное, Реквизиты и Финансы. Их подробное описание см. в статье Клиенты и партнеры.
  3. Укажите Папку с нужными Excel-файлами. Убедитесь, что в папке хранятся только файлы с заказами. Система не проверяет содержимое файлов.
  4. Укажите Клиента, для которого система создаст новый заказ.
  5. Выберите Шаблон импорта для обработки первого файлу в списке. Для удобства рекомендуем в названии Excel-файлов писать название подходящего шаблона или клиента.
  6. Нажмите Загрузить. Система обработает первый файл и уберет его из списка.
  7. Если в списке остались элементы, то вернитесь на пункт 2 и повторите действия для следующего файла.

Форма импорта из нескольких файлов:

Importfromfolder.png

Шаблон как отдельный файл

Вы можете сохранить шаблон в отдельный XML-файл. Или загрузить шаблон в систему из XML-файла.

Note.png При выгрузке и загрузке шаблона система не копирует настройки на вкладке Услуги. Укажите эти настройки вручную после импорта шаблона.

Сохранить шаблон в файл

  1. Перейдите в СвязьИмпорт БД из ExcelШаблоны.
  2. Выберите шаблон для выгрузки и кликните на нем правой кнопкой мыши.
  3. Нажмите Сохранить в файл.
  4. Выберите папку и нажмите Сохранить.

Сохранение шаблона:

Vlog 12 1.png

Добавить в систему шаблон из файла

  1. Перейдите в СвязьИмпорт БД из ExcelШаблоны.
  2. Выберите шаблон для выгрузки и кликните на нем правой кнопкой мыши.
  3. Нажмите Добавить из файла.
  4. Выберите XML-файл шаблона и нажмите Открыть.

Загрузка шаблона:

Vlog 12 2.png

Пример создания простого шаблона для загрузки вложений

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

Для импорта базы рассылки в формате Microsoft Excel необходимо сделать заказ (вкладка основного окна программы «Заказы»), в который будет производиться импорт. Затем, в главном меню основного окна программы выберите пункт меню «Связь» → «Импорт БД из Excel» (необходимо наличие прав создания почтовых заказов). Откроется окно следующего вида:


Vlog 1.png


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


Vlog 2.png


Чтобы редактировать шаблон, нажмите на кнопку Шаблоны. Можно использовать существующий шаблон или же создать новый путём нажатия клавиши F3.

Шаблон состоит из заголовка, который включает в себя название шаблона, порядковый номер первой загружаемой строки в таблице, а также условие загрузки каждой конкретной строки (номер первой строки и условие загрузки могут задаваться формулами), и строк описания значений, помещаемых в каждое конкретное поле базы данных адресов. Строка состоит из названия поля в БД по-английски и описания по-русски, значения по умолчанию, и значения ячейки. Если поле значение пустое — программа использует значение поля значение по умолчанию. Поля «значение» и «значение по умолчанию» описывают преобразования данных на внутреннем языке формул (описание языка приведено по ссылке [1]).

Процесс импорта реестра заказов из Microsoft Excel в систему будет выполнен на примере построения шаблона с именем «пример». На рисунке ниже изображено содержимое таблицы Microsoft Excel с заказами клиента:


Vlog 3.png


В данном реестре мы видим, что заказы № 1-3 имеют одного и того же получателя, поэтому для удобства выполнения их можно объединить в одну единицу корреспонденции. Такая же ситуация с заказами № 4-6.

Примечание: На рисунке выше, поля столбцов по горизонтали нумеруются буквами латинского алфавита (A-N), однако данное представление в пакете MS Office может отличаться от привычного и иметь цифровую нумерацию (R1C1). На рисунке ниже представлено меню настроек (включение/отключение) в программе Microsoft Excel для стиля ссылок R1C1. Для работы с цифровым представлением столбцов Microsoft Excel — соответствие цифровой нумерации буквенной происходит путем простого преобразования: номер цифры = порядковому номеру буквы алфавита (1-‘A’, 2-‘B’, 3-‘C’ и т. д.):


Vlog 4.png


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

Редактирование старых и создание новых шаблонов доступно по нажатию на кнопку «Шаблоны…» в окне «Импорт из Excel». Буквенные соответствия столбцов таблицы указаны напротив ячеек с названием. На рисунке ниже показано окно редактирования шаблона с именем «пример».

Для поля «Адрес получателя» указано значение с функцией MakeAddress(буква столбца с адресом из реестра в Excel файле). Функция MakeAddress(e) — помогает и позволяет синтактически более точно преобразовывать адрес получателя путем его многократного преобразования и приведения к внутреннему стандарту программы. Параметры преобразования адреса можно задать путем нажатия кнопки «Автозамена…» в окне «Импорт из Excel».

Описание других полей интуитивно понятно и не требует дополнительных комментариев.


Vlog 5.png


В данном примере мы видим, что первой строкой, из которой программа начнёт считывать данные, является строка под номером 10. Условием загрузки является то, что ячейка ‘d’ (Контактное лицо (Ф.И.О.)) не равна своему же значению из предыдущей строки. Если равно, то такая строка будет считаться вложением к предыдущей строке. Вложения необходимы для того, чтобы можно было объединять несколько единиц корреспонденции в одну карточку при выполнении заданных условий (в нашем случае таким условием является то, что получателем корреспонденции является одно и то же лицо по одному и тому же адресу).

Для работы с вложениями необходимо перейти во вкладку «Дополнительно» и в окне «Скрипт после загрузки (используйте %zakaz% как код загружаемого заказа)» ввести следующий скрипт (первая строка должна быть пустой):


Query update address a join
(select b.address, sum(b.kol_vo*b.price) as price, sum(b.kol_vo*b.mass) as mass, 
       sum(b.kol_vo) as kol_vo
 from address a join boxes b on b.address=a.code
 where a.zakaz=%zakaz%
 group by b.address) b on a.code=b.address
set 
a.kol_vo=b.kol_vo,
a.rur=b.price,
a.mass=CalcAddressMass(a.code)
WHERE NOT EXISTS (SELECT r.code FROM boxes bb JOIN `returns` r ON r.box=bb.code WHERE bb.address=a.code) and a.date_put is null
Vlog 6.png


Этот скрипт необходим для суммирования значений переменных «количество», «масса» и «цена» вложений в карточке корреспонденции.

Далее переходим во вкладку «Вложения»:


Vlog 7.png


Ставим галку «Загружать вложения».

Условием загрузки в данном примере является то, что ячейка ‘d’ не пустая. Наименование вложения будет браться из ячейки ‘h’.

Поле «Код товара» используется как артикул в номенклатуре поставщика (актуально при использовании модуля складского учёта). В нашем случае оно пустое.

Каждое из полей в настройке шаблона соответствует определенному полю в карточке единицы корреспонденции, показанному на рисунке ниже. Заполнение полей шаблона «пример» происходит в соответствии со структурой и содержимым ячеек реестра в Excel файле. Поля на вкладке «Получатель» единицы корреспонденции заполняются следующим образом:


Vlog 8.png


  • Значения ячейеек ‘m’, ‘g’, ‘i’ в карточке корреспонденции будут суммироваться согласно своим значениям во вложениях.

Поля на вкладке «Вложения» единицы корреспонденции заполнятся так:


Vlog 9.png


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


Vlog 10.png


Из результата импорта видно, что программа обработала 6 записей из файла реестра Excel, которые были объеденены в 2 карточки корреспонденции согласно заданных в шаблоне условий. После этого мы можем перейти во вкладку «Адреса» где можно просмотреть те единицы корреспонденции, которые были импортированы в заказ (в данном случае это заказ № 120340) и продолжить работу в программе:


Vlog 11.png

Примеры модификаций содержимого ячеек при помощи формул

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


1.Пример содержимого ячейки Excel «F»: «Россия, Москва, Горького ул., д. 23»

Задача: Копировать из ячейки слово «Москва».

Решение: PARAM(replace(f, ' ', ','), 2)

Комментарий: Делим строку разделителями пробелов на параметры и читаем второй параметр. На выходе получаем «Москва».


2.Пример содержимого ячейки Excel «J»: «с 11 до 18»

Задача А: приведение строки к стандартному типу времени ЧЧ:ММ (например, для времени доставки). Необходимо к значению времени «11» добавить значение «:00».

Решение: LEFT(REMSPACE(replace(J, 'с', )), 2)+':00'

Комментарий: Поиском слева ищем в строке значение «c», после читаем второй параметр, разделенный символом пробел — число «11», затем к нему прибавляем значение «:00». На выходе получаем «11:00».

Задача Б: приведение строки к стандартному типу времени ЧЧ:ММ (например, для времени доставки). Необходимо к значению времени «18» добавить значение «:00».

Решение: RIGHT(J, 2)+':00'

Комментарий: Копируем справа от начала строки 2 символа — значение «18», затем к нему прибавляем значение «:00». На выходе получаем «18:00».


3.Пример содержимого ячейки Excel «A»: «'забор груза'», либо «'забор'»

Задача: Определять при чтении содержимого ячейки забор или доставку. В случае наличия слова «'забор груза'», либо «'забор'» — подставлять в ячейку цифру «0», иначе подставлять следующий порядковый номер.

Решение: if((C='забор груза')+(C='забор'), 0, GetNewNumber)

Комментарий: При помощи условия if и логического ИЛИ выполняем проверку, если условие соблюдается — подставиться значение «0», если не соблюдается — подставлять следующий порядковый номер (функция GetNewNumber).


4.Пример содержимого ячейки Excel «K» -«забрать документы», содержимого ячейки Excel «L» — «поставить печать»:

Задача: сложить одержимое двух ячеек для загрузки поля «поручение курьера».

Решение: k+', '+l

Комментарий: Выполняем сложение содержимого двух ячеек «K» и «L», разделенного запятой и пробелом. На выходе получаем «забрать документы, поставить печать».


5.Пример содержимого ячейки «масса, грамм» в Excel «N»: «2500»

Задача: Перевод значения ячейки «масса» из грамм в килограмм.

Решение: n/1000

Комментарий: Выполняем операцию деления. На выходе получаем значение для поля масса "2.5 ".


6.Пример расчета сроков доставки

Задача: Рассчитать планируемую дату доставки на основе сроков доставки

Решение: CalcDeliveryDate(ZakazRecord.source, Mode, TownTo, TownFrom, ZakazRecord.date_beg)

Комментарий: Вызываем функцию CalcTownDeliveryDate которая рассчитывает дату планируемой доставки по таблице сроков. В функцию передаем : ZakazRecord.date_beg — дата заказа, к ней будет добавлено найденное количество дней на доставку. ZakazRecord.source — код клиента, по нему будет найден тариф с указанными сроками. Mode — режим срочности. TownTo, TownFrom — коды городов отправителя и получателя.

Примечание:
функция CalcDeliveryDate до версии 804, имела имя CalcTownDeliveryDate