Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / [игнор отключен] [закрыт для гостей] / Помогите с запросом :-) / 15 сообщений из 15, страница 1 из 1
12.10.2009, 12:20
    #36245380
VvvWw
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом :-)
Мне кажется что это не очень простой запрос.
Есть Справочник1.
У этого справочника имеется ТабличнаяЧасть1, и у табличной части есть один Реквизит1.
Таким образом одна запись в Справочник1 представляет собой набор некоторых строк.

Теперь необходимо построить запрос.

На вход подается Строка.
Если строка встречается в ТабличнойЧасти1 то все строки этой табличной части попадают в результат запроса.


Например:

Запись1
ТабличнаяЧасть
123
321
456
Запись2
ТабличнаяЧасть
693
523
456

Если на вход запросу дать строку "123" то на выходе должны получить
123
321
456

Если на вход дать строку "456" то на выходе должны получить
123
321
456
693
523
456
...
Рейтинг: 0 / 0
12.10.2009, 13:00
    #36245474
1С ник
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом :-)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
ВЫБРАТЬ
	Справочник1ТабличнаяЧасть1.Реквизит1
ИЗ
	Справочник.Справочник1.ТабличнаяЧасть1 КАК Справочник1ТабличнаяЧасть1
ГДЕ
	Справочник1ТабличнаяЧасть1.Ссылка В
			(ВЫБРАТЬ РАЗЛИЧНЫЕ
				Справочник1ТабличнаяЧасть1.Ссылка
			ИЗ
				Справочник.Справочник1.ТабличнаяЧасть1 КАК Справочник1ТабличнаяЧасть1
			ГДЕ
				Справочник1ТабличнаяЧасть1.Реквизит1 ПОДОБНО &ИскомаяСтрока)

Вроде ничего сложного. Почитайте книжку администрирование и конфигурирование, раздел "Работа с запросами". Еще есть книга "Простые примеры разработки" и "Профессиональная разработка в системе 1С: Предприятие". Курите мануалы и успехов Вам=)
...
Рейтинг: 0 / 0
12.10.2009, 13:02
    #36245478
1С ник
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом :-)
Если Реквизит1 ограниченной длины и нужен отбор по точному соответствию - вместо "ПОДОБНО" поставьте "=".
...
Рейтинг: 0 / 0
12.10.2009, 13:14
    #36245514
_VVP_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом :-)
VvvWw,

Алгоритм разработки запроса :
1. Внутренний запрос по табличной части, возвращающий элементы справочника, имеющие табличные части, содержащие искомую строку.
2. Внешний запрос по табличной части, обувающий (обрамляющий) внутренний запрос, возвращающий табличные части, находящиеся в подчинении к элементам справочника, получаемым во внутреннем запросе.

Именования :
Справочник - С1
Табличная часть С1.ТЧ (Р1)

Запрос :
Код: plaintext
1.
2.
3.
выбрать ТЧ.*
из Справочник.С1.ТЧ как ТЧ внутреннее соединение (
    выбрать С1.Ссылка из Справочник.С1.ТЧ как ТЧ где ТЧ.Р1=&ИскомаяСтрока
) как С по ТЧ.Ссылка=С.Ссылка
...
Рейтинг: 0 / 0
12.10.2009, 15:57
    #36245977
VvvWw
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом :-)
_VVP_VvvWw,

Алгоритм разработки запроса :
1. Внутренний запрос по табличной части, возвращающий элементы справочника, имеющие табличные части, содержащие искомую строку.
2. Внешний запрос по табличной части, обувающий (обрамляющий) внутренний запрос, возвращающий табличные части, находящиеся в подчинении к элементам справочника, получаемым во внутреннем запросе.

Именования :
Справочник - С1
Табличная часть С1.ТЧ (Р1)

Запрос :
Код: plaintext
1.
2.
3.
выбрать ТЧ.*
из Справочник.С1.ТЧ как ТЧ внутреннее соединение (
    выбрать С1.Ссылка из Справочник.С1.ТЧ как ТЧ где ТЧ.Р1=&ИскомаяСтрока
) как С по ТЧ.Ссылка=С.Ссылка

Мне кажется что внутренний запрос неверный.
выбрать С1.Ссылка из Справочник.С1.ТЧ как ТЧ где ТЧ.Р1=&ИскомаяСтрока
т.к. тут Вы обращаетесь ТЧ.Р1=&ИскомаяСтрока, на самом деле ТЧ - это же табличная часть и в ней Р1 - это множество значений.
...
Рейтинг: 0 / 0
12.10.2009, 16:31
    #36246080
_VVP_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом :-)
VvvWwМне кажется что внутренний запрос неверный.Вы ошибаетесь, Вам кажется не правильно.
VvvWw выбрать С1.Ссылка из Справочник.С1.ТЧ как ТЧ где ТЧ.Р1=&ИскомаяСтрока
т.к. тут Вы обращаетесь ТЧ.Р1=&ИскомаяСтрока, на самом деле ТЧ - это же табличная часть и в ней Р1 - это множество значений.Читать про SQL, запросы и множества. Срочно!

Самое простое - подставьте свои имена справочника, табличной части и реквизита и посмотрите результат.
...
Рейтинг: 0 / 0
12.10.2009, 16:49
    #36246126
Господин ПЖ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом :-)
я вот во вложенном запросе РАЗЛИЧНЫЕ не вижу...
...
Рейтинг: 0 / 0
12.10.2009, 16:55
    #36246140
_VVP_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом :-)
Господин ПЖя вот во вложенном запросе РАЗЛИЧНЫЕ не вижу...
Да, отсутствие РАЗЛИЧНЫЕ - это ошибка.
...
Рейтинг: 0 / 0
12.10.2009, 18:09
    #36246365
1C ник
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом :-)
2 VvvWw: на сайте SQL-EX есть замечательная справка с описанием сиквельного языка запросов и там же есть тестовые задания по SQL - погуглите и будет вам счастье. (не сочтите за рекламу)
...
Рейтинг: 0 / 0
12.10.2009, 18:42
    #36246450
VvvWw
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом :-)
1C ник2 VvvWw: на сайте SQL-EX есть замечательная справка с описанием сиквельного языка запросов и там же есть тестовые задания по SQL - погуглите и будет вам счастье. (не сочтите за рекламу)
Я в обычном SQL рублю немножечко.... на уровне сопровождения САБ. А вот 1Совский скл до меня просто не доходит. Как вы так лихо этими русскими буквами оперируете )))
...
Рейтинг: 0 / 0
12.10.2009, 19:00
    #36246478
_VVP_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом :-)
VvvWwЯ в обычном SQL рублю немножечко.... на уровне сопровождения САБ. А вот 1Совский скл до меня просто не доходит. Как вы так лихо этими русскими буквами оперируете )))
Корректный текст запроса для 1С8:
Код: plaintext
1.
2.
3.
select DT.*
from Catalog.С1.ТЧ as DT inner join (
    select disctinct DT.Ссылка from Catalog.С1.ТЧ as DT where DT.Р1=&SearchString
) as С on DT.Ссылка=С.Ссылка
...
Рейтинг: 0 / 0
13.10.2009, 11:06
    #36247354
VvvWw
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом :-)
_VVP_VvvWwЯ в обычном SQL рублю немножечко.... на уровне сопровождения САБ. А вот 1Совский скл до меня просто не доходит. Как вы так лихо этими русскими буквами оперируете )))
Корректный текст запроса для 1С8:
Код: plaintext
1.
2.
3.
select DT.*
from Catalog.С1.ТЧ as DT inner join (
    select disctinct DT.Ссылка from Catalog.С1.ТЧ as DT where DT.Р1=&SearchString
) as С on DT.Ссылка=С.Ссылка

Я поначалу обрадовался, когда узнал о возможности писать на латиннице, нет проблем со знаками и т.д. но радость моя была не долгой - объекты конфигурации все равно на кириллице.
...
Рейтинг: 0 / 0
13.10.2009, 11:24
    #36247445
_VVP_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом :-)
VvvWwЯ поначалу обрадовался, когда узнал о возможности писать на латиннице, нет проблем со знаками и т.д. но радость моя была не долгой - объекты конфигурации все равно на кириллице.Если пишите полностью свою конфигурацию, можете называть объекты на латинице.
Кроме того, в 1С8 очень хорошо работает автодополнение кода, которое позволит быстрее использовать кириллические названия объектов конфигурации.
К сожалению, редактор запросов в 1С8 напрямую не поддерживает автодополнение, но можно использовать конструктор запросов.
...
Рейтинг: 0 / 0
13.10.2009, 12:06
    #36247613
VvvWw
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом :-)
_VVP_VvvWwЯ поначалу обрадовался, когда узнал о возможности писать на латиннице, нет проблем со знаками и т.д. но радость моя была не долгой - объекты конфигурации все равно на кириллице.Если пишите полностью свою конфигурацию, можете называть объекты на латинице.
Кроме того, в 1С8 очень хорошо работает автодополнение кода, которое позволит быстрее использовать кириллические названия объектов конфигурации.
К сожалению, редактор запросов в 1С8 напрямую не поддерживает автодополнение, но можно использовать конструктор запросов.
Да, Автодополнение несколько не дотягивает до InteliSense :-) но уже радует.
Есть ли в 1С тулза для отладки запросов? Написал запрос и смотришь че он выдает. А то надоедает жать Ф5 и из ГУИ юзера проверять.
...
Рейтинг: 0 / 0
13.10.2009, 12:15
    #36247640
Господин ПЖ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом :-)
консоль запросов
...
Рейтинг: 0 / 0
Форумы / [игнор отключен] [закрыт для гостей] / Помогите с запросом :-) / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]