Андрей Смирнов
Время чтения: ~13 мин.
Просмотров: 0

Статьи о разработке интернет сайтов и программ

Console-624x303.jpg

С задачей вывода каких либо данных в Таблицу Значений (ТЗ) на форме сталкиваются наверное все программисты.  Если раньше до выхода Управляемого Интерфейса все решалось довольно просто, то теперь все немного изменилось.

Для обычных форм.

Результат = Запрос.Выполнить();    ТЗ = Результат.Выгрузить();

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

Таб = НовыйТаблицаЗначений;    Таб.Колонки.Добавить("Фрукт");    Таб.Колонки.Добавить("Цвет");    Таб.Колонки.Добавить("Вкус");

Для управляемых форм все ровно  тоже самое кроме того что нужно на сервере получить значение данных ТЗ на форме, записать в них результат запроса и потом снова вернуть их на форму.

Ниже пример такого преобразования.

&НаСервере  Процедура ЗаполнитьОстаткиНаСервере()  //Документ = РеквизитФормыВЗначение("Объект");  Запрос = Новый Запрос;  Запрос.Текст =   "ВЫБРАТЬ  |ПартииНоменклатурыОстатки.Товар КАК Товар,  |ПартииНоменклатурыОстатки.Товар.Производитель КАК Производитель,  |МАКСИМУМ(Штрихкоды.Штрихкод) КАК Штрихкод,  |ПартииНоменклатурыОстатки.КоличествоОстаток КАК Остаток  |ПОМЕСТИТЬ Остатки  |ИЗ  |РегистрНакопления.ПартииНоменклатуры.Остатки КАК ПартииНоменклатурыОстатки  |ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Штрихкоды КАК Штрихкоды  |ПО ПартииНоменклатурыОстатки.Товар.Ссылка = Штрихкоды.Номенклатура.Ссылка  |ГДЕ  |ПартииНоменклатурыОстатки.КоличествоОстаток > 0  |  |СГРУППИРОВАТЬ ПО  |ПартииНоменклатурыОстатки.Товар.Производитель,  |ПартииНоменклатурыОстатки.КоличествоОстаток,  |ПартииНоменклатурыОстатки.Товар  |;  |  |////////////////////////////////////////////////////////////////////////////////  |ВЫБРАТЬ  |Остатки.Товар КАК Товар,  |Остатки.Производитель КАК Производитель,  |Остатки.Штрихкод КАК Штрихкод,  |Остатки.Остаток КАК Остаток,  |СохраненныеКартинки.КартинкаЗаполнена КАК Фото  |ИЗ  |Остатки КАК Остатки  |ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СохраненныеКартинки КАК СохраненныеКартинки  |ПО Остатки.Товар = СохраненныеКартинки.Владелец  |  |УПОРЯДОЧИТЬ ПО  |Фото,  |Остатки.Товар.Наименование";    РезультатЗапроса = Запрос.Выполнить();    ТЗ = Запрос.Выполнить().Выгрузить();  ЭтаФорма.Номенклатура.Очистить();  ЭтаФорма.Номенклатура.Загрузить(ТЗ);    //ЗначениеВРеквизитФормы(Документ, "Объект");  КонецПроцедуры    &НаКлиенте  Процедура ЗаполнитьОстатки(Команда)  ЗаполнитьОстаткиНаСервере();  Элементы.Номенклатура.Обновить();  КонецПроцедуры

Во всей этой истории следует обратить внимание на 2 строчки.

Первая

Документ = РеквизитФормыВЗначение("Объект");

Вторая

ЗначениеВРеквизитФормы(Документ, "Объект");

Первый из типа данных ДанныеФормыКоллекция преобразует данные в тип ТаблицаЗначений. Второй соответственно конвертирует в обратном направлении.

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

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

Таблица значений 1С на управляемой форме

На любой управляемой форме 1С 8.3 разработчик может разместить таблицу значений в виде реквизита формы. Для этого нужно создать новый реквизит и задать ему тип «Таблица значений».

1.jpg

Таблица значений на форме размещается в виде элемента формы Таблица.  Это элемент будет создан автоматически, если мы перетащим мышкой реквизит с типом таблица значений в дерево элементов.

2.jpg

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

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

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

ТЗ = Новый ТаблицаЗначений;

Эта таблица значений будет существовать в том контексте, в котором Вы её создали: если Вы создали её в процедуре или функции, то она будет существовать до того момента пока выполняется эта процедура или функция. Если Вы её создали в программном модуле объекта, то таблица значений будет существовать пока выполняется обращение к этому объекту.

Но имейте в виду, что если вы создали таблицу значений в процедуре или функции программного модуля управляемой формы 1С 8.3, то на клиенте (под директивой &НаКлиенте) код будет выполняться только в толстом клиенте. В тонком клиенте и на веб-клиенте нельзя работать с таблицей значений. Возникнет ошибка!

3.jpg

Но, на тонком и веб-клиенте нельзя работать только с таблицей значений 1С, которая создана программно (с помощью оператора Новый). Если же таблица значений создана на форме в виде реквизита, то обращаться к этому реквизиту можно в любом контексте, платформа преобразует её  в объект ДанныеФормыКоллекция.

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

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

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

О работе с колонками и строками в таблицах значений 1С читайте в статьях по ссылкам:

Колонки таблицы значений в 1С 8.3 (8.2)Строки таблицы значений в 1С 8.3 (8.2)Методы таблиц значений 1С 8.3. Часть 1. Поиск и копированиеМетоды таблиц значений 1С 8.3. Часть 2. Сортировка, итоги и свертка.

Статьи о других универсальных коллекциях значений в 1С

Соответствия в 1С

Массивы в 1С

Список значений в 1С

Структура в 1С

Более подробно о работе с таблицами значений и другими интересными объектами языка программирования в 1С читайте в моей книге «Программировать в 1С за 11 шагов»

1C-в-желтом-цвете-3D-221x300.pngКнига «Программировать в 1С за 11 шагов»

Изучайте программирование в 1С в месте с моей книги «Программировать в 1С за 11 шагов»

  1. Книга написана понятным и простым языком — для новичка.
  2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  3. Научитесь понимать архитектуру 1С;
  4. Станете писать код на языке 1С;
  5. Освоите основные приемы программирования;
  6. Закрепите полученные знания при помощи задачника;

Книга «Основы разработки в 1С: Такси»

1_в-желтом-цвете-3D-маленькая-221x300.jpg

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

  1. Очень доступный и понятный язык изложения
  2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  3. Поймете идеологию управляемого приложения 1С
  4. Узнаете, как разрабатывать управляемое приложение;
  5. Научитесь разрабатывать управляемые формы 1С;
  6. Сможете работать с основными и нужными элементами управляемых форм
  7. Программирование под управляемым приложением станет понятным

Промо-код на скидку в 15% — 48PVXHeYu

можно оплатить вручную:

Вступайте в мои группы:

Вконтакте: https://vk.com/1c_prosto Фейсбуке: https://www.facebook.com/groups/922972144448119/ ОК: http://ok.ru/group/52970839015518 Твиттер: https://twitter.com/signum2009

Категории статей

PHP (16)

Алгоритмы (6)

SQL (13)

HTML, CSS, jQuery (9)

Delphi (15)

Разное (9)

Последние статьи

Обновление нескольких записей разными данными значениями в SQL

Проверка правильности email на PHP

Удаление элемента в массиве PHP

Отключение авто-заполнения в текстовых полях формы

Экспорт данных в Excel на PHP

Округление чисел в Delphi

Программы

Преобразование формата даты и времени

Сохранение изображения в формате ICO

  • Обновление нескольких записей разными данными значениями в SQL

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

    Дата:19.12.2017Категория:SQL

  • Проверка правильности email на PHP

    Описание и пример валидации адреса электронной почты средствами PHP.

    Дата:25.04.2017Категория:PHP

  • Удаление элемента в массиве PHP

    Описание и пример удаления элементов массива в PHP при известном ключе элемента или его значении.

    Дата:28.03.2017Категория:PHP

  • Отключение авто-заполнения в текстовых полях формы

    Описание возможностей управления авто-заполнением текстовых полях (input) html-формы.

    Дата:28.02.2017Категория:HTML, CSS, jQuery

  • Экспорт данных в Excel на PHP

    Пример и описание выгрузки данных в Excel средствами PHP.

    Дата:31.01.2017Категория:PHP

  • Округление чисел в Delphi

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

    Дата:17.01.2017Категория:Delphi

  • Математические функции в Delphi

    Описание и примеры использования математических функций, применяемых в программах на Delphi.

    Дата:13.01.2017Категория:Delphi

  • Закрытие формы нажатием Escape в Delphi

    Разбор небольшой задачи выхода из формы при нажатии на клавишу ESC в Delphi.

    Дата:11.01.2017Категория:Delphi

  • Установить, снять галочку, узнать состояние CheckBox в jQuery

    Описание и пример управления состоянием чекбокса CheckBox с помощью скрипта jQuery.

    Дата:26.10.2016Категория:HTML, CSS, jQuery

  • Отмена отправки (submit) нажатием Enter в поле формы

    Статья на тему управления отправки данных формы по нажатию на Enter после ввода текстового поля.

    Дата:25.10.2016Категория:HTML, CSS, jQuery

  • Копирование в таблицу данных из другой таблицы запросом SQL

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

    Дата:17.08.2016Категория:SQL

  • ID последней записи в базе данных запросом SQL

    Описание и пример получения идентификатора последней добавленной записи в БД с помощью SQL-запроса.

    Дата:12.08.2016Категория:SQL

  • ID последней записи в базе данных MySQL в PHP

    Описание и пример нахождения идентификатора последней добавленной записи в БД MYSQL средствами PHP.

    Дата:12.08.2016Категория:PHP

  • Переименование таблицы БД запросом SQL (RENAME TABLE)

    Описание и пример переименования таблицы в базе данных командой RENAME TABLE.

    Дата:03.08.2016Категория:SQL

  • Удаление или замена слова в строке запросом SQL (REPLACE)

    Описание и примеры запросов SQL для удаления или изменения слов в строке командой REPLACE.

    Дата:28.07.2016Категория:SQL

  • Классификация доменов первого уровня по виду деятельности

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

    Дата:08.04.2016Категория:Разное

  • Классификация доменов первого уровня по географическому признаку

    Список доменных имен первого уровня по территориальному расположению и национальной принадлежности.

    Дата:08.04.2016Категория:Разное

  • Что такое домен и для чего он нужен?

    Описание назначения доменов различного уровня и принципов адресации сайтов в сети Интернет.

    Дата:08.04.2016Категория:Разное

  • Что такое хостинг?

    Объяснение о том, что такое хостинг, каким он бывает и где хранятся интернет сайты.

    Дата:05.04.2016Категория:Разное

  • Самая простая система управления сайтом (CMS)

    Описание предпосылок для создания нового CMS и обсуждение требований к нему.

    Дата:29.03.2016Категория:Разное

  • Что такое интернет сайт?

    Краткое определение вебсайтов и описание их видов.

    Дата:25.03.2016Категория:Разное

  • Простой способ открыть XML-файл выписки Росреестра

    Описание проблемы и инструкция по открытию XML-выписки Росреестра в форме печатного документа.

    Дата:22.03.2016Категория:Разное

  • Падающие снежинки на сайте

    Статья о новогоднем украшении сайта падающими снежинками с использованием JavaScript.

    Дата:15.12.2015Категория:HTML, CSS, jQuery

  • Звук по нажатию на ссылку

    Проигрывание звукового файла при клике по ссылке на сайте.

    Дата:02.12.2015Категория:HTML, CSS, jQuery

  • Удаление из строки HTML тегов в PHP

    Описание полной или частичной очистки текста от тегов средствами PHP.

    Дата:24.11.2015Категория:PHP

  • Запросы SQL для обновления данных (UPDATE)

    Описание и примеры SQL запросов для обновления данных в таблице БД.

    Дата:06.10.2015Категория:SQL

  • Запрос SQL для вставки нескольких записей (INSERT)

    Описание и примеры SQL-запросов для добавления сразу нескольких строк в таблицу БД.

    Дата:08.09.2015Категория:SQL

  • Запросы SQL добавления данных (INSERT)

    Описание и примеры SQL-запросов вставки новых записей в таблицу БД.

    Дата:04.09.2015Категория:SQL

  • Отправка (submit) формы после выбора файла с оформлением input[file]

    Статья с описанием как с помощью jQuery и CSS реализовать форму, которая будет отправляться после выбора файла, а выбор файла вызывается нестандартным компонентом.

    Дата:23.06.2015Категория:HTML, CSS, jQuery

  • Сортировка данных в SQL (ORDER BY)

    Приведение данных к упорядоченности по одному или нескольким полям в SQL командой ORDER BY.

    Дата:26.05.2015Категория:SQL

  • Условия отбора в запросе SQL (WHERE)

    Статья с описанием простейших условий выборки данных WHERE.

    Дата:22.05.2015Категория:SQL

  • SQL запросы на выборку (SELECT)

    Организация запроса на выборку в SQL командой SELECT.

    Дата:22.05.2015Категория:SQL

  • Язык структурированных запросов SQL

    Введение в язык структурированных запросов SQL.

    Дата:19.05.2015Категория:SQL

  • Запросы на выборку из БД в Delphi с использованием компонента ADOQuery

    Статья с примером организации запроса на выборку из базы данных с применением компонента Delphi ADOQuery

    Дата:20.04.2015Категория:Delphi

  • Расположение текста вертикально (CSS, HTML)

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

    Дата:16.04.2015Категория:HTML, CSS, jQuery

  • Округление чисел в PHP

    Описание функций округления числа до целого или до заданной точности после запятой в PHP.

    Дата:14.03.2015Категория:PHP

  • Удаление повторяющихся строк в таблице запросом SQL

    Формирование запроса SQL для удаления одинаковых записей в базе данных.

    Дата:09.03.2015Категория:SQL

  • Копирование, перемещение и переименование папки в PHP

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

    Дата:17.02.2015Категория:PHP

  • Создание, назначение доступа, удаление и проверка наличия папки в PHP

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

    Дата:11.02.2015Категория:PHP

  • Перезагрузка и обновление страницы выбором в select

    Пример использования jQuery для загрузки страницы с новыми параметрами, выбирая их значение в поле со списком select.

    Дата:05.02.2015Категория:HTML, CSS, jQuery

  • Переключение radio кнопки и checkbox нажатием на подпись в HTML

    Описание использования подписи для управления переключателями на HTML форме.

    Дата:31.01.2015Категория:HTML, CSS, jQuery

  • Копирование, переименование и перемещение файлов в PHP

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

    Дата:15.01.2015Категория:PHP

  • Создание, открытие, чтение, запись, удаление и проверка наличия файла в PHP

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

    Дата:12.01.2015Категория:PHP

  • Форма отправки данных в PHP (POST, GET)

    Описание структуры формы отправки данных и PHP-кода для обработки полученных данных методами POST и GET.

    Дата:09.01.2015Категория:PHP

  • Отличия методов POST и GET

    Описание основных отличий и сферы применений методов передачи данных POST и GET.

    Дата:09.01.2015Категория:PHP

  • Копирование, перемещение и переименование папки в Delphi

    Статья с описанием функций для работы с папками в языке программирования Delphi (копирование, перемещение и переименование директории)

    Дата:07.01.2015Категория:Delphi

  • Создание, удаление и проверка на наличие папки в Delphi

    Статья с описанием функций для работы с папками в языке программирования Delphi (создание, удаление, проверка существования директории).

    Дата:05.01.2015Категория:Delphi

  • Копирование, удаление, перемещение, переименование и проверка на наличие файла в Delphi

    Описание функций для манипуляции с файлами средствами Delphi.

    Дата:03.01.2015Категория:Delphi

  • Алгоритм перемешивания массива

    Реализация алгоритма для перемешивания заданной последовательности значений в массиве.

    Дата:27.12.2014Категория:Алгоритмы

  • Как определить расширение файла в PHP

    Статья с описанием и примерами кода на PHP для определения расширения файла.

    Дата:23.12.2014Категория:PHP

  • Значения ошибок $_FILES в PHP

    Описание получаемых значений ошибок в суперглобальном массиве $_FILES.

    Дата:19.12.2014Категория:PHP

  • Загрузка файла на сервер в PHP (upload)

    Описание механизма загрузки и сохранение файлов на сервер средствами PHP.

    Дата:19.12.2014Категория:PHP

  • Работа с датой и временем в PHP

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

    Дата:12.12.2014Категория:PHP

  • Алгоритм сортировки перемешиванием (Шейкерная сортировка, двунаправленная пузырьковая сортировка)

    Еще одна из вариаций улучшения пузырьковой сортировки.

    Дата:08.12.2014Категория:Алгоритмы

  • Алгоритм быстрой сортировки

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

    Дата:08.12.2014Категория:Алгоритмы

  • Алгоритм сортировки выбором

    Описание одного из простейших алгоритмов сортировки с примером программного кода.

    Дата:08.12.2014Категория:Алгоритмы

  • Алгоритм сортировки методом пузырька

    Описание простейшего алгоритма сортировки с примером реализации.

    Дата:08.12.2014Категория:Алгоритмы

  • Алгоритмы сортировки

    Определение алгоритма сортировки, характеристики и перечень его видов.

    Дата:08.12.2014Категория:Алгоритмы

  • Работа с базой данных Access в Delphi

    Описание подключения проекта Delphi к файлу СУБД MS Access и реализация простейшей формы для управления данными.

    Дата:05.12.2014Категория:Delphi

  • Картинки в ячейках StringGrid Delphi

    Статья с описанием как добавить изображения в ячейки StringGrid.

    Дата:02.12.2014Категория:Delphi

  • Загрузка данных из Excel в Delphi StringGrid или массив

    Описание механизма загрузки данных из страницы Excel в двумерный массив и выводом в StringGrid на форму.

    Дата:28.11.2014Категория:Delphi

  • Создание и работа с текстовыми файлами в Delphi

    Описание порядка и команд для работы с текстовыми файлами средствами Delphi.

    Дата:26.11.2014Категория:Delphi

  • Назначение размера столбцов и строк Delphi StringGrid

    Краткая статья о том, как сформировать удобную таблицу, назначив размеры отдельных столбцов и строк.

    Дата:19.11.2014Категория:Delphi

  • Выравнивание текста в ячейке Delphi StringGrid

    Описание программной центровки текста в ячейках StringGrid.

    Дата:19.11.2014Категория:Delphi

  • Изменение цвета ячеек Delphi Stringgrid

    Описание механизма закраски ячеек и изменение цвета шрифта ячеек StringGrid.

    Дата:19.11.2014Категория:Delphi

  • Описание компонента Delphi StringGrid

    Описание назначения, свойств и примеров применения компонента Delphi StringGrid.

    Дата:18.11.2014Категория:Delphi

  • XenForo — выполнение собственного php-файла

    Простой вызов собственного php-файла с выводом результата в шаблон xenForo.

    Дата:14.08.2014Категория:Разное

  • JQuery Lightbox — настройка размера картинки

    Описание, как исправить код скрипта, чтобы настроить размер изображений в окне Lightbox.

    Дата:03.08.2014Категория:Разное

Используемые источники:

  • https://alimuradov.ru/vyvesti-rezultat-zaprosa-v-tablicu-z/
  • https://www.1s-up.ru/tablica-znachenij-v-1c-8-2-8-3/
  • https://space-base.ru/library/

Рейтинг автора
5
Подборку подготовил
Максим Уваров
Наш эксперт
Написано статей
171
Ссылка на основную публикацию
Похожие публикации