28.10.2020 Роман Барабанов 84126
Передача таблицы значений на клиент 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С:ERP Управление предприятием 2.0

Оформление заказов поставщикам
Взаиморасчеты с покупателями
Оформление...

ООО «Иви.ру»
ООО «Иви.ру»

Отрасль:
Медиаиндустрия

Внедренное типовое решение:
1С:Управление корпоративными финансами

Подсистема казначейства
Модуль бюджетного контроля по ДДС ...

Автоматизация системы учета продаж газа на базе «1С:ERP Управление предприятием 2.0»
ООО «Эйр Продактс Газ»

Отрасль:
Производство промышленных газов

Внедренное типовое решение:
1С:ERP Управление предприятием 2.0

- Расчеты с контрагентами;
- Производственные операции;
- Управление скла...

1с-РАРУС МСК
1с-РАРУС МСК

Отрасль:
Разработка компьютерного программного обеспечения

Внедренное типовое решение:

- Совместная работа по внедрению разных решений, в том числе «1С:ERP Управление...

Автоматизация складских операций на базе «1С:Предприятие 8. WMS Логистика. Управление складом»
ОАО «Фрейт Линк»

Отрасль:
Логистика и грузоперевозки

Внедренное типовое решение:
1С:Управление холдингом

Реализовали разработку уникального модуля «Интернет-магазины» на базе прог...

Внедрение «1С:Зарплата и управление персоналом 8 КОРП» в компании «ПБК»
ООО «Партнер Бухгалтер Консультант»

Отрасль:
Бухгалтерские услуги

Внедренное типовое решение:
1С:Зарплата и управление персоналом

- Интеграция продукта с базой данных оперативного учета Axapta;
- Доработка фуÐ...

ООО «ДАФ Тракс Рус» (DAF Trucks Rus)
ООО «ДАФ Тракс Рус» (DAF Trucks Rus)

Отрасль:
Машиностроение

Внедренное типовое решение:
«1С:Управление корпоративными финансами»

- Осуществлена разработка матрицы прав и ролей для финансового подразделени...

АО «Аэроклуб»
АО «Аэроклуб»

Отрасль:
Услуги в области делового туризма

Внедренное типовое решение:
1С:Бухгалтерия 8 КОРП

Проведение серии интервью с руководством и ключевыми специалистами РазрабÐ...

Установка программного продукта БИТ.Финанс для 1С:Бухгалтерия 8
ООО «Джи Эй Си Шиппинг энд Лоджистикс»

Отрасль:
Транспорт

Внедренное типовое решение:
БИТ.Финанс

Построение единого информационного пространства финансовой службы;
Учет ...

ООО «Мир Аксиомы»
ООО «Мир Аксиомы»

Отрасль:
Аудиторские и консалтинговые услуги

Внедренное типовое решение:
1С:Бухгалтерия КОРП

- Бухгалтерский учет:
Банк и касса
Завершение периода
Нематериальные ...

Автоматизация кадрового учета на базе «1С:ERP Управление предприятием 2.0»
Автопредприятие ПАО «Газпром»

Отрасль:
Транспорт

Внедренное типовое решение:
1С:ERP Управление предприятием 2.0

- Настройка подсистемы кадрового учета;
- Перенос персональных данных;
- З...

Автоматизация подсистемы учета взаиморасчетов с агентами и интернет-магазинами на базе «1С:Управление холдингом 8»
ОАО «Фрейт Линк»

Отрасль:
Логистика и грузоперевозки

Внедренное типовое решение:
1С:Управление холдингом

– Оформление заказов поставщикам;
– Управление отношениями с поставщика...

Наши соц. сети

Telegram-канал «Koderline 1С» Группа в Вконтакте «Кодерлайн КОРП» Rutube

Остались вопросы - обратитесь к нам!

Впишите свои Имя и Телефон, чтобы мы ответили на все интересующие Вас вопросы.
ФИО*
E-mail*
Телефон*
Сообщение