Изменения

Перейти к: навигация, поиск

Дополнительные возможности

17 046 байт добавлено, 11:49, 21 апреля 2021
Добавлено описание доп.возможности OnGetZakazCount
== Настройка для печатной документации ==
 
CustomGivnAct - Функция позволяет заменить печатную форму, акта передачи материальных ценностей (печать из выдачи) на пользовательскую. Включить использование этой возможности можно в переменных "Справочники" -> "Переменные" -> "Печать" -> "Акты передачи курьеру" -> "Печатная форма акта: Пользовательская".
Объявленные переменные
Пользовательская форма акта, будет печататься только по заказам со статусом "На руках".
OnGivnStateChanged OnBeforePrintNakls - Вызывается в транзакции при изменении статуса выдачиперед печатью накладных, содержит %code% - коды всех адресов (через запятую). OnAfterPrintNakls - Вызывается после печати накладных, содержит %code% - коды всех адресов (через запятую). В параметре  OnBeforePrintOneNakl - Вызывается перед печатью накладной, содержит %code% указан - код выдачиадреса.
OnAfterGivnStateChanged OnAfterPrintOneNakl - Вызывается после транзакциипечати накладной, при изменении статуса выдачи. В параметре содержит %code% указан - код выдачиадреса.
OnBeforeAddressSave OnBeforePrintSticker - Вызывается перед сохранением изменений в карточке корреспонденции. В качестве параметра передан объект fieldlist (объект полный аналог addressrecord в доп. услугах)печатью наклейки, содержит %code% - код адреса, %barcode% - ШК наклейки.
OnAfterItemPrint - Вызывается после печати наклейки из карточки номенклатуры. Поддерживает поля ввода - input. Содержит %code% - код номенклатуры item.code, %Naimen% - наименование, %country% - название страны, %Count% - указанное количество копий к печати. == Настройка всплывающих окон== OnGivnStateChanged - Вызывается в транзакции при изменении статуса выдачи. В параметре %code% указан код выдачи. В %pickupDocId% указан код на таблицу docs, документ приема забранных корреспонденций у курьера (доска приема при закрытии забора) OnAfterGivnStateChanged - Вызывается после транзакции, при изменении статуса выдачи. В параметре %code% указан код выдачи. В %pickupDocId% указан код на таблицу docs, документ приема забранных корреспонденций у курьера (доска приема при закрытии забора) OnBeforeAddressSave - Вызывается перед сохранением изменений в карточке корреспонденции. Код выполняется не в транзакции и есть возможность показывать диалоговые окна. В качестве параметра передан объект fieldlist (объект полный аналог addressrecord в доп. услугах). Тег %Form3FrameMode% равен 1, если корреспонденция заполняется из интерфейса: "Функции - Ввод заявок по фото". Если результат функции -1, то происходит отмена сохранения без ошибки (abort).  OnAfterAddressSave - Вызывается после сохранения карточки корреспонденции в транзакции. Тег %code% - равен коду адреса; %Form3FrameMode% равен 1, если корреспонденция заполняется из интерфейса: "Функции - Ввод заявок по фото". OnBarScan- Скриптовая обработка штрих-кода перед поиском AfterAddressAcceptance - Событие после приема корреспонденции на склад (например,заказы - прием корреспонденции). Код выполняется не в транзакции и есть возможность показывать диалоговые окна. Содержит %Code% - код адреса, %StrBarCode% - отсканированный штрих-код.  BeforeAddressAcceptance - Событие перед приемом корреспонденции на склад (например,заказы - прием корреспонденции). Код выполняется в транзакции. Содержит %Code% - код адреса; %StrBarCode% - отсканированный штрих-код; %mass% - массу, если значение меньше 0 значит весы выключены; %l%, %w%, %h% - габариты; %MultiBarCode% - истина если это наклейка на место; %SetKolvo% - проставлять принятые места, место может быть уже принято; %ClientCode% - код клиента (clients.code); %PackCode% - код места (packages.code) . Если функция возвращает значение больше 0, то это будет новой массой места или корреспонденции. OnAddToShippingPlace - событие после добавление корреспонденции в мешок манифеста. Код выполняется в транзакции. Содержит %сode% - код адреса, %BarCode% - штрих код который отсканировали,%ShippingPlace% - код мешка GetTypeShippingPlace - событие перед добавление корреспонденции в мешок манифеста. Задача события распределить корреспонденцию между мешками. Результат функции код мешка, в который необходимо поместить корреспонденцию. Содержит %сode% - код адреса.
DAILY - задание выполняемое один раз в день
CustomAddressPrnForm2 OnGivnKurierStateChanged - Кастомная реализация упрощенной печатной формысобытие вызывается после изменений данных со слов курьера (статуса, времени или причины недоставки). Вызывается даже при получении данных из мобильного приложения курьера. В карточке заказе установлена галка Простыесобытии запрещено показывать диалоги, и установлена переменная "Справочники" т.к. это может остановить синхронизацию данных с ЛК. Содержит %сode% -> "Переменные" -> "Печать" -> "Упрощенные печатные формы" -> "Тип упрощенной печатной формы: 5"код выдачи.
GetTypeShippingPlace OnBeforeGivnStatus - событие срабатывает перед установкой статуса выдачи, не в транзакции. В параметре %code% указан код выдачи, %status% - устанавливаемый статус,%kurier% - код курьера, %date% - дата выдачи, %address% - код адреса
OnShelvingBarScan == Настройка документов ==CustomAddressPrnForm2 - Обработка от сканированного штрихКастомная реализация упрощенной печатной формы. В карточке заказа установлена галка Простые, и установлена переменная "Справочники" -кода при комплектации.> "Переменные" -> "Печать" -> "Упрощенные печатные формы" -> "Тип упрощенной печатной формы: 5"
AdditionalStringForSMA GetTypeShippingPlace - Дополнительные условия разделения актов на налВыполняется при помещении корреспонденции в мешок манифеста. и безналСодержит %code% - код корреспонденции. Возвращаемое значение это код мешка (shippingpalce.code), если его указать , то это изменит мешок, в который будет помещена корреспонденция.
CustomBillDetaling OnShelvingBarScan - Кастомная детализация счетаОбработка отсканированного штрих-кода при комплектации.
MapObjectFigure AdditionalStringForSMA - Позволяет установить вид маркера Дополнительные условия разделения актов на картенал. Результат определяет фигуруи безнал.Содержит %code%, где передано значение типа акта: 1 - перевернутый треугольник, 2 "nal" - треугольникналичный, 3 "bnal"- увеличенный треугольник, чтобы квадрат не мог его перекрыть, 4 - квадрат, все остальное круг. В окружении доступен объект Table2Map, в формуле нужно использовать поля только этого объекта т.к. он вызывается при событии рисования, любое обращение к базе приведет к значительному замедлениюбезналичный.
MapObjectColor CustomBillDetaling - Позволяет установить цвет маркета на картеКастомная детализация счета. Установка переменной $CancelCustomDetail в true, включает вывод стандартной детализации. В переменной $schet - код счета по которому строится детализация.
OnSchetChanged - Выполняется при удалении счета и его изменении. Содержит %code% - код счета schet.code ExceptionsForAPK - можно настроить исключения для включения Задает дополнительные критерии поиска корреспонденции при формировании акта передачи корреспонденции(АПК). Содержит %Boxes% - псевдоним таблицы вложений используемый в АПК запросе. Возвращает часть Функция возвращает !ДВЕ! части sql запроса разделенных CRLF. При отборе в АПК используется два запроса. Первый - отбирает не доставленные заказы и возвраты документов, в него будет подставлено условие слева от разделителя CRLF. Второй запрос отбирает возращенные товары, в него будет подставлено условие справа от разделителя CRLF или вся строка условий если в строке нет разделителя CRLF (оставлено для обратной совместимости, в версии программы до 1115 фильтрация была только во втором запросе). %AdditionalParam% - дополнительный параметр, который можно установить в интерпретаторе при отборе вложений вызове функции CreateAddressTransferAct. пример кода по умолчанию, фильтр только по второму запросу, вложение с названием "Доставка" - не попадает в АПК
<NOWIKI><?>
SET($ExcStr,' and bx%Boxes%.Name not like ''%Доставка%'' ');
$ExcStr</NOWIKI>
 
