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

(3)

как-то так.

   
       ОписаниеТиповЧислоСтрока0 = Новый ОписаниеТипов(«Строка, Число, Дата, NULL»,

                                              Новый КвалификаторыЧисла(64, 32, ДопустимыйЗнак.Любой),

                                              Новый КвалификаторыСтроки(0, ДопустимаяДлина.Переменная));

   
   Массив = Новый Массив;

   
   МассивУдаляемыхКолонокТЗ = Новый Массив;

   
   Для Каждого Эл Из Элементы.ТЗ1.ПодчиненныеЭлементы Цикл

       МассивУдаляемыхКолонокТЗ.Добавить(Эл);

   КонецЦикла;

   
   Для Каждого Эл Из МассивУдаляемыхКолонокТЗ Цикл

       Элементы.Удалить(Эл);

   КонецЦикла;

   
   Для Каждого Колонка Из ТЗ.Колонки Цикл

       Массив.Добавить(Новый РеквизитФормы(Колонка.Имя, ОписаниеТиповЧислоСтрока0,»ТЗ1″));

   КонецЦикла;

   
   
   МассивУд = Новый Массив;

   Для Каждого Реквизит Из ПолучитьРеквизиты(«ТЗ1») Цикл

       МассивУд.Добавить(Реквизит.Путь + «.» + Реквизит.Имя);

   КонецЦикла;    

   ИзменитьРеквизиты(Массив, МассивУд);

   
   Для Каждого Реквизит Из Массив Цикл

       Эл = Элементы.Добавить(Реквизит.Имя, Тип(«ПолеФормы»), Элементы.ТЗ1);

       Эл.вид = ВидПоляФормы.ПолеВвода;

       Эл.доступныеТипы = Новый ОписаниеТипов(Колонка.ТипЗначения);

       Эл.ПутьКДанным = «ТЗ1.»+Эл.Имя;

       Эл.Формат = «ЧГ=0»;

   КонецЦикла;

   
   ЗначениеВРеквизитФормы(ТЗ,  «ТЗ1»);

Содержание:

1.       Использование временного хранилища 1С

2.       Заполнение таблицы значений формы

3.       ЗначениеВСтрокуВнутр() – только для толстого клиента 1С 8.3 

1.      Использование временного хранилища 1С

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

ПоместитьВоВременноеХранилище(<Данные>, <Адрес>)

Где данные — это наша таблица значений, а адрес — это уникальный идентификатор или строка, куда нам нужно передать таблицу значений 1С. Например:

ПоместитьВоВременноеХранилище(ТаблицаЗначений, ЭтаФорма.УникальныйИдентификтор);

Для получения на клиенте таблицы значений достаточно будет использовать следующий код:

ПолучитьИзВременногоХранилища(ЭтаФорма.УникальныйИдентификтор);  

2.      Заполнение таблицы значений формы

Самый лаконичный способ передать на клиента таблицу значений не означает, что это самый правильный вариант. Самым правильным (судя по экзаменам платформы 1С) является вариант заполнение Таблицы значений формы. Для начала необходимо добавить в форму новый реквизит с типом «ТаблицаЗначений» и именем «ТаблицаЗначенийФормы». На сервере пишем следующий код строки 1С:

//Считаем, что тут вы получили таблицу значений, у которой необходимо передать данные на форму


ТЗ = ПолучитьТЗ();


ДобавляемыеРеквизиты = Новый Массив;


УдаляемыеРеквизиты = Новый Массив;


//Получаем уже созданную на форме Таблицу значений 1С


ИмяТФ = «ТаблицаЗначенийФормы”;


ТаблицаФормы = РеквизитФормыВЗначение(«ТаблицаЗначенийФормы»);


Для Каждого ТекКолонка из ТаблицаФормы.Колонки Цикл


УдаляемыеРеквизиты.Добавить(ТаблицаЗначенийФормы + «.» + ТекКолонка.Имя);


КонецЦикла;



Для Каждого ТекКолонка из ТЗ.Колонки Цикл


ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ТекКолонка.Имя, ТекКолонка.ТипЗначения, ИмяТФ));


КонецЦикла;



//Добавим новые, удалим старые колонки


ИзменитьРеквизиты(ДобавляемыеРеквизиты, УдаляемыеРеквизиты);


// Поместим значение в реквизит формы 1С


ЗначениеВРеквизитФормы(ТЗ, ИмяТФ);

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

3.      ЗначениеВСтрокуВнутр() – только для толстого клиента 1С 8.3

Третий вариант – передать таблицу значений на клиент 1С. Для этого используется ЗначениеВСтрокуВнутр(), но лучше его не использовать, ибо эта функция на данный момент доступна только на толстом клиенте 1С 8.3. Сам код похож на временное хранилище:


//Укладываем ТЗ в строку


