1с таблица значений на форме номер строки

1с получить номер строки таблицы значений

Возвращает строку таблицы значений по индексу

Синтаксис

Метод Получить() имеет следующий синтаксис:

А также альтернативный англоязычный синтаксис:

Параметры

Описание параметров метода Получить() :

Имя параметра Тип Описание
Индекс Число Индекс строки таблицы значений
Жирным шрифтом выделены обязательные параметры

Возвращаемое значение

Описание

Метод Получить() возвращает строку таблицы значений по индексу

Доступность

Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер).

Пример использования

Пример кода с использованием метода Получить() :

Описание:

Таблица значений — это несохраняемый в базе данных объект, который позволяет строить динамические наборы значений и манипулировать ими (добавлять, редактировать, удалять элементы, сортировать). Он может быть наполнен значениями любого типа, т.е. в одной таблице типы хранимых значений могут быть разными. Одним из примеров использования данного объекта может служить организация представления в форме списка элементов справочника, отобранных по сложному алгоритму.

Необходимо отметить, что таблица значений, связанная с элементом управления ТабличноеПоле, будет иметь все колонки, имеющиеся в табличном поле, с соответствующими именами. Кроме того, таблица значений может иметь также и собственные колонки, не отображаемые в табличном поле, при этом их имена должны отличаться от имен колонок табличного поля.

Элементы коллекции: СтрокаТаблицыЗначений

Для объекта доступен обход коллекции посредством оператора Для каждого … Из … Цикл. При обходе выбираются элементы коллекции.

Возможно обращение к элементу коллекции посредством оператора [. ]. В качестве аргумента передается индекс строки (нумерация с 0).

Скачать программы, софт бесплатно. Программирование 1С

Таблица значений 1С – 2 часть. Основы. Обращение к данным, перебор строк таблицы значений

1C Value Table

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

В прошлой статье я рассказывал о создании таблицы значений 1с и способам обращения к данным, которые в ней содержатся.

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

1. Перебор строк таблицы значений при помощи индексов строк (номеров строк)

Метод ТаблицаЗначений.Количество() — возвращает количество строк в таблице значений.

Напоминаю, что если метод ТаблицаЗначений.Количество() показал, что в таблице 5 строк, то индексы(номера) этих строк такие: 0, 1, 2, 3, 4.

Предположим, что мы имеем таблицу значений 1С с колонкой «ФамилияКлиента»

Если мы желаем перебрать все строки таблицы значений при помощи индекса строк, мы должны использовать заголовок цикла, как в следующем примере. В нем мы выводим на экран содержимое колонки «ФамилияКлиента» для каждой строки, то есть, по-сути, печатаем весь столбец с фамилиями клиентов.
Итак:

Обратите внимание, что счетчик цикла мы наращиваем до значения, равного числу строк таблицы минус один: НашаТаблица.Количество() — 1

Давайте выясним, что означает код: НашаТаблица[НомерСтроки]. Это и есть обращение к конкретной строке таблицы значений по ее индексу (номеру).

Далее, получив объект — одну строку таблицы значений в виде переменной СтрокаТаблицы, мы можем работать отдельно с этим объектом-строкой. Пример ниже делает тоже самое, что и пример выше, только в нижнем примере использована «лишняя» переменная СтрокаТаблицы

Если внутри цикла мы напишем такой код: Сообщить(СтрокаТаблицы) — этот код НЕ выведет на экран данные из текущей строки таблицы значений (например фамилию клиента и прочее).

Все правильно, потому что переменная СтрокаТаблицы представляет собой объект и доступ к данным осуществляется через свойства и методы этого объекта — а если написать Сообщить(СтрокаТаблицы), то на экран будет выведена информация о типе переменной СтрокаТаблицы: СтрокаТаблицыЗначений.

Например, код СтрокаТаблицы.ФамилияКлиента как раз означает доступ к данным, хранящимся в колонке «ФамилияКлиента» у текущей строки-объекта. Чем мы и воспользовались в примере, чтобы вывести фамилии всех клиентов, хранящиеся в таблице значений. Перебирая все строки и выводя на экран по очереди эти самые фамилии.

2. Перебор строк таблицы значений при помощи цикла перебора коллекции «Для Каждого. «

Для перебора строк таблицы значений 1С мы можем воспользоваться другим вариантом цикла. Это специальный цикл для перебора элементов объектов-коллекций. Таблица значений 1с представляет из себя так называемую коллекцию. В данном случае — коллекцию строк.

А любую коллекцию в 1С можно перебрать при помощи цикла:

Выведем все фамилии клиентов из всех строк таблицы, при помощи перебора коллекции строк таблицы значений:

При переборе коллекции нам не понадобился счетчик номеров строк (индексов). Специальная форма цикла помогла обойтись без счетчика. В произвольную переменную СтрокаТаблицы при каждом проходе цикла автоматически присваивается объект-строка таблицы значений.

Таким образом в СтрокаТаблицы по мере выполнения цикла, подряд попадают все строки нашей таблицы значений. А мы только и делаем, что у каждой переданной нам строки выводим на экран содержимое колонки «ФамилияКлиента» с помощью конструкции Сообщить(СтрокаТаблицы.ФамилияКлиента);

3.А сейчас: повторение материала.

Итак, таблица значений 1С является коллекцией строк. Кто-то коллекционировал строки, складывал их в кучу, и получилась целая такая коллекция строк — которую назвали — таблицей значений.

Только это коллекция не просто обычных текстовых строк. Это коллекция объектов типа СтрокаТаблицыЗначений. И этот отдельный объект-строка хранит в себе данные для каждой колонки в текущей строке. Он хранит фамилию клиента, рост клиента или что-то там еще, что было нужно.

Получить доступ к строке таблицы значений можно по ее индексу, который начинается с нуля. При помощи кода МояЧетвертаяСтрока = МояТаблица[3] — мы получаем четвертую строку таблицы значений, так как нумерация строк начинается с нуля: 0, 1, 2, 3.

Число строк мы определяем методом МояТаблица.Количество(). Скобки в конце не забываем, так как мы вызываем метод без параметров.

Запомним, что перебрать все строки таблицы значений можно при помощи цикла, в котором мы перебираем индексы строк (от нуля до (Количества строк минус один)), а можно при помощи цикла перебора коллекций.

Последнее: При переборе коллекции, как получить номер строки таблицы значений?
Получить номер текущей строки можно вызовом метода Индекс() для таблицы значений, в который мы передаем объект-строку.

Пример ниже выведет на экран номера всех строк в таблице значений 1С:

Продолжение материалов будет в следующих статьях.

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

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

MiniCourse2016 w450

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

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

Strelka

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

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

Источник

Работаем с таблицей значений программно

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

Таблицы состоят из строк и колонок. Строки располагаются вниз по вертикали, а колонки — вправо по горизонтали. Строки и колонки имеют индексы, по которым к ним можно обращаться напрямую (начинаются с 0). Кроме этого, к колонкам можно обращаться по идентификатору.

Пересечения строк и колонок образуют ячейки, в которых содержатся значения. Тип значения определяется типом значения колонки.p142

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

Создание таблицы значений

Как и большинство объектов встроенного языка, новая таблица значений может быть создана с помощью оператора Новый :

Колонки таблицы значений

Прежде чем начать работу с таблицей значений, необходимо создать структуру колонок. Каждая колонка характеризуется следующими свойствами:

Для того, чтобы определить наличие колонки с нужным именем используется метод Найти():

Перебор колонок выполняется следующим образом:

Для удаления колонки используется метод Удалить():

Свойства колонки таблицы значений

Имя Тип Описание
Имя Строка символьный идентификатор колонки, по которому к ней можно обращаться из кода
Заголовок Строка строковое представление колонки на форме
ТипЗначения ОписаниеТипов свойство органичивает пространство доступных значений, которые можно указать в данной колонке
Ширина Число ширина колонки на форме (выражается в количестве символов)

Методы коллекции колонок таблицы значений

Вставить() Вставляет новую колонку в указанную позицию коллекции
Добавить() Добавляет новую колонку в конец коллекции
Количество() Возвращает количество колонок в коллекции
Найти() Ищет колонку в коллекции по имени
Очистить() Удаляет все колонки из коллекции
Сдвинуть() Сдвигает колонку влево или вправо
Удалить() Удаляет колонку из коллекции

Строки таблицы значений

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

Добавление и удаление строк

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

Обратите внимание, что каждая СтрокаТаблицыЗначений ссылается на таблицу значений с помощью метода Владелец():

Перебор строк таблицы значений

Поиск строк

