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

Материал из Меасофт
Перейти к: навигация, поиск
м
м (Шаблон как отдельный файл)
 
(не показано 49 промежуточных версий 7 участников)
Строка 1: Строка 1:
Для импорта базы рассылки в формате MS Excel или DBF (а также любого другого формата, поддерживаемого MS Excel), создайте заказ, в который необходимо импортировать, потом в главном меню основного окна программы выберите пункт «Связь» → «Импорт БД из Excel» (необходимо наличие прав создания почтовых заказов).  Откроется окно следующего вида:
+
== Логика загрузки заказов ==
  
[[Файл:Импорт из Excel.png]]
+
Для загрузки заказов из MS Excel в MeaSoft используются шаблоны.
 +
 
 +
Шаблон описывает соответствие между столбцами таблицы Excel и параметрами заказа в системе. Например, в файле Excel в столбце H указан телефон получателя. Шаблон нужен, чтобы перенести значение из столбца H в параметр заказа «Телефон получателя».
 +
 
 +
В системе нет готовых шаблонов. Как правило, шаблоны каждой курьерской службы уникальны. Содержимое шаблона зависит от формата данных во входящих Excel-файлах.
 +
 
 +
В процессе импорта система может выполнить обработку отдельных значений. Для этого добавьте в шаблон выражение на внутреннем языке разработки. Подробнее см. в статье [[Руководство программиста|«Руководство программиста»]]. Например, рекомендуем приводить адрес доставки к внутреннему формату системы.
 +
 
 +
