|
Помогите пожалуйста с дублированием ключевых значений Ø (Волшебник 06.09.2024 09:43) | ☑ | ||
---|---|---|---|---|
0
Пашка
naïve
05.09.24
✎
14:20
|
Здраствуйте. Подскажите пожалуйста, где может возникать проблема. Никак не могу найти. В консоли никаких задвоений не выявил.
Вот сам запрос - ВЫБРАТЬ СправочникпмОборудованиеКонтрагентов.Владелец КАК Владелец, СправочникпмОборудованиеКонтрагентов.Оборудование КАК Оборудование, ВЫБОР КОГДА СправочникпмОборудованиеКонтрагентов.ПериодичностьОбслуживанияСпр.КоличествоЧасов / СправочникпмОборудованиеКонтрагентов.РежимРаботыПредприятия.ЧасовВДень * (7 / СправочникпмОборудованиеКонтрагентов.РежимРаботыПредприятия.ДнейВНеделю) < 365 ТОГДА СправочникпмОборудованиеКонтрагентов.ПериодичностьОбслуживанияСпр.КоличествоЧасов / СправочникпмОборудованиеКонтрагентов.РежимРаботыПредприятия.ЧасовВДень * (7 / СправочникпмОборудованиеКонтрагентов.РежимРаботыПредприятия.ДнейВНеделю) ИНАЧЕ 365 КОНЕЦ КАК ПериодичностьОбслуживания, СправочникпмОборудованиеКонтрагентов.СерийныйНомер КАК СерийныйНомер, СправочникпмОборудованиеКонтрагентов.ДоговорТО КАК ДоговорТО, СправочникпмОборудованиеКонтрагентов.СуммаПоДоговоруТО КАК СуммаПоДоговоруТО, СправочникпмОборудованиеКонтрагентов.СтатусККТ КАК СтатусККТ, СправочникпмОборудованиеКонтрагентов.ДатаРегистрации КАК ДатаРегистрации, СправочникпмОборудованиеКонтрагентов.Оборудование.Марка КАК ОборудованиеМарка, ЗапросСервисаТО.ДатаЗакрытия КАК ДатаЗакрытия, СправочникпмОборудованиеКонтрагентов.ДатаЗаключенияДоговора КАК ДатаЗаключенияДоговора, ЗапросСервиса.Дата КАК Дата, ВЫБОР КОГДА ЗапросСервисаТО.ДатаЗакрытия ЕСТЬ NULL И НЕ СправочникпмОборудованиеКонтрагентов.ДатаЗаключенияДоговора ЕСТЬ NULL ТОГДА СправочникпмОборудованиеКонтрагентов.ДатаЗаключенияДоговора КОГДА НЕ ЗапросСервисаТО.ДатаЗакрытия ЕСТЬ NULL И СправочникпмОборудованиеКонтрагентов.ДатаЗаключенияДоговора ЕСТЬ NULL ТОГДА ЗапросСервисаТО.ДатаЗакрытия КОГДА НЕ ЗапросСервисаТО.ДатаЗакрытия ЕСТЬ NULL И НЕ СправочникпмОборудованиеКонтрагентов.ДатаЗаключенияДоговора ЕСТЬ NULL ТОГДА ЗапросСервисаТО.ДатаЗакрытия КОНЕЦ КАК ДатаПослежнего, СправочникпмОборудованиеКонтрагентов.СерийныйНомерСтарый КАК СерийныйНомерСтарый, ВЫБОР КОГДА НЕ ЗапросСервисаТО.ДатаЗакрытия ЕСТЬ NULL И ЗапросСервисаТО.ДатаЗакрытия <> &ДатаНач ТОГДА ВЫБОР КОГДА СправочникпмОборудованиеКонтрагентов.ПериодичностьОбслуживанияСпр.КоличествоЧасов / СправочникпмОборудованиеКонтрагентов.РежимРаботыПредприятия.ЧасовВДень * (7 / СправочникпмОборудованиеКонтрагентов.РежимРаботыПредприятия.ДнейВНеделю) < 365 ТОГДА ДОБАВИТЬКДАТЕ(ЗапросСервисаТО.ДатаЗакрытия, ДЕНЬ, СправочникпмОборудованиеКонтрагентов.ПериодичностьОбслуживанияСпр.КоличествоЧасов / СправочникпмОборудованиеКонтрагентов.РежимРаботыПредприятия.ЧасовВДень * (7 / СправочникпмОборудованиеКонтрагентов.РежимРаботыПредприятия.ДнейВНеделю)) ИНАЧЕ ДОБАВИТЬКДАТЕ(ЗапросСервисаТО.ДатаЗакрытия, ДЕНЬ, 365) КОНЕЦ ИНАЧЕ ВЫБОР КОГДА НЕ СправочникпмОборудованиеКонтрагентов.ДатаЗаключенияДоговора ЕСТЬ NULL И СправочникпмОборудованиеКонтрагентов.ДатаЗаключенияДоговора <> &ДатаНач ТОГДА ВЫБОР КОГДА СправочникпмОборудованиеКонтрагентов.ПериодичностьОбслуживанияСпр.КоличествоЧасов / СправочникпмОборудованиеКонтрагентов.РежимРаботыПредприятия.ЧасовВДень * (7 / СправочникпмОборудованиеКонтрагентов.РежимРаботыПредприятия.ДнейВНеделю) < 365 ТОГДА ДОБАВИТЬКДАТЕ(СправочникпмОборудованиеКонтрагентов.ДатаЗаключенияДоговора, ДЕНЬ, СправочникпмОборудованиеКонтрагентов.ПериодичностьОбслуживанияСпр.КоличествоЧасов / СправочникпмОборудованиеКонтрагентов.РежимРаботыПредприятия.ЧасовВДень * (7 / СправочникпмОборудованиеКонтрагентов.РежимРаботыПредприятия.ДнейВНеделю)) ИНАЧЕ ДОБАВИТЬКДАТЕ(СправочникпмОборудованиеКонтрагентов.ДатаЗаключенияДоговора, ДЕНЬ, 365) КОНЕЦ КОНЕЦ КОНЕЦ КАК ДатаПоследующего, ВЫБОР КОГДА НЕ ЗапросСервисаТО.ДатаЗакрытия ЕСТЬ NULL И ЗапросСервисаТО.ДатаЗакрытия <> &ДатаНач ТОГДА ВЫБОР КОГДА СправочникпмОборудованиеКонтрагентов.ПериодичностьОбслуживанияСпр.КоличествоЧасов / СправочникпмОборудованиеКонтрагентов.РежимРаботыПредприятия.ЧасовВДень * (7 / СправочникпмОборудованиеКонтрагентов.РежимРаботыПредприятия.ДнейВНеделю) < 365 ТОГДА РАЗНОСТЬДАТ(&ТекДата, ДОБАВИТЬКДАТЕ(ЗапросСервисаТО.ДатаЗакрытия, ДЕНЬ, СправочникпмОборудованиеКонтрагентов.ПериодичностьОбслуживанияСпр.КоличествоЧасов / СправочникпмОборудованиеКонтрагентов.РежимРаботыПредприятия.ЧасовВДень * (7 / СправочникпмОборудованиеКонтрагентов.РежимРаботыПредприятия.ДнейВНеделю)), ДЕНЬ) ИНАЧЕ РАЗНОСТЬДАТ(&ТекДата, ДОБАВИТЬКДАТЕ(ЗапросСервисаТО.ДатаЗакрытия, ДЕНЬ, 365), ДЕНЬ) КОНЕЦ ИНАЧЕ ВЫБОР КОГДА НЕ СправочникпмОборудованиеКонтрагентов.ДатаЗаключенияДоговора ЕСТЬ NULL И СправочникпмОборудованиеКонтрагентов.ДатаЗаключенияДоговора <> &ДатаНач ТОГДА ВЫБОР КОГДА СправочникпмОборудованиеКонтрагентов.ПериодичностьОбслуживанияСпр.КоличествоЧасов / СправочникпмОборудованиеКонтрагентов.РежимРаботыПредприятия.ЧасовВДень * (7 / СправочникпмОборудованиеКонтрагентов.РежимРаботыПредприятия.ДнейВНеделю) < 365 ТОГДА РАЗНОСТЬДАТ(&ТекДата, ДОБАВИТЬКДАТЕ(СправочникпмОборудованиеКонтрагентов.ДатаЗаключенияДоговора, ДЕНЬ, СправочникпмОборудованиеКонтрагентов.ПериодичностьОбслуживанияСпр.КоличествоЧасов / СправочникпмОборудованиеКонтрагентов.РежимРаботыПредприятия.ЧасовВДень * (7 / СправочникпмОборудованиеКонтрагентов.РежимРаботыПредприятия.ДнейВНеделю)), ДЕНЬ) ИНАЧЕ РАЗНОСТЬДАТ(&ТекДата, ДОБАВИТЬКДАТЕ(СправочникпмОборудованиеКонтрагентов.ДатаЗаключенияДоговора, ДЕНЬ, 365), ДЕНЬ) КОНЕЦ КОНЕЦ КОНЕЦ КАК ЧерезДней ИЗ Справочник.пмОборудованиеКонтрагентов КАК СправочникпмОборудованиеКонтрагентов ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ УниверсальныйСервисКартриджи.Ссылка.Дата КАК Дата, УниверсальныйСервисКартриджи.ОборудованиеКонтрагентов КАК ОборудованиеКонтрагентов, МАКСИМУМ(УниверсальныйСервисКартриджи.Ссылка.ДатаЗакрытия) КАК ДатаЗакрытия ИЗ Документ.УниверсальныйСервис.Картриджи КАК УниверсальныйСервисКартриджи ГДЕ УниверсальныйСервисКартриджи.Ссылка.Проведен = ИСТИНА И УниверсальныйСервисКартриджи.Ссылка.СтатусДокумента = ЗНАЧЕНИЕ(перечисление.пмСтатусыСервиса.Выдан) И УниверсальныйСервисКартриджи.ВидРаботНовый В(&ВидРаботСервис) СГРУППИРОВАТЬ ПО УниверсальныйСервисКартриджи.ОборудованиеКонтрагентов, УниверсальныйСервисКартриджи.Ссылка.Дата) КАК ЗапросСервиса ПО СправочникпмОборудованиеКонтрагентов.Ссылка = ЗапросСервиса.ОборудованиеКонтрагентов ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ УниверсальныйСервисКартриджи.Ссылка.Дата КАК Дата, МАКСИМУМ(УниверсальныйСервисКартриджи.Ссылка.ДатаЗакрытия) КАК ДатаЗакрытия, УниверсальныйСервисКартриджи.ОборудованиеКонтрагентов КАК ОборудованиеКонтрагентов ИЗ Документ.УниверсальныйСервис.Картриджи КАК УниверсальныйСервисКартриджи ГДЕ УниверсальныйСервисКартриджи.Ссылка.Проведен = ИСТИНА И УниверсальныйСервисКартриджи.Ссылка.СтатусДокумента = ЗНАЧЕНИЕ(перечисление.пмСтатусыСервиса.Выдан) И УниверсальныйСервисКартриджи.СерийныйНомер <> НЕОПРЕДЕЛЕНО И УниверсальныйСервисКартриджи.ВидРаботНовый В(&ВидРаботТО) СГРУППИРОВАТЬ ПО УниверсальныйСервисКартриджи.ОборудованиеКонтрагентов, УниверсальныйСервисКартриджи.Ссылка.Дата) КАК ЗапросСервисаТО ПО СправочникпмОборудованиеКонтрагентов.Ссылка = ЗапросСервисаТО.ОборудованиеКонтрагентов |
|||
1
saaken
05.09.24
✎
14:33
|
там с табличной частью соединение
|
|||
2
Пашка
naïve
05.09.24
✎
14:34
|
(1) Можно немного подробнее пожалуйста?
|
|||
3
PR
05.09.24
✎
14:36
|
(2) Немного подробнее
У тебя все-таки есть дублирование ключевых значений |
|||
4
Пашка
naïve
05.09.24
✎
14:45
|
(3) Можете пожалуйста сказать как мне это исправить?
|
|||
5
PR
05.09.24
✎
14:48
|
(4) Написать другой запрос
Если ты в принципе не понимаешь, что тебе вообще говорят, то, значит, тебе пока рановато решать такие задачи |
|||
6
Пашка
naïve
05.09.24
✎
14:52
|
(5) да, у меня начальный уровень, но я хочу разобраться, я не прошу что-то сделать за меня, только указать что я упускаю, чтобы я повысил уровень своих знаний
|
|||
7
СвинТуз
05.09.24
✎
14:55
|
(6)
Соединение один ко многим делает из одной записи много. |
|||
8
СвинТуз
05.09.24
✎
14:56
|
Если до сих пор не поняли где одна, а где много, читайте книги.
|
|||
9
СвинТуз
05.09.24
✎
14:59
|
Если пользоваться не вложенными запросами, а временными таблицами, то можно выбрать данные из временных и посмотреть где много.
|
|||
10
СвинТуз
05.09.24
✎
14:59
|
и не читаемых простыней не будет.
|
|||
11
PR
05.09.24
✎
15:03
|
(6) Так тебе сказали, у тебя запрос, который выдает результат, в котором дублируются ключевые поля
Причем сначала тебе сказала 1С, потом saaken в (1), потом я Но ты вообще, судя по всему, не понимаешь, о чем речь, то есть тебе нужно рассказать все с самого начала, по ходу пьесы догадываясь про нюансы Например, про то, что выдается это у тебя в каком-то динамическом списке Например, про то, что дубли по полю Владелец или Оборудование, не знаю, потому что ключевую таблицу ты не написал После этого тебе нужно рассказать про то, что такое вообще ключевые поля и чем чревато их дублирование и почему они дублируются конкретно у тебя И все это непонятно зачем, потому что, еще раз говорю, ты ничего этого в итоге не поймешь, просто получишь готовую решенную задачу, читай выполненную работу А не поймешь ты это просто потому, что у тебя сейчас, судя по всему, такой уровень, когда тебе начать бы с простеньких отчетиков, печатных форм и самых что ни на есть азов, а ты зачем-то взял задачу, в которой пока еще вообще ничего не соображаешь |
|||
12
СвинТуз
05.09.24
✎
15:02
|
А если при выборке из временных таблиц использовать группировку по ключевым полям и "ИМЕЮЩИЕ" то и искать не надо будет.
|
|||
13
Волшебник
05.09.24
✎
15:26
|
(0) Всё стереть. Сформулировать задачу
|
|||
14
PR
05.09.24
✎
16:05
|
(13) 👍
|
|||
15
Пашка
naïve
05.09.24
✎
16:34
|
Спасибо всем, опозоренный и злой на себя за безграмотность, я пошел читать умные статьи и книжки, после чего во всем разобрался. Допускал очень глупую ошибку с группировками)
|
|||
16
PR
05.09.24
✎
16:36
|
(15) Отлично
Значит, день прошел не зря и не зря мы тебя тут по столу лицом возили Удачи в дальнейшем изучении 1С |
|||
17
PR
05.09.24
✎
16:37
|
У многих вообще мозг не включается, живут всю жизнь, не приходя в сознание
А до тебя удалось достучаться, цепануть за живое Это хорошо |
|||
18
Пашка
naïve
05.09.24
✎
16:38
|
Ага) Спасибо)
|
|||
19
НоваяВолна
05.09.24
✎
23:38
|
(15) Тебе просто не повезло нарваться на весь Тяжелый отряд форума. Со своей стороны я тебе скажу одно - главное не сдавайся. Сложности бывают. Эту ветку забудь, она одна из них....
|
|||
20
PR
05.09.24
✎
23:51
|
(19) Он, в отличие от тебя, все правильно понял и сделал
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |