== Пример создания простого шаблона Логика загрузки заказов==
Для импорта базы рассылки Чтобы загрузить заказы из Excel, КС 2008 использует внутренние шаблоны. Шаблон описывает соответствие между столбцами электронной таблицы и параметрами заказа в формате MS Excel или DBF (а также любого другого форматасистеме. Например, поддерживаемого MS в файле Excel), создайте заказ, в который необходимо импортироватьстолбце H указан телефон получателя. Шаблон нужен, потом чтобы система записала значение из столбца H в главном меню основного окна программы выберите пункт «Связь» → «Импорт БД из Excel» (необходимо наличие прав создания почтовых заказов)параметр заказа “Телефон получателя”. Откроется окно следующего вида:
[[Файл:Импорт из В системе нет готовых шаблонов. Как правило, шаблоны каждой курьерской службы уникальны. Содержимое шаблона зависит от формата информации во входящих Excel-файлах.png|center]]
В процессе импорта система может выполнить обработку отдельных значений. Для этого добавьте в шаблон выражение на внутреннем языке разработки. Подробнее см. в статье [[Руководство программиста]]. Например, рекомендуем приводить адрес доставки к внутреннему формату системы.
В окне импорта необходимо выбрать заказКС 2008 поддерживает импорт из всех форматов данных, в который нужно импортировать базу, шаблон загрузки, а также указать имя файлакоторые поддерживает Excel. Подробнее см. [https://support.office.com/ru-ru/article/поддерживаемые-excel-форматы-файлов-0943ff2c-6014-4e8d-aaea-источника, из которого необходимо загружатьb83d51d46247 на официальном сайте Microsoft Office].
Редактирование шаблонов доступно путем нажатия на кнопку «Шаблоны…».<br /> Шаблон состоит из заголовка, который в себя включает название шаблона, номер первой загружаемой строки в файле, а также условие загрузки каждой конкретной строки (номер первой строки и условие загрузки может задаваться формулами), и строк описания значений, помещаемых в каждое конкретное поле базы данных адресов. Строка состоит из названия поля (кратко по-английски), описания (развернуто по-русски), значения по умолчанию, и значения. Если поле «значение» пустое – система использует значение поля «значение по умолчанию». Поля «значение» и «значение по умолчанию» описывают преобразования данных на [[Руководство программиста|внутреннем языке разработки]].==Как добавить шаблон==
Процесс импорта реестра заказов из excel в систему будет выполнен на примере построения На форме настройки шаблона с именем “Example”есть несколько вкладок: '''Основное''', '''Места''', '''Вложения''', '''Услуги''' и '''Дополнительные'''. На рисунке ниже изображено содержимое excel файла с заказами клиентаДля загрузки по шаблону обязательно настройте вкладку '''Основное'''. Набор столбцов реестра – типовой Настройка остальных вкладок необязательна и содержит 13 полей, по желанию набор полей можно расширить или же сократитьзависит от формата заказов в Excel-файле.
{{Note|Не рекомендуем самостоятельно писать скрипты на '''Дополнительных''' вкладках. Если надо изменить логику обработки заказов, то обратитесь в службу поддержки MEA Soft.}}
Создать шаблон загрузки может пользователь с доступом к созданию заказа. Чтобы создать шаблон: #Перейдите в '''Связь''' → '''Импорт БД из Excel'''. #Нажмите '''Шаблоны''' → '''F3''', чтобы добавить шаблон. #Укажите '''Название''' шаблона. #Включите опцию '''Личный шаблон''', чтобы другие пользователи не могли его редактировать. Личный шаблон может изменить его владелец или администратор системы. #Укажите номер '''Первой строки''' с заказом в электронной таблице. Не указывайте номер строки с заголовком таблицы. Например, если в шаблоне '''Первая строка''' это заголовок таблицы и поле '''Условие загрузки''' пустое, то система создаст заказ на основе заголовка таблицы.#Включите опцию '''Адрес не пустой''', чтобы система создавала заказы только из строк с указанным адресом.#Если требуется дополнительное условие, то укажите '''Условие загрузки''' — логическое выражение на [[Файл:Excel_шаблон.png|850pxРуководство программиста|centerвнутреннем языке разработки]]. <rspoiler text ="Посмотреть примеры условий"> <p><nowiki>A!''</nowiki></p> <p>A!'Итого'</p> <p>A!A(-1)</p> </rspoiler>. Во время чтения таблицы система проверяет каждую строку по указанному условию:#*условие выполнено — система формирует новый заказ из строки; #*условие не выполнено — система пропускает строку и переходит к следующей. #Включите опцию '''Контролировать уникальность шифра''', чтобы пропускать заказы с шифром, который уже есть в системе. #Включите опцию '''Только в недоставленных''', чтобы система не проверяла уникальность шифра среди доставленной корреспонденции. #Выберите способ '''Идентификации отправителя'''. Укажите '''Столбец''' и '''Строку''' с информацией об отправителе. #Включите опцию '''Пересчитать стоимость после загрузки''', чтобы система рассчитала стоимость доставки после завершения загрузки из файла. #В таблице настройте соответствие столбцов в Excel с параметрами заказа в системе. Столбцы в таблице:#* '''Поле''' — внутреннее имя параметра заказа;#* '''Название''' параметра в системе КС 2008;#* '''По умолчанию''' — значение параметра, если столбец Значение пустой; #* '''Значение''' параметра. Укажите буквенное обозначение столбца в Excel. Система использует значение из указанного столбца текущей строки. Чтобы отредактировать исходное значение, используйте внутренний язык разработки. Например, в Excel фамилия имя и отчество получателя указаны в отдельных столбцах: A, B и C. Система КС 2008 хранит эти данные в одном параметре “ФИО получателя” (name). Чтобы сложить значения из трех столбцов в один параметр, для ФИО получателя укажите следующее: “A+' '+B+' '+C”.
{{Note|Для параметра '''Адрес получателя''' используйте значение вида "MakeAddress(буква столбца)". Такой подход преобразует адрес во внутренний формат системы. }}
'''ПримечаниеФорма настройки шаблона: '''На рисунке выше, поля столбцов по горизонтали нумеруются буквами латинского алфавита (A-M), однако данное представление в пакете MS Office может отличаться от привычного - иметь цифровую нумерацию (R1C1). На рисунке ниже представлено меню настроек (включение/отключение) в программе Excel для стиля ссылок R1C1. Для работы с цифровым представлением столбцов excel - соответствие цифровой нумерации буквенной происходит путем простого преобразования[[File: номер цифры = порядковому номеру буквы алфавита (1-‘a’, 2-‘b’, 3-‘c’ и т.дVlog 5.) png|center|600px|]]
[[Файл:R1C1.png|center]]==Как загрузить заказы==
{{Note|Таблица заказов должна находиться на первом листе Excel-файла.}}
'''Примечание: '''Обработка программой реестра заказов ===Загрузка из excel одного файла происходит с первой вкладки документа, поэтому таблица заказов должна находиться на первой вкладке. ===
Редактирование старых #Убедитесь, что в систему добавлен нужный клиент. Для этого перейдите на вкладку '''Клиенты''' и создание новых шаблонов доступно по нажатию на кнопку «Шаблоны…» используйте поиск в правой части окна. Например, укажите название '''Компании''', '''ФИО''' менеджера и нажмите '''Вывести'''.#Если клиент не найден, то нажмите '''F3''', чтобы добавить нового. В открывшемся окне “Импорт из Excel”обязательно заполните вкладки '''Основное''', '''Реквизиты''' и '''Финансы'''. Их подробное описание см. в статье [[Клиенты и партнеры]]. Буквенные соответствия столбцов excel файла указаны напротив ячеек с названием#Перейдите на вкладку '''Заказы''' и нажмите '''F3''', чтобы создать новый заказ. На рисунке ниже показано Система откроет окно редактирования шаблона с именем “Example”Информация о заказе. Для поля “Адрес получателя” указано значение с функцией MakeAddress(буква столбца с адресом из реестра в excel файле)#Укажите '''Заказчика'''. Функция MakeAddress(s) – помогает и позволяет синтакcически более точно преобразовывать адрес получателя путем его многократного преобразования В поле работает автозаполнение: введите часть значения и приведения к внутреннему стандарту программынажмите '''Tab''', когда предложено подходящее. Описание других Система автоматически заполнит часть полей интуитивно понятно и не требует дополнительных комментариев, используя информацию о клиенте.#Выберите '''Тип заказа'''.#Нажмите '''OK''', чтобы создать заказ.#В верхнем меню выберите '''Связь''' → '''Импорт БД из Excel'''. #В поле '''Формат''' выберите шаблон импорта. #Укажите созданный '''Заказ'''. #Выберите '''Файл''' Excel с информацией о заказах. #Нажмите '''Старт''', чтобы начать импорт данных.
Форма импорта заказов:
[[File:Import.png|center|500px]]
[[Файл:Template1.png|550px|center]]===Загрузка из нескольких файлов===
#Убедитесь, что в систему добавлен нужный клиент. Для этого перейдите на вкладку '''Клиенты''' и используйте поиск в правой части окна. Например, укажите название '''Компании''', '''ФИО''' менеджера и нажмите '''Вывести'''.
#Если клиент не найден, то нажмите '''F3''', чтобы добавить нового. В открывшемся окне обязательно заполните вкладки '''Основное''', '''Реквизиты''' и '''Финансы'''. Их подробное описание см. в статье [[Клиенты и партнеры]].
#Укажите '''Папку''' с нужными Excel-файлами. Убедитесь, что в папке хранятся только файлы с заказами. Система не проверяет содержимое файлов.
#Укажите '''Клиента''', для которого система создаст новый заказ.
#Выберите '''Шаблон''' импорта для обработки первого файлу в списке. Для удобства рекомендуем в названии Excel-файлов писать название подходящего шаблона или клиента.
#Нажмите '''Загрузить'''. Система обработает первый файл и уберет его из списка.
#Если в списке остались элементы, то вернитесь на пункт 2 и повторите действия для следующего файла.
На рисунке ниже для двух полей периода времени доставки “c”-“до” производится автоматическое добавление символов разрядности минут “Форма импорта из нескольких файлов:00”, приводящее содержимое загружаемой ячейки excel к внутреннему стандарту программы. Дополнительно для поля “Поручение” производится автоматическое суммирование содержимого ячеек excel “i+l”, при этом содержимое двух ячеек дополнительно разделяется запятой с пробелом[[File:Importfromfolder.png|center|500px]]
==Шаблон как отдельный файл==
[[Файл:Template2В КС 2008 есть возможность сохранить шаблон в отдельный XML-файл.pngИли загрузить шаблон в систему из XML-файла. {{Note|550px|center]]При выгрузке и загрузке шаблона система не копирует настройки на вкладке '''Услуги'''. Укажите эти настройки вручную после импорта шаблона.}}
===Сохранить шаблон в файл===
Каждое #Перейдите в '''Связь''' → '''Импорт БД из полей в настройке шаблона соответствует определенному полю в карточке единицы корреспонденции, показанному Excel''' → '''Шаблоны'''.#Выберите шаблон для выгрузки и кликните на рисунке ниженем правой кнопкой мыши. Заполнение полей шаблона “Example” происходит #Нажмите '''Сохранить в соответствии со структурой файл'''. #Выберите папку и содержимым ячеек реестра в excel файленажмите '''Сохранить'''.
Сохранение шаблона:
[[File:Vlog 12_1.png|center|300px]]
[[Файл:Zakaz2.png|700px|center]]===Добавить в систему шаблон из файла===
#Перейдите в '''Связь''' → '''Импорт БД из Excel''' → '''Шаблоны'''.
#Выберите шаблон для выгрузки и кликните на нем правой кнопкой мыши.
#Нажмите '''Добавить из файла'''.
#Выберите XML-файл шаблона и нажмите '''Открыть'''.
После создания и редактирования нового Загрузка шаблона становится возможным автоматическая загрузка заказов из excel файла. Для этого в окне Импорт из Excel, последовательно указываем тип шаблона для обработки реестра заказов в excel, номер заказа и файл реестра. По нажатию на кнопку “Cтарт” происходит последовательная обработка строк excel файла, ячейки которой считываются в БД заказов программы “КС 2008”. Процесс завершения обработки сопровождается информационным сообщением содержащим статистику обработки записей:[[File:Vlog 12_2.png|center|300px]]
[[Файл:Import.png|center]] == Примеры модификаций содержимого ячеек при помощи формул == Иногда, для приведения содержимого ячеек Excel к стандартному типу, который будет понятен программе, следует воспользоваться специальными функциями (полное описание языка приведено по ссылке http://wiki.courierexe.ru/index.php/Руководство_программиста). Простые примеры применения данных функций рассмотрены ниже: '''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
== {{Note|Пример построения простого шаблона рассмотрен в этой статье в целях обучения и для возможности самостоятельного создания простого шаблона пользователем. В случае необходимости создания сложного шаблона для клиента, который включает в себя сложные модификаторы формул, процедуры преобразования типов и множество прочих нюансов - следует обращаться с вопросами в техническую поддержку (желательно с файлом реестра Вашего клиента и описанием желаемых требований для его загрузки вложений ==в систему КС2008).}}
Для импорта базы рассылки в формате Microsoft Excel необходимо сделать заказ (вкладка основного окна программы '''«Заказы»'''), в который будет производиться импорт. Затем, в главном меню основного окна программы выберите пункт меню '''«Связь» → «Импорт БД из Excel»''' (необходимо наличие прав создания почтовых заказов). Откроется окно следующего вида:
[[Файл:vlog_3.png|center|1000px]]
[[Файл:vlog_11.png|center|1000px]] == Примеры модификаций содержимого ячеек при помощи формул == Иногда, для приведения содержимого ячеек Excel к стандартному типу, который будет понятен программе, следует воспользоваться специальными функциями (полное описание языка приведено по ссылке http://wiki.courierexe.ru/index.php/Руководство_программиста). Простые примеры применения данных функций рассмотрены ниже: '''1.'''Пример содержимого ячейки Excel “F”: “Россия, Москва, Горького ул., д. 23” Задача: Копировать из ячейки слово "Москва". Решение: '''PARAM(replace(f, ' ', ','), 2)''' Комментарий: Делим строку разделителями пробелов на параметры и читаем второй параметр. На выходе получаем "Москва".
== Примечания =='''2.'''Пример содержимого ячейки Excel “J”: “с 11 до 18”
Примеры построения простых шаблонов рассмотрены в этой статье в целях обучения и для возможности самостоятельного создания шаблона пользователем. В случае необходимости создания сложного шаблона для клиентаЗадача А: приведение строки к стандартному типу времени ЧЧ:ММ (например, который включает в себя сложные модификаторы формул, процедуры преобразования типов и множество прочих нюансов - следует обращаться с вопросами в техническую поддержку (желательно с файлом реестра Вашего клиента и описанием желаемых требований для его загрузки в систему КС2008времени доставки). Необходимо к значению времени “11” добавить значение “:00”.
Любой шаблон может быть выгружен/загружен из системы и сохранен в виде внешнего файла (в формате XML) из контекстного меню Решение: '''"Сохранить в файл"/"Добавить из файла"''' в окне общего списка шаблонов системы LEFT(REMSPACE(replace(кнопка J, 'с''"Шаблоны"', ''). Однако), при процедуре импорта/экспорта шаблона не копируется вкладка 2)+':00''"Услуги"''', которая предназначена для загрузки дополнительных услуг из реестра. Это связано с тем, что в каждой системе порядок следования и название услуг могут отличаться. Настройки этой вкладки требуется однократно выполнять в ручном режиме после импорта шаблона.
[[ФайлКомментарий:vlog_12Поиском слева ищем в строке значение “c”, после читаем второй параметр, разделенный символом пробел – число “11”, затем к нему прибавляем значение “:00”. На выходе получаем “11:00”.png|center]]
Задача Б: приведение строки к стандартному типу времени ЧЧ:ММ (например, для времени доставки). Необходимо к значению времени “18” добавить значение “:00”.
== Групповая загрузка файлов-реестров из папки ==[[ФайлРешение:Importfromfolder.png|thumb|250px|right|'''рис.1 Интерфейс групповой загрузки фалов-реестров''']]В системе предусмотрена возможность групповой обработки файлов с реестром через основное меню RIGHT(J, 2)+':00''"Связь - Импорт БД из папки"'''. Интерфейс такой загрузки представлен на рисунке. Процедура группового импорта представляет собой следующий алгоритм действий пользователя:
1.В поле '''"Папка"''' кнопкой выбрать папкуКомментарий: Копируем справа от начала строки 2 символа – значение ”18”, в которой находятся предполагаемые затем к загрузке файлы-реестров в формате Excelнему прибавляем значение “:00”. Содержимое выбранной папки отобразится в виде списка файлов в окне интерфейса (отображаются все файлы Excel вне зависимости от их содержимого)На выходе получаем “18:00”.
2.В поле '''"Клиент"''' указать название клиента, для которого система автоматически создаст новый заказ на вкладке '''"Заказы"'''.
'''3.В поле '''"Шаблон"Пример содержимого ячейки Excel “A”: “'забор груза'”, либо “'забор' указать тип шаблона, соответствующего самому верхнему реестру в списке. Очевидно, что для удобства обработки, имя каждого файла реестра должно содержать название клиента и(-или) название шаблона загрузки.”
4Задача: Определять при чтении содержимого ячейки забор или доставку.Кнопка В случае наличия слова “'забор груза'”, либо “'"Загрузить"''забор' обработает первый верхний файл списка (отображаемый ” – подставлять в среднем окне интерфейса). После успешной загрузки реестраячейку цифру “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.1 '''Пример расчета сроков доставки Задача: Рассчитать планируемую дату доставки на основе [[Справочники#Тарифы для каждого файламеждугородной доставки|сроков доставки]] Решение: '''CalcDeliveryDate(ZakazRecord.source, Mode, TownTo, TownFrom, ZakazRecord.date_beg)''' Комментарий: Вызываем функцию CalcTownDeliveryDate которая рассчитывает дату планируемой доставки по таблице сроков. В функцию передаем : ZakazRecord.date_beg -реестра (пока список в среднем окне не дата заказа, к ней будет добавлено найденное количество дней на доставку. ZakazRecord.source - код клиента, по нему будет пуст)найден тариф с указанными сроками. Mode - режим срочности. TownTo, TownFrom - коды городов отправителя и получателя. Примечание: функция CalcDeliveryDate до версии 804, имела имя CalcTownDeliveryDate