MeaSoft поддерживает импорт из всех форматов данных, которые предоставляет Excel. Подробнее см. [https://support.office.com/ru-ru/article/поддерживаемые-excel-форматы-файлов-0943ff2c-6014-4e8d-aaea-b83d51d46247 на официальном сайте Microsoft Office].
 +
 
 +
== Создание шаблона загрузки ==
 +
Чтобы создать шаблон:
 +
# Перейдите в '''Связь''' > '''Импорт БД из Excel''', затем в окне «Импорт из Excel» нажмите на кнопку '''Шаблоны'''. Откроется окно со списком шаблонов.
 +
# Нажмите на кнопку F3. Откроется окно «Шаблон загрузки»:[[Файл:Vlog 5.png|none]]
 +
 
 +
Для загрузки по шаблону достаточно настроить вкладку '''Основное'''. Настройка остальных вкладок необязательна и зависит от формата заказов в Excel-файле.
 +
 
 +
'''Примечание'''. Не рекомендуем самостоятельно писать скрипты для вкладок '''Дополнительно'''. Если надо изменить логику обработки заказов, обратитесь в службу поддержки MeaSoft.
 +
 
 +
'''Поля вкладки «Основное»'''
 +
 
 +
'''Название'''. Укажите название шаблона.
 +
 
 +
'''Личный шаблон'''. Если флажок установлен, другие пользователи не могут редактировать шаблон. Личный шаблон может изменить его владелец или администратор системы.
 +
 
 +
'''Первая строка'''. Укажите номер первой строки с заказом в таблице Excel. Не указывайте номер строки с заголовком таблицы. Например, если в шаблоне первая строка это заголовок таблицы и поле '''Условие загрузки''' пустое, то система создаст заказ на основе заголовка таблицы.
 +
 
 +
'''Условие загрузки'''. Дополнительное условие, значение — логическое выражение на [[Руководство программиста|внутреннем языке разработки]]. <rspoiler text ="Посмотреть примеры условий"> <p><nowiki>A!''</nowiki></p> <p>A!'Итого'</p> <p>A!A(-1)</p> </rspoiler>. Во время чтения таблицы система проверяет каждую строку по указанному условию:
 +
* условие выполнено — формируется новый заказ из строки;
 +
* условие не выполнено — пропускает строку и переходит к следующей.
 +
 
 +
'''Адрес не пустой'''. Если флажок установлен, заказы создаются только из строк с заполненным адресом.
 +
 
 +
'''Контролировать уникальность шифра'''. Если флажок установлен, нельзя создавать заказ с шифром, который уже есть в системе.
 +
 
 +
'''Только в недоставленных'''. Если флажок установлен, не нужно проверять уникальность шифра среди доставленной корреспонденции.
 +
 
 +
'''Идентификация отправителя'''. Выберите параметр, по которому будет определяться отпавитель. Возможные значения: '''Нет''', '''Юр. лицо''', '''ИНН''', '''ID'''.
 +
 
 +
'''Столбец''' и '''Строка'''. Укажите столбец и строку с информацией об отправителе.
 +
 
 +
'''Пересчитать стоимость после загрузки'''. Если флажок установлен, стоимость доставки пересчитывается после завершения загрузки из файла.
 +
 
 +
В таблице настройте соответствие столбцов в Excel с параметрами заказа в системе. Столбцы в таблице:
 +
* '''Поле''' — внутреннее имя параметра заказа;
 +
* '''Название''' — название параметра в MeaSoft;
 +
* '''По умолчанию''' — значение параметра, если столбец «Значение» пустой;
 +
* '''Значение''' — значение параметра. Укажите буквенное обозначение столбца в Excel. Система использует значение из указанного столбца текущей строки. Чтобы отредактировать исходное значение, используйте внутренний язык разработки. Например, в Excel фамилия, имя и отчество получателя указаны в отдельных столбцах: A, B и C. MeaSoft хранит эти данные в одном параметре «ФИО получателя» (name). Чтобы сложить значения из трех столбцов в один параметр, для ФИО получателя укажите следующее: «A+' '+B+' '+C».
 +
 
 +
Для параметра '''Адрес получателя''' используйте значение вида «MakeAddress(буква столбца)». Такой подход преобразует адрес во внутренний формат системы.
 +
 
 +
== Как указать лист с заказами в Excel-файле ==
 +
По умолчанию система ищет информацию о товарах на первом листе Excel-файла. Эту логику можно изменить вручную. Для этого:
 +
# Откройте существующий шаблон на редактирование или добавьте новый шаблон.
 +
# Перейдите на вкладку '''Дополнительно'''.
 +
# В поле '''Скрипт до загрузки''' напишите формулу:
 +
<?>
 +
SetSheet(х);
 +
 
 +
В указанной формуле х — это номер листа с заказами в Excel-файле. Замените х на подходящее число.
 +
 
 +
== Как загрузить заказы ==
 +
 
 +
=== Загрузка из одного файла ===
 +
# Убедитесь, что в MeaSoft есть [[Клиенты и партнеры|запись клиента]], от имени которого будет создан заказ. Для этого перейдите на вкладку '''Клиенты''' и используйте поиск в правой части окна. Например, укажите название компании, ФИО менеджера и нажмите '''Вывести'''.
 +
# Если клиент не найден, то нажмите F3 и в окне новой записи заполните вкладки '''Основное''', '''Реквизиты''' и '''Финансы'''.
 +
# Перейдите на вкладку '''Заказы''' и создайте новый [[Работа с заказами#Карточка заказа|заказ]].
 +
# В главном меню выберите '''Связь''' > '''Импорт БД из Excel'''. Откроется окно «Импорт из Excel»:[[Файл:Импорт из эксель.png|none]]
 +
# В поле '''Формат''' выберите шаблон импорта.
 +
# В поле '''Заказ''' укажите номер созданного заказа или выберите его из списка по кнопке [[Файл:More.png]]. В этот заказ будут загружены данные файла.
 +
# В поле '''Файл''' нажмите на кнопку [[Файл:More.png]] справа и укажите путь к файлу MS Excel с информацией о заказах.
 +
# Нажмите '''Старт''', чтобы начать импорт данных.
 +
 
 +
=== Загрузка из нескольких файлов ===
 +
# Убедитесь, что в MeaSoft есть [[Клиенты и партнеры|запись клиента]], от имени которого будет создан заказ. Для этого перейдите на вкладку '''Клиенты''' и используйте поиск в правой части окна. Например, укажите название компании, ФИО менеджера и нажмите '''Вывести'''.
 +
# Если клиент не найден, то нажмите F3 и в окне новой записи заполните вкладки '''Основное''', '''Реквизиты''' и '''Финансы'''.
 +
# В главном меню выберите '''Связь''' > '''Импорт БД из папки'''. Откроется окно «Импорт из папки»:[[Файл:Importfromfolder.png|none]]
 +
# В поле '''Папка''' нажмите на кнопку [[Файл:More.png]] справа и укажите укажите путь к папке с нужными Excel-файлами. Убедитесь, что в папке хранятся только файлы с заказами. Система не проверяет содержимое файлов.
 +
# В поле '''Клиент''' укажите название клиента, для которого будет создан заказ. В поле работает автозаполнение при вводе.
 +
# В списке '''Шаблон''' выберите шаблон импорта для обработки первого файла в списке. Для удобства рекомендуем в названии Excel-файлов писать название подходящего шаблона или клиента.
 +
# Нажмите '''Загрузить'''. Система обработает первый файл и уберет его из списка, в панели внизу отобразится отчет о количестве обработанных записей.
 +
# Если в списке остались элементы, повторите действия, начиная с пункта 4, для следующего файла.
 +
 
 +
==Автозамена==
 +
 
 +
При оформлении заказа клиенты и покупатели могут указывать один и тот же адрес в разных форматах, что ведет к ошибкам [[Модуль_«Карта»#Геокодирование|геокодирования]].
 +
 
 +
Чтобы привести адрес к [[Знакомство_с_программой#Ввод адресной информации|требуемому формату]], вы можете настроить правила автозамены для загруженных извне заказов. Для выполнения операции требуются права «Администрирование».
 +
 
 +
Чтобы настроить автозамену:
 +
# В главном меню выберите '''Связь''' > '''Импорт БД из Excel''' и в окне «Импорт из Excel» нажмите на кнопку '''Автозамена'''. Откроется окно «Настройка автозамены»:[[Файл:Настройка автозамены.png|none]]
 +
# Нажмите F3 и создайте новое правило автозамены. При нажатии на кнопку '''ОК''' в списке правил добавится еще одна строка.<br>Чтобы изменить правило, щелкните дважды на его строке. Чтобы удалить правило, используйте комбинацию клавиш CTRL+F8.
 +
# После создания правил с помощью кнопок '''Вверх''' и '''Вниз''' определите их порядок. Автозамены применяются к адресу последовательно сверху вниз.
 +
 
 +
Автозамену можно отключить для определенных режимов срочности. Для этого в справочнике '''Статусы''' > '''17 Виды срочности''' для режима срочности установите 7 параметр первой строки в значение 1. Подробнее см. раздел «[[Виды срочности]]».
 +
 
 +
Автозамены, предусмотренные исходным кодом системы:
 +
* следующие слова удаляются из начала адреса еще до срабатывания пользовательской автозамены:
 +
вул.,ул.,пр.,проспект,проезд,шоссе ,шоссе,аллея,ул ,пр-д,пер.,пер ,ул ,пр ,пр-т,пр-кт,бульвар,бул.,бул ,набережная,наб.,наб
 +
 
 +
* если улица не найдена, но в справочнике есть другая улица, название которой отличается на одну букву, срабатывает подмена одной буквы в названии улицы. Если улица была указана корректно, укажите ее вручную. Система «запомнит» эту улицу, и ошибка больше не повторится.
 +
 
 +
== Шаблон как отдельный файл ==
 +
Вы можете сохранить шаблон в отдельный XML-файл. Или загрузить шаблон в систему из XML-файла.
 +
{{Note|При выгрузке и загрузке шаблона система не копирует настройки на вкладке '''Услуги'''. Укажите эти настройки вручную после импорта шаблона.}}
 +
 
 +
=== Сохранить шаблон в файл ===
 +
# Перейдите в '''Связь''' → '''Импорт БД из Excel''' → '''Шаблоны'''.
 +
# Выберите шаблон для выгрузки и кликните на нем правой кнопкой мыши.
 +
# Нажмите '''Сохранить в файл'''.
 +
# Выберите папку и нажмите '''Сохранить'''.
 +
 
 +
Сохранение шаблона:
 +
[[Файл:Vlog 12_1.png|center|300px]]
 +
 
 +
=== Добавить в систему шаблон из файла ===
 +
# Перейдите в '''Связь''' → '''Импорт БД из Excel''' → '''Шаблоны'''.
 +
# Выберите шаблон для выгрузки и кликните на нем правой кнопкой мыши.
 +
# Нажмите '''Добавить из файла'''.
 +
# Выберите XML-файл шаблона и нажмите '''Открыть'''.
 +
 
 +
Загрузка шаблона:
 +
[[Файл:Vlog 12_2.png|center|300px]]
 +
 
 +
== Пример создания простого шаблона для загрузки вложений ==
 +
{{Note|Пример построения простого шаблона рассмотрен в этой статье в целях обучения и для возможности самостоятельного создания шаблона пользователем. В случае необходимости создания сложного шаблона для клиента, который включает в себя сложные модификаторы формул, процедуры преобразования типов и множество прочих нюансов - следует обращаться с вопросами в техническую поддержку (желательно с файлом реестра Вашего клиента и описанием желаемых требований для его загрузки в MeaSoft).}}
 +
 
 +
Для импорта базы рассылки в формате Microsoft Excel необходимо сделать заказ (вкладка основного окна программы '''«Заказы»'''), в который будет производиться импорт. Затем, в главном меню основного окна программы выберите пункт меню '''«Связь» → «Импорт БД из Excel»''' (необходимо наличие прав создания почтовых заказов). Откроется окно следующего вида:
 +
 
 +
 
 +
[[Файл:vlog 1.png|none]]
 +
 
 +
 
 +
В окне импорта выберите имя (формат) шаблона загрузки, заказ, в который необходимо импортировать базу, а также указать имя файла-источника, из которого необходимо загружать реестр:
 +
 
 +
 
 +
[[Файл:vlog 2.png|none]]
 +
 
 +
 
 +
Чтобы редактировать шаблон, нажмите на кнопку '''Шаблоны'''. Можно использовать существующий шаблон или же создать новый путём нажатия клавиши F3.
 +
 
 +
Шаблон состоит из заголовка, который включает в себя название шаблона, порядковый номер первой загружаемой строки в таблице, а также условие загрузки каждой конкретной строки (номер первой строки и условие загрузки могут задаваться формулами), и строк описания значений, помещаемых в каждое конкретное поле базы данных адресов. Строка состоит из названия поля в БД по-английски и описания по-русски, значения по умолчанию, и значения ячейки. Если поле '''значение''' пустое — программа использует значение поля '''значение по умолчанию'''. Поля «значение» и «значение по умолчанию» описывают преобразования данных на внутреннем языке формул (описание языка приведено по ссылке [http://wiki.courierexe.ru/index.php/Руководство_программиста]).
 +
 
 +
Процесс импорта реестра заказов из Microsoft Excel в систему будет выполнен на примере построения шаблона с именем '''«пример»'''. На рисунке ниже изображено содержимое таблицы Microsoft Excel с заказами клиента:
 +
 
 +
 
 +
[[Файл:vlog_3.png|none|1000px]]
 +
 
 +
 
 +
В данном реестре мы видим, что заказы № 1-3 имеют одного и того же получателя, поэтому для удобства выполнения их можно объединить в одну единицу корреспонденции. Такая же ситуация с заказами № 4-6.
 +
 
 +
Примечание: На рисунке выше, поля столбцов по горизонтали нумеруются буквами латинского алфавита (A-N), однако данное представление в пакете MS Office может отличаться от привычного и иметь цифровую нумерацию (R1C1). На рисунке ниже представлено меню настроек (включение/отключение) в программе Microsoft Excel для стиля ссылок R1C1. Для работы с цифровым представлением столбцов Microsoft Excel — соответствие цифровой нумерации буквенной происходит путем простого преобразования: номер цифры = порядковому номеру буквы алфавита (1-‘A’, 2-‘B’, 3-‘C’ и т. д.):
 +
 
 +
 
 +
[[Файл:vlog 4.png|none]]
 +
 
 +
 
 +
'''Примечание:''' Обработка программой реестра заказов из файла происходит с первого листа документа, поэтому таблица заказов должна находиться на первой странице.
 +
 
 +
Редактирование старых и создание новых шаблонов доступно по нажатию на кнопку '''«Шаблоны…»''' в окне '''«Импорт из Excel»'''. Буквенные соответствия столбцов таблицы указаны напротив ячеек с названием. На рисунке ниже показано окно редактирования шаблона с именем '''«пример»'''.
 +
 
 +
Для поля '''«Адрес получателя»''' указано значение с функцией '''MakeAddress'''(буква столбца с адресом из реестра в Excel файле). Функция '''MakeAddress'''(e) — помогает и позволяет синтактически более точно преобразовывать адрес получателя путем его многократного преобразования и приведения к внутреннему стандарту программы. Параметры преобразования адреса можно задать путем нажатия кнопки '''«Автозамена…»''' в окне '''«Импорт из Excel»'''.
 +
 
 +
Описание других полей интуитивно понятно и не требует дополнительных комментариев.
 +
 
 +
 
 +
[[Файл:vlog 5.png|none]]
 +
 
 +
 
 +
В данном примере мы видим, что первой строкой, из которой программа начнёт считывать данные, является строка под номером 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|none]]
 +
 
 +
 
 +
Этот скрипт необходим для суммирования значений переменных '''«количество»''', '''«масса»''' и '''«цена»''' вложений в карточке корреспонденции.
 +
 
 +
Далее переходим во вкладку '''«Вложения»''':
 +
 
 +
 
 +
[[Файл:vlog 7.png|none]]
 +
 
 +
 
 +
Ставим галку '''«Загружать вложения»'''.
 +
 
 +
Условием загрузки в данном примере является то, что ячейка ‘d’ не пустая. Наименование вложения будет браться из ячейки ‘h’.
 +
 
 +
Поле '''«Код товара»''' используется как артикул в [[Модуль складского учета#Карточка товара|номенклатуре поставщика]] (актуально при использовании модуля складского учёта). В нашем случае оно пустое.
 +
 
 +
Каждое из полей в настройке шаблона соответствует определенному полю в карточке единицы корреспонденции, показанному на рисунке ниже. Заполнение полей шаблона «пример» происходит в соответствии со структурой и содержимым ячеек реестра в Excel файле. Поля на вкладке '''«Получатель»''' единицы корреспонденции заполняются следующим образом:
 +
 
 +
 
 +
[[Файл:vlog 8.png|none]]
 +
 
 +
 
 +
* Значения ячейеек ‘m’, ‘g’, ‘i’ в карточке корреспонденции будут суммироваться согласно своим значениям во вложениях.
 +
 
 +
Поля на вкладке '''«Вложения»''' единицы корреспонденции заполнятся так:
 +
 
 +
 
 +
[[Файл:vlog 9.png|none]]
 +
 
 +
 +
После создания и редактирования нового шаблона становится возможным автоматическая загрузка заказов из файла Excel. Для этого в окне '''«Импорт из Excel»''', последовательно указываем тип шаблона для обработки реестра заказов в Excel, номер заказа и файл реестра. По нажатию на кнопку '''«Cтарт»''' происходит последовательная обработка строк из файла Excel, ячейки которой считываются в базу данных заказов программы. Процесс завершения обработки сопровождается информационным сообщением содержащим статистику обработки записей:
 +
 
 +
 
 +
[[Файл:vlog 10.png|none]]
 +
 
 +
 
 +
Из результата импорта видно, что программа обработала 6 записей из файла реестра Excel, которые были объеденены в 2 карточки корреспонденции согласно заданных в шаблоне условий.
 +
После этого мы можем перейти во вкладку '''«Адреса»''' где можно просмотреть те единицы корреспонденции, которые были импортированы в заказ (в данном случае это заказ № 120340) и продолжить работу в программе:
 +
 
 +
 
 +
[[Файл:vlog_11.png|none|1000px]]
 +
 
 +
== Примеры модификаций содержимого ячеек при помощи формул ==
 +
Иногда для приведения содержимого ячеек Excel к стандартному типу, который будет понятен программе, следует воспользоваться [[Руководство программиста|специальными функциями]]. Простые примеры применения функций рассмотрены ниже.
 
   
 
   
В окне импорта необходимо выбрать заказ, в который нужно импортировать базу, шаблон загрузки, а также указать имя файла-источника, из которого необходимо загружать.
 
  
Редактирование шаблонов доступно путем нажатия на кнопку «Шаблоны…».<br />
+
'''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»: «'забор груза'», либо «'забор'»
  
Описание языка формул:<br />
+
Задача: Определять при чтении содержимого ячейки забор или доставку. В случае наличия слова «'забор груза'», либо «'забор'» — подставлять в ячейку цифру «0»,
*Константы: константы бывают целочисленными, дробными и строковыми. Значения целочисленных и дробных констант указываются «как есть», а строковые – в одинарных кавычках. При этом, если внутри строковой константы встречается символ одинарной кавычки он должен быть задвоен, для указания интерпретатору того, что он не является признаком конца константы.
+
иначе подставлять следующий порядковый номер.
*Логические операции: >, <, =, !  - Больше, меньше, равно, не равно.
 
*Арифметические операции: +, -, *, /
 
*Операция конкатенации строк: +
 
Условный оператор: IF(a,b,c) или IF(a,b) – В первом случае возвращает b, если a истинно (не равно нулю или пустой строке), иначе – c. Во втором случае – возвращает a, если оно истинно, иначе – b.
 
*Функции:
 
UPCASE(s) – возвращает строку s в верхнем регистре.<br />
 
LCASE(s) – возвращает строку s в нижнем регистре.<br />
 
LEN(s) – возвращает количество символов в строке s.<br />
 
POS(s, substr) – возвращает номер первого символа первого включения подстроки substr в строку s, возвращает 0, если включения подстроки отсутствуют.<br />
 
PARAM(s, i) – возвращает i-й элемент строки s, разделенной запятыми на элементы.<br />
 
LEFT(s, i) – возвращает i первых символов строки s.<br />
 
RIGHT(s, i) – возвращает i последних символов строки s.<br />
 
REPLACE(s, s1, s2) – возвращает строку s, в кот. все включения подстроки s1 заменены строкой s2 (не чувствительно к регистру).<br />
 
REMSPACE(s) – возвращает сроку s без начальных и конечных запятых и пробелов, а также начальных точек.<br />
 
INT(v) – возвращает значение типа “целое”, приводя вариантное значение v к числовому типу, а затем округляя его. В том числе используется как функция округления.<br />
 
FLOAT(v) – возвращает значение типа “число”, приводя вариантное значение v к числовому типу, переводя в число цепочку символов до первого нецифрового символа (либо точки или запятой).<br />
 
ROUNDUP(f) – округляет число f до ближайшего большего по модулю целого числа.<br />
 
ROUNDDN(f) – округляет число f до ближайшего меньшего по модулю целого числа.<br />
 
STR – возвращает значение типа “строка”, приводя вариантное значение v к строковому типу.<br />
 
QUOTEDSTR(s) – квотирует строку s символом «’» (одинарная кавычка). Возвращает строку s, помещенную между квотирующими символами, при этом все вхождения в строку s квотирующего символа задваиваются.<br />
 
  
MakeAddress(s) – возвращает значение, полученное путем преобразований адреса s для приведения его к внутреннему формату программы. В процессе преобразования до нескольких раз происходит замена буквосочетаний по таблице замены (ее редактирование доступно по нажатию кнопки «Автозамена»), поиск улиц по базе КЛАДР с точностью до одного знака, и некоторые другие операции, нацеленные на исправление ошибок в написании адреса.
+
Решение: '''if((C='забор груза')+(C='забор'), 0, GetNewNumber)'''
  
ReplaceAddress(target, address) – Возвращает адрес последней доставки корреспонденции получателю target по адресу address от текущего клиента. При отсутствии такой доставки, возвращает address.
+
Комментарий: При помощи условия if и логического ИЛИ выполняем проверку, если условие соблюдается — подставиться значение «0», если не соблюдается — подставлять следующий порядковый номер (функция GetNewNumber).
  
GetStationCode(s) – возвращает код станции метро, ассоциированный в системе с адресом s. В случае невозможности идентифицировать станцию метро – возвращает 1.
 
  
GetPrice – (в разработке) возвращает рассчитанное значение цены, на основе прайс-листа клиента и данных о корреспонденции.
+
'''4.'''Пример содержимого ячейки Excel «K» -«забрать документы», содержимого ячейки Excel «L» — «поставить печать»:
  
GetKurierByStation(i) – возвращает код курьера, ассоциированного со станцией метро с кодом i.
+
Задача: сложить одержимое двух ячеек для загрузки поля «поручение курьера».
  
GetNewNumber – Возвращает не занятый номер единицы корреспонденции в текущем заказе.
+
Решение: '''k+', '+l'''
  
FileName – Возвращает имя загружаемого файла.
+
Комментарий: Выполняем сложение содержимого двух ячеек «K» и «L», разделенного запятой и пробелом. На выходе получаем «забрать документы, поставить печать».
  
Recno – Возвращает номер текущей строки загружаемого файла (от первой загружаемой строки).
 
  
Reccount – Возвращает количество строк, найденных в файле (от первой загружаемой строки).
+
'''5.'''Пример содержимого ячейки «масса, грамм» в Excel «N»: «2500»
  
Field(table, id, field) – Возвращает значение поля field таблицы table, записи с идентификатором id. В случае отсутствия записи удовлетворяющей условиям, возвращает Null. Список таблиц можно получить, выполнив запрос (см. раздел «SQL-отчеты»)“show tables from courier”, а список полей таблицы можно получить, выполнив запрос “describe table”, где table – название таблицы (необходимо наличие прав администрирования).  
+
Задача: Перевод значения ячейки «масса» из грамм в килограмм.
  
Null – Возвращает пустое значение.
+
Решение: '''n/1000'''
  
Да, True, Нет, False – константы, соответствующие булевым значениям.
+
Комментарий: Выполняем операцию деления. На выходе получаем значение для поля масса "2.5 ".
  
A..Z – Ссылки на соответствующие столбцы загружаемого файла. Возможно использование как функции, с указанием целочисленного параметра – сдвига строки относительно текущей. Например d(-2) вернет значение столбца D на 2 строки выше текущей.
 
 
Также возможно использование в формуле ссылки на значение другого поля, просто указав его название (английское), при этом в случае возникновения цикличных ссылок они разрешаются путем возвращения пустого (или нулевого) значения поля, на котором образовался цикл.
 
  
Например:
+
'''6.'''Пример расчета сроков доставки
{|
+
 
|<pre>
+
Задача: Рассчитать планируемую дату доставки на основе [[Тарифы клиентов|сроков доставки]]
Address=b      (полю «адрес» присваивается значение столбца “b”)
+
 
Station=GetStationCode(address) (полю «код станции метро» присваивается рассчитанное значение кода метро из данных в поле       
+
Решение: '''CalcDeliveryDate(ZakazRecord.source, Mode, TownTo, TownFrom, ZakazRecord.date_beg)'''
«адрес»)
+
 
To_Kurier=GetKurierByStation(station) (полю «Выдать курьеру» присваивается значение, соответствующее коду станции метро,
+
Комментарий: Вызываем функцию CalcTownDeliveryDate которая рассчитывает дату планируемой доставки по таблице сроков. В функцию передаем : ZakazRecord.date_beg — дата заказа, к ней будет добавлено найденное количество дней на доставку. ZakazRecord.source — код клиента, по нему будет найден тариф с указанными сроками. Mode — режим срочности. TownTo, TownFrom — коды городов отправителя и получателя.
присвоенному полю «код станции метро»)
+
Примечание:
</pre>
+
функция CalcDeliveryDate до версии 804, имела имя CalcTownDeliveryDate
|
 
|}
 

Текущая версия на 12:55, 31 мая 2022

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

Для загрузки заказов из MS Excel в MeaSoft используются шаблоны.

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

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

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

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

Создание шаблона загрузки

Чтобы создать шаблон:

  1. Перейдите в Связь > Импорт БД из Excel, затем в окне «Импорт из Excel» нажмите на кнопку Шаблоны. Откроется окно со списком шаблонов.
  2. Нажмите на кнопку F3. Откроется окно «Шаблон загрузки»:
    Vlog 5.png

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

Примечание. Не рекомендуем самостоятельно писать скрипты для вкладок Дополнительно. Если надо изменить логику обработки заказов, обратитесь в службу поддержки MeaSoft.

Поля вкладки «Основное»

Название. Укажите название шаблона.

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

Первая строка. Укажите номер первой строки с заказом в таблице Excel. Не указывайте номер строки с заголовком таблицы. Например, если в шаблоне первая строка это заголовок таблицы и поле Условие загрузки пустое, то система создаст заказ на основе заголовка таблицы.

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

Адрес не пустой. Если флажок установлен, заказы создаются только из строк с заполненным адресом.

Контролировать уникальность шифра. Если флажок установлен, нельзя создавать заказ с шифром, который уже есть в системе.

Только в недоставленных. Если флажок установлен, не нужно проверять уникальность шифра среди доставленной корреспонденции.

Идентификация отправителя. Выберите параметр, по которому будет определяться отпавитель. Возможные значения: Нет, Юр. лицо, ИНН, ID.

Столбец и Строка. Укажите столбец и строку с информацией об отправителе.

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

В таблице настройте соответствие столбцов в Excel с параметрами заказа в системе. Столбцы в таблице:

  • Поле — внутреннее имя параметра заказа;
  • Название — название параметра в MeaSoft;
  • По умолчанию — значение параметра, если столбец «Значение» пустой;
  • Значение — значение параметра. Укажите буквенное обозначение столбца в Excel. Система использует значение из указанного столбца текущей строки. Чтобы отредактировать исходное значение, используйте внутренний язык разработки. Например, в Excel фамилия, имя и отчество получателя указаны в отдельных столбцах: A, B и C. MeaSoft хранит эти данные в одном параметре «ФИО получателя» (name). Чтобы сложить значения из трех столбцов в один параметр, для ФИО получателя укажите следующее: «A+' '+B+' '+C».

Для параметра Адрес получателя используйте значение вида «MakeAddress(буква столбца)». Такой подход преобразует адрес во внутренний формат системы.

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

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

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

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

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

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

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

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

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

Автозамена

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

Чтобы привести адрес к требуемому формату, вы можете настроить правила автозамены для загруженных извне заказов. Для выполнения операции требуются права «Администрирование».

Чтобы настроить автозамену:

  1. В главном меню выберите Связь > Импорт БД из Excel и в окне «Импорт из Excel» нажмите на кнопку Автозамена. Откроется окно «Настройка автозамены»:
    Настройка автозамены.png
  2. Нажмите F3 и создайте новое правило автозамены. При нажатии на кнопку ОК в списке правил добавится еще одна строка.
    Чтобы изменить правило, щелкните дважды на его строке. Чтобы удалить правило, используйте комбинацию клавиш CTRL+F8.
  3. После создания правил с помощью кнопок Вверх и Вниз определите их порядок. Автозамены применяются к адресу последовательно сверху вниз.

Автозамену можно отключить для определенных режимов срочности. Для этого в справочнике Статусы > 17 Виды срочности для режима срочности установите 7 параметр первой строки в значение 1. Подробнее см. раздел «Виды срочности».

Автозамены, предусмотренные исходным кодом системы:

  • следующие слова удаляются из начала адреса еще до срабатывания пользовательской автозамены:
вул.,ул.,пр.,проспект,проезд,шоссе ,шоссе,аллея,ул ,пр-д,пер.,пер ,ул ,пр ,пр-т,пр-кт,бульвар,бул.,бул ,набережная,наб.,наб
  • если улица не найдена, но в справочнике есть другая улица, название которой отличается на одну букву, срабатывает подмена одной буквы в названии улицы. Если улица была указана корректно, укажите ее вручную. Система «запомнит» эту улицу, и ошибка больше не повторится.

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

Вы можете сохранить шаблон в отдельный 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