Ниже код для решения.
Код:
// Функция получения данных из приложения объявленного в БП
interface CursTableRow {
chcode: string;
curs: number;
name: string;
code: string;
nom: number;
unitrate: number;
}
interface ExchangeRateTab {
curs_table?: CursTableRow[]; // Массив строк таблицы
}
async function SearchTable(): Promise<void> {
const data1: any = Context.data.data; // Дата для поиска
// Выполняем поиск записи по дате
const tabu = await Context.fields.exchange_rate.app.search()
.where((f, q) => q.and(
f.__deletedAt.eq(null),
f.data_zaprosa.eq(data1) // Предполагаем, что это поле соответствует дате
))
.first(); // Получаем первую запись, соответствующую дате
// Проверяем, нашли ли мы запись
if (tabu && tabu.data && tabu.data.curs_table) {
const curs_table = Context.data.curs_table; // Берём существующую таблицу из контекста
if (!curs_table) {
throw new Error("Таблица Context.data.curs_table не инициализирована");
}
// Вставляем данные из найденной записи в Context.data.curs_table
for (const item of tabu.data.curs_table) {
const newRow = curs_table.insert(); // Создаём новую строку в таблице
newRow.chcode = item.chcode; // Присваиваем код валюты
newRow.curs = item.curs; // Присваиваем курс
newRow.name = item.name; // Присваиваем название валюты
newRow.code = item.code; // Присваиваем код валюты
newRow.nom = item.nom; // Присваиваем номинал
newRow.unitrate = item.unitrate; // Присваиваем единичный курс
}
// Сохраняем обновлённую таблицу в контексте
Context.data.curs_table = curs_table;
} else {
throw new Error("Не найдены записи по дате или данные не содержат таблицу curs_table");
}
}
// Функция для присваивания значения из таблицы в строковую переменную контекста БП
async function SearchAndExtractData(): Promise<void> {
// Получаем таблицу данных
const cursTable = Context.data.curs_table;
if (!cursTable || cursTable.length === 0) {
throw new Error("Таблица данных пуста или не определена");
}
// Проходим по каждой строке таблицы
cursTable.forEach((row: any) => {
// Проверяем, если chcode равен "коду валюты"
if (row.chcode === Context.data.kod_valyuty) {
// Извлекаем значение curs в переменную q2
const q2 = row.unitrate;
// Выводим или используем значение q2
Context.data.kurs_valyuty= q2
// Здесь можно добавить логику работы с q2, если требуется
}
});
}