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

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

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

В общем модуле, который доступен и серверу и управляемой форме (у меня модуль называется ОбщегоНазначенияКлиентСервер) создаем функцию ВыполнитьЗапросВТаблицу. Она будет выполнять полученный запрос, делать обход результата запроса, формировать структуру из каждой строки результата и каждую заполненную структуру добавлять в массив.

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

Далее нам нужна еще одна процедура на управляемой форме &НаКлиенте, с помощью которой мы будем полученный результат вставлять в таблицу на форме.

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

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

Вот такой вот алгоритм. Код разжевывать не буду, по-моему там и так все понятно. Мега-гуру просьба не пинать сильно.

Источник

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

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

Специальные предложения

f71a8c4e70c0ff03708038e2b0210df8

9c2808762ec294cd4c55532520b9c521

895fb1e0f7afc3c0ed0d73bf5ee9d9d0

egais promo

b34b292ed32e9501f98cc31df406353e

789363929b9f37ddc5641a069a5fe52e

5b19cd6c4494a88b2abefce64a1b7565

199e2be4fd21dd8f4209d8ec34616c76

Можно сделать проще, обойтись без всяких циклов и выборок :)

А еще проще, как я обычно отлаживаю запросы.

Спасибо большое за пример, сегодня пригодилось в работе :-)
Кстати одна строчка пропущена, надо бы добавить

А если еще добавить

то даже расшифровка получается, вообще супер удобно

Ааааа не экономьте на пробелах!!

Обновление 03.01.14 14:47

Код открыт Не указано

См. также

Аналог PIVOT в запросе 1С (как выполнить транспонирование таблицы в запросе 1С) Промо

В статье показывается простой метод реализации аналога оператора PIVOT в запросе 1С без использования соединений.

12.12.2020 4314 Eugen-S 23

Инкремент, модуль и прочая магия, которая скрыта под символом «?»

21.10.2021 7138 SeiOkami 39

Полезные примеры СКД, ч.2

Еще несколько примеров решения задач в СКД.

06.04.2021 10477 Neti 8

Обзор полезных методов БСП 3.1.4

25.03.2021 39406 rayastar 51

Руководство для новичков. Написав статью http://infostart.ru/public/238584/, я понял, что многие не понимают того, что написано. Поэтому в этой статье постараюсь более подробно остановиться на азах и без кода на вражеском языке (C#)

27.01.2016 85513 Serginio 115

Звуковое управление в 1С 8.3

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

16.03.2021 7083 velemir 33

Serverless (Faas) в 1С. Создание и вызов Yandex Cloud Functions

28.12.2020 8786 comol 31

Базовые вещи БСП, которые облегчат жизнь программисту 1С

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

30.08.2020 19926 quazare 34

Использование программных перечислений, ч.1: строковые константы Промо

Часто ли у вас возникает необходимость в коде выполнять сравнение на строку?

10.12.2016 41046 unichkin 74

Форма выбора (подбор) в управляемых формах

Разбор небольших примеров того, как правильно открывать форму выбора (подбора) в управляемых формах, не прибегая к модальным окнам.

08.05.2020 76280 user5300 19

Программная работа с настройками СКД

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

27.01.2020 64715 ids79 26

[СКД] Программное создание схемы компоновки данных

Сделаем отчет на СКД полностью программно, без использования макета «схема компоновки данных».

15.01.2020 43199 John_d 22

Вспомогательные инструкции в коде 1С Промо

Помогаем редактору кода 1С помогать нам писать и анализировать код.

15.10.2018 36033 tormozit 106

Последовательности событий при проведении документа 1С. Шпаргалка + про формы + про расширения

Собрал информацию о событиях/подписках/расширениях в одном месте.

30.12.2019 34881 kuzyara 38

25.12.2019 8396 brooho 19

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

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

07.10.2019 39477 HostHost 41

Оформление и рефакторинг сложных логических выражений Промо

В сложных логических выражениях нередко самому автору спустя какое-то время тяжело разобраться, не говоря уже о других программистах. Предлагаемая методика позволяет повысить наглядность таких выражений путем оформления в виде И-ИЛИ дерева и одновременно выполнять их рефакторинг.

20.09.2012 82767 tormozit 131

Таблица значений. Нюансы

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

01.10.2019 52574 Yashazz 56

[Шпаргалка] Программное создание элементов формы

Программное создание практически всех популярных элементов формы.

06.09.2019 100776 rpgshnik 75

Агрегатные функции СКД, о которых мало кто знает

Пользуетесь ли Вы всеми возможными агрегатными функциями, которые предоставляет система компоновки данных? Если Вы используете только: СУММА, КОЛИЧЕСТВО, МИНИМУМ, МАКСИМУМ, СРЕДНЕЕ, то эта статья для Вас.

05.09.2019 76945 ids79 56

Запись значения в поле ввода/формы со срабатыванием события ПриИзменении Промо

Иногда возникает необходимость после записи значения в какое либо поле ввода/формы вызвать для него обработчик события ПриИзменении, а о вызове самого события приходится только мечтать. В этой статье приводится программный способ вызова этого события.

11.07.2007 54287 tormozit 51

Регистры бухгалтерии. Общая информация

Общая информация о внутреннем устройстве регистров бухгалтерии.

05.09.2019 46172 YPermitin 25

Три костыля. Сказ про фокусы в коде

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

03.09.2019 30122 YPermitin 81

Иерархия без «В ИЕРАРХИИ»

Говорится о том, как эффективно представлять иерархию в СУБД, как получать и использовать эти представления при решении задач в запросной технике. Уточняются и дополняются запросы из статьи «Уровни, глубина, прародители, циклы и аналоги запросом» [https://infostart.ru/public/160707/].

22.08.2019 14973 ildarovich 24

Как сделать из &НаКлиентеНаСервереБезКонтекста почти &НаКлиентеНаСервере Промо

Как сделать метод формы, доступный на клиенте и на сервере одновременно, и сохранить при этом удобство разработки

10.09.2017 51071 tormozit 74

Отслеживание выполнения фонового задания

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

17.08.2019 44940 ids79 22

Функции СКД: ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив

Подробное описание и использование внутренних функций системы компоновки данных: Вычислить, ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив, ВычислитьВыражениеСГруппировкойТаблицаЗначений.

08.08.2019 150259 ids79 75

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

02.08.2019 60115 avalakh 26

Выгрузка документа по условию Промо

Что делать, если документы нужно выгружать не все подряд, а по какому-то фильтру: статусу, дате, набору условий. А что если он соответствовал этим условиям, а потом перестал? А если потом опять начал? Такие ситуации заставили попотеть не одного программиста.

25.04.2019 17982 m-rv 3

Набор данных объект. Использование в схеме компоновки нескольких наборов данных. Различные варианты связи наборов: объединение, соединение. Использование иерархии в отчетах на СКД. Создание собственной иерархии, иерархия детальных записей. Использование вложенных схем в отчетах на СКД.

26.07.2019 104503 ids79 17

Обработчики событий при записи объектов. Зачем и что за чем?

Программисту, имеющему немного опыта на платформе 1С 8.3, бывает сложно разобраться: ПередЗаписью, ПриЗаписи, ПослеЗаписи, на сервере, на клиенте, в модуле формы, в модуле объекта. Эта шпаргалка была создана в процессе обучения и реального опыта с целью разложить всё по полочкам, чтобы было четкое понимание в каком случае какой обработчик нужно использовать и в какой последовательности они запускаются при записи и проведении документов. Данная статья будет полезна в большей степени начинающим разработчикам. Но и опытным позволит освежить информацию, упорядочить её.

Источник

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

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

ЭлементыФормы.ТЗ.СоздатьКолонки();
ЭлементыФормы.ТЗ.Колонки.Добавить(«Контрагент»);
ЭлементыФормы.ТЗ.Колонки.Добавить(«Договор»);
ЭлементыФормы.ТЗ.Колонки.Добавить(«Сумма»);
ЭлементыФормы.ТЗ.Колонки.Добавить(«СверхДоговора»);

Запрос = Новый Запрос;
Запрос.УстановитьПараметр(«НашиДоговорыКонтрагентов», СсылкаНаОбъектДог);
//Запрос.УстановитьПараметр(«ДатаНач», ТекДокумент.Дата);
//Запрос.УстановитьПараметр(«ДатаКон», ТекДокумент.Дата);
Запрос.Текст =
«ВЫБРАТЬ
| НашиДоговорыКонтрагентов.Организация,
| НашиДоговорыКонтрагентов.СверхДоговора,
| НашиДоговорыКонтрагентов.СрокДействия,
| НашиДоговорыКонтрагентов.Владелец КАК Контрагент,
| НашиДоговорыКонтрагентов.Сумма,
| НашиДоговорыКонтрагентов.Часов,
| НашиДоговорыКонтрагентов.ДоговорОбслуживания,
| НашиДоговорыКонтрагентов.Ссылка
|ИЗ
| Справочник.НашиДоговорыКонтрагентов КАК НашиДоговорыКонтрагентов»;

Для каждого Строка из ТЗ Цикл
НоваяСтрока = ТЗ.Добавить();
НоваяСтрока.Контрагент = Запрос.Контрагент;
НоваяСтрока.Договор = Запрос.Ссылка;
НоваяСтрока.Сумма = Запрос.Сумма;
НоваяСтрока.СверхДоговора = Запрос.СверхДоговора;
КонецЦикла;

выдает ошибку
<Форма.Форма.Форма(45)>: Поле объекта не обнаружено (Контрагент)
НоваяСтрока.Контрагент = Запрос.Контрагент;

Источник

Как выгрузить результат запроса

bless18 04.05.2010 19:29
Прочитано: 20091
00
bless18 04.05.2010 19:29
Прочитано: 20091
00
Здравствуйте, можно выгрузить результат запроса в список или таблицу значений?

Код 1C v 8.х
Нужно, чтобы каждая ячейка при разных условиях закрашивалась разными цветами, а у меня получается, что только одним все ячейки?
Может быть возможно как-то это исправить?

Yandex
Возможно, вас также заинтересует
rekl150103
bless18 04.05.2010 20:41
Ответ № 1
00
А еще проблема такая, что вместо получения 3-х результатов, получаю 9, то есть цикл выполняется лишних 2 раза
E_Migachev 04.05.2010 23:48
Ответ № 2
emigachev150
ухххх. у тебя получилось что при выводе каждой строки выполняется запрос.

тут надо совсем по другому
1. запросом тебе нужно получить данные выгрузить их в ТЗ и потом вывести в табличное поле на форме как тут
2. потом для этого таблич поля описывай процедуру при выводе строки,что-то типа:
Код 1C v 8.х

bless18 05.05.2010 07:44
Ответ № 3
00
Выгружать данные в табличное поле нужно отдельной процедурой или можно при выводе строки?
bless18 05.05.2010 07:55
Ответ № 4
00
ТзВрем=ПолучитьТаблицуЧисленностейВТЗ(Организация, НачПериода,КонПериода);
Какие параметры нужно записвать?
Если запрос:
Код 1C v 8.х
Пишу в параметрах
Код 1C v 8.х
Но поля не найдены: Дата и ДатаВыполнения
Также ошибка, что процедура «ПолучитьТаблицуЧисленностейВТЗ» не определена
bless18 05.05.2010 09:10
Ответ № 5
00
Попробовала сделать так:
[c8]
Процедура ПользователиПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)

Запрос = Новый Запрос;
Запрос.Текст = «ВЫБРАТЬ
| РаспределениеЗадачиРаспределениеЗадачиСотрудникам.Ссылка.Дата,
| РаспределениеЗадачиРаспределениеЗадачиСотрудникам.ДатаВыполнения
|ИЗ
| Документ.РаспределениеЗадачи.РаспределениеЗадачиСотрудникам КАК РаспределениеЗадачиРаспределениеЗадачиСотрудникам»;

Результат = Запрос.Выполнить();
ЭлементыФормы.Пользователи.Значение = Результат.Выгрузить();
ЭлементыФормы.Пользователи.СоздатьКолонки();
ДатаНачала = ДанныеСтроки.ДатаНачалаВыполнения;
ДатаКонца = ДанныеСтроки.ДатаВыполненияПоПлану;

Если Год(ДатаНачала)=Год(ДатаКонца) Тогда
КоличествоДнейНаВыполнение = День(ДатаКонца)-День(ДатаНачала);
КоличествоДнейСоДняНачалаВыполнения = День(ТекущаяДата())-День(ДатаНачала);
ПроцентОставшегосяВремени=Окр(Число(КоличествоДнейСоДняНачалаВыполнения / КоличествоДнейНаВыполнение)*100, 2);
КонецЕсли;

Для Каждого ТекСтрока Из ЭлементыФормы.Пользователи.Значение Цикл
Если ПроцентОставшегосяВремени 50 Тогда
ОформлениеСтроки.Ячейки.ПроцентЗавершенности.ЦветФона = Новый Цвет(255, 0, 0);
КонецЕсли;
КонецЦикла;

Сообщить(ПроцентОставшегосяВремени);
Сообщить(Пользователи.Количество());
КонецПроцедуры
/c8]
Но ни одного поля не выводится

E_Migachev 05.05.2010 09:37
Ответ № 6
emigachev150
Смотри делаешь на форме Табличное поле и называешь его ТЗРезультата

далее делаешь кнопку и к ней процедуру ЗаполнитьТЗрузельтата, где пишешь:
Код 1C v 8.х
После нажатия на кнопку у тебя должна зполниться ТЗ столбцами Дата и ДатаВыполнения
Потом создаешь для этой ТЗ процедуру при выводе строки вида:
Код 1C v 8.х

Источник

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

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

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

Выборкой не заполняеться где я туплю?
Выборка = Запрос.Выполнить().Выбрать();

Пока Выборка.Следующий() Цикл
Стр = ЭлементыФормы.КонтактыТаблица;
Стр.ДобавитьСтроку();
Стр.Колонки.ДатаКонтакта = Выборка.ДатаКонтакта;
Стр.Колонки.ВремяКонтакта = Выборка.ВремяКонакта;
КонецЦикла;

Пока Выборка.Следующий() Цикл
Стр = ЭлементыФормы.КонтактыТаблица;
Стр.ДобавитьСтроку();
Стр.Колонки.ДатаКонтакта.Данные = Выборка.ДатаКонтакта;
Стр.Колонки.ВремяКонтакта.Данные = Выборка.ВремяКонакта;
КонецЦикла;

Источник

Понравилась статья? Поделить с друзьями:
Добавить комментарий
  • Как сделать успешный бизнес на ритуальных услугах
  • Выездной кейтеринг в России
  • Риски бизнеса: без чего не обойтись на пути к успеху
  • 1с вывод структуры на форму
  • 1с вывод картинки в печатную форму