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

Автор Тема: Убрать соединение с подзапросом  (Прочитано 3253 раз)

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

Оффлайн bolobol

  • *
  • Сообщений: 41
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-08-26
  • Сайт: 
  • Профессия: Программист 1С
Здравствуйте!

Подскажите, пожалуйста, как переписать нижеследующее внутреннее соединение с подзапросом, чтобы в результате укладываться в рекомендации, как минимум "не используйте соединения с подзапросами". При этом не потерять производительность!

Краткое человечье описанье:
Выбрать неудалённые Ведомости, которые не присутствуют в неудалённых СписанияхСРасчётногоСчёта в табличной части ПеречислениеЗаработнойПлаты.

Подзапрос Выбирает неудалённые СписанияСРасчётногоСчёта. Соединяется с таблицей своей табличной части ПеречислениеЗаработнойПлаты. С результатом - соединяется Ведомости на ЗП и, если Ведомости при соединении получают NULL, значит - не оплачены.

[sql]
ВЫБРАТЬ
   ЛОЖЬ КАК Флаг,
   ЗарплатаКВыплатеОрганизаций.СпособВыплаты,
   ЗарплатаКВыплатеОрганизаций.Комментарий,
   ЗарплатаКВыплатеОрганизаций.СуммаДокумента,
   ЗарплатаКВыплатеОрганизаций.Организация,
   ЗарплатаКВыплатеОрганизаций.Дата КАК Дата,
   ЗарплатаКВыплатеОрганизаций.Ссылка
ИЗ
   Документ.ЗарплатаКВыплатеОрганизаций КАК ЗарплатаКВыплатеОрганизаций
      ЛЕВОЕ СОЕДИНЕНИЕ Документ.СписаниеСРасчетногоСчета.ПеречислениеЗаработнойПлаты КАК СписаниеСРасчетногоСчетаПеречислениеЗаработнойПлаты
         ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            СписаниеСРасчетногоСчета.Ссылка КАК Ссылка
         ИЗ
            Документ.СписаниеСРасчетногоСчета КАК СписаниеСРасчетногоСчета
         ГДЕ
            СписаниеСРасчетногоСчета.ПометкаУдаления = &ЛОЖЬ) КАК ВложенныйЗапрос
         ПО (ВложенныйЗапрос.Ссылка = СписаниеСРасчетногоСчетаПеречислениеЗаработнойПлаты.Ссылка)
      ПО ЗарплатаКВыплатеОрганизаций.Ссылка = СписаниеСРасчетногоСчетаПеречислениеЗаработнойПлаты.Ведомость.Ссылка
ГДЕ
   СписаниеСРасчетногоСчетаПеречислениеЗаработнойПлаты.Ссылка ЕСТЬ NULL
   И ЗарплатаКВыплатеОрганизаций.ПометкаУдаления = &ЛОЖЬ

УПОРЯДОЧИТЬ ПО
   Дата УБЫВ
[/sql]


Оффлайн has

  • Модератор
  • *****
  • Сообщений: 1310
  • РЕПУТАЦИЯ: 285
  • КПД: 22%
  • Регистрация: 2011-01-28
  • Сайт: 
  • Профессия: Программист 1С
А соединения с временной таблицей можно использовать?

Оффлайн bolobol

  • *
  • Сообщений: 41
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-08-26
  • Сайт: 
  • Профессия: Программист 1С
А, наверное, не нужно. Вот вариант, что предложили, красиво и работает быстро:

ВЫБРАТЬ
    ЗарплатаКВыплатеОрганизаций.СпособВыплаты,
    ЗарплатаКВыплатеОрганизаций.Комментарий,
    ЗарплатаКВыплатеОрганизаций.СуммаДокумента,
    ЗарплатаКВыплатеОрганизаций.Организация,
    ЗарплатаКВыплатеОрганизаций.Дата,
    ЗарплатаКВыплатеОрганизаций.Ссылка,
    ЗарплатаКВыплатеОрганизаций.КраткийСоставДокумента
ИЗ
    Документ.ЗарплатаКВыплатеОрганизаций КАК ЗарплатаКВыплатеОрганизаций
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.СписаниеСРасчетногоСчета.ПеречислениеЗаработнойПлаты КАК СписаниеСРасчетногоСчетаПеречислениеЗаработнойПлаты
        ПО ЗарплатаКВыплатеОрганизаций.Ссылка = СписаниеСРасчетногоСчетаПеречислениеЗаработнойПлаты.Ведомость.Ссылка
            И (СписаниеСРасчетногоСчетаПеречислениеЗаработнойПлаты.Ссылка.ПометкаУдаления = &ЛОЖЬ)
ГДЕ
    СписаниеСРасчетногоСчетаПеречислениеЗаработнойПлаты.Ссылка ЕСТЬ NULL
    И ЗарплатаКВыплатеОрганизаций.ПометкаУдаления = &ЛОЖЬ

УПОРЯДОЧИТЬ ПО
    ЗарплатаКВыплатеОрганизаций.Дата УБЫВ

Условие на неудалённость документа вставлено прямо в условие связи.


Теги:
 

Возможно ли получение эталонного файла конфигурации *.cf из измененной стандартной, например (УТ 11.1, БП 3.0) или вопрос о том как убрать лишние доработки и привести конфигурацию базы максимально к стандартной после варварских "доработок"?

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

Ответов: 9
Просмотров: 10826
Последний ответ 30 Дек 2015, 22:14
от 1Cnastroika
Убрать документ из обмена. Правила обмена.

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

Ответов: 1
Просмотров: 725
Последний ответ 10 Май 2017, 15:18
от bestname
1с 8.2 Тонкий клиент. Клиент-сервер. Как убрать лишнее?

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

Ответов: 4
Просмотров: 313
Последний ответ 20 Фев 2018, 13:02
от ROG Dominator
Что такое "Левое соединение"

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

Ответов: 6
Просмотров: 19414
Последний ответ 19 Авг 2014, 15:26
от Kironten
Как убрать окно "система готова к работе"

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

Ответов: 1
Просмотров: 1902
Последний ответ 13 Апр 2015, 03:48
от Golickoff

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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
161 Сообщений
alex0402
76 Сообщений
oleg-x
68 Сообщений
AIFrame AIFrame
61 Сообщений
buketov.av buketov.av
44 Сообщений
wise wise
39 Сообщений
KOI8-R
35 Сообщений
ilyay ilyay
29 Сообщений
Анюта17
29 Сообщений
Alter
29 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal