|
Ключ в структуре из переменной |
☑ |
0
lampa
12.03.15
✎
18:50
|
Доброго дня.
Каким способом я могу создать структуру с неизвестными ключами?
Пример:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ТоварыНаСкладах.Номенклатура.Артикул КАК Артикул,
| ТоварыНаСкладах.Серия.Номер КАК Номер
|ИЗ
| РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах";
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
СписокНомеров = Новый Массив;
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Запись = Новый Структура;
Запись.Вставить(ВыборкаДетальныеЗаписи.Артикул,ВыборкаДетальныеЗаписи.Номер);
СписокНомеров.Добавить(Запись);
КонецЦикла;
Выдает ошибку "Задано неправильное имя атрибута структуры"
|
|
1
Крошка Ру
12.03.15
✎
18:54
|
(0) Может потому что структуру надо описать при создании? Задать ключ и значение? А потом уже вставлять их?
|
|
2
Fram
12.03.15
✎
18:57
|
(0) Используй Соответствие
|
|
3
Fram
12.03.15
✎
18:58
|
Хотя и Структура должна работать. Может Артикул пустой?
|
|
4
Михаил Козлов
12.03.15
✎
19:06
|
В структуре ключ должен быть совместим с именем переменной. Т.е. если артикул начинается на цифру, то не пойдет.
Используйте Соответствие.
|
|
5
Fram
12.03.15
✎
19:09
|
(4) Да? Атрибут же строковый. Чем набор чисел (символов) не строка?
|
|
6
Fram
12.03.15
✎
19:10
|
(5) Пардон, туплю. Обращение через точку же доступно для структур
|
|
7
Михаил Козлов
12.03.15
✎
19:10
|
Да, забыл: что будет, если есть дубли по артикулу? Например, пустой артикул.
И как быть, если есть дубли серий по номеру?
|
|
8
Nuobu
12.03.15
✎
19:11
|
(4) Можно написать что-то типа Запись.Вставить("м" + ВыборкаДетальныеЗаписи.Артикул,ВыборкаДетальныеЗаписи.Номер);
|
|
9
lampa
12.03.15
✎
19:14
|
(8)(4) спасибо, помогло (Соответствие)
|
|
10
Михаил Козлов
12.03.15
✎
19:22
|
(9) А что насчет (7)?
|
|
11
D_E_S_131
12.03.15
✎
20:08
|
(8) А почему "м", а не "а"? Это же артикул. :)
|
|
12
Ненавижу 1С
гуру
12.03.15
✎
20:24
|
(7)не забыть про дефисы, точки, пробелы, скобки
|
|