Parus16.ru

Парус №16
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Выгрузить запрос в таблицу значений

Выгрузить запрос в таблицу значений

С задачей вывода каких либо данных в Таблицу Значений (ТЗ) на форме сталкиваются наверное все программисты. Если раньше до выхода Управляемого Интерфейса все решалось довольно просто, то теперь все немного изменилось.

Для обычных форм.

Стоит отметить, что предварительно нужно создать соответствующие РезультатуЗапроса колонки таблицы значений. Делается это также просто. Добавить ТаблицуЗначений следует в реквизиты Формы. Еще раз акцентирую внимание — Названия колонок и типы данных колонок ТЗ должны совпадать и на форме и в запросе. Можно вообще не создавать ТЗ на форме, а описать ее программно, примерно как то так:

Для управляемых форм все ровно тоже самое кроме того что нужно на сервере получить значение данных ТЗ на форме, записать в них результат запроса и потом снова вернуть их на форму.

Ниже пример такого преобразования.

Во всей этой истории следует обратить внимание на 2 строчки.

Первая

Вторая

Первый из типа данных ДанныеФормыКоллекция преобразует данные в тип ТаблицаЗначений. Второй соответственно конвертирует в обратном направлении.

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

Следующий пример выгружает результат запроса в таблицу значений с прямым порядком обхода строк:
Код 1C v 8.х

Если используется иерархический обход результата запроса или обход по группировкам, тогда удобнее выгрузить не в таблицу значений, а в дерево значений, как делается в следующем примере:
Код 1C v 8.х

Большинство разработчиков 1С знают, что выполнение запроса в цикле крайне нежелательно из-за множественных серверных вызовов базы данных. Однако далеко не все из них понимают, как избежать использования этой неоптимальной конструкции. А помочь в этом разработчикам может использование таблиц значений в качестве параметра запроса 1С. Поняв суть этого решения, программист 1С никогда больше не вернется к выполнению запросов в цикле.

Пример передачи таблицы в запрос

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

Получить ТЗ в 1С можно 2 способами:

  • Выгрузить в нужный тип данных информацию;
  • Программно создать внешнюю таблицу значений и заполнить ее, загрузив данные из файлов или вручную. Учтите, что при создании таблицы значений придется типизировать ее колонки с помощью описания типов.

Чтобы поместить описанную таблицу в запрос, придется загрузить ее сначала во временную таблицу, а уже потом соединять с нужными данными. Это правило работы платформы, и если проигнорировать его, то при работе кода 1С выдаст ошибку. Если система сообщает, что данные могут быть выбраны исключительно во временную таблицу, то проверяйте, помещаете ли вы ТЗ в нее.

Чтобы в запросе получилась временная таблица, открыв конструктор запросов, необходимо нажать на специальную кнопку в среднем окне. Нам нужно правильно назвать таблицу и не ошибиться в написании наименования полей. Затем помещаем результат запроса во временную таблицу и во втором запросе из пакета соединяем данные. Этим простым запросом мы добавили таблицу в запрос 1С, состоящую из 1 колонки.

Несмотря на очевидную пользу и простоту, у этой операции есть и определенные правила работы с ТЗ. Опытным путем установлено, что отладка и тестирование использования подобного приема затруднительна. Посмотреть временную таблицу в запросе возможно лишь с помощью типовых функций, заложенных в общие модули, или в консоли запросов. Вторым же правилом является необходимость типизировать колонки таблицы значений при ее объявлении, что зачастую забывают делать разработчики 1С.

Кроме вышеописанного применения программистам 1С приходится загружать таблицу в запрос 1С в сложных участках кода. Это позволяет не выполнять по нескольку раз 1 запрос – его выходной результат сохраняют в таблицу значений. А уже ее используют во всех следующих запросах в коде.

Читайте так же:
Возвращение компьютера в исходное состояние зависло

На многих собеседованиях на должность разработчика 1С в крупных компаниях проверяется именно способность грамотно использовать возможности платформы. И если вы продемонстрируете выполнение кода в цикле, а не передадите таблицу значений в запросе 1С, то это будет грубая ошибка.

Таблица значений. Основные приемы работы.

рубрики: Язык программирования 1С | Дата: 13 июля, 2017
Скачать обработку с примерами из статьи: ValueTable.epf
Платформа: 8.3; Тип формы: управляемая.

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

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

ДатаНаименование товараКоличество
01.07.2017Ручка10
02.07.2017Карандаш7
03.07.2017Карандаш8
04.07.2017Лампа2

А потом рассмотрим различные приемы работы с ней.

Ограничение использования

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

И конечно же мы не сможем вернуть таблицу значений из серверной функции в клиентскую.

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

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

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

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

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

Поиск значения

Метод Найти(ИскомоеЗначение, [СписокКолонок]) возвращает строку таблицы в которой есть поле с нужным нам значением. Если значение не найдено, возвращается Неопределено. Список колонок в которых будет производиться поиск указывать необязательно, в этом случае поиск будет производиться во всех полях таблицы значений. Данный метод как правило используется для проверки наличия в таблице строки с искомым значением. Например, в момент обхода в цикле какой-то коллекции, мы формируем таблицу значений в которой значения некоторого поля не должны повторяться дважды. Тогда мы с помощью метода Найти() проверяем наличие строки с этим значением, и если получили Неопределено, тогда добавляем новую строку, в противном случае не делаем ничего. Применительно к нашему примеру давайте сделаем поиск строки со значением «Карандаш»:

В исходной таблице у нас две строки с товаром «Карандаш», но найдена будет только первая из них. Поэтому данный метод не представляет особой ценности, если нам надо получить все строки с заданным значением. Следует понимать, что найденная строка — это по сути ссылка на строку таблицы значений, и если мы проделаем с ее полями какие-либо манипуляции, то это отразится на исходной таблице. Например если выполнить вот такой код:

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

ДатаНаименование товараКоличество
01.07.2017Ручка10
02.07.2017Карандаш100
03.07.2017Карандаш8
04.07.2017Лампа2

Поиск нескольких строк по условию

В отличие от предыдущего метода, метод НайтиСтроки(СтруктураПоиска) возвращает не одну, а сразу все строки таблицы значений, которые удовлетворяют условию поиска. Точнее возвращается массив, каждый элемент которого представляет собой ссылку на строку таблицы значений. В качестве параметра метод использует структуру, где ключом является имя колонки, а значением — искомое значение. Удобно использовать, когда нам надо выбрать несколько строк по определенному условию, и проделать с ними какие-то действия. Допустим, нам надо в нашей таблице заменить наименование «Карандаш» на «Карандаш автоматический». В этом случае нам поможет следующий код:

Читайте так же:
Блок питания rb s500hq7 0

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

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

Очевидно, что мы будем рассматривать удаление строк из таблицы значений по какому-то условию. В противном случае у нас произойдет просто очистка всей таблицы, что не имеет особого смысла. И на первый взгляд эта операция кажется достаточно простой. Первое, что приходит в голову — это перебор в цикле всех строк, проверка на выполнение условия, и если условие выполняется, то удаление текущей строки. Но на самом деле такой способ не всегда отрабатывает корректно. Давайте убедимся в этом на нашем примере. Удалим из таблицы все записи с наименованием «Карандаш»:

Но в итоге мы наблюдаем следующую картину

ДатаНаименование товараКоличество
01.07.2017Ручка10
03.07.2017Карандаш8
04.07.2017Лампа2

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

И наконец попробуем с помощью метода НайтиСтроки() сразу получить все нужные строки, и удалить их поочередно:

И в результате получаем:

ДатаНаименование товараКоличество
01.07.2017Ручка10
04.07.2017Лампа2

То есть такой метод тоже работает.

Группировка

Допустим, что нас больше не интересует дата, и мы хотим получить по каждому наименованию общее количество. То есть привести исходную таблицу вот к такому виду:

Наименование товараКоличество
Ручка10
Карандаш15
Лампа2

В этом случае нам надо сгруппировать строки таблицы. Напомню, что группировка в языке запросов также активно используется. А в таблице значений для этого используется метод Свернуть(КолонкиГруппировок, КолонкиСуммирования). В общем то, чтобы достигнуть результата нам потребуется всего одна строчка кода:

Сериализация таблиц значений

Таблица значений может сериализоваться с помощью объекта СериализаторXDTO. Проще говоря таблицу значений можно записать в формате XML или JSON, что открывает широкие возможности для передачи таблиц значений в качестве параметров при обмене данными. В том числе и через веб-сервисы.Рассмотрим использование обоих форматов.

Сериализация с использованием XML

В качестве примера выгрузим таблицу значений в строку XML, а потом создадим копию таблицы выполнив загрузку из строки XML:

Сериализация с использованием JSON

Начиная с версии платформы 8.3.7.1759 появилась возможность сериализации прикладных типов 1С:Предприятия в JSON. Принцип использования тот же, что и для XML:

Хочу обратить внимание на параметр НазначениеТипаXML.Явное в методе ЗаписатьJSON без кот
орого при чтении из строки будет выдаваться ошибка, либо надо будет при чтении указать тип объекта.

Поиск совпадений в двух списках

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

Исходные списки для сравнения

Для удобства, можно дать им имена, чтобы потом использовать их в формулах и ссылках. Для этого нужно выделить ячейки с элементами списка и на вкладке Формулы нажать кнопку Менеджер Имен — Создать (Formulas — Name Manager — Create) . Также можно превратить таблицы в «умные» с помощью сочетания клавиш Ctrl + T или кнопки Форматировать как таблицу на вкладке Главная (Home — Format as Table) .

Читайте так же:
Вега 109 стерео колонки

Подсчет количества совпадений

Для подсчета количества совпадений в двух списках можно использовать следующую элегантную формулу:

Количество совпадений формулой

В английской версии это будет =SUMPRODUCT(COUNTIF(Список1;Список2))

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

Во-первых, функция СЧЁТЕСЛИ (COUNTIF) . Обычно она подсчитывает количество искомых значений в диапазоне ячеек и используется в следующей конфигурации:

=СЧЁТЕСЛИ( Где_искать ; Что_искать )

Обычно первый аргумент — это диапазон, а второй — ячейка, значение или условие (одно!), совпадения с которым мы ищем в диапазоне. В нашей же формуле второй аргумент — тоже диапазон. На практике это означает, что мы заставляем Excel перебирать по очереди все ячейки из второго списка и подсчитывать количество вхождений каждого из них в первый список. По сути, это равносильно целому столбцу дополнительных вычислений, свернутому в одну формулу:

Подсчет количества совпадений отдельным столбцом

Во-вторых, функция СУММПРОИЗВ (SUMPRODUCT) здесь выполняет две функции — суммирует вычисленные СЧЁТЕСЛИ совпадения и заодно превращает нашу формулу в формулу массива без необходимости нажимать сочетание клавиш Ctrl + Shift + Enter . Формула массива необходима, чтобы функция СЧЁТЕСЛИ в режиме с двумя аргументами-диапазонами корректно отработала свою задачу.

Вывод списка совпадений формулой массива

Если нужно не просто подсчитать количество совпадений, но и вывести совпадающие элементы отдельным списком, то потребуется не самая простая формула массива:

Вывод совпадений в двух списках формулой массива

В английской версии это будет, соответственно:

Логика работы этой формулы следующая:

  • фрагмент СЧЁТЕСЛИ(Список2;Список1), как и в примере до этого, ищет совпадения элементов из первого списка во втором
  • фрагмент НЕ(СЧЁТЕСЛИ($E$1:E1;Список1)) проверяет, не найдено ли уже текущее совпадение выше
  • и, наконец, связка функций ИНДЕКС и ПОИСКПОЗ извлекает совпадающий элемент

Возникающие на избыточных ячейках ошибки #Н/Д можно дополнительно перехватить и заменить на пробелы или пустые строки «» с помощью функции ЕСЛИОШИБКА (IFERROR) .

Вывод списка совпадений с помощью слияния запросов Power Query

На больших таблицах формула массива из предыдущего способа может весьма ощутимо тормозить, поэтому гораздо удобнее будет использовать Power Query. Это бесплатная надстройка от Microsoft, способная загружать в Excel 2010-2013 и трансформировать практически любые данные. Мощь и возможности Power Query так велики, что Microsoft включила все ее функции по умолчанию в Excel начиная с 2016 версии.

Для начала, нам необходимо загрузить наши таблицы в Power Query. Для этого выделим первый список и на вкладке Данные (в Excel 2016) или на вкладке Power Query (если она была установлена как отдельная надстройка в Excel 2010-2013) жмем кнопку Из таблицы/диапазона (From Table) :

Загрузка списков в Power Query

Excel превратит нашу таблицу в «умную» и даст ей типовое имя Таблица1. После чего данные попадут в редактор запросов Power Query. Никаких преобразований с таблицей нам делать не нужно, поэтому можно смело жать в левом верхнем углу кнопку Закрыть и загрузить — Закрыть и загрузить в. (Close & Load To. ) и выбрать в появившемся окне Только создать подключение (Create only connection) :

Закрыть и загрузить вТолько подключение

Затем повторяем то же самое со вторым диапазоном.

И, наконец, переходим с выявлению совпадений. Для этого на вкладке Данные или на вкладке Power Query находим команду Получить данные — Объединить запросы — Объединить (Get Data — Merge Queries — Merge) :

Объединение запросов в Power Query

В открывшемся окне делаем три вещи:

  1. выбираем наши таблицы из выпадающих списков
  2. выделяем столбцы, по которым идет сравнение
  3. выбираем Тип соединения = Внутреннее (Inner Join)

Слияние для выявления совпадающих строк

После нажатия на ОК на экране останутся только совпадающие строки:

Результат слияния

Ненужный столбец Таблица2 можно правой кнопкой мыши удалить, а заголовок первого столбца переименовать во что-то более понятное (например Совпадения). А затем выгрузить полученную таблицу на лист, используя всё ту же команду Закрыть и загрузить (Close & Load) :

Выгрузка результатов на лист

Если значения в исходных таблицах в будущем будут изменяться, то необходимо не забыть обновить результирующий список совпадений правой кнопкой мыши или сочетанием клавиш Ctrl + Alt + F5 .

Читайте так же:
Диагональ экрана прямоугольного монитора равна 87

Макрос для вывода списка совпадений

Само-собой, для решения задачи поиска совпадений можно воспользоваться и макросом. Для этого нажмите кнопку Visual Basic на вкладке Разработчик (Developer) . Если ее не видно, то отобразить ее можно через Файл — Параметры — Настройка ленты (File — Options — Customize Ribbon) .

В окне редактора Visual Basic нужно добавить новый пустой модуль через меню Insert — Module и затем скопировать туда код нашего макроса:

Воспользоваться добавленным макросом очень просто. Выделите, удерживая клавишу Ctrl , оба диапазона и запустите макрос кнопкой Макросы на вкладке Разработчик (Developer) или сочетанием клавиш Alt + F8 . Макрос попросит указать ячейку, начиная с которой нужно вывести список совпадений и после нажатия на ОК сделает всю работу:

Макрос поиска совпадений в двух списках

Более совершенный макрос подобного типа есть, кстати, в моей надстройке PLEX для Microsoft Excel.

Бесплатные программы русские. Программирование 1С

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

  • Главная
  • Бесплатные программы русские

Таблица значений 1С – 3 часть. Метаданные. Перебор колонок таблицы значений 1С

Опубликовано 21 сентября 2011

таблица значений 1С

Таблица значений 1С – 3 часть. Метаданные. Перебор колонок таблицы значений

В этой статье я расскажу как работать с таблицей значений «неизвестной» структуры, как перебирать колонки таблицы значений, как извлекать данные из колонок и строк, не используя названия колонок. (Эта статья относится к циклу статей 1С с нуля; программирование 1с с нуля; таблица значений 1с)

Две предыдущие статьи:

Для объяснения материала и для того, чтобы можно было запустить наши примеры программного кода «в живую», нам необходимая некая тестовая таблица значений 1С. Часть наших примеров будет извлекать данные из таблицы значений, поэтому мы сделаем таблицу с тремя колонками «Фамилия», «Имя», «Отчество» и внесем в нее небольшое количество данных — аж целых 3 строки 🙂

Итак, создадим тестовую таблицу значений 1С и заполним ее:

Наша тестовая таблица состоит из трех колонок: Имя, Фамилия, Отчество; и имеет три заполненных строки с фамилиями героев Гражданской войны.

Номер строкиФамилияИмяОтчество
ЧапаевВасилийИванович
1ДзержинскийФеликсЭдмундович
2КотовскийГригорийИванович

Первый образец кода — перебор колонок таблицы значений 1С как коллекции.

Наш цикл выведет в окно сообщений 1С все имена колонок:

Мы видим, что для перебора колонок применяется специальный цикл перебора коллекции, похожий на цикл перебора строк (в прошлой статье). МояТЗ.Колонки — это коллекция колонок таблицы значений 1С «МояТЗ». Коллекция содержит в себе объекты типа «КолонкаТаблицыЗначений» Каждый объект этого типа и является колонкой таблицы значений, и содержит свойства и методы. Обращаясь к этим свойствам и методам мы получаем нужные сведения об одной колонке или производим какие-то другие действия с ней.

Например, обращаясь к свойству «Имя» (Колонка.Имя) мы получаем имя текущей колонки.

Хочу обратить ваше внимание на заголовок цикла: «Для Каждого Колонка Из МояТЗ.Колонки Цикл» Переменная с именем «Колонка» придумана нами. Необязательно использовать такое же имя. Можно назвать эту переменную как угодно, например «МояТекущаяКолонка» Тогда пример выше будет выглядеть таким образом:

Когда исполняющая подсистема 1С встречает цикл такого вида, при каждом проходе цикла она присваивает переменной с указанным именем один элемент из нашей коллекции, в данном случае — один элемент коллекции колонок таблицы значений МояТЗ.Колонки А далее мы обращаемся к переменной, которая содержит в себе текущую колонку, и используем свойство «Имя».

Предлагаю рядом с именем колонки вывести еще и номер каждой колонки в коллекции колонок:

В окно сообщений 1С будет выведен текст:

Обратим внимание на то, что колонки в таблице значений 1С нумеруются начиная с нуля, так же, как и строки таблицы значений.

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

Чтобы узнать количество колонок в таблице значений, мы используем метод «Количество()» у коллекции колонок.

На экране будет выведена цифра «3». Действительно, в нашей таблице три колонки: «Фамилия», «Имя», «Отчество»

Получение объекта- колонки по ее номеру (индексу) и перебор колонок при помощи индекса колонок

Сделаем цикл перебора всех колонок таблицы значений при помощи индексов колонок (номеров). Помним, что нумерация колонок начинается с нуля. Поэтому счетчик цикла «Сч» мы должны наращивать от нуля до числа, равного количеству колонок минус один.

Читайте так же:
Влияние блютуз гарнитуры на здоровье человека

На экране мы получим следующее

Думаю, что этот пример был понятен. Мы обратились к методу Количество() коллекции колонок «МояТЗ.Колонки.Количество()«, получили количество колонок, и запустили цикл со счетчиком от нуля до количество колонок минус один. Внутри цикла мы получаем каждую колонку из коллекции колонок и присваиваем текущий объект-колонку в переменную ТекущаяКолонка Далее, у переменной ТекущаяКолонка мы обращаемся к свойству Имя и выводим значение этого свойства на экран: Сообщить(ТекущаяКолонка.Имя);

Важно никогда не путать свойство объекта и метод объекта.

Свойство — это некая статическая величина и обращение к нему пишется без скобок, например ТекущаяКолонка.Имя. А метод — это по сути, процедура или функция объекта, а вызовы процедур и функций всегда пишутся со скобками (даже если нет входных параметров). Например: МояТЗ.Колонки.Количество()

Если мы обратимся к методу, забыв написать скобки — интерпретатор 1С выдаст нам сообщение об ошибке и не запустит код на выполнение. Так как интерпретатор будет считать, что мы обращаемся не к методу, а к свойству — потому что нет скобок. А свойства с таким именем найти не сможет (потому что с таким именем имеется только метод) — о чем и будет сказано в сообщении об ошибке.

Вот что напишет интерпретатор, если я забуду поставит скобки в вызове метода таким неправильным способом МояТЗ.Колонки.Количество (без скобок после «Количество()»):

Поле объекта не обнаружено (Количество)

В данном случае «поле» и «свойство» следует понимать как синонимы, или неточность терминологии разработчиков 1С. Они используют оба этих слова для обозначения одного и того же понятия. Хотя в других языках программирования эти термины могут означать разные понятия.

Получение данных из таблицы значений 1С при помощи номеров колонок

Предлагаю вам, для начала, простой пример получения данных из первой строки нашей таблицы. Обратите внимание, что мы используем заранее заполненную таблицу из начала статьи. Мы точно знаем, что в таблице есть первая строка, и есть хотя бы одна колонка. Если мы применим этот пример к незаполненной таблице, то произойдет ошибка. Итак:

На экран будет выведено:

Сначала мы получили объект-строку таблицы значений, обратившись к таблице значений при помощи оператора [. ]. (если забыли, как это делается, можно посмотреть предыдущие статьи) Внутрь оператора мы передали аргумент «0». Это индекс первой строки таблицы значений. ПерваяСтрока = МояТЗ[0];

Далее, к объекту-строке мы тоже имеем право обратиться при помощи оператора [. ]. Внутрь этого операторы мы передали номер столбца таблицы значений, в данном случае тоже «0». И, таким образом, мы получили значение столбца с номером «0» для текущей строки таблицы под номером «0». Это значение мы вывели на экран и оно представляет собой строку «Чапаев».

Немного усложним наш пример:

Теперь мы вывели на экран значения из всех трех столбцов первой строки нашей таблицы значений:

Теперь я еще модифицирую этот пример, чтобы нам обойтись без переменной «ПерваяСтрока»

На экране будет тоже самое

Мы увидели в примере выше, что для обращения к значению, находящемуся в конкретной строке и конкретном столбце таблицы значений мы можем использовать последовательный вызов двух операторов [. ] в такой форме: ТаблицаЗначений[ИндексСтроки][ИндексКолонки]

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

Сейчас, на нашем экране информация стала выглядеть более представительно:

Да, чуть не забыл. При использовании подряд двух операторов [. ][. ], мы можем вместо индекса колонки передавать имя этой колонки: ТаблицаЗначений[ИндексСтроки][ИмяКолонки]

Обратите внимание на строку, отмеченную стрелочкой «

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

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

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

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

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

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector