Как вывести результат запроса на форму 1с
Перейти к содержимому

Как вывести результат запроса на форму 1с

  • автор:

Как вывести результат запроса на форму 1с

Сильно не пинать, только учусь.
Возник вопрос: как вывести результат запроса в строку на форме()?
http://s54.radikal.ru/i145/1204/0c/e41a86e12a6b.jpg
в таблицу значений выводит без проблем.

Результат = Запрос.Выполнить();
а вот в строку передается пустое значение.
пробовал
Результат = Строка(Запрос.Выполнить());
но ничего не меняется.

Там в одинэске в конфигураторе есть кнопка «Синтакс-помощник», раздел «Работа с запросами», кажется. Можно почитать.

Как вывести результат запроса на форму 1с

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

ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Описание = «»;

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Описание = Описание + Строка(ВыборкаДетальныеЗаписи.СуммаОстаток)
КонецЦикла;

Возврат Описание;
ну, или надпись1 = Описание и все это процедура, я хз, что там у тебя вокруг

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

Процедура Касса1НачалоВыбора(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка=Ложь;

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

Если ЗначениеЗаполнено(Элемент.Значение) Тогда

Форма.Открыть();
//Будем выводить остаток по кассе
Надпись1 = ОстатокПоКассе(Надпись1);

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

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

Надпись1 = 0; ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Если ВыборкаДетальныеЗаписи.Следующий() Тогда
Надпись1 = ВыборкаДетальныеЗаписи.СуммаОстаток;
КонецЕсли;
//>>КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
Возврат Надпись1
КонецФункции

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

1С 8.3 Выводим на форму результат запроса в виде Таблицы значений — Программист 1С Минск. Автоматизация бизнеса.

1С 8.3 Выводим на форму результат запроса в виде Таблицы значений

Данные > Примеры кода 1С > 1С 8.3 Таблица значений

ПРИМЕРЫ КОДА 1С

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

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

// Выводим на форму результат запроса в виде Таблицы значений
&НаСервере
Процедура ВывестиНаФормуРезультатЗапросаНаСервере ()

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

РезультатЗапроса = Запрос . Выполнить ();
ТЗ = РезультатЗапроса . Выгрузить ( ОбходРезультатаЗапроса . Прямой );

// Процедура ВывестиТЗНаФормуВТабл определена выше
ВывестиТЗНаФормуВТабл ( ТЗ , «ТабличныйРеквизит» , «ТаблицаНаФорме» );

Вывести результат запроса в таблицу значений на форме. 1С V8.3

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

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

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

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

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

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

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

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

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

Первая

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

Вторая

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *