Как загрузить колонку табличной части

Содержание
  1. 1с загрузить колонку таблицы значений
  2. Первый вариант выгрузки — копирование
  3. Синтаксис
  4. Параметры
  5. Описание
  6. Доступность
  7. Пример использования
  8. Заполнение колонки в табличной части документа
  9. Быстрое заполнение колонки (табличной части)
  10. Работаем с таблицей значений программно
  11. Создание таблицы значений
  12. Колонки таблицы значений
  13. Свойства колонки таблицы значений
  14. Методы коллекции колонок таблицы значений
  15. Строки таблицы значений
  16. Добавление и удаление строк
  17. Перебор строк таблицы значений
  18. Поиск строк
  19. Все методы таблицы значений:
  20. Дополнительная вычисляемая колонка в табличной части
  21. Дополнительная вычисляемая колонка в табличной части
  22. Реализация на платформе 1С: Предприятие 8.1 (или в обычном приложении)
  23. Реализация на платформе 1С: Предприятие 8.2 (8.3 управляемое приложение)
  24. Как добавить реквизит объекта в таблицу формы

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

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

  • использовать метод Скопировать()двумя вариантами синтаксиса;
  • методом перебора, когда таблица заполняется построчно по сложному отбору или алгоритму;
  • выгрузить таблицу во внутренне значение и преобразовать обратно;
  • через CериализаторXDTO.

Первый вариант выгрузки — копирование

Для начала, инициализируем тестовую таблицу с двумя колонками и двумя строками

Загружает значения в колонку таблицы значений из массива.

Синтаксис

Метод ЗагрузитьКолонку() имеет следующий синтаксис:

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

Параметры

Описание параметров метода ЗагрузитьКолонку() :

Имя параметра Тип Описание
Массив Массив Массив значений, который выступает в качестве источника данных для колонки.
Колонка Число Индекс колонки таблицы значений
Строка Имя колонки таблицы значений
КолонкаТаблицыЗначений Колонка таблицы значений
Жирным шрифтом выделены обязательные параметры

Описание

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

Доступность

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

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

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

Описание:

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

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

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

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

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

Источник

Заполнение колонки в табличной части документа

Здравствуйте. Платформа 8.2. УТ 10.3. Документ ПТиУ. Клиент попросил в табличную часть добавить колонку, где бы фиксировалось, что данный товар считан сканером ШК. Т.е. значение типа булево. Считан — ИСТИНА, не считан — ЛОЖЬ. Т.е. при приемке товаров пробежались СШК по товарам, где остались пустые значения — разбираемся. Сохранения этой колонки не требуется. Вопрос: как заполнить данную колонку, не создавая дополнительных реквизитов в документе?

PS: Я так думаю, что нужно двигаться в сторону массива. Тогда вопрос — как связать строки документа с массивом?

(1) Kott01
Колонку можно создать при открытии формы:

Но при таком раскладе данные колонки сохранятся не будут.

(5) Allexe8.1, (8) agrustny,
Торможу. Подскажите, пожалуйста, в каком модуле нужно создавать (объявлять) таблицу значений. Сделал ПриОткрытии() — из других модулей ТЗ не видна.

ЗЫ: Разобрался — забыл объявить переменную

НайтиСтроки (FindRows)
Синтаксис:
НайтиСтроки( )
Параметры:
(обязательный)
Тип: Структура. Задает условия поиска: ключ структуры определяет имя колонки, по которой будет осуществляться поиск, а значение структуры — искомое значение.
Возвращаемое значение:
Тип: Массив. Массив из строк табличной части, соответствующих заданному условию поиска.
Замечание! Массив хранит ссылки на строки табличной части, то есть при изменении строки в табличной части, значение в массиве тоже будет изменено.
Описание:
Осуществляет поиск строк табличной части, соответствующих заданному условию поиска.

Значит ссылка на строку существует))))

Всем спасибо за рекомендации. Разобрался. Единственное не получилось использовать флажок. Т.к. может кому-нибудь пригодиться расписываю, что и как сделал. Напомню задачу: есть предварительно сформированный документ ПТиУ. Нужно сверить ШК из реального поступления с документом ПТиУ. Т.к. может быть пересорт (при приемке визуально не выявлен) и т.д.

1. Создаю копию формы документа и переименовываю в «ФормаДокументаШК». Делаю ее основной.
2.В форме документа, в диалоге в табличной части создаю новую колонку «ШКСчитан». Элемент управления «Поле ввода»
3. В продедуру «ПриОткрытии()» добавляем код:

В итоге при считывании ШК в колонке «ШКСчитан» появляется признак «ШК». Если есть товар, но не было считывания ШК, то в колонке — «—«

Источник

Быстрое заполнение колонки (табличной части)

Полная инструкция во вложении.

Инструкция «Быстрое заполнение колонки»

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

В обработке присутствую два вида действия с «колонкой»:

  1. «Все строки одинаковы по данной колонке», значит, что вся колонка в табличной части заполнится одинаковыми данными (к примеру, в документе «Поступление товаров и услуг» колонку «Счет затрат (БУ)» заполнить счетом «25.01»)
  2. «Для каждой строки из другой колонки», значит, что по соответствию типов для каждой строки индивидуально, данные из одной колонки перенесутся в другую (к примеру, в документе «Поступление товаров и услуг» данные из колонки «подразделение организации» перенести в колонку «Субконто 1»).

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

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

Источник

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Поиск строк

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

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

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

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

Источник

Дополнительная вычисляемая колонка в табличной части

Дополнительная вычисляемая колонка в табличной части

Реализация на платформе 1С: Предприятие 8.1 (или в обычном приложении)

В начале коротко о том, как добавить дополнительную колонку в табличное поле на платформе 1С 8.1.

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

Для этого нам достаточно добавить в форме документа новую колонку “Цена” в табличное поле, содержащее данные табличной части документа и написать следующий код в обработчике события “ПриПолученииДанных” этого табличного поля:

Хочу обратить внимание на то, что строки табличного поля обрабатываются порциями, по мере прокрутки списка.

Реализация на платформе 1С: Предприятие 8.2 (8.3 управляемое приложение)

На платформе 8.2 с использованием управляемых форм решение данной задачи потребует бóльших усилий. Это связано с тем, что за счет своей клиент-серверной ориентированности в платформе 8.2 в управляемом режиме отсутствуют некоторые привычные возможности – например, у табличного поля отсутствуют обработчики событий “ПриПолученииДанных” и “ПриВыводеСтроки”, которые мы могли бы использовать для этих целей в 1С 8.1 или 8.2 в обычных формах.

Пусть в нашей конфигурации есть документ “ВводОстатковДолга” с табличной частью “Контрагенты” (с колонками “Контрагент” и “Сумма”). В свою очередь у справочника “Контрагенты” есть реквизит “ИНН”, значение которого необходимо выводить в строках табличного поля.

[qu_spoiler title=»Примечание от ‘Капитально:» open=»yes» icon=»chevron-circle»]в статье взят неудачный пример т.к. реквизиты вынести можно получить гораздо проще, но тем не менее статья полезна для рассмотрения в учебных целях[/qu_spoiler]

Откроем управляемую форму документа, добавим новую колонку “ИНН” реквизита “Контрагенты” и перенесём её на закладку “Элементы” (для отображения в форме).

Откроем палитру свойств поля “КонтрагентыКонтрагент” и добавим обработчик события “ПриИзменении”

// обработчик события «ПриИзменении» поля «Контрагент» в табличном поле «Контрагенты»
&НаКлиенте
Процедура КонтрагентыКонтрагентПриИзменении ( Элемент )
ТекДанные = Элементы . Контрагенты . ТекущиеДанные ;
ТекДанные . ИНН = ЗначениеРеквизита ( ТекДанные . Контрагент , «ИНН» ) ;
КонецПроцедуры

Это обеспечит нам изменение значения поля “ИНН” при выборе контрагента в строке табличного поля.
Теперь необходимо предусмотреть заполнение колонки “ИНН” при открытии формы документа, а так же после записи и при чтении на сервере.

Обновление данных после записи и при чтении на сервере необходимо в связи с тем, что иначе значения колонки “ИНН” будут очищаться каждый раз при возникновении этих событий. Для заполнения колонки “ИНН” опишем в модуле формы служебную серверную процедуру:

Затем добавим в модуль формы документа обработчики событий “ПриОткрытии”, “ПриЧтенииНаСервере” и “ПослеЗаписиНаСервере”, в каждой из которых будем вызвать описанную ранее служебную процедуру “ОбновитьДанныеКолонкиИНН”

Всё готово. Можно посмотреть на результат.

Статья найдена на просторах интернета

Как добавить реквизит объекта в таблицу формы

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

— Первый закон Кросби о рекламе.

Источник

Читайте также:  Маршал наушники сервисный центр
Оцените статью