Как добавить элемент в ресурс[[переменная]]

Поддержка
  • @Fox
    Покупка товара в интернет магазине (али), ссылки на товар вставляются в ресурс (количество товара пока от 1 до 3). Сейчас для каждого товара прописан отдельно код, он одинаковый за исключением ссылки на товар (через if прописано выполнение кода, если есть ссылка на товар и выбор характеристик, если они есть). Хочу упростить код, используя цикл, где в "загрузить" будет вставлять ссылка на ресурс: товар 1, товар 2, товар 3. Для этого хочу, чтобы получалась ссылка на ресурс, то есть {{Товар [[Cycle Index]]}} должно для "загрузить" восприниматься как ресурс {{Товар 1}}. Может есть вариант проще для цикла, но у меня пока только такой вариант в голову пришел.

  • @Etrus said in Как добавить элемент в ресурс[[переменная]]:

    @Fox
    Покупка товара в интернет магазине (али), ссылки на товар вставляются в ресурс (количество товара пока от 1 до 3). Сейчас для каждого товара прописан отдельно код, он одинаковый за исключением ссылки на товар (через if прописано выполнение кода, если есть ссылка на товар и выбор характеристик, если они есть).

    Вы используете три разных ресурса "из файла"? Зачем вообще разделять ссылки, если код у вас один?

    Хочу упростить код, используя цикл, где в "загрузить" будет вставлять ссылка на ресурс: товар 1, товар 2, товар 3.

    Используйте условия только для действия "Загрузить", зачем копировать весь код 3 раза?

    Для этого хочу, чтобы получалась ссылка на ресурс, то есть {{Товар [[Cycle Index]]}} должно для "загрузить" восприниматься как ресурс {{Товар 1}}. Может есть вариант проще для цикла, но у меня пока только такой вариант в голову пришел.

    Выше я привёл пример использования api для работы с ресурсами, но упрощать в противовес читабельности не стоит. Вы сами в последствии запутаетесь, что и как у вас в скрипте происходит

  • @Fox

    1. Да, три ресурса, но не из файла, а из строки, туда вносится ссылка на товар. Разделять необходимо, так как товары бывают с характеристиками, которые указываются для каждого файла отдельно. Кроме того, потом информация нужна для записи значений в файл, куда еще кое какая информация записывается к каждой ссылке на товар.
    2. У меня два условия проверяются через if (есть ли ссылка в строке, имеет товар характеристики).
    3. Думал упростить код, чтобы в случае изменения на сайте меньше переделывать было.
  • @Etrus said in Как добавить элемент в ресурс[[переменная]]:

    @Fox

    1. Да, три ресурса, но не из файла, а из строки, туда вносится ссылка на товар. Разделять необходимо, так как товары бывают с характеристиками, которые указываются для каждого файла отдельно. Кроме того, потом информация нужна для записи значений в файл, куда еще кое какая информация записывается к каждой ссылке на товар.
    2. У меня два условия проверяются через if (есть ли ссылка в строке, имеет товар характеристики).
    3. Думал упростить код, чтобы в случае изменения на сайте меньше переделывать было.

    Создайте список с элементами ресурсов и используйте их в цикле

    2c59a8c1-7008-415d-b17a-d24199ed3890-изображение.png

    bcbb5ea3-b51b-4cf8-90b1-06ec08e1f38d-изображение.png

    В переменной [[FOREACH_DATA]] будет данные из ресурса, эту переменную вы можете проверять, загружать и использовать как душе угодно.

    Тестовый скрипт

  • @Fox
    Спасибо, но так можно сделать, если все товары без характеристик, то есть загрузил страницу, добавил товар в корзину и дальше по кругу. У меня реализовано через ресурсы еще выбор характеристик через if. В общем, есть ресурсы Товар 1, Товар 2, Товар 3, надо чтобы подставляемый текст такого плана: {{Товар [[CYCLE_INDEX]]}}, понимался басом в цикле как ресурс Товар 1, Товар 2, Товар 3, если так нельзя через какой-нибудь костыль сделать, то оставлю как есть. По другому, что хочу сделать не смогу, все будет завязано на подставляемой переменной [[CYCLE_INDEX]].

  • @Etrus, а не легче сделать ресурс из файла и создать файл такого формата ссылка:доп_данные и потом просто парсить ресурс по переменным

  • @Etrus said in Как добавить элемент в ресурс[[переменная]]:

    @Fox
    Спасибо, но так можно сделать, если все товары без характеристик, то есть загрузил страницу, добавил товар в корзину и дальше по кругу. У меня реализовано через ресурсы еще выбор характеристик через if. В общем, есть ресурсы Товар 1, Товар 2, Товар 3, надо чтобы подставляемый текст такого плана: {{Товар [[CYCLE_INDEX]]}}, понимался басом в цикле как ресурс Товар 1, Товар 2, Товар 3, если так нельзя через какой-нибудь костыль сделать, то оставлю как есть. По другому, что хочу сделать не смогу, все будет завязано на подставляемой переменной [[CYCLE_INDEX]].

    Сделать можно, но меня не покидает ощущение, что вы сами себе создаёте проблемы на пустом месте.

    Действие "выполнить код"

    RS("res" + [[CYCLE_INDEX]], false, false)!
    [[RESOURCE_]] = _result().get()
    

    07b7e6ca-2a03-4638-845f-ffe7b945a937-изображение.png

    Тестовый скрипт

  • @Fox
    Спасибо, то что нужно. Возможно Вы и правы, что я усложняю задачу, но если я правильн все рассчитал, то должно получиться очень компактно и удобно. Помимо Товара 1, 2, 3, есть еще Ряд 1, 2, 3. Получается, что у меня будет цикл с товарами, в котором будет еще цикл с харктеристиками. Я отпишусь, получилось ли реализовать задумку, еще раз спасибо за помощь и терпение :)

  • @Etrus Шаб хоть Фоксу скинь :) А то я вот какой день наблюдаю и Реально Вроде смысл то понятен Но как я например даж Помогаю Скринами там и то хоть наглядней, согласитесь :)
    Короче без Шаба тут не поймёш что вам надо Цикл или Или мол :)))

  • @Fox Все настроил и работает как надо, спасибо.0000.xml

  • @Fox

    Посмотрите пожалуйста проект, по проблеме из данной темы. С тех пор как все получилось, постоянно мучает один баг апи баса (кажется, это все-таки баг).
    Суть работы:
    Создается ресурс в каждом потоке (свой). В каждом потоке во время работы он должен постоянно сменятся (как это происходит в шаблоне в цикле while. Иногда если срабатывает нужное условие один ресурс из списка - удаляется.
    Проблема:
    Если переносить проблему в мой конечный шаблон, то в этом тестовом шаблоне проблема должна появится на вот таком id и написать такую ошибку (да, потоков много):
    [368872499] [03:36:07] Поток №99 : Ожидаю ресурс 99
    Почему я подозреваю, что это баг?:
    Дело в том, что данная проблема может случится, может не случится. Чем меньше потоков - тем стабильнее работа. Иногда потоки вылетают посреди работы. Вот идет работа, скажем, несколько часов. Все работает бесперебойно. Потоки уже успевали завершаться (саксес) и заново начинать работу. И в какой-то момент потоки начинают вылетать (слово "вылетать" означает "Ожидаю ресурс").
    Какой помощи я жду:
    Может быть есть более эстетичный способ/код (может подредактировать есть чего) брать ресурсы по порядку по списку, но чтобы они не повторялись. В общем выполнить ту работу, которая в прикрепленном проекте выполняется в цикле while.

    Прикрепляю проект, который 1 в 1 повторяет основную суть проблемного проекта. Переменная месяцы просто там для примера, в конечном варианте там динамическая переменная, которая парсится с ответа (с интернета) и остается в работе до успешного завершения (саксекс). Если что, везде все выставлено "Время между использованиями: 0". Я пытался там играться. Если поставить 1 секунду или 0 разницы не будет. Там щас стоит ноль.
    Тест смены ресурса в вайле.xml

  • @kroda said in Как добавить элемент в ресурс[[переменная]]:

    @Fox

    Посмотрите пожалуйста проект, по проблеме из данной темы. С тех пор как все получилось, постоянно мучает один баг апи баса (кажется, это все-таки баг).
    Суть работы:
    Создается ресурс в каждом потоке (свой). В каждом потоке во время работы он должен постоянно сменятся (как это происходит в шаблоне в цикле while. Иногда если срабатывает нужное условие один ресурс из списка - удаляется.
    Проблема:
    Если переносить проблему в мой конечный шаблон, то в этом тестовом шаблоне проблема должна появится на вот таком id и написать такую ошибку (да, потоков много):
    [368872499] [03:36:07] Поток №99 : Ожидаю ресурс 99
    Почему я подозреваю, что это баг?:
    Дело в том, что данная проблема может случится, может не случится. Чем меньше потоков - тем стабильнее работа. Иногда потоки вылетают посреди работы. Вот идет работа, скажем, несколько часов. Все работает бесперебойно. Потоки уже успевали завершаться (саксес) и заново начинать работу. И в какой-то момент потоки начинают вылетать (слово "вылетать" означает "Ожидаю ресурс").
    Какой помощи я жду:
    Может быть есть более эстетичный способ/код (может подредактировать есть чего) брать ресурсы по порядку по списку, но чтобы они не повторялись. В общем выполнить ту работу, которая в прикрепленном проекте выполняется в цикле while.

    Прикрепляю проект, который 1 в 1 повторяет основную суть проблемного проекта. Переменная месяцы просто там для примера, в конечном варианте там динамическая переменная, которая парсится с ответа (с интернета) и остается в работе до успешного завершения (саксекс). Если что, везде все выставлено "Время между использованиями: 0". Я пытался там играться. Если поставить 1 секунду или 0 разницы не будет. Там щас стоит ноль.
    Тест смены ресурса в вайле.xml

    Чегось? Скрипт я посмотрел и не понял что вы хотите сделать и какая у вас при этом возникает ошибка.

  • @Fox

    Ошибка:

    [368872499] [03:36:07] Поток №99 : Ожидаю ресурс 99

    И зависает.

  • @Fox

    Или новая фича:

    [368872499] [16:29:20] Поток №66 : Поток завершился с сообщением "Resource get error for 66"

    Можно, не знаю, например поставить? :

    if was error 
    
    Перезагрузка ресурса
    
  • @kroda said in Как добавить элемент в ресурс[[переменная]]:

    @Fox

    Или новая фича:

    [368872499] [16:29:20] Поток №66 : Поток завершился с сообщением "Resource get error for 66"

    Можно, не знаю, например поставить? :

    if was error 
    
    Перезагрузка ресурса
    

    Мне дико лень разбираться в этих костылях. В разы проще и быстрее использовать объект в глобальной переменной. Тогда у каждого потока будет своё "место" с данными, которые сохраняться даже после перезапуска потока.

  • @Fox
    В gui на ресурсах есть галочка "мешать строки". Как брать рандомный ресурс созданный в "выполнить код" (аналогично мешать строки) и чтобы строки не повторялись?

  • @kroda

    1. получить реономную и удалить из ресурса
    2. получить случайную строку из файла/ресурса/итд и проверить на наличие в списке/ресурсе. если нету то использовать + добавить в список/ресурс
  • @tet-vivi said in Как добавить элемент в ресурс[[переменная]]:

    получить реономную и удалить из ресурса

    Что? Это не мой вопрос :D. Как получить рандомную с помощью
    RS(VAR_RESOURCE_NAME, false, false)!
    VAR_RESORSE_STRING = _result().get()

  • @kroda said in Как добавить элемент в ресурс[[переменная]]:

    @Fox
    В gui на ресурсах есть галочка "мешать строки". Как брать рандомный ресурс созданный в "выполнить код" (аналогично мешать строки) и чтобы строки не повторялись?

    https://community.bablosoft.com/category/19/поддержка
    7c550203-ba8c-47da-af73-c306cda72dca-изображение.png

    7e09b741-2578-4a0f-824c-e57ff5bde248-изображение.png

    15fcf446-7fca-4288-8bd3-61f138f80296-изображение.png