|
|
|
Как написать запрос, позволяющий вывести поля таблицы в документе и их типы данных? | ☑ | ||
|---|---|---|---|---|
|
0
TCD85
07.08.09
✎
13:32
|
Т.е. Необходимо получить все поля таблицы и их типы данных (Наименования поля, Тип данных). Может кто знает как это сделать при помощи запроса. Документ можно для примера взять. "Реализация товаров и услуг" таблица "Товары".
|
|||
|
1
Mort
07.08.09
✎
13:36
|
Зачем?
|
|||
|
2
Murzz
07.08.09
✎
13:37
|
вроде никак
|
|||
|
3
Рэйв
07.08.09
✎
13:38
|
Проще будет через метаданные.
|
|||
|
4
Михей
07.08.09
✎
13:38
|
разве что динамически формировать текст запроса
|
|||
|
5
TCD85
07.08.09
✎
13:39
|
Я изучаю книжку "Использование запросов в системе "1С: Предприятия"
Там вот такое задание. Я вот тоже голову ломаю. Вроде тоже никак. Хотя может можно использовать Функцию "Тип". |
|||
|
6
Рэйв
07.08.09
✎
13:39
|
(5)"Не всегда верь тому что написано"(С)Моска-Кассиопея.
Сам тоже думать не забывай. |
|||
|
7
quazare
07.08.09
✎
13:41
|
(5) а скинь ссылочку на данную книжку - не знаю такую.... :(
|
|||
|
8
Mitriy
07.08.09
✎
13:41
|
Выбор Когда Таблица Ссылка Документ.ТакойТо Тогда
"ДокументСсылка: ТакойТо" Когда... ... Иначе "Этого типа не учли" Конец |
|||
|
9
TCD85
07.08.09
✎
13:42
|
А через метаданные можете текст написать?
|
|||
|
10
TCD85
07.08.09
✎
13:47
|
http://MoiDisk.ru/12xptf4olv7e
Я выложил книгу. Там Практикум №7 Задание №1 |
|||
|
11
Mort
07.08.09
✎
13:48
|
В отладчике тормозишь выполнение, жмешь shift+F9 набираешь "метаданные" и все станет понятно самому.
|
|||
|
12
Рэйв
07.08.09
✎
13:50
|
(9)На вскидку нашел что первое попалось.Я так искад битые ссылки в свое время:-)
Медитируй //-------------- Процедура кнОбъектНеНайденНажатие(Элемент) спДокументов=новый СписокЗначений; Для Каждого Эл Из спВидыДок Цикл Если Эл.Пометка Тогда спДокументов.Добавить(Эл.Значение); КонецЕсли; Конеццикла; тБитые=Новый ТаблицаЗначений; тБитые.Колонки.Добавить("Тип"); тБитые.Колонки.Добавить("ИД"); Для Каждого ВыборкаМенеджер из Документы Цикл Если спДокументов.НайтиПоЗначению(ВыборкаМенеджер)=Неопределено Тогда Продолжить; КонецЕсли; ОбработкаПрерыванияПользователя(); н=0; Выборка=ВыборкаМенеджер.Выбрать(); Пока Выборка.Следующий() Цикл н=н+1; Состояние(""+н+"."+Выборка.Ссылка); ОбработкаПрерыванияПользователя(); Для Каждого Рек Из Выборка.Ссылка.Метаданные().Реквизиты цикл ОбработкаПрерыванияПользователя(); ИмяРек=Рек.Имя; Если Лев(Строка(Выборка.Ссылка[ИмяРек]),7)="<Объект" Тогда Сообщить("Реквизит."+Выборка.Ссылка+"... Имя="+ИмяРек+"...Значение="+Выборка[ИмяРек]); НовСтр=тБитые.Добавить(); НовСтр.Тип=ТипЗнч(Выборка[ИмяРек]); НовСтр.ИД=Строка(Выборка[ИмяРек]); КонецЕсли; Конеццикла; СсылкаДок=Выборка.Ссылка; Для Каждого ТЧ Из СсылкаДок.Метаданные().ТабличныеЧасти Цикл Для Каждого Стр Из СсылкаДок[ТЧ.Имя] Цикл Для Каждого РекТЧ Из ТЧ.Реквизиты Цикл ИмяРек=РекТЧ.Имя; Если Лев(Строка(Стр[ИмяРек]),7)="<Объект" Тогда Сообщить(""+СсылкаДок[ТЧ.Имя].Индекс(Стр)+".["+ТЧ.Имя+"]."+СсылкаДок+"... Имя="+ИмяРек+"...Значение="+Стр[ИмяРек]); НовСтр=тБитые.Добавить(); НовСтр.Тип=ТипЗнч(Стр[ИмяРек]); НовСтр.ИД=Строка(Стр[ИмяРек]); КонецЕсли; КонецЦикла; Конеццикла КонецЦикла; Конеццикла; Конеццикла; тБитые.Свернуть("Тип,ИД",""); тДок=тБитые.Скопировать(); ЭлементыФормы.тДок.СоздатьКолонки(); КонецПроцедуры |
|||
|
13
TCD85
07.08.09
✎
13:50
|
(11)То понятно. Так даже можно смотреть тексты модулей обработок которые закрыты на изменения )))
|
|||
|
14
Mitriy
07.08.09
✎
13:58
|
(10) так в этом задании ничего про типы не сказано... ты это сам придумал...
|
|||
|
15
TCD85
07.08.09
✎
14:08
|
Хорошо я что там сказано по твоему?
|
|||
|
16
Mitriy
07.08.09
✎
14:10
|
(15) если коротко, то "написать запрос по шапке документа"...
|
|||
|
17
TCD85
07.08.09
✎
14:13
|
Ты это текст запроса можешь выложить? Я чтот не догоняю как это сделать.
|
|||
|
18
Mitriy
07.08.09
✎
14:16
|
Выбрать
Док.* Из Документ.Приходная КАК Док |
|||
|
19
TCD85
07.08.09
✎
14:17
|
Лол спасибо.
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |