Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 17:55

(ТаблицаЗначений)

Автор GanG031, 06 мар 2016, 00:03

0 Пользователей и 1 гость просматривают эту тему.

GanG031

Доброго времени суток! Столкнулся вот с чем: в синтакс помошнике по таблице значений написано, что элементами тз являются ее строки, и обход тз доступен с помощью цикла для каждого из. Вот мой код:

Таблица = Новый ТаблицаЗначений;
   Таблица.Колонки.Добавить("ДеньНедели", Новый ОписаниеТипов("Строка"));
   Таблица.Колонки.Добавить("Погода");
   
   Строка = Таблица.Добавить();
   Строка.ДеньНедели = "Вторник";
   Строка.Погода = "Плохая";
   
   Строка = Таблица.Добавить();
   Строка.ДеньНедели = "Среда";
   Строка.Погода = "Нормально";
   
   Для каждого Строка Из Таблица Цикл
   
      Сообщить(Строка.ДеньНедели);
   
   КонецЦикла;



Все выводит верно, но если написать вот так: Для кадого стр Из Таблица....
То выводит два раза "Среда". Не понятен алгоритм действий в этом случае, вроде как должны должны обходиться строки ТЗ, а по факту два раза выводится последняя строчка. Подскажите какая тут взаимосвязь между стр и Строка. Заранее спасибо!

Hedinnk

Вы поменяли имя переменной в которую помещается строка из таблицы, но имя переменной из которой выводятся данные в сообщение не изменили. В этом случае у вас сообщает данные последнего значения переменной Строка.

GanG031

Спасибо большое! Подскажите по поводу такого вопроса: вот мой код:

&НаКлиенте
Процедура ТаблицаЗначений(Команда)

   ТаблицаЗначенийНаСервере();
   
КонецПроцедуры


&НаСервере
Процедура ТаблицаЗначенийНаСервере()

   ТаблицаЗначений = Новый ТаблицаЗначений;
   ТаблицаЗначений.Колонки.Добавить("ДеньНедели", Новый ОписаниеТипов("Строка"));
   ТаблицаЗначений.Колонки.Добавить("Погода");
   ТаблицаЗначений.Колонки.Добавить("Сумма");
   ТаблицаЗначений.Колонки.Добавить("Месяц");
   
   Строка = ТаблицаЗначений.Добавить();
   Строка.ДеньНедели = "Вторник";
   Строка.Погода = "Плохая";
   Строка.Сумма = 1000;
   Строка.Месяц = "Январь";
   
   Строка = ТаблицаЗначений.Добавить();
   Строка.ДеньНедели = "Среда";
   Строка.Погода = "Нормально";
   СТрока.Сумма = 2000;
   Строка.Месяц = "Декабрь";
   
   
   Строка = ТаблицаЗначений.Добавить();
   Строка.ДеньНедели = "Среда";
   Строка.Погода = "Пойдет";
   СТрока.Сумма = 5500;
   Строка.Месяц = "Декабрь";


   //Для каждого Строка Из Таблица Цикл
   //
   //   Сообщить(Строка.ДеньНедели);
   //
   //КонецЦикла;
ТаблицаЗначений.Свернуть("Месяц", "Сумма");

ЗначениеВДанныеФормы(ТаблицаЗначений, ТаблицаЗн);
   
КонецПроцедуры


На форме создал таблицу значений:

Но выдает вот такую ошибку:
{Обработка.Эксперименты.Форма.Форма.Форма(78)}: Ошибка при вызове метода контекста (ЗначениеВДанныеФормы)
ЗначениеВДанныеФормы(ТаблицаЗначений, ТаблицаЗн);
по причине:
Недопустимое значение параметра (параметр номер '2')
Недопустимое значение параметра (параметр номер '2')

Не могу понять, а чем тут ошибка? Ведь ТаблицаЗн это и есть наш реквизит на форме

Hedinnk

Цитата: GanG031 от 06 мар 2016, 14:25

&НаСервере
Процедура ТаблицаЗначенийНаСервере()

...

ЗначениеВДанныеФормы(ТаблицаЗначений, ТаблицаЗн);
   
КонецПроцедуры
[/b]
Попробуйте вот так:
ЗначениеВДанныеФормы(ТаблицаЗначений, "ТаблицаЗн");

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск