На вход подается строка, разделенная символом ",". Считываются все значения между запятыми. Применяется при работе с файлами. Далее на основе данного кода будет создан стат лист, который пишет сделки в файл. PORTFOLIO_EX разбор строки; DESCRIPTION разбираем строку; CLIENTS_LIST ALL_CLIENTS; FIRMS_LIST FIRMID; PROGRAM client_code="SPBFUT" 'имя клиента писать именно так. firm_id="SPBFUTXXXXX" 'идентификтор фирмы. это счет наверно. NEW_GLOBAL("GLOB","")' флаг для выдачи сообщений NEW_GLOBAL("log_string_num","0")' переменная для добавления новой строчки в таблицу логов stroka="катер,ваня,бухой,курица" dlin_strok=len(stroka)' определяем длину строки temp_poz=0' положение временной позиции. нумерация начинается с 1 poz_map=create_map()' создаем массив позиций найденных запятых i=1' переменная для индекса мап массива со значениями позиций запятыж for cursor from 0 to dlin_strok+1' проганяем цикл по количеству символов в строке+1. poz=find(stroka,temp_poz,",")' ищем позицию первой запятой. при следующей прогонке начинаем искать со следующего символа после найденной запятой. IF poz!=-1' если запятая найдена, то poz_map=set_value(poz_map,"key"&i,poz+1)' при найденной запятой пишем ее в массив. temp_poz=poz+1 i=i+1 ELSE IF poz_map=set_value(poz_map,"key"&i,cursor)' как только запятая не найдена пишем в массив последнее значение ' оно нужно для вычисления длины последнего фрагмента. фрагмент - начиная с последней запятой и до конца строки END IF end for 'log(3-GET_VALUE(poz_map,"key0")) 'log("кол-во фрагментов:"&i)' количество фрагментов (переменных между запятыми) for cursor2 from 0 to i-1 z=GET_VALUE(poz_map,"key"&cursor2) x=(GET_VALUE(poz_map,"key"&(cursor2+1))-GET_VALUE(poz_map,"key"&cursor2))-1 log("позиция входа:"&z) log("длина:"&x) c=SUBSTR(stroka,z,x) log(c) end for FUNC log(log_string)' функция добавления строчки в таблицу логов log_string_num=log_string_num+1' каждую новую запись пишем в таблиуц в новую строчку time_value=get_value(GET_DATETIME(), "Datetime")' получаем время st=CREATE_MAP() 'создаем мап массив st=SET_VALUE(st,"x", log_string)' записываем в этот массив первую пару значений x=слова st=SET_VALUE(st,"time", time_value)' записываем вторую пару time=time_value ADD_ITEM(log_string_num,st)' пишем весь массив в таблицу END FUNC END_PROGRAM PARAMETER x; PARAMETER_TITLE x; PARAMETER_DESCRIPTION x; PARAMETER_TYPE STRING(20); END PARAMETER time; PARAMETER_TITLE time; PARAMETER_DESCRIPTION time; PARAMETER_TYPE STRING(20); END END_PORTFOLIO_EX