Рассылка
Курс лекций
Статьи
Программы
Ссылки
Форум
|
ТабЗнач.НоваяКолонка(«Номер»); //можно указать тип данных каждой колонки ТабЗнач.НоваяКолонка(«Номер»,»Число»,10,0); ТабЗнач.НоваяСтрока(); ТабЗнач.НоваяСтрока(); //обычно строки добавляются в цикле ТабЗнач.ВыбратьСтроки(); Для НомерСтроки = 1 По ТабЗнач.КоличествоСтрок() Цикл //сортировать по должности по возрастанию //сортировать по должности по возрастанию, а внутри должности по убыванию оклада Синтаксис: НайтиЗначение( , , ) номстр = 0; //получить итог по колонке можно методом Итог //часто требуется группировать строки и подсчитывать итоги по группам, //проссумировать оклады по каждой должности //Можно группировать и суммировать сразу по нескольким колонкам ТабЗнач.Очистить(); //очистить таблицу значений и удалить колонки ТабЗнач.УдалитьСтроки(); //удаляет все строки (колонки сохраняются) ТабЗнач.УдалитьСтроку(); //удаляет текущую строку ТабЗнач.УдалитьКолонку(«Оклад»); //удаляет колонку Оклад ВНИМАНИЕ //ЭТА ПРОГРАММА НЕПРАВИЛЬНАЯ . В этом случае я рекомендую использовать следующий прием: ТабЗнач.ВыбратьСтроки(); начало: начало; А вот еще один правильный алгоритм, предложенный Wlad: ТабЗнач.выбратьстроки(); //установить курсор на указанную колонку или можно узнать, где находится курсор //установить курсор на указанную строку или можно узнать, где находится курсор. ТабЗнач.ВидимостьКолонки(«Оклад»,0); //скрыть колонку Оклад //можно зафиксировать верхние строки и левые колонки для удобства прокрутки таблицы значений в диалоге Синтаксис: УстановитьЗначение( , , ) ТабЗнач.НоваяСтрока(); Номер = ТабЗнач.ПолучитьЗначение(1,»Номер»); //выгрузить 10 сотрудников с наибольшими окладами в новую таблицу значений 1С работа с таблицей значенийСоздадим структуру поиска, каждый элемент которой будет содержать имя колонки в качестве ключа и искомое значение в этой колонке – в качестве значения. Передаем СтруктуруПоискав качестве параметра методу НайтиСтроки(). В результате получеем массив строк таблицы. 7. Как перебрать таблицу значений в произвольном порядке Необходимо учитывать, что удаление строки (или колонки) «из середины» таблицы значений приведет к уменьшению на единицу индексов строк, стоявших «после» удаленной 10. Как заполнить таблицу значений, если имена колонок содержатся в переменных? Применяем для таблицы значений метод ЗаполнитьЗначения(). Первым параметром передаем заполняемое значение. Вторым параметром – имя заполняемой колонки. 12. Как таблицу значений «ТаблицаПолучатель» заполнить данными таблицы значений «ИсходнаяТаблица»? Если ТаблицаПолучатель на момент выполнения операции еще не существует или ее предыдущие колонки сохранять не нужно, можно создать ее как полную копию исходной Вариант второй: таблица ТаблицаПолучатель существует, и жалко терять ее колонки и ограничения на типы данных колонок. Но нужно заполнить данные по колонкам, имена которых совпадают с именами исходной таблицы. Частичный перенос данных для колонок с совпадающими именами: Для каждой строки исходной таблицы добавляется новая строка в таблицу-получатель и выполняется заполнение значений в тех колонках новой таблицы, имена которых совпадают с именами колонок в исходной таблице Если у таблиц не будет колонок с одинаковыми именами, таблица-получатель будет в результате содержать столько же строк с пустыми значениями, сколько строк было в таблице-источнике. Полное копирование данных для колонок с совпадающими именами Нам придется заменить колонку в таблице-получателе на новую, чьи свойства полностью будут соответствовать колонке таблицы-источника. 13. Как добавить колонки к таблице значений «ТаблицаЗначений» с ограничениями по типу? При добавлении колонки можно просто указать ее имя, а второй параметр метода Добавить() не трогать. В этом случае тип данных колонки – произвольный . Добавление колонки без указания типа данных Можно заполнить значение второго параметра. Туда необходимо передавать описание разрешенного для колонки типа. Само описание можно получить при помощи конструктора, передав последнему в качестве параметра строковое название типа (если много типов, то через запятую) или массив допустимых типов. Добавление колонки с указанием типа данных Если среди типов, разрешенных к заполнению данных колонки, есть строка, можно ограничить ее разрядность (длину), указать использование переменной или фиксированной длины. Все это обеспечивается созданием объекта при помощи конструктора КвалификаторыСтроки. Далее этот объект будет использован в качестве одного из параметров конструктора ОписаниеТипов. Использование квалификаторов для уточнения типа данных колонки таблицы значений Аналогичные действия можно осуществлять в отношении квалификаторов числа и даты. Использование существующих описаний типов для указания типа данных колонки таблицы значений Работаем с таблицей значений программноТаблицаЗначений — это программный объект встроенного языка, позволяющий строить произвольные наборы данных в памяти компьютера, отображать их в табличном виде, а также программно и интерактивно манипулировать ими (добавлять, редактировать, удалять и сортировать). Таблицы состоят из строк и колонок. Строки располагаются вниз по вертикали, а колонки — вправо по горизонтали. Строки имеют последовательную целочисленную нумерацию (начиная с 1). И строки, и колонки имеют индексы, по которым к ним можно обращаться напрямую (начинаются с 0). Кроме этого, к колонкам можно обращаться по идентификатору. Пересечения строк и колонок образуют ячейки, в которых содержатся значения. Тип значения определяется типом значения колонки. Таблица значений является полностью динамическим объектом, т.е. Вы можете манипулировать не только строками таблицы, добавляя и удаляя их, но и колонками. Таблица значений может использоваться явно при создании в коде необходимого количества переменных типа ТаблицаЗначений , либо неявно: при добавлении элемента управления ТабличноеПоле на обычную форму, и ТаблицаФормы — на управляемую. Здесь мы рассмотрим только программную работу с таблицей значений. Создание таблицы значенийКак и большинство объектов встроенного языка, новая таблица значений может быть создана с помощью оператора Новый : Колонки таблицы значенийПрежде чем начать работу с таблицей значений, необходимо создать структуру колонок. Каждая колонка характеризуется следующими свойствами:
Доступ к колонкам производится через свойство Колонки объекта ТаблицаЗначений . Для добавления новой колонки используется метод Добавить(): Для того, чтобы определить наличие колонки с нужным именем используется метод Найти(): Перебор колонок выполняется следующим образом: Для удаления колонки используется метод Удалить(): Свойства колонки таблицы значений
Методы коллекции колонок таблицы значений
Строки таблицы значенийС колонками разобрались. Давайте теперь разберемся со строками. Строки таблицы значений можно программно добавлять и удалять, перемещать и сортировать, а также выполнять операции поиска и отбора. Добавление и удаление строкДля добавления новой строки используется метод Добавить() объекта ТаблицаЗначений . Метод возвращает объект СтрокаТаблицыЗначений , с которым доступны дальнейшие манипуляции: Для удаления строки используется метод Удалить() объекта ТаблицаЗначений . Строку можно удалить либо передав методу непосредственно строку, либо ее индекс: Перебор строк таблицы значенийДля перебора строк удобнее всего использовать оператор цикла Для Каждого . В редких случаях оправдано применение цикла Для : Поиск строкВ отличие от платформы 1С:Предприятие 7.7 в 8-ке расширен функционал работы с таблицей значений. Поиск можно выполнять не только по значению в колонке (в этом случае будет возвращена первая найденная строка), но и по набору свойств (в этом случае возвращается массив строк): Как работать с таблицей значений в 1С 8.2 – 8.3Таблица значений — это не сохраняемый в базе данных объект, предназначенный для создания динамических наборов данных. Таблица значений состоит из строк и колонок. В отличие от списка значений, таблица значений имеет структуру, которую определяет разработчик. Объект ТаблицаЗначений имеет много полезных методов для обработки данных. Разработчик средствами встроенного языка может добавлять и удалять строки и колонки, перебирать строки, искать значение, сортировать по любым колонкам и выполнять другие операции. При создании новой таблицы значений в нее обычно добавляются колонки: У таблицы значений есть свойство Колонки, которое представляет собой коллекцию колонок и позволяет добавлять, удалять и менять их порядок. По умолчанию в таблице значений могут храниться значения разных типов. Но в 1С:Предприятии 8.0 для колонки можно задать список возможных типов значений. Это делается следующим образом (для повышения наглядности нам понадобится вспомогательная функция СоздатьОписаниеТипов): При работе со строками таблицы значений необходимо понимать, что строка — это объект типа СтрокаТаблицыЗначений. Поэтому добавление строк в таблицу значений производится следующим образом: Чтобы удалить колонки из таблицы значений нужно применить метод Очистить для свойства-коллекции Колонки: Перебор строк таблицы значений обычно реализуется с помощью конструкции «Для Каждого», при этом в переменной цикла будет содержаться не номер строки, а вся строка целиком как объект СтрокаТаблицыЗначений: Допускается также обращение к строке по индексу, при этом так-же возвращается объект типа СтрокаТаблицыЗначений. При работе с индексами необходимо всегда помнить, что индексация строк таблицы значений начинается с 0. Часто возникает необходимость найти значение в таблице значений. Для решения этой задачи предназначены методы Найти и НайтиСтроки. В метод Найти передается искомое значение и список колонок, которые нужно просматривать. Если значение найдено, то возвращается строка таблицы значений, иначе — значение Неопределено. Метод НайтиСтроки позволяет найти сразу несколько строк таблицы значений, удовлетворяющих заданному условию. В параметрах этого метода передается структура, задающая условия отбора. Ключ структуры определяет имя колонки, а ее значение — искомое значение. Метод НайтиСтроки возвращает массив, содержащий ссылки на найденные строки таблицы значений: Внимание! Массив, возвращаемый методом НайтиСтроки, содержит строки таблицы значений (не их копии, а сами строки).При изменении какой-либо строки в таблице значений это отразится в массиве, и наоборот. Таблица значений позволяет упорядочить содержащиеся в ней данные, для чего предназначен метод Сортировать: Таблица значений имеет очень полезную возможность группировки строк и подсчета итогов по группе, что реализуется методом Свернуть, имеющим следующие параметры: Этот метод осуществляет свертку таблицы значений по указанным колонкам группировки. Строки, у которых совпадают значения в колонках, указанных в первом параметре, сворачиваются в одну строку. Значения по этим строкам, хранящиеся в колонках, указанных во втором параметре, суммируются. Внимание! Списки колонок для метода Свернуть не должны пересекаться. Колонки, не вошедшие ни в один из списков колонок, после выполнения метода удаляются из таблицы значений. Например, у нас есть таблица значений со следующими данными. В следующем примере эта таблица сворачивается по колонкам Сотрудник и Год с подсчетом суммы по колонке Доход: Если исходная таблица значений вам понадобится в дальнейшем, то лучше сделать копию таблицы значений и сворачивать уже ее: Таблица значений позволяет подсчитать итог по колонке числового типа, например: И последнее, о чем хотелось рассказать, из таблицы значений можно выгрузить целую колонку в массив и загрузить ее из массива: Руководство 1СТаблица значений 1С – предназначена для хранения и обработки данных. Очень часто используется программистами для хранения временных (промежуточных) данных. В таблицах значений существуют строки и колонки. У каждой строки есть индекс, он начинается с 0 (нуля). Таблицу значений можно создавать с различными колонками и добавлять в нее строки. По строкам в таблице можно делать выборку и поиск, устанавливать и получать значения, сортировать, группировать и удалять строки. Далее постараюсь дам ответы на вопросы, касающиеся таблиц значений 1С. Как можно создать новую таблицу значений?
Функция создает таблицу значений с колонками «КолКод», «КолНоменклатура» и «КолКоличество». Как добавить новую колонку с определенным типом и заголовком?
Функция добавляет колонку «КолКоличество» с типом «Число», длиной в 9 символов и с точностью в 2 символа. Как можно добавить новые строки?
Функция делает выборку по номенклатуре и добавляет полученные данные в таблицу значений. Как выгрузить результат запроса в таблицу значений?
Функция делает запрос по номенклатуре и выгружает результат в таблицу значений. Колонка будет одна «СсылкаНоменклатура». Как сделать выборку строк в таблице значений?
Функция делает выборку по таблице значений и сообщает все элементы, которые находятся в колонке «Номенклатура». В первом примере выборка идет по строкам, а во втором строки получаем по индексу. Как сделать выборку строк в таблице значений с отбором?
Функция делает выборку по таблице значений с отбором по колонке «Номенклатура». Как сделать сортировку?
Функция делает сортировку таблицы по колонкам «КолКод» по убыванию и «КолНоменклатура» по возрастанию. Как вычислить итоги по колонке? Функция получает итоги по колонке «КолКоличество» и записывает их в переменную «ИтогКоличество». Как сделать копию таблицы значений? Функция делает полную копию таблицы «ТабЗначений» в таблицу «КопияТабЗначений». Как свернуть таблицу значений по колонке Номенклатура и суммировать по количеству? Функция сворачивает таблицу по колонке «Номенклатура» и суммирует колонку «Количество». Если существуют еще колонки, то они будут удалены. Как найти строку в таблице значений по значению? Функция делает поиск по таблице и возвращает строку если строка найдена. Как удалить строку или полностью очистит таблицу значений?
Как установить и получить значение? Функция получает строку из таблицы значений по индексу Как вставить значение в таблицу?
Функция вставляет строку по индексу и устанавливает значения. Дополнительные функции, которые упрощают работу с таблицей значений в 1С
detector |