пример для изменения фильтрации сразу у двух запросов:
<NOWIKI><?>
SET($WHERE1,''); rem('условие отбора не доставленных и возврата документов');
SET($WHERE2, ''); rem('условие отбора возврата товаров');
$WHERE1 + CHAR(13) + CHAR(10) + $WHERE2</NOWIKI>
 
OnOrderCountCalc -Для расчета стоимости доставки необходимо учитывать кол-во отправлений. Доп. возможность возвращает часть SQL запроса, уточняющий условия поиска. Содержит %code% - равен значению переменной "Считать кол-во отправлений по текущему месяцу" (UseCurrentMonthCount, нет - 0, да - 1)
 
OnGetZakazCount - подменяет стандартный подсчет количества отправлений для расчета стоимости доставки (в том чисте отменяется вызов доп.возможности OnOrderCountCalc). Должна возвращать кол-во корреспонденций. В процедуру передаются следующие переменные: %CntAccType% - вид подсчета: 0-по заказу, 1-за месяц по клиенту; %code% - код клиента (обязателен для вида подсчета 1); %ZakazDate% - дата заказа; %CountByMonthType% - способ подсчета заказов за месяц (1-по текущему месяцу; 0 - по предыдущему); %UseCurrentUrgency% - 1:подсчитывать только корреспонденцию определенного режима срочности; %Mode% - этот режим срочности (при подсчете по заказу учитываются так же связанные режимы срочности, указанные в параметре 5 режима срочности в таблице статусов); %SeparateIntercityDelivery% - 1:не учитывать междугородние доставки; В функцию так же передается объект fieldlist.
 