тзВСтроке = ЗначениеВСтрокуВнутр(тз);


//Вытаскиваем ТЗ из строки


тз = ЗначениеИзСтрокиВнутр(тзВСтроке);

Есть еще много вариантов передачи таблицы значений 1С на клиента, начиная со структур, заканчивая XML, но стоит ли их использовать решать Вам. В данной статье перечислены варианты которые покроют 100% нужд.

Специалист компании «Кодерлайн»

Роман Барабанов

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

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

Для поиска решения я создал в тестовый пример для не типовой конфигурации.

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

Реквизиты объекта
Настройки формы

Стоит обратить внимание, что на форме табличное поле связано с данными реквизита формы, а не реквизитом объекта.

Модуль формы
Модуль объекта

Также, здесь мы видим как в 1С можно выполнить на клиенте в модуле формы обращение к функции Модуля объекта. Делаем функцию в модуле объекта Экспортной. Получаем Объект через РеквизитФормыВЗначение, вызываем экспортную функцию общего модуля.

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

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

Такие таблицы
значений (расположенные на форме как реквизиты формы/объекта) по факту имеют
тип — ДанныеФормыКоллекция.

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

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

Пример: на форме две
ТЗ со схожим набором колонок:

Если нужно полностью
скопировать строки из одной ТЗ (Пользователи1ССлужебный) в другую
(Пользователи1С), то можно указать следующий код:

//&НаСервере

Объект.Пользователи1С.Очистить();

Объект.Пользователи1С.Загрузить(Объект.Пользователи1ССлужебный.Выгрузить());

Такой код работает
только на сервере.

Будут скопированы
только те колонки, которые в обеих таблицах совпадают.

При выгрузке можно
задать условия, что выгружать.

1) Выгрузить только
определенные колонки:

Выгрузить(, «Колонка1, Колонка2,
Колонка3»
)

2) Выгрузить только
определенные строки:

Выгрузить(МассивВыгружаемыхСтрок, )

3) Выгрузить только
определенные колонки из определенных строк:

Выгрузить(МассивВыгружаемыхСтрок, «Колонка1, Колонка2,
Колонка3»
)

4) Выгрузить только
строки по определенному отбору/фильтру:

Выгрузить(Новый Структура(«Колонка1», ЗначениеОтбораКолонки), ) 

5) Выгрузить только
определенные колонки из строк по определенному отбору/фильтру:

Выгрузить(Новый Структура(«Колонка1», ЗначениеОтбораКолонки), «Колонка1, Колонка2, Колонка3»)

Примечание: Если указан отбор, то только строки из
отбора будут выгружены. Если отбор не указан, то будут выгружены все строки
коллекции. Если указаны колонки, то только эти колонки будут выгружены. Иначе,
будут выгружены все колонки коллекции.

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

Для Каждого СтрокаТЗ Из Объект.Пользователи1ССлужебный Цикл

    // какой-нибудь код,
например

    СтрокаТЗ.СостояниеВ1С = «Обработано»; 

    // копирование строки в
другую ТЗ

    ЗаполнитьЗначенияСвойств(Объект.Пользователи1С.Добавить(), СтрокаТЗ);   

КонецЦикла;

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

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

Отличия функций РеквизитФормыВЗначение и ДанныеФормыВЗначение

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

Вариант №1

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


&НаСервере
Функция ПолучитьТЗКакМассивСтруктур()

МояТаблицаЗначений = СоздатьТаблицуЗначений();

МассивСтруктур = Новый Массив;
Для Каждого СтрокаТЗ Из МояТаблицаЗначений Цикл
СтрокаСтруктура = Новый Структура;
Для Каждого КолонкаТЗ Из МояТаблицаЗначений.Колонки Цикл
СтрокаСтруктура.Вставить(КолонкаТЗ.Имя, СтрокаТЗ[КолонкаТЗ.Имя]);
КонецЦикла;
МассивСтруктур.Добавить(СтрокаСтруктура);
КонецЦикла;

Возврат МассивСтруктур;

КонецФункции // ПолучитьТЗКакМассивСтруктур()

&НаКлиенте
Процедура ПолучитьДанные()

ДанныеТаблицы = ПолучитьТЗКакМассивСтруктур();

КонецПроцедуры // ПолучитьДанные()

Минус данного решения — это отсутствие тех самых полезных методов таблицы значений.

Вариант №2

Этот вариант намного сложнее, но выполнив его, считайте что к одному из пунктов экзамена на знание платформы 1С 8.2 или 8.3 «Специалист» вы подготовились. Здесь используется динамическое создание реквизитов формы. Алгоритм, примерно, такой: создается реквизит формы с типом ТаблицаЗначений, для этого реквизита создаются подчиненные реквизиты (колонки таблицы) и производиться загрузка данных таблицы значений в новый реквизит формы.

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

Рисунок 1. Реквизит формы типа ТаблицаЗначений

А потом написать следующий код:


&НаСервере
Функция ОтправитьТаблицуЗначенийНаКлиент()

МояТаблицаЗначений = ПолучитьТаблицуЗначений();

ДобавляемыеРеквизиты = Новый Массив;
УдаляемыеРеквизиты = Новый Массив;

МассивКолонок = Новый Массив;
ИмяТаблицыФормы = "ИмяТаблицыЗначений";

ТаблицаФормы = РеквизитФормыВЗначение(ИмяТаблицыФормы);

Для Каждого ТекКолонка из ТаблицаФормы.Колонки Цикл
УдаляемыеРеквизиты.Добавить(ИмяТаблицыФормы + "." + ТекКолонка.Имя);
КонецЦикла;

Для Каждого ТекКолонка из МояТаблицаЗначений.Колонки Цикл
ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ТекКолонка.Имя, ТекКолонка.ТипЗначения, ИмяТаблицыФормы));
МассивКолонок.Добавить(ТекКолонка.Имя);
КонецЦикла;

// Добавим новые, удалим старые колонки
ИзменитьРеквизиты(ДобавляемыеРеквизиты, УдаляемыеРеквизиты);
// Поместим значение в реквизит формы
ЗначениеВРеквизитФормы(МояТаблицаЗначений, ИмяТаблицыФормы);

Возврат МассивКолонок;

КонецФункции // ОтправитьТаблицуЗначенийНаКлиент()

Далее на клиенте можно смело обращаться к свежеиспеченной таблице значений ЭтаФорма.ИмяТаблицыЗначений…

Перейти к контенту

Перейти в основной раздел:

При открытии формы (создании на сервере) выводим Таблицу значений (&НаСервере) в 1С 8.3:

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)// Создаем таблицу значений
   
ТЗ = Новый ТаблицаЗначений;// Добавляем колонки в таблицу значений
   
ТЗ.Колонки.Добавить(«Овощь»);
   
ТЗ.Колонки.Добавить(«Цвет»);
   
ТЗ.Колонки.Добавить(«Вкус»);// Добавляем строки в таблицу значений
   
Стр = ТЗ.Добавить();
   
Стр.Овощь = «Дыня»;
   
Стр.Цвет = «Желтая»;
   
Стр.Вкус = «Сладкая»;Стр = ТЗ.Добавить();
   
Стр.Овощь = «Лук»;
   
Стр.Цвет = «Зеленый»;
   
Стр.Вкус = «Горький»;Стр = ТЗ.Добавить();
   
Стр.Овощь = «Помидор»;
   
Стр.Цвет = «Красный»;
   
Стр.Вкус = «Сочный»;// ТабРеквизит — таблица значений на форме
   
ЗначениеВРеквизитФормы(ТЗ, «ТабРеквизит»);

КонецПроцедуры

Программный вывод таблицы значений в таблицу на форму:

Пример вызова: ПрограммныйВыводТаблицыЗначенийВТаблицуНаФорму(МодульОбъкта.ТЗИзExcel, «ТЗИзExcel», Истина, Истина);

// Процедура — Программный вывод таблицы значений в таблицу на форму
//
// Параметры:
//  ТаблицаЗначенийДляВывода             — ТаблицаЗначений     — ТаблицаЗначений для вывода на форму
//  ИмяРеквизитаФормы                     — Строка             — Наименование реквизита формы ДанныеФормыКоллекция
//  ИспользованиеКолонкиОтметка             — Булево             — Вывод колокни отметка
//  ТолькоКнопкаОткрытия                 — Булево             — Отображение кнопок
//
&НаСервере
Процедура ПрограммныйВыводТаблицыЗначенийВТаблицуНаФорму(ТаблицаЗначенийДляВывода, ИмяРеквизитаФормы, ИспользованиеКолонкиОтметка = Ложь, ТолькоКнопкаОткрытия = Истина)


   // Функционал данного механизма служит для программного вывода «Таблицы значений»
   // в реквизит управляемой  формы с типом «ДанныеФормыКоллекция». Может быть полезен
   // в задачах, где состав колонок выгружаемой таблицы значений может меняться.
   // Механизм предусматривает работу как с реквизитом объекта, так и с реквизитом формы.

   // Также реализована возможность быстрого добавления колонки «Отметка» и настройки доступности кнопок полей.
   // Процедура должна быть размещена в модуле формы.

   Попытка

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

           МассивУдаляемыхРеквизитов = Новый Массив;
           МассивДобавляемыхРеквизитов = Новый Массив;
           МассивИсключаемыхРеквизитов = Новый Массив;

           // Формируем массив колонок для удаления
           Для Каждого Колонка Из ОбъектДляОтображенияНаФорме.Колонки Цикл
               МассивУдаляемыхРеквизитов.Добавить(ПутьКДаннымФормыКоллекция + «.» + Колонка.Имя);
           КонецЦикла;

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

           // Добавляем колонку «Отметка»
           Если ИспользованиеКолонкиОтметка Тогда
               НоваяКолонка = Новый РеквизитФормы(«Отметка», Новый ОписаниеТипов(«Булево»),  ПутьКДаннымФормыКоллекция);
               МассивДобавляемыхРеквизитов.Добавить(НоваяКолонка);
           КонецЕсли;

           // Формируем массив колонок из таблицы значений
           Для Каждого Колонка Из ТаблицаЗначенийДляВывода.Колонки Цикл
               Если Колонка.ТипЗначения.Типы().Найти(Тип(«Тип»)) = Неопределено Тогда
                   НоваяКолонка = Новый РеквизитФормы(Колонка.Имя, Новый ОписаниеТипов(Колонка.ТипЗначения.Типы()), ПутьКДаннымФормыКоллекция);
                   МассивДобавляемыхРеквизитов.Добавить(НоваяКолонка);
               Иначе
                   Сообщить(«Колонка « + Строка(Колонка.Имя) + » с типом:  не может быть выгружена»);
                   МассивИсключаемыхРеквизитов.Добавить(Колонка);
               КонецЕсли;
           КонецЦикла;

           // Обновляем реквизиты формы
           ИзменитьРеквизиты(МассивДобавляемыхРеквизитов, МассивУдаляемыхРеквизитов);

           //Создаем элементы на форме для отображения колонок
           ЭлементТЗ = Элементы[ИмяРеквизитаФормы];

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

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

           // Загружаем таблицу значений в данные формы коллекцию
           Если ЭтоРеквизитОбъекта Тогда
               Объект[ИмяРеквизитаФормы].Загрузить(ТаблицаЗначенийДляВывода);
           Иначе
               ЭтаФорма[ИмяРеквизитаФормы].Загрузить(ТаблицаЗначенийДляВывода);
           КонецЕсли;
       Иначе
           Сообщить(«Выводить можно только таблицу значений»);
       КонецЕсли;

   Исключение
       ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ОписаниеОшибки());
   КонецПопытки;

КонецПроцедуры

Copyright©, «Программист 1С в г.Минске», 19.04.2021

Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник

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

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

Таблица значений-объект, позволяющий строить динамические наборы значений и работать с ними. Она заполняется значениями разных типов. Таблица значений может иметь любое количество колонок и быть связанным с элементом “Табличное поле”. 

Создадим обработку(можно внешнюю) содержащую один Реквизит Результат. Тип реквизита Таблица Значений.

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

Реквизит типа Таблица Значений

Для обработке сделаем Форму. На нее добавим одну команду Заполнить.Обработчик Команды на клиенте и процедура на сервере.

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

Создаем команду заполнить

Перетащим кнопку на Форму. В результате получим форму следующего вида:

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

Форма обработки

Модуль формы будет выглядеть так:

код процедуры заполнения формы

Модуль формы обработки

В Таблице Значений на Обработке мы планируем вывести данные выбранные из Регистра Накопления ОстаткиНоменклатуры. Примерный вид Таблицы Значений такой:

Данные для таблицы значений
Отчет с данными для таблицы значений 1с

Изменяем Реквизит Результат. Добавляем в него Колонки Реквизита так, чтобы имена Колонок и Типы совпадали с данными представленными выше.

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

Настраиваем реквизит Результат

Перетаскиваем Реквизит Результат на Форму. Соглашаемся на добавление колонок в Таблицу Значений, нажав Да.

Выгрузка таблицы значений 1с
Перетаскиваем Реквизит на форму.

Наша форма примет вид:

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

Переходим в Модуль формы. В процедуре на Сервере вначале создаем Запрос.

Код запроса к регистру 1с

Код запроса к регистру

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

Ответом на вопрос представленный код ниже.

Выгружаем результат запроса в Таблицу Значений:

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

Связываем Таблицу Значений в которой сохранен результат запроса с Объектом на форме типа ТаблицаЗначений.

Выгрузка таблицы значений 1с
Записываем таблицу значений в данные формы 1с

Полный код обработки выглядит так:

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

Полный код

Результат работы обработки следующий:

Результат работы обработки

Результат выгрузки

Нами произведена выгрузка Таблицы значений 1с.

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

Рассмотрим еще один пример.

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

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

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

Понравилась статья? Поделить с друзьями:
  • Переоформить компанию на другого учредителя
  • Ошибка программирования реквизита 1226 атол
  • Перепелиный бизнес рентабельность с цифрами
  • Ошибка программирования реквизита 1228 атол
  • Перепись малого бизнеса в 2021 году росстат