Изменения

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

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

17 821 байт добавлено, 15 март
Речь диктора
== Настройка для печатной документации ==
'''CustomGivnAct ''' - Функция позволяет заменить печатную форму, акта передачи материальных ценностей (печать из выдачи) на пользовательскую. Включить использование этой возможности можно в переменных "Справочники" -> "Переменные" -> "Печать" -> "Акты передачи курьеру" -> "Печатная форма акта: Пользовательская".
Объявленные переменные
%code% - коды записей в выдаче которые необходимо распечатать
Пользовательская форма акта, будет печататься только по заказам со статусом "На руках".
'''OnBeforePrintNakls ''' - Вызывается перед печатью накладных, содержит %code% - коды всех адресов (через запятую).
'''OnAfterPrintNakls ''' - Вызывается после печати накладных, содержит %code% - коды всех адресов (через запятую).
'''OnBeforePrintOneNakl ''' - Вызывается перед печатью накладной, содержит %code% - код адреса.
'''OnAfterPrintOneNakl ''' - Вызывается после печати накладной, содержит %code% - код адреса.
'''OnBeforePrintSticker ''' - Вызывается перед печатью наклейки, содержит %code% - код адреса, %barcode% - ШК наклейки.
'''OnAfterItemPrint ''' - Вызывается после печати наклейки из карточки номенклатуры. Поддерживает поля ввода - input. Содержит %code% - код номенклатуры item.code, %Naimen% - наименование, %country% - название страны, %Count% - указанное количество копий к печати. '''PrintCustomSticker''' - Функция позволяет установить пользовательскую печатную форму для наклеек (из интерфейса "Печать ведомостей/наклеек"). Вызывается если выбран тип наклейки 15 (переменная StickerForm). Содержит %RectLeft%, %RectTop%, %RectRight%, %RectBottom% - границы прямоугольника на холсте принтера, в которые надо печатать (для поддержки табличной печати на A4), %RecNumber% - номер текущей записи датасета, %CurrentBarCode% - ШК, рассчитанный в зависимости от параметров в интерфейсе "Печать ведомостей/наклеек". Также содержит весь датасет, использующийся в других типах наклеек. В момент вызова функции, принтер уже запущен и начат документ, объект TPrinter в функции создавать не нужно, необходимо только создать объект TCanvas, он создастся как ссылка на текущий холст принтера. '''PrintItemSticker''' - Вызывается перед печатью наклейки из карточки номенклатуры, для возможности распечатать уникальную наклейку для номенклатуры по заложенным в допвозможности условиям. Содержит %clientbar% - ШК наклейки. Если наклейка распечатана из допвозможности возвращает true, в противном случае false и будет распечатана стандартная наклейка, заложенная в системе
== Настройка всплывающих окон==
'''OnGivnStateChanged ''' - Вызывается в транзакции при изменении статуса выдачи. В параметре %code% указан код выдачи. В %pickupDocId% указан код на таблицу docs, документ приема забранных корреспонденций у курьера (доска приема при закрытии забора). Переменная %RetNotScanned% принимает значение true, если при установленной переменной "Запрашивать возвратные документы при приеме" = "Требовать маркировки наклейкой" пользователь не стал сканировать наклейку. '''OnAfterGivnStateChanged''' - Вызывается после транзакции, при изменении статуса выдачи. В параметре %code% указан код выдачи. В %pickupDocId% указан код на таблицу docs, документ приема забранных корреспонденций у курьера (доска приема при закрытии забора) '''OnBeforeAddressSave''' - Вызывается перед сохранением изменений в карточке корреспонденции. Код выполняется не в транзакции и есть возможность показывать диалоговые окна. В качестве параметра передан объект fieldlist (объект полный аналог addressrecord в доп. услугах). . Если результат функции -1, то происходит отмена сохранения без ошибки (abort).  '''OnBeforeBaseSave''' - Вызывается перед сохранением изменений в карточке срочного заказа. Код выполняется не в транзакции и есть возможность показывать диалоговые окна. В качестве параметра передан объект fieldlist (объект полный аналог таблицы base). Теги %date_put%, %time_put%, %message% - содержат дату вручения, время вручения и инфо о доставке соответственно. Если результат функции -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% - код мешка
OnAfterGivnStateChanged '''GetTypeShippingPlace''' - Вызывается после транзакциисобытие перед добавлением корреспонденции в мешок манифеста. Задача события распределить корреспонденцию между мешками. Результат функции код мешка, при изменении статуса выдачив который необходимо поместить корреспонденцию. В параметре Содержит %codeсode% указан - код выдачиадреса. В %pickupDocId% указан код на таблицу docs, документ приема забранных корреспонденций у курьера (доска приема при закрытии забора)
OnBeforeAddressSave '''OnBeforePlanToManifest''' - Вызывается событие перед сохранением изменений в карточке планированием корреспонденции. Код выполняется не в транзакции и есть возможность показывать диалоговые окнаманифест. В качестве параметра передан объект fieldlist (объект полный аналог addressrecord в допПредназначено для дополнительных проверок. услугах)Выполняется до транзакции. Тег Содержит %Form3FrameModecode% равен 1- код манифеста, если корреспонденция заполняется из интерфейса: "Функции %AddrList% - Ввод заявок по фото"список кодов адресов через запятую. Если результат функции -1Объявление события отменяет системную проверку на возможность доставки адреса филиалом получателя, то происходит отмена сохранения без ошибки (abort)ее нужно реализовывать в этом событии.
OnAfterAddressSave '''OnBeforeScanToManifest''' - Вызывается после сохранения карточки событие перед добавлением корреспонденции в мешок манифеста. Предназначено для дополнительных проверок. Выполняется до транзакции. Тег Содержит %code% - равен коду адреса; код манифеста, %Form3FrameModeAddress% равен 1, если корреспонденция заполняется из интерфейса: "Функции - Ввод заявок по фото".код помещаемого адреса
OnBarScan '''OnBeforePlanning''' - Скриптовая обработка штрихсобытие перед планированием одного или нескольких отправлений на курьера. Содержит %сode% -кода перед поискомкод курьера, %AddressCodes% - код(ы) планируемых корреспонденций.
AfterAddressAcceptance '''OnAfterPlanning'''- Событие событие после приема корреспонденции планирования планированием одного или нескольких отправлений на склад (например,заказы - прием корреспонденции). Код выполняется не в транзакции и есть возможность показывать диалоговые окнакурьера. Содержит %Codeсode% - код адресакурьера, %StrBarCodeAddressCodes% - отсканированный штрих-код(ы) фактически запланированных корреспонденций.
BeforeAddressAcceptance '''DAILY''' - Событие перед приемом корреспонденции на склад (например,заказы - прием корреспонденции). Код выполняется задание выполняемое один раз в транзакции. Содержит %Code% - код адреса; %StrBarCode% - отсканированный штрих-код; %mass% - массу, если значение меньше 0 значит весы выключены; %l%, %w%, %h% - габариты; %MultiBarCode% - истина если это наклейка на место; %SetKolvo% - проставлять принятые места, место может быть уже принято; %ClientCode% - код клиента (clients.code); %PackCode% - код места (packages.code) . Если функция возвращает значение больше 0, то это будет новой массой места или корреспонденции.день
OnAddToShippingPlace '''OnGivnKurierStateChanged''' - событие вызывается после добавление корреспонденции в мешок манифестаизменений данных со слов курьера (статуса, времени или причины недоставки). Вызывается даже при получении данных из мобильного приложения курьера. В событии запрещено показывать диалоги, т.к. Код выполняется в транзакцииэто может остановить синхронизацию данных с ЛК. Содержит %сode% - код адреса, %BarCode% - штрих код который отсканировали,%ShippingPlace% - код мешкавыдачи.
GetTypeShippingPlace '''OnBeforeGivnStatus''' - событие срабатывает перед добавление корреспонденции установкой статуса выдачи, не в мешок манифестатранзакции. Задача события распределить корреспонденцию между мешками. Результат функции В параметре %code% указан код выдачи, %status% - устанавливаемый статус,%kurier% - код мешкакурьера, %date% - дата выдачи, в который необходимо поместить корреспонденцию. Содержит %сodeaddress% - код адреса.
DAILY '''OnBeforeClientSave''' - задание выполняемое один раз событие срабатывает перед сохранением изменений в денькарточке клиента. Код выполняется не в транзакции и есть возможность показывать диалоговые окна. В качестве параметров переданы %code% (содержит код клиента) и объект fieldlist (полный аналог addressrecord в доп. услугах), который содержит ещё не сохранённую информацию о карточке клиента, а так же все её пользовательские поля. Если результат функции -1, то происходит отмена сохранения без ошибки (abort).
OnGivnKurierStateChanged '''OnAfterClientSave''' - событие вызывается срабатывает после сохранения изменений данных со слов курьера (статуса, времени или причины недоставки)в карточке клиента. Вызывается даже при получении данных из мобильного приложения курьераКод выполняется в транзакциисобытии запрещено показывать диалоги, т.к. это может остановить синхронизацию данных с ЛК. Содержит качестве параметров переданы %сodecode% - (содержит код выдачиклиента) и объект fieldlist (полный аналог addressrecord в доп.услугах), который содержит сохранённую информацию о карточке клиента, а так же все её пользовательские поля с предыдущими значениями, которые можно получить через функцию _Former('VarCode', значение, 'VarValue')
OnBeforeGivnStatus '''OnBeforeBasePutCheck''' - событие срабатывает перед установкой статуса выдачи, при проставлении галки на вкладке срочных заказов. Код выполняется не в транзакциии есть возможность показывать диалоговые окна. В параметре <nowiki>%code% </nowiki> указан код выдачисрочного заказа, а в параметре <nowiki>%statusBasePutCheckType% </nowiki> указан тип проставления: 0 - устанавливаемый статусесли галка,%kurier% 1 - если плюс. Если результат функции - код курьера1, %date% то отмена выполняемой функции (abort). '''OnAfterCreateSpecialSMA''' - дата выдачисобытие срабатывает после создания нового АПД для клиента. Код выполняется вне транзакции, потому есть возможность показывать диалоговые окна. В качестве единственного параметра %addresscode% - передается код адресасозданного АПД.
== Настройка документов ==
'''CustomAddressPrnForm2 ''' - Кастомная реализация упрощенной печатной формы. В карточке заказа установлена галка Простые, и установлена переменная "Справочники" -> "Переменные" -> "Печать" -> "Упрощенные печатные формы" -> "Тип упрощенной печатной формы: 5"
'''GetTypeShippingPlace ''' - Выполняется при помещении корреспонденции в мешок манифеста. Содержит %code% - код корреспонденции. Возвращаемое значение это код мешка (shippingpalce.code), если его указать , то это изменит мешок, в который будет помещена корреспонденция.
'''OnShelvingBarScan ''' - Обработка отсканированного штрих-кода при комплектации.
'''AdditionalStringForSMA ''' - Дополнительные задает дополнительные условия для формирования АПД (наиболее часто: разделения актов на нал. и безнал, помимо этого практически неограниченные возможности по изменению условий для отбора корреспонденций в акт, учета их доставленности и т.п.) Содержит %code%- код клиента, где передано значение типа актапеременную %ActPayType% со значениями типов оплаты входящих в акт отправлений: "nal" - наличный, "bnal"- безналичный,"all" - все, а ткаже %ActDateTo% - с датой, до которой создается акт. Может возвращать строку, разделенную символами переноса строки. (На 17.09.2021 в возвращаемой строке предусмотрен 1 символ переноса, т.е. строка состоит из двух частей.) В этом случае часть строки до первого переноса будет использоваться в запросе как доп. условие отбора, часть строки после первого символа пеерноса - в качестве дополнительного условия для определения "выполненности" доставки (поле specialsma.Made). С помощью второго модификатора можно сделать например так, чтобы корреспонденции с незаполненными датой/временем вручения считались доставленными.
'''CustomBillDetaling ''' - Кастомная детализация счета. Установка переменной $CancelCustomDetail в true, включает вывод стандартной детализации. В переменной $schet - код счета по которому строится детализация.
'''OnSchetChanged ''' - Выполняется при удалении счета и его изменении. Содержит %code% - код счета schet.code
'''ExceptionsForAPK ''' - Задает дополнительные критерии поиска корреспонденции при формировании акта передачи корреспонденции(АПК). Содержит %Boxes% - псевдоним таблицы вложений используемый в запросе. Функция возвращает !ДВЕ! части sql запроса разделенных CRLF. При отборе в АПК используется два запроса. Первый - отбирает не доставленные заказы и возвраты документов, в него будет подставлено условие слева от разделителя CRLF. Второй запрос отбирает возращенные товары, в него будет подставлено условие справа от разделителя CRLF или вся строка условий если в строке нет разделителя CRLF (оставлено для обратной совместимости, в версии программы до 1115 фильтрация была только во втором запросе). %AdditionalParam% - дополнительный параметр, который можно установить в интерпретаторе при вызове функции CreateAddressTransferAct.
пример кода по умолчанию, фильтр только по второму запросу, вложение с названием "Доставка" - не попадает в АПК
<NOWIKI><?>
$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. '''OnSMABarcodeScan''' - событие вызывается при сканировании штрихкода АПК в списке актов. %code% - код АПК (sendmoneyact.code) '''OnPaintSMAColumns''' - вызывается при прорисовке таблицы в форме списка АПД/АПК. В функцию передается DataSet, содержащий поля таблиц SendMoneyAct и Clients, а так же пользовательские поля клиентов, называющиеся ufX, где X - номер поля (в статусах). Функция должна возвращать строку следующей структуры:Поле1_таблицы, Цвет_фона, Поле2_таблицы, Цвет_фона и т.п. Возврат нечетного числа параметров эквивалентен возврату пустой строки (цвет не меняется)
OnGetZakazCount '''CustomZPDetail''' - подменяет стандартный подсчет количества отправлений кастомное дополнение к детализации зарплаты (Специальная надбавка). Вызывается из скриптовой детализации зарплаты. Предназначено для расчета стоимости доставки (и вывода в том чисте отменяется вызов доп.возможности OnOrderCountCalc). Должна возвращать колдетализацию значения какой-во корреспонденцийлибо специальной надбавки, определенной пользователем. В процедуру передаются следующие переменныеВходящие параметры: %CntAccTypecode% - вид подсчета: 0-по заказукод платежа в таблице kurier_pays, 1-за месяц по клиенту; %codekurier% - код клиента (обязателен для вида подсчета 1); %ZakazDate% - дата заказа; %CountByMonthType% - способ подсчета заказов за месяц (1-по текущему месяцу; 0 - по предыдущему); %UseCurrentUrgency% - 1:подсчитывать только корреспонденцию определенного режима срочности; %Mode% - этот режим срочности (при подсчете по заказу учитываются так же связанные режимы срочностикурьера. Возвращает строку, указанные в параметре 5 режима срочности в таблице статусов); %SeparateIntercityDelivery% где через запятую указаны Название надбавки и ее значение. Если эта строка не содержит двух параметров - 1:ничего не учитывать междугородние доставки; В функцию так же передается объект fieldlistвыводится..
== Настройка вида маркера ==
'''MapObjectFigure''' - Доп. возможность позволяет установить вид маркера на карте. Результат определяет фигуру: 1 - перевернутый треугольник(острым концом вниз), 2 - треугольник, 3 - увеличенный перевернутый треугольник(острым концом вниз), чтобы квадрат не мог его перекрыть, 4 - квадрат, 5 - ромб, все остальное круг. Ромб поддерживается с версии 960.<br/>
Например:
if(table2map.zabor, 2, if(StrDateToFloat(table2map.DatePeriod) = $PlanDate, 3, 4))
Выводит треугольник, если отправление - забор. Иначе - если дата план отправления равна дате, на которую планируется - увеличенный перевернутый треугольник, иначе - квадрат.
'''MapObjectColor''' - Доп. возможность позволяет установить цвет маркера на карте.
if((table2map.kurier<20)*(StrDateToFloat(table2map.DatePeriod) = $PlanDate), 16753920, $color)
Не запланированные отправления на текущий день будут отображаться выбранным цветом, иначе - цветом по-умолчанию.
 
 
== Речь диктора ==
 
'''OnGivnVoice''' - выполняется после изменения статуса выдачи. Параметр <nowiki>%code%</nowiki> содержит код выдачи, <nowiki>%State%</nowiki> содержит код устанавливаемого статуса, <nowiki>%OldState%</nowiki> - код старого статуса (0 если не было). Позволяет отключать стандартный звук ОК, если возвращает не 0.
 
'''OnDashboardManifestVoice''' - выполняется после сканирования адреса в интерфейсе приёма манифестов. Параметр <nowiki>%code%</nowiki> содержит код корреспонденции. Позволяет отключать стандартную диктовку программой (код курьера, вес и т.д.), если возвращает не 0.
== Настройка мобильного приложения ==
== Скрипты ==
'''OnEveryStartApp ''' - выполняется при запуске программы.
'''OnEveryCloseApp ''' - выполняет при закрытии программы.
'''OnBarScan ''' - выполняется при получении ШК со сканера, в параметре %code% - получаем ШК. Если функция, что-то возвращает, то система будет использовать возвращенный ШК.
'''OnMapBeforeGeolocation ''' - Вызывается перед отображаем адреса на карте. В функцию передается объект fieldlist.
Пример скрипта, переводящий адреса в НЕ найденные на карте, если станция метро НЕОПЕРЕДЕЛЕННАЯ.
<NOWIKI><?>
'''OnSyncInsert ''' - Выполняется для каждой добавленной записи при синхронизации с ЛК. Содержит %tablename% - название синхронизируемой таблицы.
'''OnSyncUpdate ''' - Выполняется для каждой обновленной записи при синхронизации с ЛК. Содержит %tablename% - название синхронизируемой таблицы.
Если при получении новых адресов с ЛК, нужно поменять любое поле в таблице address, то необходимо использовать сразу два события OnSyncInsert и OnSyncUpdate. Адреса без вложений обрабатываются событием OnSyncInsert, адреса с вложениями будут обрабатываться событием OnSyncUpdate. Это связано с механизмом синхронизации, если в событии OnSyncInsert, проапдейтить поле в адресе с вложениями, то данные могут потеряться.
;
'''OnCalcSalary ''' - Событие происходит после начисления зарплаты курьеру. %code% - код созданного начисления kurier_pays.code ; %dateto% - дата до которой рассчитали зарплату; И отдельно части зарплаты: %profit% -итоговая сумма; %Zarab% - сдельная часть; %Oklad% - оклад; %Friends% - выплаты за приведенных; %Other% - разное; %AgentMoney% - агентское вознаграждение; %StandingMoney% - Доплата за стаж; %Bonus%, %Shtraf% - бонусы и штрафы. '''OnTicketSetCusr''' - Пользовательский скрипт перед назначением ответственного в тикетах. %code% - код тикета; %Cusr% - код назначаемого пользователя (может быть равно NULL) '''OnCreateAddressForActDelivery''' - Пользовательский скрипт вызывающийся в момент формирования корреспонденции на доставку АПД/АПК. Позволяет существенно доработать формируемую корреспонденцию. %code% - код акта sendmoneyact.code, %Client% - код клиента; %delivery% - флаг определяющий корр. на доставку акта (1, значение по умолчанию) или забор акта. fieldlist - объект с полями адреса (повторяет структуру таблицы address), dataset - объект дополнительными полями функции. Объект fieldlist является классом TMyFieldList и позволяет менять значения полей. Также измененный адрес можно сохранить прямо в событии, или он будет сохранен автоматически после выполнения скрипта. Для сохранения адреса используйте метод _save.   Пример, для клиента с кодом 3360, в корреспонденцию на доставку АПК, добавляем список корреспонденций попавших в него во вложения. <source lang="sql"> <?> if((client=3360)*(ActType=2), rem('Ticket 70827, 2022-09-07 Anatoly and Sergey'); set($addresscode, fieldlist._save); query('insert boxes (address, pos, name) select '+$addresscode+' AS address, @q := @q + 1 AS pos, CASE WHEN a.client_id <> '' THEN a.client_id WHEN a.strbarcode<>'' THEN a.strbarcode ELSE CONCAT(a.zakaz,"-", a.number) END AS `name` FROM addressfld af JOIN address a ON a.code=af.`address` ,(SELECT @q := 0 ) p WHERE af.`AddrTransferCode` = %code% AND af.`ReceivedInTransfer` > 0'); ,0);</source> '''OnAfterPreassemblyScan''' - событие происходит после сканирования складского товара в корреспонденцию на вкладке «Склад». %code% - код корреспонденции, %ItemCode% - код товара, %ItemCnt% - количество отсканированного товара. '''OnGeocodeScript''' - скрипт подключения к геокодеру клиента. Используется при включенной переменной "Справочники" -> "Переменные" -> "Подключения" -> "Карты" -> "Геокодирование" -> "Протокол геокодирования: Клиентский (скрипт OnGeocodeScript)". Имеет встроенные переменные:*$address - адрес для геокодирования;*$town - код города;*$street и $home - упрощенный адрес; Скрипт должен вернуть следующие переменные : *$lon и $lat - координаты ;*$goodaddress - нормализованный адрес (не обязательно); <source lang="sql"><?> set($response, HTTPPOST('http://XXXXXXXX', '{"query":'+ FormatTextJSON($address)+ '}', '','','','', 'post', 'application/json', 10000)); if($response!'', new('TJSON', 'json'); set($e, try( json.SetText($response); json.OpenChild('geo_data'); json.OpenChild('mid'); set($lat, sqlfloat(json.ChildNodeValue('lat'))); set($lon, sqlfloat(json.ChildNodeValue('lon'))); )); if($e, error('Ошибка в разборе ответа: '+$e), ''); , error('Пришел пустой ответ от геокодера') );</source> '''OnFilterAddressRecalc''' - Позволяет отфильтровать коды адресов, для которых можно пересчитать стоимость. Событие происходит перед расчетом стоимости доставки из интерфейса программы для: актов, счетов, заказов, и т.д. Не работает для пересчета запускаемого из самой карточки корреспонденции. %codes% - коды адресов для пересчета стоимости доставки. Формат: (1,2,3,...). %RecalcUserCode% - код пользователя запустившего пересчет (актуально для отложенных пересчетов). Функция должна вернуть коды адресов, допущенных к пересчету в формате: (1,2,3,...) <source lang="sql"><?> rem('2023-12-04 Sergey. Отключаем перерасчет стоимости доставки у корреспонденций в статусе - проверено, если у пользователя нет права Счета-изменять. Тикет 79954. Блокировка работает в связке с тикетом 77995.'); new('TSelfADO', 'DB'); DB.OPEN('SELECT a.code FROM courier.address a LEFT JOIN courier.users u ON u.code=%RecalcUserCode% LEFT JOIN courier.`userrules` ur ON ur.`GroupId`=u.grup AND ur.`RuleType`=1 AND ur.newruleid =78 -- RSA WHERE ((a.state1<>8) OR (a.state1=8 AND ur.state="T")) AND a.code in %code%'); DB.ParseForIn('CODE')</source>
44
правки

Навигация