В отличие от платформы 1С:Предприятие 7.7 в 8-ке расширен функционал работы с таблицей значений. Поиск можно выполнять не только по значению в колонке (в этом случае будет возвращена первая найденная строка), но и по набору свойств (в этом случае возвращается массив строк):

Все методы таблицы значений:

Вставить() Вставляет строку на указанное место
ВыбратьСтроку() Позволяет интерактивно выбрать строку в диалоговом окне
ВыгрузитьКолонку() Выгружает значения ячеек указанной колонки в массив значений
Добавить() Добавлет новую строку в таблицу значений
ЗагрузитьКолонку() Загружает значения в ячейки указанной колонки из массива
ЗаполнитьЗначения() Заполняет ячейки указанных колонок определенным значением
Индекс() Возвращает индекс строки таблицы значений
Итог() Возвращает просуммированный итог по колонке таблицы значений
Количество() Возвращает количество строк в таблице значений
Найти() Выполняет поиск строки по значению
НайтиСтроки() Выполняет поиск строк по указанным параметрам
Очистить() Очищает строки таблицы значений
Получить() Возвращает строку по ее индексу
Свернуть() Выполняет сжатие строк и колонок таблицы значений
Сдвинуть() Сдвигает строку вверх или вниз по таблице
Скопировать() Создает новую таблицу значений копированием текущей
СкопироватьКолонки() Создает новую пустую таблицу значений путем копирования колонок текущей таблицы
Сортировать() Выполняет сортировку строк таблицы значений по указанным колонкам
Удалить() Удаляет строку таблицы значений

Иерархию свойств и типов значений, связанных с таблицей значений, схематически можно представить в виде дерева:

Источник

Номер строки в запросе и табличной части на форме обработки

Есть запрос. Есть таблица значений с заданными и типизированными полями на форме обработки.
При выполнении запрос перегружает данные в таблицу значений. Но в таблице нет номера строки.
Хочу его сделать. Но как его задавать если я перегружаю одной функцией? Можно ли в запросе сделать
номер строки для каждой записи. Что бы он и перегружался в табличную часть!

Запрос = Новый Запрос;
Запрос.Текст = »
|ВЫБРАТЬ
| ТоварыОрганизацийОбороты.Период КАК Период,
| ТоварыОрганизацийОбороты.Регистратор.Номер КАК РегистраторНомер,
| ТоварыОрганизацийОбороты.Регистратор КАК Регистратор,
| ТоварыОрганизацийОбороты.Организация КАК Организация,
| ТоварыОрганизацийОбороты.ВидЗапасов КАК ВидЗапасов,
| ТоварыОрганизацийОбороты.АналитикаУчетаНоменклатуры.Склад КАК Склад,
| ТоварыОрганизацийОбороты.АналитикаУчетаНоменклатуры.Ссылка КАК КлючАналитики,
| ТоварыОрганизацийОбороты.АналитикаУчетаНоменклатуры.Номенклатура КАК Номенклатура,
| ТоварыОрганизацийОбороты.АналитикаУчетаНоменклатуры.Характеристика КАК Характеристика,
| ТоварыОрганизацийОбороты.АналитикаУчетаНоменклатуры.Серия КАК Серия,
| ТоварыОрганизацийОбороты.КоличествоОборот КАК КоличествоОборот,
| ТоварыОрганизацийОбороты.КоличествоРасход КАК КоличествоРасход,
| ТоварыОрганизацийОбороты.НомерГТД КАК НомерГТД
|ИЗ
| РегистрНакопления.ТоварыОрганизаций.Обороты(&НачДата, &КонДата, Регистратор, ) КАК ТоварыОрганизацийОбороты
|ГДЕ
| ТоварыОрганизацийОбороты.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг
|
|УПОРЯДОЧИТЬ ПО
| Период»;
Запрос.УстановитьПараметр(«НачДата», Период.ДатаНачала);
Запрос.УстановитьПараметр(«КонДата», Период.ДатаОкончания);
ТЗДляВыгрузки.Загрузить(Запрос.Выполнить().Выгрузить());

Источник

Этюд «Нумерация строк в табличном поле».

На форме размещено табличное поле с типом таблица значений.
Требуется: автоматически подставлять номер строки
Решение:
Создать колонку «НомерСтроки», колонка только на просмотр.
Создать событие у элемента формы «ПриИзмененииДанных»

Более того, при вызове из контекстного меню «вывести список» колонка номер строки будет заполнена.

Demo

Специальные предложения

f71a8c4e70c0ff03708038e2b0210df8

9c2808762ec294cd4c55532520b9c521

895fb1e0f7afc3c0ed0d73bf5ee9d9d0

egais promo

b34b292ed32e9501f98cc31df406353e

789363929b9f37ddc5641a069a5fe52e

5b19cd6c4494a88b2abefce64a1b7565

199e2be4fd21dd8f4209d8ec34616c76

тупой я что ли? или это пиво так благотворно на мозг действует?
создал обработку, кинул на нее таблицу значений, искал событие ПриИзмененииДанных минут пять, не нашел.
проклятый синтаксис помошник выдал, что энто событие бывает у расширения формы справочника, документа, плана счетов, ПВХ, ПВР,Плана обмена, Бизнес-процесса и задач.
задумался, попил еще пивка, нифига не понял и с горя вкатал в событие таблицы значений ПриВыводеСтроки следующее:
ОформлениеСтроки.Ячейки.НомерСтроки.Текст = ЭлементыФормы.ТабличноеПоле1.Значение.индекс(данныеСтроки)+1;

о чудо, усе заработало. Шайтан однако, вот как пиво благотворно влияет.

Обновление 15.11.08 01:04

Код открыт Не указано

См. также

Аналог PIVOT в запросе 1С (как выполнить транспонирование таблицы в запросе 1С) Промо

В статье показывается простой метод реализации аналога оператора PIVOT в запросе 1С без использования соединений.

Источник

Таблица значений в 1С 8.3

reklama http

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

Создание таблицы значений

Для создания таблицы значений используются конструктор:

В данной таблице не будет ни одной колонки и добавление в нее строк бессмысленно. Для добавления колонок нужно использовать свойство Колонки таблицы значений:

Теперь в таблицу можно добавить несколько строк. Добавление строк выполняется методом Добавить. Данный метод вернет строку таблицу значений. К именам колонок таблицы значений можно обращаться как к свойствам строки:

Типы колонок таблицы значений

В таблицу было добавлено 2 колонки. Тип не был определен и поэтому в эту колонку можно поместить любой тип данных, тип будет определяться в зависимости от типа данных значения в колонке. В примере выше тип колонки Товар — строка, а колонки Цена — число. Если добавить еще одну строку с другим типом, то тип колонки станет составным:

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

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

Для проверки наличия необходимой колонки в таблице можно выполнить поиск в коллекции колонок. Если такой колонки нет, то метод Найти вернет Неопределено:

Колонку можно переименовать. При этом, значения в данной колонке сохранятся. Изменить тип колонки нельзя.

Колонки можно удалять, соответственно будут удалены и все значения в данной колонке:

Изменение значений в существующих строках

К строкам таблицы значений можно обращаться через оператор индексации [ ]. Индексация строк начинается с нуля, чтобы изменить значение в первой строке нужно использовать индекс 0:

Перебор строк таблицы значений

Перебрать все строки таблицы значений можно с помощью циклов Для Каждого и Для. При необходимости на каждой итерации цикла можно изменить значения колонок строки.

Удаление строк

Удалить строку из таблицы можно методом Удалить. Параметром можно передать индекс строки или саму строку. Для удаления всех строк таблицы можно воспользоваться методом Очистить.

Иногда нужно удалить несколько строк из таблицы по условию. Например, все строки, где цена меньше 100. На первый взгляд это можно сделать так:

Однако после удаления линейка осталась в таблице, хотя ее цена равна 80. Почему так произошло? При удалении строки, таблица как бы сжимается. То есть на первой итерации цикла мы получили первую строку с диваном, его цена больше 100, поэтому строка осталась. Получаем вторую строку с ручкой за 50. Так как цена меньше 100, строка была удалена. И после удаления все строки сдвинулись, третья строка переместилась на вторую позицию, четвертая на третью и т.д. На следующей итерации мы получаем третью строку, а там уже кресло за 2000. Линейка была пропущена, цикл даже не проверял ее цену.

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

Источник

Понравилась статья? Поделить с друзьями:
Добавить комментарий
  • Как сделать успешный бизнес на ритуальных услугах
  • Выездной кейтеринг в России
  • Риски бизнеса: без чего не обойтись на пути к успеху
  • 1с счета фактуры на аванс автоматическое выставление
  • 1с счета учета контрагентов