База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как выгрузить столбец из таблицы значений на управляемой форме в 1С? › Ответ в теме: Как выгрузить столбец из таблицы значений на управляемой форме в 1С?
Чтобы выгрузить конкретную колонку из таблицы на управляемой форме, нужно получить данные из реквизита формы, который содержит таблицу значений, и затем из этой таблицы выбрать нужную колонку.
Пример кода на 1С (в модуле формы или общего модуля):
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
&НаСервере Функция ПолучитьКолонкуИзТаблицыНаФорме(ИмяРеквизитаТаблицы, ИмяКолонки) // Получаем таблицу значений из реквизита формы ТаблицаЗначений = ЭтаФорма[ИмяРеквизитаТаблицы]; Если ТипЗнч(ТаблицаЗначений) <> Тип("ТаблицаЗначений") Тогда Сообщить("Реквизит " + ИмяРеквизитаТаблицы + " не содержит таблицу значений"); Возврат Неопределено; КонецЕсли; // Выгружаем таблицу значений (копия) ТаблицаКопия = ТаблицаЗначений.Выгрузить(); // Создаем массив для хранения значений колонки МассивЗначений = Новый Массив; Для Каждого Строка Из ТаблицаКопия Цикл Если ТаблицаКопия.Колонки.Найти(ИмяКолонки) <> Неопределено Тогда МассивЗначений.Добавить(Строка[ИмяКолонки]); Иначе Сообщить("Колонка " + ИмяКолонки + " не найдена в таблице"); Возврат Неопределено; КонецЕсли; КонецЦикла; Возврат МассивЗначений; КонецФункции |
Использование:
|
1 2 3 4 5 6 7 |
МассивДанныхКолонки = ПолучитьКолонкуИзТаблицыНаФорме("ИмяРеквизитаТаблицы", "ИмяКолонки"); Если МассивДанныхКолонки <> Неопределено Тогда // Дальше можно работать с массивом значений колонки Для Каждого Значение Из МассивДанныхКолонки Цикл Сообщить(Строка(Значение)); КонецЦикла; КонецЕсли; |
Если нужно выгрузить колонку в виде таблицы значений с одной колонкой, то можно так:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
Функция ПолучитьТаблицуСОднойКолонкой(ИмяРеквизитаТаблицы, ИмяКолонки) ТаблицаЗначений = ЭтаФорма[ИмяРеквизитаТаблицы]; Если ТипЗнч(ТаблицаЗначений) <> Тип("ТаблицаЗначений") Тогда Сообщить("Реквизит " + ИмяРеквизитаТаблицы + " не содержит таблицу значений"); Возврат Неопределено; КонецЕсли; ИсходнаяТаблица = ТаблицаЗначений.Выгрузить(); НоваяТаблица = Новый ТаблицаЗначений; НоваяТаблица.Колонки.Добавить(ИмяКолонки, ИсходнаяТаблица.Колонки[ИмяКолонки].ТипЗначения); Для Каждого Строка Из ИсходнаяТаблица Цикл НоваяСтрока = НоваяТаблица.Добавить(); НоваяСтрока[ИмяКолонки] = Строка[ИмяКолонки]; КонецЦикла; Возврат НоваяТаблица; КонецФункции |
Такую таблицу можно дальше использовать для выгрузки, передачи или обработки.
—
Если таблица — реквизит объекта, а не формы, то вместо ЭтаФорма[ИмяРеквизитаТаблицы] используйте Объект[ИмяРеквизитаТаблицы].
—
https://infostart.ru/articles/1644076/ — программный вывод таблицы значений в таблицу на форме, работа с колонками.