== Настройка вида маркера ==
Настройки находятся в "Отчеты" -> "Дополнительные возможности" - "Системные". <br />
 
В функции передается объект Table2Map типа [[Руководство программиста#Объект TFieldObject|TFieldObject]]. Получить поля с примерами значений из него можно например так:
showmessage(table2map._GETTABLEINFO)
(текст большое сообщения можно скопировать в буфер комбинацией Ctrl-C).
 
Для доступа к данным пользуйтесь только этим объектом, т.к. любое обращение к базе приведет к значительному снижению скорости работы.
 
Так же текущее состояние окна карты доступно через переменные:
 
$PlanDate - Выбранная дата, на которую планируется.
 
$KurierCode - Код выделенного курьера.
 
$MetroCode - Код выделенной станции метро (маршрута).
 
 
Обратите внимание, что все ошибки, возникающие при отрисовке, подавляются системой. Поэтому, если вы допустите ошибку в скрипте, он просто не будет работать, никаких сообщений вы не увидите. Для отладочных целей можно заменить ошибки на сообщения такой конструкцией:
 
set($s, try(
error('вот тут ошибка, которую вы увидите в виде сообщения');
));
if($s, showmessage($s), '');
 
 
 
'''MapObjectFigure''' - Доп. возможность позволяет установить вид маркера на карте. Результат определяет фигуру: 1 - перевернутый треугольник, 2 - треугольник, 3 - увеличенный треугольник, чтобы квадрат не мог его перекрыть, 4 - квадрат, 5 - ромб, все остальное круг. Ромб поддерживается с версии 960.<br/>
Например:
if(table2map.zabor, 2, if(StrDateToFloat(table2map.DatePeriod) = $PlanDate, 3, 4))
Выводит треугольник, если отправление - забор. Иначе - если дата план отправления равна дате, на которую планируется - увеличенный треугольник, иначе - квадрат.
 
'''MapObjectColor''' - Доп. возможность позволяет установить цвет маркера на карте.
При помощи данных параметров можно создать условия отображения маркеров.<br/>
 
Для доступа к настройкам доступны переменные:
 
$Color
 
$DefaultColor
 
$PlanedColor
 
$SelectedPlanedColor
 
$GetKurierColor
 
Например:
if((table2map.kurier<20)*(StrDateToFloat(table2map.DatePeriod) = $PlanDate), 16753920, $color)
Не запланированные отправления на текущий день будут отображаться выбранным цветом, иначе - цветом по-умолчанию.
 
== Настройка мобильного приложения ==
 
== Скрипты ==
OnEveryStartApp - выполняется при запуске программы.
 
OnEveryCloseApp - выполняет при закрытии программы.
 
OnBarScan - выполняется при получении ШК со сканера, в параметре %code% - получаем ШК. Если функция, что-то возвращает, то система будет использовать возвращенный ШК.
 
OnMapBeforeGeolocation - Вызывается перед отображаем адреса на карте. В функцию передается объект fieldlist.
Пример скрипта, переводящий адреса в НЕ найденные на карте, если станция метро НЕОПЕРЕДЕЛЕННАЯ.
<NOWIKI><?>
if(station=0,
_set('lon', null);
_set('lat', null);
_set('searchCoordinate', 'F');
,0)</NOWIKI>
 
 
OnSyncInsert - Выполняется для каждой добавленной записи при синхронизации с ЛК. Содержит %tablename% - название синхронизируемой таблицы.
 
OnSyncUpdate - Выполняется для каждой обновленной записи при синхронизации с ЛК. Содержит %tablename% - название синхронизируемой таблицы.
 
Если при получении новых адресов с ЛК, нужно поменять любое поле в таблице address, то необходимо использовать сразу два события OnSyncInsert и OnSyncUpdate. Адреса без вложений обрабатываются событием OnSyncInsert, адреса с вложениями будут обрабатываться событием OnSyncUpdate. Это связано с механизмом синхронизации, если в событии OnSyncInsert, проапдейтить поле в адресе с вложениями, то данные могут потеряться.
Когда адрес без вложений, то у него сразу station = 65535 и можно апдейтить. Если с вложениями, то у него сначала station = 65534, а после синхронизации вложений есть отдельный апдейт на 65535. Пример кода, для апдейта поля в адресах, события OnSyncInsert и OnSyncUpdate:
<NOWIKI>
 
<?>
rem(ticket 23584, 23583);
if( ('%tablename%'='address'),
query('UPDATE address a
JOIN trace t ON t.address=a.code AND t.state=1
JOIN zakaz z ON z.code=a.zakaz
SET
a.mode = IF(z.source=646, 3, 2)
WHERE
a.code = %code%
AND a.station=65535
AND (
(z.source=646 AND a.mode<>3) OR
(A.DATE_PUTN=DATE(t.Statetime) AND a.mode=1) OR
(A.DATE_PUTN=DATE_ADD(DATE(t.Statetime), INTERVAL 1 DAY) AND TIME(t.Statetime) > "21:59:59" AND a.mode=1)
)')
, '');</NOWIKI>
;
 
OnCalcSalary - Событие происходит после начисления зарплаты курьеру. %code% - код созданного начисления kurier_pays.code ; %dateto% - дата до которой рассчитали зарплату; И отдельно части зарплаты: %profit% -итоговая сумма; %Zarab% - сдельная часть; %Oklad% - оклад; %Friends% - выплаты за приведенных; %Other% - разное; %AgentMoney% - агентское вознаграждение; %StandingMoney% - Доплата за стаж; %Bonus%, %Shtraf% - бонусы и штрафы.
28
правок

Навигация