powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / [игнор отключен] [закрыт для гостей] / SQL в 1с: есть ли там триггеры и констрейнты, коррелир. подзапросы, CTE ?
7 сообщений из 7, страница 1 из 1
SQL в 1с: есть ли там триггеры и констрейнты, коррелир. подзапросы, CTE ?
    #35547655
Всем превед.

Сорри, если баян (я только начал смотреть демо-версию 8.*), но сабж.
Например, когда я говорю ему что "количество >=0", то **ГДЕ** это ограничение прописывается - внутри СУБД или оно будет работать "на клиенте" ?

И еще вопрос: сильно ли у них ограничен встроенный "язык запросов" по сравнению со стандартным SQL, а также с его устоявшимися "нестандартными" расширениями ? Понимает ли он "запрос из запроса" (derived table), коррелир. подзапросы и т.д. ?
Есть ли там CTE и функции ранжирования, как в MS SQL 2005 или Oracle ?
...
Рейтинг: 0 / 0
SQL в 1с: есть ли там триггеры и констрейнты, коррелир. подзапросы, CTE ?
    #35547961
1с-Новобранец
Сорри, если баян (я только начал смотреть демо-версию 8.*), но сабж.
Например, когда я говорю ему что "количество >=0", то **ГДЕ** это ограничение прописывается - внутри СУБД или оно будет работать "на клиенте" ?

на сервере

1с-Новобранец
И еще вопрос: сильно ли у них ограничен встроенный "язык запросов" по сравнению со стандартным SQL, а также с его устоявшимися "нестандартными" расширениями ? Понимает ли он "запрос из запроса" (derived table), коррелир. подзапросы и т.д. ?
Есть ли там CTE и функции ранжирования, как в MS SQL 2005 или Oracle ?
сильно, функций практически нет, CTE нет, запрос из запроса понимает, функций ранжирования нет
...
Рейтинг: 0 / 0
SQL в 1с: есть ли там триггеры и констрейнты, коррелир. подзапросы, CTE ?
    #35548442
а коррелированные подзапросы понимает ?
...
Рейтинг: 0 / 0
SQL в 1с: есть ли там триггеры и констрейнты, коррелир. подзапросы, CTE ?
    #35548680
Сисой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1с-Новобранеца коррелированные подзапросы понимает ?

Вроде нет. Приходится извращаться.
Временные таблицы есть.
Есть доступ к предопределенным значениям и типам, пустым значениям.
Код: plaintext
1.
  ... И Ссылка=ЗНАЧЕНИЕ(Справочник.Валюты.ПустоеЗначение)
...
Рейтинг: 0 / 0
SQL в 1с: есть ли там триггеры и констрейнты, коррелир. подзапросы, CTE ?
    #35549012
Сисой... И Ссылка=ЗНАЧЕНИЕ(Справочник.Валюты.ПустоеЗначение) -- это вроде как "and someRef IS NULL" ?

BTW, я читал, что запросы можно делать не только на русском, но и на аглицком. Это правда ?
...
Рейтинг: 0 / 0
SQL в 1с: есть ли там триггеры и констрейнты, коррелир. подзапросы, CTE ?
    #35549590
Сисой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1с-Новобранец Сисой... И Ссылка=ЗНАЧЕНИЕ(Справочник.Валюты.ПустоеЗначение) -- это вроде как "and someRef IS NULL" ?

BTW, я читал, что запросы можно делать не только на русском, но и на аглицком. Это правда ?


Нет, это не "and someRef IS NULL". В 1С NULL возникает только при внешних соединениях. Значения полей же могут иметь тип Неопределено или ПустаяСсылка на какую-то таблицу. Кроме того, в 1С есть предопределенные значения таблиц. Это что-то типа enum, которые разработчик определяет при создании программы. При генерации БД они автоматически помещаются в таблицы и к ним можно обращаться в коде по имени (пользователь может изменить синоним, но не может удалить их из таблицы). Это удобно.
Например, "and someRef = ЗНАЧЕНИЕ(Справочник.МоиВалюты.Рубль)".

Юзайте конструктор запросов. Он облегчает работу.

Да, в 1С можно писать запросы на английском. Будет каша:

Код: plaintext
1.
Select Код, Наименование From Справочник.Контрагенты Where Наименование LIKE ...
...
Рейтинг: 0 / 0
SQL в 1с: есть ли там триггеры и констрейнты, коррелир. подзапросы, CTE ?
    #35549617
