О таблице значений 1С - что это такое и ее создать.

таблица значений 1С
(Эта статья относится к циклу статей 1С с нуля; программирование 1с с нуля; таблица значений 1с)

Виртуальная структура-хранилище данных в табличной форме - вот что такое таблица значений 1С

Таблица значений не является постоянным объектом базы данных 1С, и не сохраняется между сеансами запуска.

Таблица значений 1С (ТЗ) создается "на лету" при помощи программного кода,и далее работа с ней осуществляется так же, с любым другим программным объектом языка программирования 1С. С помощью вызовов методов и обращений к свойствам таблицы-объекта.

Другими словами, программист создает таблицу в памяти, наполняет ее данными, работает с ней, сортирует, группирует, вычисляет итоги и так далее. Получает нужные данные для дальнейшего использования.

Создадим таблицу значений и заполним ее чем-нибудь. Нужно помнить, что таблицу значений 1С можно создать не только вручную, вызовом оператора

Новый ТаблицаЗначений;

Таблица значений часто является результатом вызова метода другого объекта, например результат выполнения запроса может быть выгружен в таблицу значений, и так далее.

Сразу приведу простой пример.

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

Я создал таблицу значений 1С, с двумя колонками: "Фамилия", "Имя". Процедура Сообщить(МояТЗ) выведет в окно сообщений тип переменной МояТЗ: ТаблицаЗначений

Наша таблица значений пока пустая. Добавим в нее пару строк, с именами и фамилиями.

// заполняем таблицу значений
 
// добавляем первую строку в нашу таблицу значений
НоваяСтрока = МояТЗ.Добавить();
НоваяСтрока.Фамилия = "Сидоров";
НоваяСтрока.Имя     = "Вася";
// добавляем вторую строку в нашу таблицу значений
НоваяСтрока = МояТЗ.Добавить();
НоваяСтрока.Фамилия = "Иванов";
НоваяСтрока.Имя     = "Петя";

Мы получили таблица такого вида:

Сидоров Вася
Иванов Петя

Это были "чистые" данные, содержащиеся в таблице значений МояТЗ. А сейчас покажу дополнительную служебную информация, чтобы было еще понятнее. Приведу "шапку" нашей таблицы значений и номера строк.

Номер строки Фамилия Имя
0 Сидоров Вася
1 Иванов Петя

Нужно запомнить: номера строк в таблице значений начинаются с нуля

Для чего нам вообще нужны номера строк? А для того, чтобы мы могли обратиться к отдельной строке таблицы значений, например, взять и вывести эту строку на экран.

// *** выводим значений нулевой строки на экран *** (в быту мы обычно нумеруем вещи с единицы, а здесь - с нуля)
 
  // получаем нулевую строку нашей таблицы при помощи индекса строки в квадратных скобках
  НашаНулеваяСтрока = МояТЗ[0];
  // теперь вся нулевая строка содержится в переменной "НашаПерваяСтрока"
  Сообщить(НашаНулеваяСтрока.Фамилия); // выводим на экран значение столбца "Фамилия", хранящееся в нулевой строке
  Сообщить(НашаНулеваяСтрока.Имя);     // выводим на экран значение столбца "Имя", из этой же строки

В результате на экран будет выведено:

Сидоров
Вася

Теперь для очень умных и лаконичных покажу пример, который позволяет обратиться к значению колонки в ой-то строке (Значений колонки в такой-то строке - это ячейка таблицы значений. Неофициальный термин, зато удобный). Но без использования промежуточной переменной, наподобие "НашаНулеваяСтрока".

// обращаемся к содержимому ячейки напрямую, без лишних переменных
  Сообщить(МояТЗ[0].Фамилия); // выводим на экран значение столбца "Фамилия" нулевой строки
  Сообщить(МояТЗ[0].Имя);     // выводим на экран значение столбца "Имя" из этой же строки

Чтобы вывести значение ячеек из второй строки (не забываем, что строка вторая, но индекс этой строки равен единица, так нумерация начинается с нуля)

// обращаемся к содержимому ячейки напрямую, без лишних переменных
  Сообщить(МояТЗ[1].Фамилия); // выводим на экран значение столбца "Фамилия" первой строки
  Сообщить(МояТЗ[1].Имя);     // выводим на экран значение столбца "Имя" из первой строки

Наконец, заключительный момент в этой статье. Я показал вам пример обращения к отдельной строке таблицы значений по индексу (номеру строки). Универсальная форма для чтения или присвоения содержимого ячейки такова: "МояТаблицыЗначений[НомерСтроки].ИмяКолонки"

Теперь приведу для вас сразу, цикл полного вывода содержимого таблицы значений. Без подробных объяснений, чтобы вы тоже могли поломать голову :)

//
  // цикл перебора и вывода всех строк нашей таблицы значений
  //
  Для НомерСтроки = 0 По МояТЗ.Количество() - 1 Цикл
    Сообщить(МояТЗ[НомерСтроки].Фамилия); // выводим на экран значение столбца "Фамилия"
    Сообщить(МояТЗ[НомерСтроки].Имя);     // выводим на экран значение столбца "Имя"
  КонецЦикла;

В результате запуска этого цикла на экран будет выведено:

Сидоров
Вася
Иванов
Петя

Здесь я рассказал самые азы в работе с таблицей значений 1С. Эти сведения применимы к 1С 8.0, 8.1, 8.2 На этом интересные подробности о объекте "таблица значений 1с" не заканчиваются. Этот объект обладает огромными возможностями для удобной работы с данными. Я расскажу об этом с следующих статьях.

Дегтярев Роман.

Как научиться программировать в 1С с нуля?

Как работать программистом 1С и получать до 150 000 рублей в месяц?

ЗАПИШИСЬ НА БЕСПЛАТНЫЙ

2-НЕДЕЛЬНЫЙ КУРС

"ПРОГРАММИРОВАНИЕ в 1С ДЛЯ НОВИЧКОВ"

Курс придет на электронную почту. Стань программистом, выполняя пошаговые задания.

Для участия нужен только компьютер и интернет

Бесплатный доступ на курс:

Осталось всего 7 мест



Комментарии для тех, кто VKontakte


8 Responses to Таблица значений 1С – 1 часть. Основы. Создание таблицы.

  • admin говорит:

    Спасибо, что оставляете отзывы. Это вдохновляет на дальнейшую работу.

  • chidaystory говорит:

    Спасибо за объяснение, все понятным языком. :razz:

  • Рома говорит:

    Объяснение просто супер! Понятно наверное даже ребенку! Хорошо было бы про запросы таким же доходчивым языком объяснить.

  • Niaka говорит:

    Школьник объяснял по ходу
    Хорошо объяснил - всё понятно, ни каких вопросов не возникает.

    На «мисте» живут придурки и дегенераты которые думают что 1С это язык программирования, а они сами программисты.

  • Александр говорит:

    Всё объяснено доходчивым языком. Даёшь IT-ликбез

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

Интернет-курс "Программирование в 1С с нуля"

Учись программировать и зарабатывать до
140 000 руб. в месяц! ТОЛЬКО СЕГОДНЯ - БЕСПЛАТНЫЙ ДОСТУП К КУРСУ!

Хотите сразу профессионально программировать в 1С?

Отличные, очень понятные, серьезные и пошаговые уроки только здесь:

Курсы по программированию 1С от ТЦ "Старт в 1С":
(Идет акция: цена за курс - от 600 рублей)

ЗАПИСЫВАЙТЕСЬ, ПОКА ИДЕТ АКЦИЯ!

Присоединяйся, тут все свои!