Skip to content

Commit a1c65e9

Browse files
committed
fix: не обновлялись индексы при установке значений через []
1 parent 03b0459 commit a1c65e9

File tree

2 files changed

+25
-2
lines changed

2 files changed

+25
-2
lines changed

src/OneScript.StandardLibrary/Collections/ValueTable/ValueTableRow.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -167,8 +167,7 @@ public override IValue GetIndexedValue(IValue index)
167167

168168
public override void SetIndexedValue(IValue index, IValue val)
169169
{
170-
var C = GetColumnByIIndex(index);
171-
_data[C] = C.ValueType.AdjustValue(val);
170+
Set(GetColumnByIIndex(index), val);
172171
}
173172

174173
void IDebugPresentationAcceptor.Accept(IDebugValueVisitor visitor)

tests/ValueTableIndex.os

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
ВсеТесты.Добавить("ТестДолжен_ПроверитьПоискСИндексом");
2525
ВсеТесты.Добавить("ТестДолжен_ПоведениеИндексовПриУдаленииКолонок");
2626
ВсеТесты.Добавить("ТестДолжен_ПоведениеИндексовПриИзмененииЗначенийИндексированныхПолей");
27+
ВсеТесты.Добавить("ТестДолжен_ПоведениеИндексовПриИзмененииЗначенийИндексированныхПолейПоИндексу");
2728
ВсеТесты.Добавить("ТестДолжен_ПроверитьВыбросИсключений");
2829
ВсеТесты.Добавить("ТестДолжен_ПроверитьПоискПоИндексированнойКолонкеСЗаданнымТипом");
2930

@@ -179,6 +180,29 @@
179180

180181
КонецПроцедуры
181182

183+
Процедура ТестДолжен_ПоведениеИндексовПриИзмененииЗначенийИндексированныхПолейПоИндексу() Экспорт
184+
185+
Т = Новый ТаблицаЗначений;
186+
Т.Колонки.Добавить("К1");
187+
Т.Колонки.Добавить("К2");
188+
Т.Индексы.Добавить("К2");
189+
Т.Индексы.Добавить("К2, К1");
190+
Т.Индексы.Добавить("К1");
191+
Т.Добавить().К1 = 1;
192+
Т.Добавить().К1 = 2;
193+
Т.Добавить().К1 = 3;
194+
195+
Т[0]["К1"] = 3;
196+
Т[1]["К1"] = 2;
197+
Т[2]["К1"] = 1;
198+
199+
СтруктураПоиска = Новый Структура("К1", 1);
200+
НайденныеСтроки = Т.НайтиСтроки(СтруктураПоиска);
201+
юТест.ПроверитьРавенство(НайденныеСтроки.Количество(), 1);
202+
юТест.ПроверитьРавенство(НайденныеСтроки[0], Т[2]);
203+
204+
КонецПроцедуры
205+
182206
Процедура ТестДолжен_ПроверитьВыбросИсключений() Экспорт
183207

184208
Т = Новый ТаблицаЗначений;

0 commit comments

Comments
 (0)