Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
19 Окт 2017, 13:58
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Правильное соединение 3 таблиц в запросе  (Прочитано 2206 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Zeed

  • **
  • Сообщений: 57
  • РЕПУТАЦИЯ: 1
  • КПД: 2%
  • Регистрация: 2016-04-27
  • Сайт: 
  • Профессия: Ученик 1С
Допустим, нужно соединить некоторую таблицу (от 5 до 20 записей) с регистром, а из регистра нужно соединение с регистратором.
Очевидно, что оптимальней сначала соединить таблицу с регистром, потом уже регистр с регистратором.
Как в таком случае нужно написать запрос, т.е. в каком порядке компоновщик таблиц соединяет таблицы?
Мой запрос:

...
ИЗ
 ТабличнаяЧастьТовары КАК ТабличнаяЧастьТовары
   ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ГрафикОтгрузкиТоваров КАК ГрафикОтгрузкиТоваров
      ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЗаказНаВнутреннееПотребление КАК Заказ
      ПО ГрафикОтгрузкиТоваров.Регистратор = ЗаказНаВнутреннееПотребление.Ссылка
   ПО ТабличнаяЧастьТовары.Номенклатура = ГрафикОтгрузкиТоваров.Номенклатура


Или правильней поменять местами, сначала то что внутри регистр - документ, а потом табличная часть - регистр?


Оффлайн SGIRG

  • **
  • Сообщений: 93
  • РЕПУТАЦИЯ: 30
  • КПД: 32%
  • Регистрация: 2014-03-26
  • Сайт: 
  • Профессия: Программист 8.1
...
ИЗ
 ТабличнаяЧастьТовары КАК ТабличнаяЧастьТовары
   ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ГрафикОтгрузкиТоваров КАК ГрафикОтгрузкиТоваров
      ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЗаказНаВнутреннееПотребление КАК Заказ
      ПО ГрафикОтгрузкиТоваров.Регистратор = ЗаказНаВнутреннееПотребление.Ссылка
   ПО ТабличнаяЧастьТовары.Номенклатура = ГрафикОтгрузкиТоваров.Номенклатура

А зачем Вам второе соединение??
      ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЗаказНаВнутреннееПотребление КАК Заказ
      ПО ГрафикОтгрузкиТоваров.Регистратор = ЗаказНаВнутреннееПотребление.Ссылка
здесь вы по соединяете ссылку регистратора с ссылкой документа для какой цели? если вам необходимы конкретные реквизиты из документа, тогда в выборке пишите:
ГрафикОтгрузкиТоваров.Регистратор.ИмяВашегоРеквизита

таким образом запрос должен получиться следующим:
...
ИЗ
 ТабличнаяЧастьТовары КАК ТабличнаяЧастьТовары
   ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ГрафикОтгрузкиТоваров КАК ГрафикОтгрузкиТоваров
   ПО ТабличнаяЧастьТовары.Номенклатура = ГрафикОтгрузкиТоваров.Номенклатура
Нажимайте "Спасибо", так приятнее))

Оффлайн Zeed

  • **
  • Сообщений: 57
  • РЕПУТАЦИЯ: 1
  • КПД: 2%
  • Регистрация: 2016-04-27
  • Сайт: 
  • Профессия: Ученик 1С

ГрафикОтгрузкиТоваров.Регистратор.ИмяВашегоРеквизита


Учитель сказал, обращение через точку не есть хорошо

Оффлайн SGIRG

  • **
  • Сообщений: 93
  • РЕПУТАЦИЯ: 30
  • КПД: 32%
  • Регистрация: 2014-03-26
  • Сайт: 
  • Профессия: Программист 8.1
Учитель сказал, обращение через точку не есть хорошо
:) учитель зло. Если его не устраивает возможное отсутствие типизации, то можешь сделать следующим образом:
ВЫРАЗИТЬ(ГрафикОтгрузкиТоваров.Регистратор КАК Документ.ЗаказНаВнутреннееПотребление).ИмяВашегоРеквизита
Нажимайте "Спасибо", так приятнее))

Оффлайн vitasw

  • *****
  • Сообщений: 2575
  • РЕПУТАЦИЯ: 311
  • КПД: 12%
  • Регистрация: 2015-02-10
  • Сайт: 
  • Профессия: Программист 1С
учитель зло

Не надо быть таким категоричным. В подавляющем большинстве случаев обращение через точку = зло, потому что неявно накладывается левое соединение и тянуться все реквизиты объекта. Причем это справедливо как для запроса так и для обычного кода.

Оффлайн Летящий в даль

  • **
  • Сообщений: 56
  • РЕПУТАЦИЯ: 12
  • КПД: 21%
  • 1с - это диагенез :D
  • Регистрация: 2016-05-16
  • Сайт: 
  • Профессия: Программист 1С
Почему ваш учитель вам не сказал что к реальной таблице регистра обращаться зло :fdbsdfbsd:
1) берем оборотный регистр накопления в параметрах указываем периодичность запись
2) соединяем внутр связи по номеру строки и в том и другом  и по регистратору и ссылке соответсвенно, только вот зачем вам внутреннее ??? это уже к увам)))

Оффлайн vitasw

  • *****
  • Сообщений: 2575
  • РЕПУТАЦИЯ: 311
  • КПД: 12%
  • Регистрация: 2015-02-10
  • Сайт: 
  • Профессия: Программист 1С
Почему ваш учитель вам не сказал что к реальной таблице регистра обращаться зло
Неа, не стоит прям так сразу категорично заявлять. Существует достаточно немалое число ситуаций, когда обращение к физической таблице дает прирост производительности. Надо только с умом это применять.

Оффлайн Zeed

  • **
  • Сообщений: 57
  • РЕПУТАЦИЯ: 1
  • КПД: 2%
  • Регистрация: 2016-04-27
  • Сайт: 
  • Профессия: Ученик 1С
Почему ваш учитель вам не сказал что к реальной таблице регистра обращаться зло :fdbsdfbsd:
1) берем оборотный регистр накопления в параметрах указываем периодичность запись
2) соединяем внутр связи по номеру строки и в том и другом  и по регистратору и ссылке соответсвенно, только вот зачем вам внутреннее ??? это уже к увам)))

Потому что учитель - книга
Добавлено: 05 Авг 2016, 09:21

Почему ваш учитель вам не сказал что к реальной таблице регистра обращаться зло
Неа, не стоит прям так сразу категорично заявлять. Существует достаточно немалое число ситуаций, когда обращение к физической таблице дает прирост производительности. Надо только с умом это применять.
Можете описать в каких конкретно случаях это так?

Оффлайн vitasw

  • *****
  • Сообщений: 2575
  • РЕПУТАЦИЯ: 311
  • КПД: 12%
  • Регистрация: 2015-02-10
  • Сайт: 
  • Профессия: Программист 1С
Например выбрать все движения в середине месяца из остаточного регистра накопления.

Оффлайн Zeed

  • **
  • Сообщений: 57
  • РЕПУТАЦИЯ: 1
  • КПД: 2%
  • Регистрация: 2016-04-27
  • Сайт: 
  • Профессия: Ученик 1С
Почему ваш учитель вам не сказал что к реальной таблице регистра обращаться зло :fdbsdfbsd:
1) берем оборотный регистр накопления в параметрах указываем периодичность запись

Можно поподробней как это сделать?


Теги: Запрос 
 

Получить номер недели в месяце в запросе [номер недели]

Автор MuI_I_IkaРаздел Алгоритмы

Ответов: 0
Просмотров: 3863
Последний ответ 15 Июл 2015, 18:24
от MuI_I_Ika
РС "СостояниеОСОрганизаций" в запросе

Автор ILLUMIРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 1069
Последний ответ 07 Янв 2015, 05:33
от ILLUMI
Как исправить при обновлении ИБ: Ошибка в запросе набора данных по причине: {(58, 2)}: Несовместимые типы "ВЫБОР" <<?>>ВЫБОР

Автор dollРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 1979
Последний ответ 01 Янв 2017, 20:27
от Геннадий ОбьГЭС
"Поле не найдено" в запросе, но оно есть.

Автор ferrari314Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 3
Просмотров: 2448
Последний ответ 27 Окт 2015, 10:29
от vitasw
Временная таблица во вложенном запросе+Группировка VS Таблица значений + Свернуть

Автор TsaigerРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 6
Просмотров: 473
Последний ответ 14 Июл 2017, 23:10
от Tsaiger

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

oleg-x
86 Сообщений
alex0402
54 Сообщений
AIFrame
41 Сообщений
Геннадий ОбьГЭС Геннадий ОбьГЭС
38 Сообщений
Oldman06
31 Сообщений
Golickoff Golickoff
30 Сообщений
vitasw
29 Сообщений
MuI_I_Ika MuI_I_Ika
19 Сообщений
BuhRust
14 Сообщений
AsadRoman
13 Сообщений

* Кто онлайн

  • Точка Гостей: 916
  • Точка Скрытых: 0
  • Точка Пользователей: 13
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal