Меню

Изменение типа колонок в Таблице Значений Табличного поля

Изменение типа колонок в Таблице Значений Табличного поля

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

НО дело в том что при выгрузке у колонок тип значения — Null,Справочник Номенклатура. И при добавлении новой строки пользователь видит кнопку выбора типа «Т», т.е. каждый раз выбирать тип Справочник Номенклатура из единственного варианта, как то по дурацки.

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

Вопрос, с этим что-то можно сдлеать или нужно пойти другим путем?

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

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

(0)
>На форме создано табличное поле с типом Таблица Значений.

А может ну ее эту ТаблицуЗначений, воспользоваться ТабличнойЧастью: задать в ней нужные колонки, они ведь статические? 🙂

Источник

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

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

Таблицу значений, как любую коллекцию, можно обойти циклом. Например:

Получить нужную строку можно по индексу, например:

Индексы в 1С начинается с 0 (нуля).

Рассмотрим основные свойства и методы этого объекта на примерах.

Создание и использование таблиц значений 1С в примерах

Создать таблицу можно следующим образом:

Добавить колонки в таблицу значений 1С:

Крайне рекомендую указывать кроме первого еще и второй параметр — тип данных. Он поможет избежать некоторых ошибок.

Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания — попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>

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

Добавим еще одну колонку:

Которую мы можем заполнить одинаковыми значениями двумя способами — перебором таблицы или функцией ЗаполнитьЗначения:

Сообщим пользователю название первой в списке программы (индекс таблицы значений в 1С начинается с «0»:

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

Поиск в таблице значений 1С с ценой «17400» с помощью структуры:

Сортировка программ в таблице по цене:

Количество строк в таблице:

Выгрузить колонку таблицы значений в массив 1С:

Чтобы удалить строку в таблице значений, нужно передать саму строку или индекс в метод «Удалить». Два варианта:

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

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

Свернуть таблицу можно так:

При этом в таблице останутся только различные значения из колонки «ВерсияПлатформы» с суммированными полями «Цена».

Ну и напоследок очистим строки таблицы значений 1С 8.3 полностью:

И удалим все колонки:

Если Вы начинаете изучать 1С программирование, рекомендуем наш курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):

К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.

Источник



Читайте также:  Что такое разность чисел в математике

Изменение типа данных для поля

В этой статье объясняется, как изменить тип данных для поля таблицы в базе данных Access.

В этой статье

Общие сведения о типах данных

При создании и проектировании базы данных нужно спланировать одну или несколько таблиц, спланировать поля (столбцы) для каждой таблицы, а также тип данных для каждого поля. Например, если вам нужно хранить даты и время, для поля задается тип данных «Дата/время». Если вам нужно сохранить имена и адреса, у вас одно или несколько полей с типом данных «Текст» и так далее.

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

Дополнительные сведения о создании и использовании полей подпапок см. в статье «Создание и удаление многоценного поля».

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

Изменение типа данных

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

Примечание: В Access вы можете задать тип данных для поля как в режиме таблицы, так и в Конструкторе. В этом разделе описываются оба метода. При настройке типа данных в Конструкторе будет доступен еще один вариант ( Мастер подстановки). Он фактически не является типом данных. Мастер подстановки используется для создания полей подстановки, которые связывают поля внешних ключей с другими таблицами. По умолчанию Access задает для полей подстановки тип данных «Число».

Изменение типа данных в режиме таблицы

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

Таблица откроется в режиме таблицы.

Выберите поле (столбец), которое вы хотите изменить.

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

Изменение типов данных в Конструкторе

Если таблица открыта в режиме таблицы, щелкните правой кнопкой мыши ее вкладку документа и выберите пункт Конструктор.

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

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

Ограничения на изменение типов данных

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

числовые поля с включенным свойством Код репликации;

поля объектов OLE;

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

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

Конечный тип данных

Преобразуемый тип данных

Изменения и ограничения

255 первых знаков остаются, остальные удаляются.

Для даты и времени нет ограничений.

Не допускается для расширенного даты и времени.

Читайте также:  Весо ростовой индекс кетле таблица

Значение -1 («Да» в логическом поле) преобразуется в «Да». Значение 0 («Нет» в логическом поле) преобразуется в «Нет».

Access обрезает ссылки длиннее 255 знаков.

Для даты и времени нет ограничений.

Не допускается для расширенного даты и времени.

Значение -1 («Да» в логическом поле) преобразуется в «Да». Значение 0 («Нет» в логическом поле) преобразуется в «Нет».

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

Поле МЕМО должно содержать только текст и допустимые разделители целой и дробной частей. Число знаков в поле МЕМО не должно превышать соответствующий размер поля, заданный для типа данных «Числовой».

Числовой (с другим размером поля или другой точностью)

Значения не должны быть больше или меньше, чем размер нового поля. Из-за изменения точности Access может округлить некоторые значения.

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

Дата 30 декабря 1899 г. имеет порядковый номер 0. Даты, не входящие в интервал от 18 апреля 1899 г. до 11 сентября 1900 г., превышают размер поля «Байт». Даты, не входящие в интервал от 13 апреля 1810 г. до 16 сентября 1989 г., превышают размер поля «Целое».

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

Дополнительные сведения о серийных датах и о том, как Access использует и хранит значения дат, см. в статье «Форматирование поля даты и времени».

Дата/время с продлением:

Значения не должны выходить за верхний и нижний пределы размера, заданного для поля. Например, поле с типом данных «Денежный» можно преобразовать в поле «Целое» только в том случае, если его значение больше 255, но не превышает 32 767.

Значения не должны выходить за пределы размера, заданного для поля.

Значения «Да» преобразуются в -1. Значения «Нет» преобразуются в 0.

Исходный текст должен быть распознаемой датой или сочетанием даты и времени. Например, 18-янв-2006.

Исходный текст должен быть распознаемой датой или сочетанием даты и времени. Например, 18-янв-2006.

Значение должно находиться в интервале от -657434 до 2958465,99998843.

Значение должно находиться в интервале от -657434 ₽ до 2958465,9999 ₽.

Значение должно находиться в интервале от -657434 до 2958466.

Значение -1 («Да») преобразуется в 29 декабря 1899 г. Значение 0 («Нет») преобразуется в полночь (00:00:00).

Источник

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

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

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

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

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

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

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

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

Читайте также:  Классификация линзовых объективов

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

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

  1. Имя — идентификатор колонки (может содержать только алфавитные символы, цифры и знаки подчеркивания. Причем, начинаться имя колонки может только с буквы или символа подчеркивания);
  2. Заголовок — представление колонки в диалогах (может содержать произвольные символы);
  3. ТипЗначения — тип значения содержимого ячеек в этой колонке. Если тип не задан, в ячейке можно хранить значения произвольного типа;
  4. Ширина — ширина колонки в диалогах;

Доступ к колонкам производится через свойство Колонки объекта ТаблицаЗначений . Для добавления новой колонки используется метод Добавить():

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

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

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

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

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

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

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

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

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

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

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

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

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

Для удаления строки используется метод Удалить() объекта ТаблицаЗначений . Строку можно удалить либо передав методу непосредственно строку, либо ее индекс:

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

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

Поиск строк

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

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

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

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

Источник