|
Как создать структуру из 2х массивов | ☑ | ||
---|---|---|---|---|
0
Dimon8822
15.03.22
✎
23:33
|
Я учу 1С: П 8.3. Прошу помощи. Не получается разобраться со следующим вопросом:
Пытаюсь создание структуру из 2х массивов: Массив1 =Табл.ВыгрузитьКолонку("Год") ; Массив2 = Табл.ВыгрузитьКолонку("Выходной") ; СтруктураВыходные = Новый Структура() ; Для Индекс = 0 По Массив1.Количество() - 1 Цикл СтруктураВыходные.Вставить(Строка(Массив1[Индекс]), Массив2[Индекс]) ; КонецЦикла; В ответ получаю: "Задано неправильное имя атрибута структуры" В чем ошибаюсь. Заранее СРПАСИБО! |
|||
1
Йохохо
15.03.22
✎
23:41
|
||||
2
OldCondom
15.03.22
✎
23:43
|
Имена переменных
Имена методов, переменных, типов и прочих конструкций языка следуют следующему правилу: имя начинается с буквы (точнее со всего, что стандарт Unicode считает буквой) или с подчеркивания и может иметь сколько угодно дополнительных букв, цифр и подчеркиваний. Имена чувствителны к регистру, однако нельзя использовать имена, которые различаются только регистром. |
|||
3
Asmody
15.03.22
✎
23:59
|
Сделай Соответствие
|
|||
4
dmt
16.03.22
✎
08:04
|
СтруктураВыходные.Вставить( "_" + Строка(Массив1[Индекс]), Массив2[Индекс]) ;
|
|||
5
hhhh
16.03.22
✎
08:17
|
(4) Строка(Массив1[Индекс]) - не прокатит
|
|||
6
FIXXXL
16.03.22
✎
09:35
|
Массив1 =Табл.ВыгрузитьКолонку("Год") ;
если ГОД - число, нужно использовать Формат(), без разделения разрядов |
|||
7
Жан Пердежон
16.03.22
✎
10:17
|
(0) ключом структуры может быть только строка, являющаяся идентификатором
|
|||
8
FIXXXL
16.03.22
✎
10:42
|
(7) ну и будет один выходной в год :)
|
|||
9
Dimon8822
16.03.22
✎
14:34
|
Ошибку выдаёт даже в таком случае:
Табл.Свернуть("Год", "РабочийДень, Выходной"); КопияТабл = Табл.Скопировать(,"Год, Выходной"); А = Табл.Количество() ; Массив1 = Табл.ВыгрузитьКолонку("Год") ; Массив2 = Табл.ВыгрузитьКолонку("Выходной") ; Структура = Новый Структура() ; Структура.Вставить("Год" + Строка(Массив1[0]), Массив2[0]) ; Табло: А 11 Число Массив1[0] "2 022" Строка Массив2[0] 87 Число Строка(Массив1[0]) "2 022" Строка "Год " + Строка(Массив1[0]) "Год 2 022" Строка err: Ошибка при вызове метода контекста (Вставить) {ВнешняяОбработка.ВнешняяОбработка_ДЗ_3.Форма.ДЗ_3.Форма(80)}: Структура.Вставить("Год" + Строка(Массив1[0]), Массив2[0]) ; {ВнешняяОбработка.ВнешняяОбработка_ДЗ_3.Форма.ДЗ_3.Форма(5)}: ТаблицаЗначенийНаСервере() по причине: Задано неправильное имя атрибута структуры Задано неправильное имя атрибута структуры В чем ошибаюсь. Заранее СПАСИБО! |
|||
10
Галахад
гуру
16.03.22
✎
14:37
|
"2 022" - неразрывный пробел убери. В (6) уже про формат писали.
|
|||
11
Kassern
16.03.22
✎
14:39
|
(9) "2 022" - вот тут и ошибка у вас. Вы вообще читали, что написано в ссылке (1) ?
"идентификатор может содержать только буквы, цифры, а также символ подчеркивания. Но первым символом ключа обязательно должна быть буква или символ подчеркивания." между 2 и 0 у вас находится Символы.НПП, как он вяжется со строчкой выше из ссылки? Мало того, первый символ так же не подходит по определению. |
|||
12
Dimon8822
17.03.22
✎
15:24
|
Добрый день!
Разобрался - Формат ГОДа "уууу" выставляется с пробелом в качестве разделителя разрядов ("2 022") в 1С по умолчанию, и тогда в ключе значения структуры возникает пробел. Исправил на Формат(Год(Д), "ЧГ=0") все прошло на УРА. Спасибо |
|||
13
Kassern
17.03.22
✎
15:26
|
(12) можно так же использовать конструкцию СтрЗаменить(СтрокаСНеразрывнымПробелом,Символы.НПП,"");
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |