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

Работа с таблице значений

Автор neek666, 25 окт 2011, 13:06

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

neek666

Всем привет! У меня небольшая проблемка. Я тут сейчас привёл вам код программы (Ниже). Код достаточно простой. Создаю новую "Переменную" типа ТалицаЗначений. Не могу создать колонки в этой таблице.

   ТЗ_Массив_Временный = новый ТаблицаЗначений;
   ТипЧисла = Новый КвалификаторыЧисла(10, 2);
   КС = Новый КвалификаторыСтроки(20);
   Массив = новый Массив;
   Массив.Добавить(Тип("Строка"));
   ОписаниеТиповС = Новый ОписаниеТипов(Массив, , КС);
   Массив.Очистить();
   Массив.Добавить(Тип("Число"));
   ОписаниеТипаЧисло = Новый ОписаниеТипов(Массив, , ,ТипЧисла);
   
   ВыборкаОтрабДней = РегистрыНакопления.inform_СведенияОбОтработанныхДнях.Выбрать(НачалоМесяца(ПериодРегистрации), КонецМесяца(ПериодРегистрации));
   Пока ВыборкаОтрабДней.Следующий() цикл
      Отработано = 0;
      Выборка_1 = РегистрыНакопления.inform_СведенияОбОтработанныхДнях.Выбрать(НачалоМесяца(ПериодРегистрации), КонецМесяца(ПериодРегистрации));
      Пока Выборка_1.Следующий() цикл
         Если Выборка_1.Наименование = ВыборкаОтрабДней.Наименование тогда
            Отработано = Отработано + Выборка_1.Отработано;
         КонецЕсли;
      КонецЦикла;
      
      ТЗ_Массив_Временный.Колонки.Добавить("Сотрудник", ОписаниеТиповС, "Сотрудник");
      ТЗ_Массив_Временный.Колонки.Добавить("Отработано", ОписаниеТипаЧисло, "Отработано");
      
      НоваяСтрока = ТЗ_Массив_Временный.Добавить();
      НоваяСтрока.Сотрудник  = ВыборкаОтрабДней.Наименование;
      НоваяСтрока.Отработано = Отработано;
   КонецЦикла;



Методом "тыка" я определил, что колонка "Отработано" создается нормально, без проблем. А вот колонка "Сотрудник" ни как не хочет создаваться, капризничает. Подскажите пожалуйста, в чем дело?

has

Цитировать
Методом "тыка" я определил, что колонка "Отработано" создается нормально, без проблем.
Что за метод тыка такой?
Цитировать
капризничает
И мы должны телепатировать и сказать что же это она "капризничает"?

Текст ошибки или что именно не получается?
У меня данный код который относится к таблице значений корректно отрабатывает.

evialen

эээээм, а не лучше здесь через запрос обойти всё енто дело?

Dethmontt

Ну как ты в цикле то в одну и ту же ТаблицуЗначений добавляешь колонки???
Вынеси это из цикла:
     ТЗ_Массив_Временный.Колонки.Добавить("Сотрудник", ОписаниеТиповС, "Сотрудник");
     ТЗ_Массив_Временный.Колонки.Добавить("Отработано", ОписаниеТипаЧисло, "Отработано");
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Dethmontt

Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Dethmontt

Вот пример:
ТЗ_Массив_Временный = новый ТаблицаЗначений;
   ТипЧисла = Новый КвалификаторыЧисла(10, 2);
   КС = Новый КвалификаторыСтроки(20);
   Массив = новый Массив;
   Массив.Добавить(Тип("Строка"));
   ОписаниеТиповС = Новый ОписаниеТипов(Массив, , КС);
   Массив.Очистить();
   Массив.Добавить(Тип("Число"));
   ОписаниеТипаЧисло = Новый ОписаниеТипов(Массив, , ,ТипЧисла);

    ТЗ_Массив_Временный.Колонки.Добавить("Сотрудник", ОписаниеТиповС, "Сотрудник");
    ТЗ_Массив_Временный.Колонки.Добавить("Отработано", ОписаниеТипаЧисло, "Отработано");
     
   ВыборкаОтрабДней = РегистрыНакопления.inform_СведенияОбОтработанныхДнях.Выбрать(НачалоМесяца(ПериодРегистрации), КонецМесяца(ПериодРегистрации));
   Пока ВыборкаОтрабДней.Следующий() цикл
      Отработано = 0;
      Выборка_1 = РегистрыНакопления.inform_СведенияОбОтработанныхДнях.Выбрать(НачалоМесяца(ПериодРегистрации), КонецМесяца(ПериодРегистрации));
      Пока Выборка_1.Следующий() цикл
         Если Выборка_1.Наименование = ВыборкаОтрабДней.Наименование тогда
            Отработано = Отработано + Выборка_1.Отработано;
         КонецЕсли;
      КонецЦикла;
     
      НоваяСтрока = ТЗ_Массив_Временный.Добавить();
      НоваяСтрока.Сотрудник  = ВыборкаОтрабДней.Наименование;
      НоваяСтрока.Отработано = Отработано;
   КонецЦикла;
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Теги:

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

Рейтинг@Mail.ru

Поиск