Тема: Генераторы обозначений

1. Как в генераторе сделать год из двух цифр? То есть %YEAR% выдаст '2021' а нужно просто '21'
%2YEAR% не работает, несмотря на то что в справке написано "Перед служебными словами можно задавать формат записи требуемой длины."
2. Генераторы работают только для определённого списка модулей? Например, можно ли использовать генератор при создании ПсП? Можно его использовать с помощью API?

Re: Генераторы обозначений

Год из двух цифр можно сделать через АПИ

  Dim ValueId, Value
  call theApp.GeneratorGetValue("ОбозначениеГенератора", 0, false, array("YEAR", Mid(Year(Date), 3)), Empty, ValueId, Value)

Или в генераторе установить флаг "Значение по годам" и раз в год менять в шаблоне год.

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

Спасибо сказали: mtrc731

Re: Генераторы обозначений

1. Как в генераторе сделать год из двух цифр? То есть %YEAR% выдаст '2021' а нужно просто '21'

Это место доработаем конечно же, чтобы можно было и без АПИ использовать.

2. Генераторы работают только для определённого списка модулей? Например, можно ли использовать генератор при создании ПсП? Можно его использовать с помощью API?

Да. Как правило у модуля где то назначается генератор. Например у Вида ПСп или Типа ПрП.

При этом можно использовать этот генератор и в АПИ https://help.technologics.ru/7.9/TCSAPI … sEx2_9.htm

Пример использования лучше посмотреть в наших расширениях Создание произодственного заказа и Маршрутный лист.

Вы так же можете использовать значение генератора в любом месте программы, используя функции АПИ
https://help.technologics.ru/7.9/TCSAPI … alue_9.htm
https://help.technologics.ru/7.9/TCSAPI … alue_9.htm

Используйте полученное значение как значение любого свойства (по примеру поста выше). При этом конечно сам TechnologiCS об этом знать уже не будет.

Примеры из наших расширений

    TCSApp.Manufacturing.ProductionBOM.CancelChanges
    TCSApp.Manufacturing.ProductionBOM.CreateNew
    TCSApp.Manufacturing.ProductionBOM.p_NAME.AsString = Form.c_edName.Text
    TCSApp.Manufacturing.ProductionBOM.p_REM.AsString = Form.c_edRem.Text
    TCSApp.Manufacturing.ProductionBOM.p_RELEASE_DATE.AsDate = Form.c_edDataE.Date
    if Form.c_edDataS.Date<>0 then  TCSApp.Manufacturing.ProductionBOM.p_LAUNCH_DATE.AsDate = Form.c_edDataS.Date
    Call TCSApp.Manufacturing.ProductionBOM.SaveChangesEx2( Array( "Default" ), Null )
    TCSApp.Manufacturing.ProductionBOM.CancelChanges
    If Err Then
      Call TCSApp.ShowDetailedErrorMessage( "Ошибка при создании ПСп:" & Form.c_edPsp.Text, Err.Description )
      Exit Function
    End If
Спасибо сказали: mtrc731