Передача результата запроса в таблицу управляемой формы. Мой алгоритм.
Всем, кто начинает работать с 8.2 после 8.1, не сразу становится понятным, зачем было настолько усложнять работу программистам.
На сервере мы можем выполнить запрос, на управляемую форму бросить таблицу значений, но вот передать результат запроса прямо в таблицу возможности нет. Я решил слегка упростить данный момент для разработки. Вот что у меня получилось.
(2) а у меня вот это нормально работает:
ты б обновился, а то какие то старые версии 14ой ключики жгут.
заполняем как нам нужно
.
ВСЕ!
А мат. часть учите)
(9). Знаю-знаю про ЗначениеВРеквизитФормы. Только вот не всегда оно срабатывает. У меня вот не захотело отрабатывать и вылетало по ошибке. Почему-то. Потому и пришлось вот так вот извращаться. Вот у Stepa86 тзНаФорме.Загрузить(Запрос.Выполнить.Выгрузить()) работает. У меня опять же выдает ошибку.
Если бы все было так просто, то не было бы так сложно.
В обработке добавил реквизит «Товары» с типом «ТаблицаЗначений». Из команды, которая на клиенте вызывается сервеерная функция формирования таблиц данных, которые потом буду выводить в файлы. Отображать эти таблицы на экране не обязательно, но с точки зрения понять как это можно сделать, не помешало бы.
Далее собирался вызвать несколько процедур формирования файлов.
Пробовал изначально задать колонки в клиенте, но нет свойства Объект.товары.Колонки. Тупик какой-то однако.
1с8.2-8.3.Вывод на экран данных запроса с переданными Параметрами из Документа! 8 различных вариантов:от Сообщений, Таблицы и Отчетов до СКД без объекта-отчета
В ссылке лежит база-черновик, созданная на платформе 1С8.3 управляемые формы. У меня настроен безМодальный режим, его всегда можно изменить на модальный:правой клавишей мыши на саму конфигурацию Черновик-Свойства-вкладка Совместимость-режимы модальности(2 поля) см.рис1
1.Вывод результатов запроса командой Сообщить() из ТаблицыЗначений
Допустим, у нас есть задача: выбрать данные из пары справочников (справочники организованы с табличной частью),но не все данные этих справочников нам нужны,а только те,которые соответствуют открытому на данный момент документу.
Код уже в базе написан,просто ставьте/снимайте ремарки с нужного варианта нашего вывода данных на экран:
В данном варианте мы создаем Структуру,записываем в нее данные по Контрагентам и Партнерам из текущего открытого документа.А далее передаем управление в серверную процедуру КонтактыКлиентаНаСервере(Структура,ТабДок). Эта серверная процедура вызывает расчетную экспортную функцию сервера из ОбщегоМодуля.
вот код подобного запроса, в параметрах которого внешняя временная таблица:
Итак,расчетная серверная функция просто решает тот запрос,который мы только что составили в КонсолиЗапросов.
Все,запускайте пользовательский режим 1С,открывайте любой документ, жмите кнопку «КонтактыКлиента»,у вас получится вот такой вывод данных выборки в виде Сообщений:
Востановите ремарки в расчетной серверной процедуре из ОбщегоМодуля, снимите ремарку в модуле формы документа ТабДок.Показать();
3.Вывод результатов запроса с помощью ДвумерногоМассива
Заремарьте в модуле формы в проц.КонтактыКлиента(Команда) код с 1-2 вариантов вывода данных на экран.
Разремарьте тут же 3-й вариант
Здесь и в 4-м варианте реализована прежде всего суть всех страданий 1.8.3: их работой в клиент-серверном режиме)).
4.Вывод результатов запроса с помощью МассиваСтруктур (с двумя вариантами)
5.Вывод обычным объект-Отчетом без СКД
6.Вывод объект-Отчетом-СКД+УстановкаПараметров
Вот такая красота в итоге:
7.Вывод объект-Отчетом-СКД+ВнешняяВременнаяТаблица
В этом варианте у нас как и раньше (кроме п.6) фильтр по отбираемым данным справочникам идет с помощью внешней временной таблицы, в которую мы загружаем данные из документа.
вот такой вид имеет этот вариант:
8.Вывод программно СКД без объекта-Отчета с Параметром=ВнешняяВременнаяТаблица
Вот и все. Теперь не только начинающие программисты смогут быстренько что-то вывести на экран, а и опытные пользователи смогут разобраться в приведенных примерах и вуа-ля! самой большой сложности отчет готов.
Простой вывод результата запроса в табличный документ
Неоднократно наблюдал и наблюдаю картину когда для отладки запроса его результат выводят в табличный документ. При этом создают макет. Определяют области и параметры и т.п. Ниже показан код с помощью которого можно выводить любой результат запроса в табличный документ не определяя макет.
Специальные предложения
Можно сделать проще, обойтись без всяких циклов и выборок
А еще проще, как я обычно отлаживаю запросы.
Спасибо большое за пример, сегодня пригодилось в работе
Кстати одна строчка пропущена, надо бы добавить
А если еще добавить
то даже расшифровка получается, вообще супер удобно
Ааааа не экономьте на пробелах!!
Обновление 03.01.14 14:47
Код открыт Не указано
См. также
Аналог PIVOT в запросе 1С (как выполнить транспонирование таблицы в запросе 1С) Промо
В статье показывается простой метод реализации аналога оператора PIVOT в запросе 1С без использования соединений.
12.12.2020 4316 Eugen-S 23
Инкремент, модуль и прочая магия, которая скрыта под символом «?»
21.10.2021 7150 SeiOkami 39
Полезные примеры СКД, ч.2
Еще несколько примеров решения задач в СКД.
06.04.2021 10479 Neti 8
Обзор полезных методов БСП 3.1.4
25.03.2021 39424 rayastar 51
Руководство для новичков. Написав статью http://infostart.ru/public/238584/, я понял, что многие не понимают того, что написано. Поэтому в этой статье постараюсь более подробно остановиться на азах и без кода на вражеском языке (C#)
27.01.2016 85514 Serginio 115
Звуковое управление в 1С 8.3
В данной статье описано создание библиотеки для звукового управления (выполнение команд голосом) для платформы 1С 8.3. Задача была поставлена так, чтобы модуль функционировал непосредственно на клиенте 1С, осуществляя управление формами, и взаимодействовал с интерфейсом.
16.03.2021 7084 velemir 33
Serverless (Faas) в 1С. Создание и вызов Yandex Cloud Functions
28.12.2020 8787 comol 31
Базовые вещи БСП, которые облегчат жизнь программисту 1С
В данной публикации я опишу полезные процедуры и функции модуля общего назначения библиотеки стандартных подсистем, обязательные к использованию любым программистом 1С.
30.08.2020 19929 quazare 34
Использование программных перечислений, ч.1: строковые константы Промо
Часто ли у вас возникает необходимость в коде выполнять сравнение на строку?
10.12.2016 41046 unichkin 74
Форма выбора (подбор) в управляемых формах
Разбор небольших примеров того, как правильно открывать форму выбора (подбора) в управляемых формах, не прибегая к модальным окнам.
08.05.2020 76327 user5300 19
Программная работа с настройками СКД
Нюансы программной работы с настройками системы компоновки данных в отчетах и динамических списках. Обзор всех видов настроек компоновки. Что в каких случаях правильно применять. В качестве примера рассмотрена работа с отборами и группировками.
27.01.2020 64729 ids79 26
[СКД] Программное создание схемы компоновки данных
Сделаем отчет на СКД полностью программно, без использования макета «схема компоновки данных».
15.01.2020 43204 John_d 22
Вспомогательные инструкции в коде 1С Промо
Помогаем редактору кода 1С помогать нам писать и анализировать код.
15.10.2018 36033 tormozit 106
Последовательности событий при проведении документа 1С. Шпаргалка + про формы + про расширения
Собрал информацию о событиях/подписках/расширениях в одном месте.
30.12.2019 34889 kuzyara 38
25.12.2019 8396 brooho 19
Полезные процедуры и функции для программиста
Все мы пишем программный код и часто используем процедуры, облегчающие его написание. Ниже приведена выборка таких полезных процедур и функций.
07.10.2019 39480 HostHost 41
Оформление и рефакторинг сложных логических выражений Промо
В сложных логических выражениях нередко самому автору спустя какое-то время тяжело разобраться, не говоря уже о других программистах. Предлагаемая методика позволяет повысить наглядность таких выражений путем оформления в виде И-ИЛИ дерева и одновременно выполнять их рефакторинг.
20.09.2012 82768 tormozit 131
Таблица значений. Нюансы
Обзор некоторых аспектов использования общеизвестного инструмента 1С.
01.10.2019 52580 Yashazz 56
[Шпаргалка] Программное создание элементов формы
Программное создание практически всех популярных элементов формы.
06.09.2019 100810 rpgshnik 75
Агрегатные функции СКД, о которых мало кто знает
Пользуетесь ли Вы всеми возможными агрегатными функциями, которые предоставляет система компоновки данных? Если Вы используете только: СУММА, КОЛИЧЕСТВО, МИНИМУМ, МАКСИМУМ, СРЕДНЕЕ, то эта статья для Вас.
05.09.2019 76955 ids79 56
Запись значения в поле ввода/формы со срабатыванием события ПриИзменении Промо
Иногда возникает необходимость после записи значения в какое либо поле ввода/формы вызвать для него обработчик события ПриИзменении, а о вызове самого события приходится только мечтать. В этой статье приводится программный способ вызова этого события.
11.07.2007 54288 tormozit 51
Регистры бухгалтерии. Общая информация
Общая информация о внутреннем устройстве регистров бухгалтерии.
05.09.2019 46177 YPermitin 25
Три костыля. Сказ про фокусы в коде
Три интересных (или странных) костыля в коде, которые могут помочь в повседневных и не очень задачах.
03.09.2019 30125 YPermitin 81
Иерархия без «В ИЕРАРХИИ»
Говорится о том, как эффективно представлять иерархию в СУБД, как получать и использовать эти представления при решении задач в запросной технике. Уточняются и дополняются запросы из статьи «Уровни, глубина, прародители, циклы и аналоги запросом» [https://infostart.ru/public/160707/].
22.08.2019 14975 ildarovich 24
Как сделать из &НаКлиентеНаСервереБезКонтекста почти &НаКлиентеНаСервере Промо
Как сделать метод формы, доступный на клиенте и на сервере одновременно, и сохранить при этом удобство разработки
10.09.2017 51075 tormozit 74
Отслеживание выполнения фонового задания
Запуск фонового задания из модуля внешней обработки. Отслеживание выполнения задания в виде прогресса, расположенного на форме.
17.08.2019 44940 ids79 22
Функции СКД: ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив
Подробное описание и использование внутренних функций системы компоновки данных: Вычислить, ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив, ВычислитьВыражениеСГруппировкойТаблицаЗначений.
08.08.2019 150276 ids79 75
Как легко запускать выполнение в фоне, не прибегая к долгому описанию фоновых процедур.
02.08.2019 60124 avalakh 26
Выгрузка документа по условию Промо
Что делать, если документы нужно выгружать не все подряд, а по какому-то фильтру: статусу, дате, набору условий. А что если он соответствовал этим условиям, а потом перестал? А если потом опять начал? Такие ситуации заставили попотеть не одного программиста.
25.04.2019 17982 m-rv 3
Набор данных объект. Использование в схеме компоновки нескольких наборов данных. Различные варианты связи наборов: объединение, соединение. Использование иерархии в отчетах на СКД. Создание собственной иерархии, иерархия детальных записей. Использование вложенных схем в отчетах на СКД.
26.07.2019 104510 ids79 17
Обработчики событий при записи объектов. Зачем и что за чем?
Программисту, имеющему немного опыта на платформе 1С 8.3, бывает сложно разобраться: ПередЗаписью, ПриЗаписи, ПослеЗаписи, на сервере, на клиенте, в модуле формы, в модуле объекта. Эта шпаргалка была создана в процессе обучения и реального опыта с целью разложить всё по полочкам, чтобы было четкое понимание в каком случае какой обработчик нужно использовать и в какой последовательности они запускаются при записи и проведении документов. Данная статья будет полезна в большей степени начинающим разработчикам. Но и опытным позволит освежить информацию, упорядочить её.
Вывести результат запроса в табличную часть формы
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Перебрать табличную часть по строкам без запроса
как в реализации товаров и услуг в услугах перебрать табличную часть по строкам без запроса. я.
Заполнить данными запроса табличную часть (управляемые формы)
Доброго времени суток! Имеется форма Есть регистр Суть вопроса: Нужно при нажатии.
Вывод результата запроса в табличную часть
Есть такой запрос. Не понимаю, как вывести результат в табчасть. Чему нужно присваивать.
Добавление колонки в табличную часть формы
Добрый день! Подскажите, пожалуйста, как добавить поле к табличной части формы? При этом, поле.
polax, спасибо. сеичас попробую.
Добавлено через 5 минут
как то в паскале писал, там переменную объявить надо в начале листа. что то типа такого тут?
Добавлено через 6 минут
_ЕГОР_, извиняюсь, написал ответ и не опубликовал. Егор, вы чуток форсируете события. Я только учусь и мне б разобраться пока с выводом в табличную часть
Как заполнить табличную часть из произвольной формы?
Здравствуйте! Помогите пожалуйста создать заполнение табличной части основной формы документа из.
Как заполнить табличную часть формы программно
В обработках есть форма на которой находится поле ввода и кнопка для поиска. Нужно сделать так, что.
Перенос данных из справочника в табличную часть формы документа
Здравствуйте. Создаю документ в конфигурации Бухгалтерия предприятия, редакция 2.0 (2.0.43.6) на.
Открыть форму из другой формы и заполнить ее табличную часть
Здравствуйте. Прошу помощи. Задача такая. Есть форма документа и текстовое поле ФИО, куда.
Как из одной формы добавить строки в табличную часть другой 1с 8.3
Могу вызвать одну форму из другой, но не зная как передать ссылку в новую форму на старую.
Скрывать / Показывать табличную часть разделенной формы одной кнопкой?
Добрый день! Есть ли возможность скрывать показывать табличную часть разделенной формы в Access.
Вывод результата компоновки в таблицу и дерево значений
Возникла необходимость загрузки данных из ТабличногоДокумента в ТаблицуЗначений для последующей обработки ее в запросе.
ТабличныйДокумент выглядит так:
Загрузку решено было сделать с использованием СКД. Был создан следующий макет:
В объекте «Область» передается ОбластьЯчеекТабличногоДокумента содержащая исходные данные.
Для получения ТаблицыЗначений использовалась следующая функция:
Полученная ТаблицаЗначений далее использовалась в запросе:
В процессе разработки возникла необходимость дополнить значения колонки «КодERP» лидирующими нулями, что бы в дальнейшем получить ссылки на номенклатуру. Для этого был переделан макет компоновки данных. На закладке «Наборы данных» путь к колонке «КодERP» был изменен на «КраткийКодERP», на закладке «Вычисляемые поля» было добавлено ВычисляемоеПоле «КодERP» с выражением содержащим вызов функции общего модуля:
Настройки макета компоновки при этом не изменились.
Однако, при использовании полученной ТаблицыЗначений в запросе, стала появляться ошибка:
Причиной был тип колонки «КодERP», вернее его отсутствие. Напомню, что данная колонка была получена из вычисляемого поля.
Так выглядит колонка «КодERP» до использования ВычисляемогоПоля:
Так выглядит колонка «КодERP» после использования ВычисляемогоПоля:
Попытки использовать условное оформление и оформление ВычислямогоПоля ни к чему не привели. Это разъяснено на ИТС. Однако там не сказано, что если у объекта ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений вызвать метод УстановитьОбъект(), то при заполнении полей установленного объекта значения будут приведены к типу соответствующей колонки объекта.
Процедура получения таблицы значений была переделана:
В качестве параметра Результат передается таблица значений с типизированными колонками.
А так выглядит колонка КодERP после использования ВычисляемогоПоля и вызова метода УстановитьОбъект():
Полученная в итоге ТаблицаЗначений может использоваться в запросе.