Skip to content

Instantly share code, notes, and snippets.

@wmakeev
Last active January 21, 2023 05:51
Show Gist options
  • Save wmakeev/23b61d3bc86bf27ff5e2070026f292a5 to your computer and use it in GitHub Desktop.
Save wmakeev/23b61d3bc86bf27ff5e2070026f292a5 to your computer and use it in GitHub Desktop.
[Формула для СФ] #moysklad #forms #links

Задача:

Нам нужно в счет-фактуре в графе "Документ об отгрузке № п/п 1-8 № 05989 от 28.09.2021;" вставить условие для номера.

Если в заказе поле "Тема" = "Испытание СИЗ", тогда в счет-фактуре вместо номера документа об отгрузке пишем "б/н".

Вот так: "Документ об отгрузке № п/п 1-8 № б/н от 28.09.2021;"

Иначе, как сейчас по умолчанию.

Решение:

Нужно использовать условыный вывод

${
  formatter.printIfElse(
    formatter.findAttribute([Заказ покупателя], 'Тема').entityValue.name == 'Испытание СИЗ', 
    
    [Замена номера отгрузки на 'б/н'],
  
    formatter.getDemandsDocumentInfo(o)
  )
}

где:

  • ЗаказПокупателя - o.getDemands().iterator().next().getInvoicesOut().iterator().next().getCustomerOrder()

  • Замена номера отгрузки на 'б/н' - тут нужно заменить в выводе формулы formatter.getDemandsDocumentInfo(o), наименование отгрузки на "б/н", следующей формулой formatter.getDemandsDocumentInfo(o).repalce([Номер отгрузки], 'б/н')

    Номер отгрузки - o.getDemands().iterator().next().name

    получаем формулу formatter.getDemandsDocumentInfo(o).repalce(o.getDemands().iterator().next().name, 'б/н')

Подставляем оба значения в итоговую формулу:

${
  formatter.printIfElse(
    formatter.findAttribute(
      o.getDemands().iterator().next().getInvoicesOut().iterator().next().getCustomerOrder(),
      'Тема'
    ).entityValue.name == 'Испытание СИЗ', 

    formatter.getDemandsDocumentInfo(o).replace(o.getDemands().iterator().next().name, 'б/н'),
		
    formatter.getDemandsDocumentInfo(o)
  )
}

Убираем лишние символы:

Результат

${formatter.printIfElse(formatter.findAttribute(o.getDemands().iterator().next().getInvoicesOut().iterator().next().getCustomerOrder(),'Тема').entityValue.name == 'Испытание СИЗ',formatter.getDemandsDocumentInfo(o).replace(o.getDemands().iterator().next().name, 'б/н'),formatter.getDemandsDocumentInfo(o))}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment