Имя: Пароль:
1C
1C 7.7
v7: ИндексированнаяТаблица нет метода ВнутреннееСоединение
,
0 PRO100 NigGaZ
 
11.08.13
22:08
Методы Группировать, Загрузить и другие методы есть, а ВнутреннееСоединение и прочие из SQL нет... Это от версии 1cpp зависит или от еще чего то?
1 Evg
 
11.08.13
22:19
inner join нужно ?
2 viktor_vv
 
11.08.13
22:23
Да есть вроде,
3 Evg
 
11.08.13
22:23
4 Evg
 
11.08.13
22:24
5 PRO100 NigGaZ
 
11.08.13
23:10
по этой справке я и работаю, а inner join не срабатывает
"ТЗЛ.ВнутреннееСоединение("Номенклатура", ТЗР, "Номенклатура", "СреднееОстаток, ОстатокВПроцентах, ПриходВПроцентах, ПервыйПриходВПроцентах, ДатаПервогоПоступления");"
Поле агрегатного объекта не обнаружено (ВнутреннееСоединение)
6 КонецЦикла
 
12.08.13
00:25
Честно говоря ни разу не приходилось пользоваться соединениями ИТЗ. Можно же сформировать набор данных на сервере, во временной таблице например.
7 PRO100 NigGaZ
 
12.08.13
00:52
пока так не делал... я вот что делаю
выполняю запрос на sql сервере собираю всю нужную информацию (стандартно она упорядочена по внутреннему идентификатору), а мне надо чтобы порядок был как иерархия справочника (метод ИТЗ группировать не подходит, как не крутил), для этого я выполняю простой запрос
"
|Номенклатура = Справочник.Номенклатура.ТекущийЭлемент;
|Группировка Номенклатура;
|Без Итогов;
"
и получаю нужный порядок, и хотел объединить с результатом запроса
*************************
есть есть пример объединения с ВТ из ТЗ и в sql запросе буду премного благодарен...
8 PRO100 NigGaZ
 
12.08.13
00:53
если есть*
9 PRO100 NigGaZ
 
12.08.13
01:00
еще не знаю правильно ли так запросы писать...
[code]"
|SELECT
|Номенклатура [Номенклатура $Справочник.Номенклатура]
|,SUM(СреднееОстаток)-SUM(СреднееРезерв) СреднееОстаток
|,SUM(СреднееРезерв) СреднееРезерв
|,CASE
|   WHEN SUM(СреднееОстаток)-SUM(СреднееРезерв) > 0 THEN
|       ((SUM(КоличествоОстаток)-SUM(КоличествоРезерв))/(SUM(СреднееОстаток)-SUM(СреднееРезерв)))*100
|   ELSE
|   0
|   END ОстатокВПроцентах
|,CASE
|   WHEN SUM(СреднееОстаток)-SUM(СреднееРезерв) > 0 THEN
|       ((SUM(КоличествоПриходОстаток)-SUM(КоличествоПриходРезерв))/(SUM(СреднееОстаток)-SUM(СреднееРезерв)))*100
|   ELSE
|   0
|   END ПриходВПроцентах
|,CASE
|   WHEN SUM(СреднееОстаток)-SUM(СреднееРезерв) > 0 THEN
|       ((SUM(КоличествоПервыйПриход)-SUM(КоличествоПриходРезерв))/(SUM(СреднееОстаток)-SUM(СреднееРезерв)))*100
|   ELSE
|   0
|   END ПервыйПриходВПроцентах
|, MAX(ДатаПервогоПоступления) ДатаПервогоПоступления
|FROM(
|
|
|
|SELECT
|ОстаткиТМЦОстаткиОбороты.Номенклатура Номенклатура
|, Avg(ОстаткиТМЦОстаткиОбороты.КоличествоКонечныйОстаток) СреднееОстаток
|, 0 СреднееРезерв
|, 0 КоличествоОстаток
|, 0 КоличествоРезерв
|, 0 КоличествоПриходОстаток
|, 0 КоличествоПриходРезерв
|, Null ДатаПервогоПоступления
|, 0 КоличествоПервыйПриход
|FROM $РегистрОстаткиОбороты.ОстаткиТМЦ(:НачДата,
|:КонДата,
|День,
|Движения,,,
|Номенклатура,) AS ОстаткиТМЦОстаткиОбороты
|GROUP BY ОстаткиТМЦОстаткиОбороты.Номенклатура
|
|UNION ALL
|
|SELECT
|РезервыТМЦОстаткиОбороты.Номенклатура Номенклатура
|, 0 СреднееОстаток
|, Avg(РезервыТМЦОстаткиОбороты.КоличествоКонечныйОстаток) СреднееРезерв
|, 0 Количествостаток
|, 0 КоличествоРезерв
|, 0 КоличествоПриходОстаток
|, 0 КоличествоПриходРезерв
|, Null ДатаПервогоПоступления
|, 0 КоличествоПервыйПриход
|FROM $РегистрОстаткиОбороты.РезервыТМЦ(:НачДата,
|        :КонДата,
|        День,
|        Движения,,,
|        Номенклатура,) AS РезервыТМЦОстаткиОбороты
|GROUP BY РезервыТМЦОстаткиОбороты.Номенклатура
|
|UNION ALL
|
|SELECT ОстаткиТМЦОстатки.Номенклатура [Номенклатура $Справочник.Номенклатура]
|, 0 СреднееОстаток
|, 0 СреднееРезерв
|, Sum(ОстаткиТМЦОстатки.КоличествоОстаток) КоличествоОстаток
|,0 КоличествоРезерв
|, 0 КоличествоПриходОстаток
|, 0 КоличествоПриходРезерв
|, Null ДатаПервогоПоступления
|, 0 КоличествоПервыйПриход
|FROM $РегистрОстатки.ОстаткиТМЦ(:КонДата,,,
|Номенклатура,) AS ОстаткиТМЦОстатки
|GROUP BY ОстаткиТМЦОстатки.Номенклатура
|
|UNION ALL
|
|SELECT РезервыТМЦОстатки.Номенклатура [Номенклатура $Справочник.Номенклатура]
|,0 СреднееОстаток
|,0 СреднееРезерв
|,0 КоличествоОстаток
|, Sum(РезервыТМЦОстатки.КоличествоОстаток) КоличествоРезерв
|, 0 КоличествоПриходОстаток
|, 0 КоличествоПриходРезерв
|, Null ДатаПервогоПоступления
|, 0 КоличествоПервыйПриход
|FROM $РегистрОстатки.РезервыТМЦ(,,,
|Номенклатура,) AS РезервыТМЦОстатки
|GROUP BY РезервыТМЦОстатки.Номенклатура
|
|UNION ALL
|
|SELECT ЗаказыОстатки.Номенклатура [Номенклатура $Справочник.Номенклатура]
|,0 СреднееОстаток
|,0 СреднееРезерв
|,0 КоличествоОстаток
|,0 КоличествоРезерв
|, Sum(ЗаказыОстатки.КоличествоПриходОстаток) КоличествоПриходОстаток
|, 0 КоличествоПриходРезерв
|, Null ДатаПервогоПоступления
|, 0 КоличествоПервыйПриход
|FROM $РегистрОстатки.Заказы(:КонДата,,,
|        Номенклатура,
|        КоличествоПриход) AS ЗаказыОстатки
|GROUP BY ЗаказыОстатки.Номенклатура
|
|UNION ALL
|
|SELECT ЗаказыЗаявкиОстатки.Номенклатура [ЗаказыЗаявкиОстаткиНоменклатура $Справочник.Номенклатура]
|, 0 СреднееОстаток
|, 0 СреднееРезерв
|, 0 КоличествоОстаток
|, 0 КоличествоРезерв
|, 0 СуммаКоличествоПриходОстаток
|, Sum(ЗаказыЗаявкиОстатки.КоличествоОстаток) КоличествоПриходРезерв
|, Null ДатаПервогоПоступления
|, 0 КоличествоПервыйПриход
|FROM $РегистрОстатки.ЗаказыЗаявки(:КонДата,,,
|        Номенклатура,) AS ЗаказыЗаявкиОстатки
|WHERE (ЗаказыЗаявкиОстатки.КоличествоОстаток > 0)
|GROUP BY ЗаказыЗаявкиОстатки.Номенклатура
|
|UNION ALL
|
|SELECT ЗаказыОстатки.Номенклатура [Номенклатура $Справочник.Номенклатура]
|, 0 СреднееОстаток
|, 0 СреднееРезерв
|, 0 КоличествоОстаток
|, 0 КоличествоРезерв
|, 0 СуммаКоличествоПриходОстаток
|, 0 КоличествоПриходРезерв
|, NullIf($ЗаказПоставщику.ДатаОтгрузки, '17530101') ДатаПервогоПоступления
|, Sum(ЗаказыОстатки.КоличествоПриходОстаток) КоличествоПервыйПриход
|FROM (($РегистрОстатки.Заказы(,,,
|        (Номенклатура, ЗаказПоставщику),
|        КоличествоПриход) AS ЗаказыОстатки
|    LEFT OUTER JOIN $Документ.ЗаказПоставщику AS ЗаказПоставщику With (NOLOCK) ON ЗаказыОстатки.ЗаказПоставщику = ЗаказПоставщику.IDDOC)
|INNER JOIN
|   (SELECT ЗаказыОстатки.Номенклатура as Номенклатура
|    , NullIf(Min($ЗаказПоставщику.ДатаОтгрузки), '17530101') as МинимумДатаОтгрузки
|FROM $РегистрОстатки.Заказы(,,,
|        (Номенклатура, ЗаказПоставщику),) AS ЗаказыОстатки
|    LEFT OUTER JOIN $Документ.ЗаказПоставщику AS ЗаказПоставщику With (NOLOCK) ON ЗаказыОстатки.ЗаказПоставщику = ЗаказПоставщику.IDDOC
|GROUP BY ЗаказыОстатки.Номенклатура) as ВложенныйЗапрос
|ON (ВложенныйЗапрос.МинимумДатаОтгрузки=NullIf($ЗаказПоставщику.ДатаОтгрузки, '17530101')) AND(ВложенныйЗапрос.Номенклатура=ЗаказыОстатки.Номенклатура))
|GROUP BY ЗаказыОстатки.Номенклатура
|    , $ЗаказПоставщику.ДатаОтгрузки
|
|) Итоги
|GROUP BY Итоги.Номенклатура
|
"[/code]
10 Попытка1С
 
12.08.13
01:07
(7) " а мне надо чтобы порядок был как иерархия справочника (метод ИТЗ группировать не подходит, как не крутил"

плохо крутил..
11 PRO100 NigGaZ
 
12.08.13
01:18
скорее всего да, но действительно важно так, в ИТЗ получаются вложенные ИТЗ, что немного не то что надо, не кайф все переписывать для работы с таким результатом, оч много день точно писать нудного кода, а В ИЕРАРХИИ вообще в идеале...
вот соединения в ИТЗ не работают а очень хотелось бы, кажется что версия 1срр не та, хотя последнюю использую...
12 SnarkHunter
 
12.08.13
03:16
Какую именно последнюю? Имя, сестра, имя...
13 PRO100 NigGaZ
 
12.08.13
11:42
3.2.3.20
14 Salimbek
 
12.08.13
11:47
(0) А ты как результат в ИндексированнойТаблице получаешь? Может у тебя содержимое в "просто" Таблицу значений превращается.
15 Ёпрст
 
12.08.13
11:56
(13) 3.2.4.1 последняя, если че
16 Ёпрст
 
12.08.13
11:58
иерархию можно получить в запросе, ну или в то что получил чорным запросом - загоняешь во временную табличку и с ней соединяешься со своим запросом..
ИТЗ как бэ и не нужна.
17 kiruha
 
12.08.13
12:01
Насколько помню - нужно поле Родитель
18 PRO100 NigGaZ
 
12.08.13
12:03
(14) Загрузить использую и создаю ИТЗ ...
да хорошо, буду ковырять в объединении ВТ...
Вот дырявая голова, действительно в одной функции приравниваю к ТЗ, спасибо