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

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

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

Оффлайн Zeed

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

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


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

Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>


Оффлайн SGIRG

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

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

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

Оффлайн Zeed

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

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


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

Оффлайн SGIRG

  • **
  • Сообщений: 82
  • РЕПУТАЦИЯ: 26
  • КПД: 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

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

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

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

Оффлайн vitasw

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

Оффлайн Zeed

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

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


Теги: Запрос 
 

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

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

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

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

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

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

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

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

Ответов: 3
Просмотров: 1579
Последний ответ 27 Окт 2015, 10:29
от vitasw
Оставить в запросе только те поля, у которых тип значение "Номенклатура"

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

Ответов: 4
Просмотров: 2788
Последний ответ 16 Апр 2012, 02:00
от DirecTwiX

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

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

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


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

* Реклама

Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
144 Сообщений
alex0402
113 Сообщений
Norfolk
51 Сообщений
LexaK
47 Сообщений
MuI_I_Ika MuI_I_Ika
37 Сообщений
друган
21 Сообщений
AsadRoman
20 Сообщений
alexandr_ll
19 Сообщений
Константин5825
18 Сообщений
MrLvovsky MrLvovsky
16 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 

Dellos Catering - выездной ресторан кейтеринг по всему Миру
SimplePortal 2.3.5 © 2008-2012, SimplePortal