Имя: Пароль:
1C
1С v8
Добавление элемента в массив
0 JinAir
 
27.06.17
07:28
Создаю соответствие и пытаюсь записать в массив, но при переходе на следующую итерацию цикла присваивается каждому элементу массива присваивается "перебираемое" значение соответствия

Компенсация = Новый Соответствие;
Компенсация.Вставить("Работа в ночное время", "В размере 100% от часовой тарифной ставки");
Компенсация.Вставить("Работа в вечернее время", "В размере 20% от часовой тарифной ставки");
Компенсация.Вставить("Работа в праздничные дни", "В размере 100% от часовой тарифной ставки");
        
Для Каждого СЧТ Из Компенсация Цикл
                            
    ОписаниеНачисления.Начисление = СЧТ.Ключ;
    ОписаниеНачисления.Размер = СЧТ.Значение;
    ОписаниеНачислений.Компенсации.Добавить(ОписаниеНачисления);
    
КонецЦикла;
1 Имитация работы
 
27.06.17
07:30
Все правильно, так оно и работает. Экземпляр соответствия остаётся один и тот же.
2 JinAir
 
27.06.17
07:41
(1) а причём тут соответствие? если я сделаю некрасиво, вот так:

ОписаниеНачисления.Начисление = "Работа в ночное время";
ОписаниеНачисления.Размер = "В размере 100% от часовой тарифной ставки";
ОписаниеНачислений.Компенсации.Добавить(ОписаниеНачисления);
ОписаниеНачисления.Начисление = "Работа в вечернее время";
ОписаниеНачисления.Размер = "В размере 20% от часовой тарифной ставки";
ОписаниеНачислений.Компенсации.Добавить(ОписаниеНачисления);
ОписаниеНачисления.Начисление = "Работа в праздничные дни";
ОписаниеНачисления.Размер = "В размере 100% от часовой тарифной ставки";    
ОписаниеНачислений.Компенсации.Добавить(ОписаниеНачисления);

то при добавлении второго элемента в массив, оба элемента будут равны одному и тому же. а при добавлении третьего все три
3 Имитация работы
 
27.06.17
07:42
Ну хорошо. Структура.
4 Имитация работы
 
27.06.17
07:44
Все работает правильно, ровно так как ты и написал. Содержимое меняется. Обьект остаётся тот же самый. Что не так-то?
5 JinAir
 
27.06.17
07:52
6 JinAir
 
27.06.17
07:53
районный коэффициент отдельно получается, а когда в цикл заходит, то начинает так записывать
7 Имитация работы
 
27.06.17
07:53
Этот документ был удален из общего доступа.
Зачем?
8 Имитация работы
 
27.06.17
07:55
(6) Ты кладешь в массив один и тот же обьект. Героически меняешь его содержимое и снова и снова кладешь в массив его же.
Хочешь разные - клади разные, никто ж не мешает.
9 Рэйв
 
27.06.17
08:04
(0)А в каком месте там массив?
10 JinAir
 
27.06.17
08:08
(8) спс
каждый раз инициализировал структура в цикле и помогло)
(9) ОписаниеНачислений - структура, содержащая массив Компенсации. Трудовой договор ЗУП 3.1
11 НЕА123
 
27.06.17
08:08
ОписаниеНачисления = Новый СтруктураЧтоли
в начале цикла хочется
12 1dvd
 
27.06.17
09:04
добавь в цикл

ОписаниеНачисления = Новый Структура;
13 cw014
 
27.06.17
09:07
Я бы тоже добавил бы про "Новый Структура" в цикле, но лень что-то...
AdBlock убивает бесплатный контент. 1Сергей