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

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

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

Оффлайн Zeed

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

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


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


Оффлайн SGIRG

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

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

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

Оффлайн Zeed

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

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


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

Оффлайн SGIRG

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

Оффлайн vitasw

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

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

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

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

Оффлайн vitasw

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

Оффлайн Zeed

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

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

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

Оффлайн vitasw

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

Оффлайн Zeed

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

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


Теги: Запрос 
 

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

oleg-x
116 Сообщений
alex0402
102 Сообщений
Геннадий ОбьГЭС Геннадий ОбьГЭС
73 Сообщений
AIFrame
51 Сообщений
ilyay ilyay
49 Сообщений
Golickoff Golickoff
49 Сообщений
ab30ru
38 Сообщений
wise wise
34 Сообщений
Амал
30 Сообщений
LexaK
22 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal