Parus16.ru

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

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

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

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

ТабЗнач.НоваяКолонка("Номер");
ТабЗнач.НоваяКолонка("Сотрудник");
ТабЗнач.НоваяКолонка("Должность");
ТабЗнач.НоваяКолонка("Оклад");

//можно указать тип данных каждой колонки
//если тип данных колонки не указан, то можно хранить данные любого типа
Синтаксис: НоваяКолонка(<Идентификатор>, <Тип>, <Длина>, <Точность>, <Заголовок>, <Ширина>, <Формат>, <Положение>)

ТабЗнач.НоваяКолонка("Номер","Число",10,0);
ТабЗнач.НоваяКолонка("Сотрудник","Справочник.Сотрудники");
ТабЗнач.НоваяКолонка("Должность","Справочник.Должности");
ТабЗнач.НоваяКолонка("Оклад","Число",10,2);

Добавление строк в таблицу значений

ТабЗнач.НоваяСтрока();
ТабЗнач.Номер = 1;
ТабЗнач.Сотрудник = "Иванов Иван Иванович"; //следите за типом колонки!
ТабЗнач.Должность = "Программист";
ТабЗнач.Оклад = 20000;

ТабЗнач.НоваяСтрока();
ТабЗнач.Номер = 2;
ТабЗнач.Сотрудник = "Петров Петр Петрович";
ТабЗнач.Должность = "Бухгалтер";
ТабЗнач.Оклад = 10000;

//обычно строки добавляются в цикле
СпрСотр = СоздатьОбъект("Справочник.Сотрудники");
СпрСотр.ВыбратьЭлементы();
Пока СпрСотр.ПолучитьЭлемент()=1 Цикл
. ТабЗнач.НоваяСтрока();
. ТабЗнач.Номер = СпрСотр.Код;
. ТабЗнач.Сотрудник = СпрСотр.ТекущийЭлемент(); //следите за типом колонки!
. ТабЗнач.Должность = СпрСотр.Должность;
. ТабЗнач.Оклад = СпрСотр.Оклад;
КонецЦикла;

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

ТабЗнач.ВыбратьСтроки();
Пока ТабЗнач.ПолучитьСтроку()=1 Цикл
. Сообщить(ТабЗнач.Сотрудник);
КонецЦикла;

2-й способ.

Для НомерСтроки = 1 По ТабЗнач.КоличествоСтрок() Цикл
. ТабЗнач.ПолучитьСтрокуПоНомеру(НомерСтроки);
. Сообщить(ТабЗнач.Сотрудник);
КонецЦикла;

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

//сортировать по должности по возрастанию
ТабЗнач.Сортировать("Должность+");

//сортировать по должности по возрастанию, а внутри должности по убыванию оклада
ТабЗнач.Сортировать("Должность+,Оклад-");

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

Синтаксис: НайтиЗначение(<Знач>,<Строка>,<Колонка>)
Возвращает число: 0 — значение не найдено; 1 — значение найдено
Если указан параметр <Строка>, то поиск производится только по заданной строке
Если указан параметр <Колонка>, то поиск производится только по заданной колонке

номстр = 0;
Если ТабЗнач.НайтиЗначение (10000, номстр, "Оклад") = 1 Тогда
. ТабЗнач.ПолучитьСтрокуПоНомеру(номстр);
. Сообщить(ТабЗнач.Сотрудник);
КонецЕсли;

Итоги и группировка таблицы значений

//получить итог по колонке можно методом Итог
ВсеОклады = ТабЗнач.Итог("Оклад")

//часто требуется группировать строки и подсчитывать итоги по группам,
//в этом случае применяется метод Свернуть

//проссумировать оклады по каждой должности
ТабЗнач.Свернуть("Должность","Оклад");

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

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

ТабЗнач.Очистить(); //очистить таблицу значений и удалить колонки

ТабЗнач.УдалитьСтроки(); //удаляет все строки (колонки сохраняются)

ТабЗнач.УдалитьСтроку(); //удаляет текущую строку
ТабЗнач.УдалитьСтроку(3); //удаляет 3-ю строку

ТабЗнач.УдалитьКолонку("Оклад"); //удаляет колонку Оклад
ТабЗнач.УдалитьКолонку(2); //удаляет 2-ю колонку

ВНИМАНИЕ
Часто требуется удалить строки, удовлетворяющие определенному условию.
Так как при удалении строки из таблицы значений следующая строка становится текущей,
то указанная ниже программа может удалить НЕ ВСЕ необходимые строки.

//ЭТА ПРОГРАММА НЕПРАВИЛЬНАЯ .
ТабЗнач.ВыбратьСтроки();
Пока ТабЗнач.ПолучитьСтроку()=1 Цикл
. Если <условие> Тогда
. ТабЗнач.УдалитьСтроку(); //следующая строка стала текущей,
. КонецЕсли;
КонецЦикла;

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

ТабЗнач.ВыбратьСтроки();
Пока ТабЗнач.ПолучитьСтроку()=1 Цикл

начало:
. Если <условие> Тогда
. ТабЗнач.УдалитьСтроку(); //следующая строка стала текущей
. Если ТабЗнач.НомерСтроки<>0 Тогда
. Перейти

начало;
. КонецЕсли;
. КонецЕсли;
КонецЦикла;

А вот еще один правильный алгоритм, предложенный Wlad:

ТабЗнач.выбратьстроки();
Пока ТабЗнач.ПолучитьСтроку()=1 Цикл
. Пока (<условие>) и (ТабЗнач.НомерСтроки<>0) Цикл
. ТабЗнач.УдалитьСтроку(); //следующая строка стала текущей
. КонецЦикла;
КонецЦикла;

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

Читайте так же:
Вай фай роутер элтекс

//установить курсор на указанную колонку или можно узнать, где находится курсор
ТабЗнач.ТекущаяКолонка(НоваяКолонка,ТекКолонка);

//установить курсор на указанную строку или можно узнать, где находится курсор.
ТекСтрока = ТабЗнач.ТекущаяСтрока(НовСтрока);

ТабЗнач.ВидимостьКолонки("Оклад",0); //скрыть колонку Оклад
ТабЗнач.ВидимостьКолонки("Должность, Сотрудник",1); //показать колонки Должность и Сотрудник
ТабЗнач.ВидимостьКолонки("Оклад",1,1); //показать колонку Оклад в 1-й позиции

//можно зафиксировать верхние строки и левые колонки для удобства прокрутки таблицы значений в диалоге
ТабЗнач.Фиксировать(КолСтрок,КолКолонок);

Методы УстановитьЗначение и ПолучитьЗначение
Эти методы позволяют обращаться к данным в таблице значений для чтения и записи.
Они могут пригодиться в особых случаях при написании универсальных программ (мастеры отчетов и т.д.).

Синтаксис: УстановитьЗначение(<Строка>,<Колонка>,<Знач>)
Синтаксис: ПолучитьЗначение(<Строка>,<Колонка>)

ТабЗнач.НоваяСтрока();
ТабЗнач.УстановитьЗначение(1,"Номер",100);
ТабЗнач.УстановитьЗначение(1,"Сотрудник","Иванов Иван Иванович");
ТабЗнач.УстановитьЗначение(1,3,10000); //обращение к 1-й строке и 3-й колонке ("Оклад")

Номер = ТабЗнач.ПолучитьЗначение(1,"Номер");
ФИО = ТабЗнач.ПолучитьЗначение(1,"Сотрудник");
Оклад = ТабЗнач.ПолучитьЗначение(1,3); //обращение к 1-й строке и 3-й колонке "Оклад"

Выгрузка таблицы значений

//выгрузить 10 сотрудников с наибольшими окладами в новую таблицу значений
ТабЗнач.Сортировать("Оклад-");
ТабЗнач.Выгрузить(НоваяТабЗнач,1,10,"Сотрудник,Оклад");

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

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

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

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

Как скопировать из 1С в Excel файл

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

Выгружая документы или отдельную информацию напрямую, можно воспользоваться несколькими методами:

интегрированная загрузка (в новых версиях 1С);

изменение кода чтения и открытия документов;

установка необходимых пунктов в общих настройках (для версий 1С 2014-2016 годов выпуска).

Как скопировать строки в 1С?

Скопировать полный текст, таблицу или целый файл можно любым из вышеуказанных способов. Но как перенести строки из Экселя в 1С? Можно ли осуществить массовую выгрузку отдельных столбцов? Для этого необходимо:

создать новый документ или открыть уже готовый;

выделить необходимую ячейку для выгрузки в 1С;

Читайте так же:
Безвентиляторный блок питания для компьютера

используя COM-объекты, создать циклические строки на первом рабочем листе или в новом документе с пустыми строками;

осуществить массовую выгрузку компонентов в 1С;

зайти в «Управление задачами»;

здесь необходимо в строке «Диапазон» ввести значение «Текущая страница», указав формат «UsedRange»;

в поле «Массив данных» написать «Диапазон.Value» и установить задачу «Выгрузить»;

следует указать путь выгрузки, то есть путь к вашей программе 1С;

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

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

Как перенести файл из Экселя в 1С?

Работая с программами 1С и Эксель нельзя применять операцию «Копирование+Вставка». Перенесенная информация может отразиться неправильно. Вместо стандартного текста появляются «кракозябры». Для интеграции этих двух программ следует знать, как правильно экспортировать документы. Здесь очень важно соблюдать общую последовательность.

Чтобы перенести файл или текст:

на ПК нажмите на кнопку «Пуск»;

перейдите в «Компьютер»;

откройте диск, на котором сохранена ваша программа (чаще всего это диск «С»);

откройте папку с файлами программы;

найдите архив «НKEY_LOCAL_MACHI-NE»;

зайдите в папку «SYSTEM»;

здесь следует найти файл «CurrentControlSet»;

перейдите по пути «Control+Nls»;

нажмите на документ «Codepage»;

выберите файл «cp_1252.nls» или «cp_1253.nls»;

замените в реестре выбранный файл на «cp_1251.nls» (этим действием вы программно установили чтение кириллицы);

создайте документ или откройте уже готовый;

выделите весь список или отдельные колонки;

нажмите на «Файл»;

кликните на «Экспорт»;

запустите программу 1С;

создайте новый документ;

выделите необходимое поле для вставки;

зайдите в «Управление задачами»;

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

Можно ли скопировать ячейки отдельно?

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

Для того чтобы перенести ячейки, необходимо:

открыть необходимую таблицу в Эксель;

выделить нужный фрагмент;

зайти в «Колонки» или «Массив»;

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

нажать на «Общие настройки»;

зайти в «Расширенные настройки» или «Дополнительные возможности»;

открыть кодовый лист чтения документов;

нажать на команду «Создать новую колонку с датой»;

в строке «Таблица. Колонки. Добавить» указать значение «Новый»;

в строке «Загрузить колонку» вписать «Выгрузить»;

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

запустить 1С 7, 1С: Бухгалтерия или иную версию специализированной программы;

создать новый документ;

зайти в «Управление задачами»;

нажать на строчку «Выгрузить данные»;

указать путь выгрузки.

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

Как скопировать контрагентов?

Для переноса списка юридических контрагентов из Экселя в 1С можно применить стандартную выгрузку. Для этого нужно:

Читайте так же:
Выберите корректный ip адрес компьютера в сети

открыть документ с необходимым списком;

сохранить их в расширении 1С;

нажать на «Экспорт»;

создать новый документ;

нажать на «Импорт.

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

загрузить документ со списком контрагентов;

нажать на правую кнопку мыши;

выбрать пункт «Вывести список»;

в появившемся окне нажать на строчку «В табличный документ»;

нажать на «Импорт»;

кликнуть на «Вставить»;

нажать на «Сохранить как».

Как скопировать таблицу?

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

выгрузить все наименования;

Теперь более подробно:

запустите программу 1С;

выберите пункт «Открыть»;

в файле обработки на диске ИТС выберите подходящий документ;

начнется загрузка наименований;

в командной строке «Режим загрузки» установите значение «Загрузка в справочник»;

выберите вид справочника;

установите значение «Номенклатура»;

перейдите во вкладку «Табличный документ»;

нажмите на «Открыть файл»;

по сохраненному пути найдите ваш документ для выгрузки;

установите тип файла «*.xls»;

перейдите во вкладку «Настройки»;

выберите необходимую карточку номенклатуры (можно сделать массовую выгрузку всех карточек по списку);

настройте параметры загрузки;

проверьте наличие новых элементов в группе поставщиков и товаров;

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

Можно ли отдельно скопировать номенклатуру?

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

запустить 1С в режиме конфигуратора;

запустить файл с номенклатурой;

зайти в панель «Управление задачами»;

установить задачу, указав наименование, артикул, вид номенклатуры и ее тип;

в базе данных сформировать запрос на выгрузку документов в XLS-файл;

нажать на кнопку «Заполнить»;

ввести необходимые данные в табличную часть «Данные выгрузки»;

добавить соответствующие реквизиты;

проверить код чтения и выгрузки;

нажать на «Сохранить»;

перейти в панель конфигуратора;

нажать на кнопку «Все действия»;

кликнуть на строчку «Вывести список»;

указать путь к программе Эксель.

После этого необходимо открыть Эксель и импортировать данные. Обязательно сохраните табличный документ.

Отбор строк в табличной части

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

Если в первом случае вопросов возникнуть не должно, то по второму распишу подробнее.

Предположим есть табличная часть «Товары» с колонками:

  • Наименование
  • Характеристика
  • Количество
  • Цена
  • Сумма

и нам требуется сделать отбор всех стульев в колонке «Наименование».

НаименованиеХарактеристикаКоличествоЦенаСумма
СтулКрасный5100500
СтолСтеклянный1200200
СтулЗеленый2150300

Отбор получится такой:

включает отбор по колонке «Наименование». Если установить значение «Ложь», то отбор будет снят. Если бы мы делали отбор не программно, а через фильтры, то установка галочки напротив названия колонки как раз аналогично этой строке кода:

Читайте так же:
Веб камера настройка на компьютер

отборстрок

отвечает за способ сравнения. Может принимать следующие значения:

  • Больше (Greater)
  • БольшеИлиРавно (GreaterOrEqual)
  • ВИерархии (InHierarchy)
  • ВСписке (InList)
  • ВСпискеПоИерархии (InListByHierarchy)
  • Интервал (Interval)
  • ИнтервалВключаяГраницы (IntervalIncludingBounds)
  • ИнтервалВключаяНачало (IntervalIncludingLowerBound)
  • ИнтервалВключаяОкончание (IntervalIncludingUpperBound)
  • Меньше (Less)
  • МеньшеИлиРавно (LessOrEqual)
  • НеВИерархии (NotInHierarchy)
  • НеВСписке (NotInList)
  • НеВСпискеПоИерархии (NotInListByHierarchy)
  • НеРавно (NotEqual)
  • НеСодержит (NotContains)
  • Равно (Equal)
  • Содержит (Contains)

устанавливает значение по отбора. В нашем случае это товар из справочника номенклатура.

Если бы значений в табличной части было больше и потребовалось бы отобрать стулья и столы, то ВидСравнения был бы равен «В списке», а значение — список значений.

Второй вариант короче, но первый для меня более наглядный.

ОтборСтрок входит в расширение табличного поля табличной части, т.е. табличное поле должно быть связано с табличной частью. Если же оно связано с динамическим списком типа СправочникСписок, то здесь нужно использовать свойство Отбор для объекта типа СправочникСписок.

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

Похожие записи

9 комментариев

«Перебрать строки табличного поля, которые сейчас на экране — невозможно.»

Не совсем так. Именно те что уместились на экран можно с помощью ОформленияСтрок и события ПриПолученииДанных().
https://its.1c.ru/db/metod8dev#content:2805:hdoc

Это не спасает при решении задачи: «Получение выборки соответствующей отбору установленному в свойстве ОтборСтрок расширения табличного поля», но позволяет «Перебрать строки табличного поля, которые сейчас на экране». Ещё раз: есть доступ не ко всем строкам соответствующим отбору, а только к тем, что в данный момент уместились на экран.
А вообще это БОЛЬ из серии: «Видит око, да зуб неймет.» =(

Спасибо!
Подскажите как отобрать по пустой номенклатуре.
Пробовал:
ЭлементыФормы.ТоварыКаталог.ОтборСтрок.Номенклатура.Значение = Справочники.Номенклатура.ПустаяСсылка();
не работает.

ВидСравнения указали, отбор включили?

Здравствуйте. Такой отбор не работает на управляемых формах? Только на простых? На УФ нужно использовать ФиксированнаяСтруктура и, следовательно, отбор по списку значений одного столбца таким способом не сделать?

Здравствуйте, Сергей. Да, этот отбор работает для простых форм. В случае с УФ и ФиксированнойСтруктурой вам нужно установить ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;

А как в фикс структуру список значений то запихать? В нем-же должны быть пары «поле», значение (или перечень полей и перечень соотв значений) Т.е. «Артикул, Наименование»,»00001″, «Гайка». А для отбора по списку нужно «Артикул», «00001», «00002», «0003» — Это в фиксю структуру не засунешь. Вывод — Отбор по списку значений в табличной части на управляемых формах таким образом реализовать невозможно?!

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

ДанныеОтбора = Новый СписокЗначений;
ДанныеОтбора.Добавить(«00001»);
ДанныеОтбора.Добавить(«00002»);
ДанныеОтбора.Добавить(«00003»);

Для каждого ЭлементПоле Из Элементы.ИмяТаблицыНаФорме.ПодчиненныеЭлементы Цикл
ОформляемоеПоле = ЭлементУО.Поля.Элементы.Добавить();
ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных(ЭлементПоле.Имя);
КонецЦикла;

ЭлементУО.Оформление.УстановитьЗначениеПараметра(«Видимость», Ложь);
ЭлементУсловия = ЭлементУО.Отбор.Элементы.Добавить(Тип(«ЭлементОтбораКомпоновкиДанных»));
ЭлементУсловия.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(«ИмяТаблицыЗначенийВРеквизитах.ИмяКолонкиПоКоторойНуженОтбор»);
ЭлементУсловия.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
ЭлементУсловия.ПравоеЗначение = ДанныеОтбора;

Работает, но на сервере и
ЭлементУсловия.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(«Объект.ИмяТаблицыЗначенийВРеквизитах.ИмяКолонкиПоКоторойНуженОтбор»)
Без Объекта не работает.

Читайте так же:
За сколько можно продать ноутбук асус

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

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

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

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

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

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

ТабЗначений.Колонки.Добавить(«КолКод»);

ТабЗначений.Колонки.Добавить(«КолНоменклатура»);

ТабЗначений.Колонки.Добавить(«КолКоличество»);

По результатам данной команды будет создана таблица, в которой имеется три столбца (колонки).

Добавление колонок

ФорматЧисла = Новый КвалификаторыЧисла(9, 2)

ОписаниеТипа = Новый ОписаниеТипов(«Число», КвалифЧисла);

ТабЗначений.Колонки.Добавить(«КолКоличество», ОписаниеТипа, «Количество номенклатуры»);

Данная команда предполагает создание нового столбца, обладающего размерностью в 9 символов (точность 2 символа).

Добавление новых строк

ВыбНоменклатура = Справочники.Номенклатура.Выбрать();

Пока ВыбНоменклатура.Следующий() Цикл

НоваяСтрока = ТабЗначений.Добавить();

НоваяСтрока. КолКод = ВыбНоменклатура.Код;

НоваяСтрока. КолНоменклатура = ВыбНоменклатура.Ссылка;

НоваяСтрока. КолКоличество = 1;

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

Выгрузка данных запроса в табличном виде

НовыйЗапрос = Новый Запрос;

НовыйЗапрос.Текст = «ВЫБРАТЬ

| СправочникНоменклатура.Ссылка КАК СсылкаНоменклатура

| Справочник.Номенклатура КАК СправочникНоменклатура»;

ТабЗначений = НовыйЗапрос.Выполнить().Выгрузить();

По результатам применения команды, запрашиваемые данные будут сформированы в таблицу с единственной колонкой (столбцом).

Выборка строк (может быть проведена двумя способами)

Для Каждого СтрокаТаб Из ТабЗначений Цикл

Сообщить(СтрокаТаб.КолНоменклатура);

// Узнаем количество строк в таблице, так как индекс начинается с нуля, уменьшаем количество строк на 1 (одну).

КоличествоСтрок = ТабЗначений.Количество() — 1;

// Выполняем цикл по количеству строк

Для Н = 0 по КоличествоСтрок Цикл

Сообщить(ТабЗначений [Н]. КолНоменклатура);

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

Выборка строк с отбором

// Создаем отбор

ОтборСтруктура = Новый Структура;

ОтборСтруктура.Вставить(«КолНоменклатура «, СсылкаНоменклатура);

// Используем отбор в поиске строк

ТабЗначенийСтроки = ТабЗначений.НайтиСтроки(ОтборСтруктура);

Для Каждого СтрокаТаб Из ТабЗначенийСтроки Цикл

Сообщить(СтрокаТаб.КолКоличество);

В данном случае будет осуществлена выборка, критерием отбора в которой станет «Номенклатура».

Данная команда предполагает введение разнонаправленной сортировки для двух значений.

Определение итогов в колонке

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

Копирование таблицы

Данная команда позволяет создать полноценную копию таблицы.

Свернуть таблицу по значению и провести суммирование результатов

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

Поиск нужной строки по значению

Команда позволяет найти необходимую строку с данными.

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

ТабЗначений.Удалить(0); // Удалит первую строку по индексу

ТабЗначений.Очистить(); // Полностью очистить таблицу

Установка и получение значений

Команда позволяет получить строку на основе ее индекса.

Вставка значений

НоваяСтрока = ТабЗначений.Вставить(1);

НоваяСтрока.КолНоменклатура = ТекНоменклатура;

НоваяСтрока.КолКоличество = 5;

Команда позволяет на основе индекса вставить строку и провести ее заполнение.

Дополнительный функционал для упрощения работы

// Выгружает колонку «КолНомнклатура» в массив

МассивНоменклатуры = ТабЗначений.ВыгрузитьКолонку(«КолНоменклатура»);

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