Сисой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот пример рядового запроса в 1С (по нему строится готовый отчет через систему компоновки данных, больше никакого кода при этом не пишется).

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
ВЫБРАТЬ РАЗРЕШЕННЫЕ
	РеализацияТоваровУслугТовары.Ссылка КАК Документ,
	РеализацияТоваровУслугТовары.Номенклатура,
	ВЫБОР
		КОГДА РеализацияТоваровУслугТовары.Ссылка.ВалютаДокумента.Код = "810"
			ТОГДА РеализацияТоваровУслугТовары.Сумма
		ИНАЧЕ РеализацияТоваровУслугТовары.Сумма * КурсыВалют.Курс
	КОНЕЦ КАК СуммаРеализация,
	ЕСТЬNULL(ХозрасчетныйДвиженияССубконто.СУММА,  0 ) КАК СуммаСебестоимость,
	РеализацияТоваровУслугТовары.ЗаказПоставщику,
	РеализацияТоваровУслугТовары.ЗаказПоставщикуПроцентНаценки
ИЗ
	(ВЫБРАТЬ
		Товары.Ссылка КАК Ссылка,
		Товары.Номенклатура КАК Номенклатура,
		СУММА(Товары.Сумма) КАК Сумма,
		МАКСИМУМ(
		ВЫБОР КОГДА Товары.ЗаказПоставщику=ЗНАЧЕНИЕ(Документ.ЗаказПоставщику.ПустаяСсылка)
		  ТОГДА Товары.Ссылка.ЗаказПоставщику 
		  ИНАЧЕ Товары.ЗаказПоставщику
		  КОНЕЦ ) КАК ЗаказПоставщику,
		СРЕДНЕЕ(Товары.ЗаказПоставщику.ПроцентНаценки) КАК ЗаказПоставщикуПроцентНаценки
	ИЗ
		Документ.РеализацияТоваровУслуг.Товары КАК Товары
	ГДЕ
		Товары.Ссылка.Дата >= &ДатаНачалаПериода
		И Товары.Ссылка.Дата <= КОНЕЦПЕРИОДА(&ДатаКонцаПериода, ДЕНЬ)
		И Товары.Ссылка.Организация = &Организация
		И Товары.Ссылка.Проведен
	
	СГРУППИРОВАТЬ ПО
		Товары.Ссылка,
		Товары.Номенклатура
		) КАК РеализацияТоваровУслугТовары
		ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
			ХозрасчетныйДвиженияССубконто.Регистратор КАК Регистратор,
			ХозрасчетныйДвиженияССубконто.СубконтоКт1 КАК СубконтоКт1,
			СУММА(ХозрасчетныйДвиженияССубконто.Сумма) КАК СУММА
		ИЗ
			РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(
					&ДатаНачалаПериода,
					КОНЕЦПЕРИОДА(&ДатаКонцаПериода, ДЕНЬ),
					ВидСубконтоКт1 = ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВидыСубконтоХозрасчетные.Номенклатура)
						И Организация = &Организация
						И Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг) КАК ХозрасчетныйДвиженияССубконто
		
		СГРУППИРОВАТЬ ПО
			ХозрасчетныйДвиженияССубконто.Регистратор,
			ХозрасчетныйДвиженияССубконто.СубконтоКт1) КАК ХозрасчетныйДвиженияССубконто
		ПО РеализацияТоваровУслугТовары.Ссылка = ХозрасчетныйДвиженияССубконто.Регистратор
			И РеализацияТоваровУслугТовары.Номенклатура = ХозрасчетныйДвиженияССубконто.СубконтоКт1
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют КАК КурсыВалют
		ПО (НАЧАЛОПЕРИОДА(РеализацияТоваровУслугТовары.Ссылка.Дата, ДЕНЬ) = КурсыВалют.Период)
			И РеализацияТоваровУслугТовары.Ссылка.ВалютаДокумента = КурсыВалют.Валюта

Еще в 1С есть нестандартное расширение языка SQL - операнд ИТОГО (TOTAL). Обеспечивает быстрый расчет сумм по всей выборке или группам без использования агрегирующих функций и конструкции GROUP BY.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / [игнор отключен] [закрыт для гостей] / SQL в 1с: есть ли там триггеры и констрейнты, коррелир. подзапросы, CTE ?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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