Изменения

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

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

16 754 байта добавлено, 11:49, 21 апреля 2021
Добавлено описание доп.возможности OnGetZakazCount
Пользовательская форма акта, будет печататься только по заказам со статусом "На руках".
 
OnBeforePrintNakls - Вызывается перед печатью накладных, содержит %code% - коды всех адресов (через запятую).
 
OnAfterPrintNakls - Вызывается после печати накладных, содержит %code% - коды всех адресов (через запятую).
 
OnBeforePrintOneNakl - Вызывается перед печатью накладной, содержит %code% - код адреса.
 
OnAfterPrintOneNakl - Вызывается после печати накладной, содержит %code% - код адреса.
 
OnBeforePrintSticker - Вызывается перед печатью наклейки, содержит %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, если корреспонденция заполняется из интерфейса: "Функции - Ввод заявок по фото".
OnAfterGivnStateChanged OnBarScan - Вызывается после транзакции, при изменении статуса выдачи. В параметре %code% указан код выдачи.Скриптовая обработка штрих-кода перед поиском
OnBeforeAddressSave AfterAddressAcceptance - Вызывается перед сохранением изменений в карточке Событие после приема корреспонденции на склад (например,заказы - прием корреспонденции). В качестве параметра передан объект fieldlist (объект полный аналог addressrecord Код выполняется не в доптранзакции и есть возможность показывать диалоговые окна. услугах)Содержит %Code% - код адреса, %StrBarCode% - отсканированный штрих-код.
OnBarScanBeforeAddressAcceptance - Событие перед приемом корреспонденции на склад (например,заказы - прием корреспонденции). Код выполняется в транзакции. Содержит %Code% - код адреса; %StrBarCode% - отсканированный штрих-код; %mass% - массу, если значение меньше 0 значит весы выключены; %l%, %w%, %h% - габариты; %MultiBarCode% - истина если это наклейка на место; %SetKolvo% - проставлять принятые места, место может быть уже принято; %ClientCode% - код клиента (clients.code); %PackCode% - код места (packages.code) . Если функция возвращает значение больше 0, то это будет новой массой места или корреспонденции. OnAddToShippingPlace - событие после добавление корреспонденции в мешок манифеста. Код выполняется в транзакции. Содержит %сode% - код адреса, %BarCode% - штрих код который отсканировали,%ShippingPlace% - код мешка GetTypeShippingPlace - событие перед добавление корреспонденции в мешок манифеста. Задача события распределить корреспонденцию между мешками. Результат функции код мешка, в который необходимо поместить корреспонденцию. Содержит %сode% - код адреса.
DAILY - задание выполняемое один раз в день
 
OnGivnKurierStateChanged - событие вызывается после изменений данных со слов курьера (статуса, времени или причины недоставки). Вызывается даже при получении данных из мобильного приложения курьера.В событии запрещено показывать диалоги, т.к. это может остановить синхронизацию данных с ЛК. Содержит %сode% - код выдачи.
 
OnBeforeGivnStatus - событие срабатывает перед установкой статуса выдачи, не в транзакции. В параметре %code% указан код выдачи, %status% - устанавливаемый статус,%kurier% - код курьера, %date% - дата выдачи, %address% - код адреса
== Настройка документов ==
CustomAddressPrnForm2 - Кастомная реализация упрощенной печатной формы. В карточке заказе заказа установлена галка Простые, и установлена переменная "Справочники" -> "Переменные" -> "Печать" -> "Упрощенные печатные формы" -> "Тип упрощенной печатной формы: 5"
GetTypeShippingPlace - Выполняется при помещении корреспонденции в мешок манифеста. Содержит %code% - код корреспонденции. Возвращаемое значение это код мешка (shippingpalce.code), если его указать , то это изменит мешок, в который будет помещена корреспонденция.
OnShelvingBarScan - Обработка отсканированного штрих-кода при комплектации.
AdditionalStringForSMA - Дополнительные условия разделения актов на нал. и безнал.Содержит %code%, где передано значение типа акта: "nal" - наличный, "bnal"- безналичный.
CustomBillDetaling - Кастомная детализация счета. Установка переменной $CancelCustomDetail в true, включает вывод стандартной детализации. В переменной $schet - код счета по которому строится детализация. OnSchetChanged - Выполняется при удалении счета и его изменении. Содержит %code% - код счета schet.code ExceptionsForAPK - Задает дополнительные критерии поиска корреспонденции при формировании акта передачи корреспонденции(АПК). Содержит %Boxes% - псевдоним таблицы вложений используемый в запросе. Функция возвращает !ДВЕ! части sql запроса разделенных CRLF. При отборе в АПК используется два запроса. Первый - отбирает не доставленные заказы и возвраты документов, в него будет подставлено условие слева от разделителя CRLF. Второй запрос отбирает возращенные товары, в него будет подставлено условие справа от разделителя CRLF или вся строка условий если в строке нет разделителя CRLF (оставлено для обратной совместимости, в версии программы до 1115 фильтрация была только во втором запросе). %AdditionalParam% - дополнительный параметр, который можно установить в интерпретаторе при вызове функции CreateAddressTransferAct. пример кода по умолчанию, фильтр только по второму запросу, вложение с названием "Доставка" - не попадает в АПК <NOWIKI><?> SET($ExcStr,' and %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.
== Настройка вида маркера ==
MapObjectFigure Настройки находятся в "Отчеты" - Позволяет установить вид маркера на карте. Результат определяет фигуру: 1 > "Дополнительные возможности" - перевернутый треугольник, 2 - треугольник, 3 - увеличенный треугольник, чтобы квадрат не мог его перекрыть, 4 - квадрат, все остальное круг"Системные". <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)Не запланированные отправления на текущий день будут отображаться выбранным цветом, иначе - цветом по-умолчанию.
== Настройка мобильного приложения ==
ExceptionsForAPK == Скрипты ==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. Возвращает часть sql запроса при отборе Адреса без вложений обрабатываются событием OnSyncInsert, адреса с вложениями будут обрабатываться событием OnSyncUpdate. Это связано с механизмом синхронизации, если в событии OnSyncInsert, проапдейтить поле в адресе с вложениями, то данные могут потеряться. пример Когда адрес без вложений, то у него сразу station = 65535 и можно апдейтить. Если с вложениями, то у него сначала station = 65534, а после синхронизации вложений есть отдельный апдейт на 65535. Пример кода по умолчанию, вложение с названием "Доставка" - не попадает для апдейта поля в АПКадресах, события OnSyncInsert и OnSyncUpdate: <NOWIKI> <?> SETrem($ExcStrticket 23584,23583); if( (' and bx.Name not like %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) )'), ' '); $ExcStr</NOWIKI>; OnCalcSalary - Событие происходит после начисления зарплаты курьеру. %code% - код созданного начисления kurier_pays.code ; %dateto% - дата до которой рассчитали зарплату; И отдельно части зарплаты: %profit% -итоговая сумма; %Zarab% - сдельная часть; %Oklad% - оклад; %Friends% - выплаты за приведенных; %Other% - разное; %AgentMoney% - агентское вознаграждение; %StandingMoney% - Доплата за стаж; %Bonus%, %Shtraf% - бонусы и штрафы.
28
правок

Навигация