Вход | Регистрация


Как правильно переделать запрос?

Как правильно переделать запрос?
Я
   Ugra
 
13.10.16 - 13:50
Здравствуйте. подскажите как переделать запрос чтобы  при открытии поступления товаров не выходила ошибка-дублирование ключевых значений в колонке "сслыка", отображение данных невозможно. Ошибка именно в этом запросе, в форме списка поступления в поступлении товаров динамические дописки..

Процедура УстановитьТекстЗапросаПТиУФормаСписка(Список)   Экспорт
    Список.ТекстЗапроса = "ВЫБРАТЬ
                          |    ВЫБОР
                          |        КОГДА ДокументПоступлениеТоваровУслуг.РучнаяКорректировка = ИСТИНА
                          |            ТОГДА ВЫБОР
                          |                    КОГДА ДокументПоступлениеТоваровУслуг.ПометкаУдаления = ИСТИНА
                          |                        ТОГДА 10
                          |                    КОГДА ДокументПоступлениеТоваровУслуг.Проведен = ЛОЖЬ
                          |                        ТОГДА 9
                          |                    ИНАЧЕ 8
                          |                КОНЕЦ
                          |        ИНАЧЕ ВЫБОР
                          |                КОГДА ДокументПоступлениеТоваровУслуг.ПометкаУдаления = ИСТИНА
                          |                    ТОГДА 2
                          |                КОГДА ДокументПоступлениеТоваровУслуг.Проведен = ИСТИНА
                          |                    ТОГДА 1
                          |                ИНАЧЕ 0
                          |            КОНЕЦ
                          |    КОНЕЦ КАК СостояниеДокумента,
                          |    ДокументПоступлениеТоваровУслуг.Ссылка,
                          |    ДокументПоступлениеТоваровУслуг.ПометкаУдаления,
                          |    ДокументПоступлениеТоваровУслуг.Дата,
                          |    ДокументПоступлениеТоваровУслуг.Номер,
                          |    ДокументПоступлениеТоваровУслуг.Проведен,
                          |    ДокументПоступлениеТоваровУслуг.ВидОперации,
                          |    ДокументПоступлениеТоваровУслуг.Организация,
                          |    ДокументПоступлениеТоваровУслуг.Склад,
                          |    ДокументПоступлениеТоваровУслуг.ПодразделениеОрганизации,
                          |    ДокументПоступлениеТоваровУслуг.Контрагент,
                          |    ДокументПоступлениеТоваровУслуг.ДоговорКонтрагента,
                          |    ДокументПоступлениеТоваровУслуг.СпособЗачетаАвансов,
                          |    ДокументПоступлениеТоваровУслуг.ВалютаДокумента,
                          |    ДокументПоступлениеТоваровУслуг.НомерВходящегоДокумента,
                          |    ДокументПоступлениеТоваровУслуг.ДатаВходящегоДокумента,
                          |    ДокументПоступлениеТоваровУслуг.Грузоотправитель,
                          |    ДокументПоступлениеТоваровУслуг.Грузополучатель,
                          |    ДокументПоступлениеТоваровУслуг.Ответственный,             
                          //|    ДокументПоступлениеТоваровУслуг.Комментарий,

                          | ВЫРАЗИТЬ 
                          | (ДокументПоступлениеТоваровУслуг.Комментарий КАК Строка (500)) КАК Комментарий, 
                          
                          |    ДокументПоступлениеТоваровУслуг.СуммаДокумента,
                          |    ДокументПоступлениеТоваровУслуг.ТипЦен,
                          |    ДокументПоступлениеТоваровУслуг.РучнаяКорректировка,
                          |    ДокументПоступлениеТоваровУслуг.Менеджер,
                          |    СостоянияЭД.СостояниеВерсииЭД,
                          |    ВЫБОР
                          |        КОГДА СтатусыДокументов.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыДокументовПоступления.ОригиналПолучен)
                          |            ТОГДА ИСТИНА
                          |        ИНАЧЕ ЛОЖЬ
                          |    КОНЕЦ КАК Оригинал,
                          |    ВЫБОР
                          |        КОГДА ДокументыСОшибкамиПроверкиКонтрагентов.Документ ЕСТЬ NULL 
                          |            ТОГДА ЛОЖЬ
                          |        ИНАЧЕ ИСТИНА
                          |    КОНЕЦ КАК СодержитНекорректныхКонтрагентов,
                          |    НаличиеПрисоединенныхФайлов.ЕстьФайлы,
                          |    ВЫБОР
                          |        КОГДА СчетФактураПолученный.НомерВходящегоДокумента <> """"
                          |            ТОГДА СчетФактураПолученный.НомерВходящегоДокумента
                          |        ИНАЧЕ "" ""
                          |    КОНЕЦ КАК НомерСФ,
                          |    Накладные.ОригиналПолучен КАК ОригиналТН,
                          |    СФ.ОригиналПолучен КАК ОригиналСФ
                          |ИЗ
                          |    Документ.ПоступлениеТоваровУслуг КАК ДокументПоступлениеТоваровУслуг
                          |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыДокументов КАК СтатусыДокументов
                          |        ПО ДокументПоступлениеТоваровУслуг.Организация = СтатусыДокументов.Организация
                          |            И ДокументПоступлениеТоваровУслуг.Ссылка = СтатусыДокументов.Документ
                          |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостоянияЭД КАК СостоянияЭД
                          |        ПО (СостоянияЭД.СсылкаНаОбъект = ДокументПоступлениеТоваровУслуг.Ссылка)
                          |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДокументыСОшибкамиПроверкиКонтрагентов КАК ДокументыСОшибкамиПроверкиКонтрагентов
                          |        ПО ДокументПоступлениеТоваровУслуг.Ссылка = ДокументыСОшибкамиПроверкиКонтрагентов.Документ
                          |            И (&ИспользованиеПроверкиВозможно)
                          |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НаличиеПрисоединенныхФайлов КАК НаличиеПрисоединенныхФайлов
                          |        ПО (НаличиеПрисоединенныхФайлов.ОбъектСФайлами = ДокументПоступлениеТоваровУслуг.Ссылка)
                          |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.СчетФактураПолученный КАК СчетФактураПолученный
                          |        ПО ДокументПоступлениеТоваровУслуг.Ссылка = СчетФактураПолученный.ДокументОснование
                          |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ОригиналПолучен КАК Накладные
                          |        ПО (ДокументПоступлениеТоваровУслуг.Ссылка = Накладные.Документ
                          |                И Накладные.ТипДокумента = ЗНАЧЕНИЕ(Перечисление.ВидДокумента.ТоварнаяНакаладная))
                          |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ОригиналПолучен КАК СФ
                          |        ПО (ДокументПоступлениеТоваровУслуг.Ссылка = СФ.Документ
                          |                И СФ.ТипДокумента = ЗНАЧЕНИЕ(Перечисление.ВидДокумента.СчетФактура))";
                          
КонецПроцедуры
 
 
   Boleev
 
1 - 13.10.16 - 13:56
У вас при левом соединении образуются дубли строк, т.е. в РС присутствует несколько измерений с одним и тем же документом
   Ugra
 
2 - 13.10.16 - 14:07
я поняла что проблема в левом соединении. Подскажите как можно изменить эту запись?
я думаю проблема вот тут:
  ПО (НаличиеПрисоединенныхФайлов.ОбъектСФайлами = ДокументПоступлениеТоваровУслуг.Ссылка)
   Irbis
 
3 - 13.10.16 - 14:10
>> я поняла что проблема в левом соединении
Если проблема в левом соединении, то нужно использовать правое. Это же очевидно.
   Ugra
 
4 - 13.10.16 - 14:25
Получается во всех процедурах этого использовать Правое соединение вместо левого?или только в этом запросе?
   Irbis
 
5 - 13.10.16 - 14:30
Разумеется нет, только в проблемных запросах. !Сники всегда так делают. потом стоит попробовать внутреннее и полное. Если не поможет надо начинать думать
   Ugra
 
6 - 13.10.16 - 14:36
при ПОЛНОМ соединении выдает такую же ошибку.
когда меняю ЛЕВОЕ СОЕДИНЕНИЕ на ПРАВОЕ СОЕДИНЕНИЕ  вообще при открытии списка поступлений список пуст

Список тем форума
Рекламное место пустует  Рекламное место пустует
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство.
Фредерик Брукс-младший
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует