helpf.pro
Регистрация

v7: Запрос

Striker-11
06.12.2011 14:40Прочитано: 2196
Помогите создать запрос на выборку данных из табличной части документа. К примеру всех данных, принадлежащих строке определённого ФИО...
Yandex
Возможно, вас также заинтересует
Реклама на портале
ad82117
06.12.2011 14:56Ответ № 1
Если Вы хотите вытащить из ФИО все реквизиты элемента справочника (логично предположить, что ФИО это справочник) - тогда простой запрос на выборку документов и ФИО по вашему условию, а в цикле по группировкам, когда пойдёт элемент через метаданные получить все реквизиты этого элемента
Striker-11
06.12.2011 15:06Ответ № 2
*01 Немного, непонятно... (не оч шарю) Объясню на пальцах, что мне надо...
Есть документ с формой списка, в котором есть колонки: ФИО, число и сумма оплаты (все месяцы)... Так вот, мне надо, чтоб по запросу с определенным ФИО в таблицу выводились это же ФИО и числа с суммами, принадлежащие данному лицу...
ad82117
06.12.2011 15:18Ответ № 3
в 7.7 у документа нет формы списка. только у справочника. я так понимаю, что в у Вас в документе есть табличная часть. в ней три колонки: ФИО, Дата, Сумма! правильно?
если так, тогда -
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса = "
|Период с ВыбНачПериода по ВыбКонПериода;
|ФИО= Документ.ВашДокумент.ФИО;
|ДАТА = Документ.ВашДокумент.Дата;
|Сумма = Документ.ВашДокумент.Сумма....
Striker-11
06.12.2011 15:26Ответ № 4
Всё правильно, правд колонок по-больше, т.к. дата и сумма привязаны к месяцу, но это не суть...
Я, вроде, так же построил запрос, только не выводится ничего в таблицу, видать с выводом касячу... Скажите, а можно организовать вывод данных не в таблицу(отчёт), а в табличную часть другого документа? Если можно с примером...
ad82117
06.12.2011 15:43Ответ № 5
в какую таблицу нужно выводить?
где эта таблица? на форме документа? или же это сторонняя таблица значений на форме обработки?
то, что у Вас получилось в запросе можно вот так посмотреть
тз = создатьобъект("Таблицазначений");
Запрос.Выгрузить(ТЗ);
ТЗ.ВыбратьСтроку(); именно строку!
когда будете исполнять модуль - откроется окно ТЗ.

если тз на форме обработки опять двумя путями
1. Запрос.Выгрузить(ТЗНаФорме);
2. либо в цикле заполнять, если есть соответствие колонок да даже если и нет, то можно самому делать структуру тз, но это уже слишком

по такому же принципу только без ТЗ.Выбратьстроку() можно и загрузить в другой документ
например:
Другойдокумент = СоздатьОбъект("Документ.ДругойДокумент");
ДругойДокумент.новый();
Пока ТЗ.получитьСтроку() = 1 цикл
ДругойДокумент.новаяСтрока();
и дальше заполнять колокни по соответствиям
КонецЦикла;

либо
ДругойДокумент.ЗагрузитьТабличнуюЧасть(ТЗ) - но это при полном соответствии ТЗ и ТЧ

либо в запросе сразу в нужной группировке по элементу заполнять тч другого документа

вариантов, как видите, очень много
надеюсь, что поможет что-то
но я всегда на практике после запроса формировал основную тз, а с ней уже потом развлекался )
ad82117
06.12.2011 15:48Ответ № 6
дополнение к
Другойдокумент = СоздатьОбъект("Документ.ДругойДокумент");
ДругойДокумент.новый();
Пока ТЗ.получитьСтроку() = 1 цикл
ДругойДокумент.новаяСтрока();
и дальше заполнять колокни по соответствиям
КонецЦикла;

скорее всего лучше так цкил организовать
ляля = "";
Для й = 1 по тЗ.КоличествоСтрок() цикл//идём по строкам
Для ц = 1 по ТЗ.Количество.Колонок() цикл //идём по колонкам
ляля = ТЗ.получитьЗначение(й,ц);//поячеечное получение значений ТЗ
КонецЦикла
КонецЦикла;
Striker-11
06.12.2011 21:00Ответ № 7
Благодарю за помощь
Подсказка: Для быстрого поиска ответов - используйте 'Поиск'
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.