Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
21 ноя 2024, 23:49

Выборка одинакового реквизита из разных документов

Автор Nail2010, 03 мар 2011, 06:28

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

Nail2010

И снова Добрый день!
Подскажите пожалуйста, в чем ошибка:

        ВЫБРАТЬ
              РеализацияТоваровУслуг.Ссылка
ИЗ
   Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
ГДЕ
   РеализацияТоваровУслуг.Подразделение = Документ.ЗаказПокупателя.Подразделение


Запрос ругается на условие ГДЕ. Задача в том, что бы выбрать те документы Реализация, где реквизит Подразделение= такому же реквизиту в ЗаказеПокупателя. Жду очень!

cska-fanat-kz

Примерный пример...

Выбрать все РКО у которых касса = Кассе ПКО:

ВЫБРАТЬ
   РКО.Ссылка
ИЗ
   Документ.РКО КАК РКО
      ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ПКО КАК ПКО
      ПО РКО.Касса = ПКО.Касса

Особенно обратите внимание на внутреннее соединение.
Запрос ругается, потому что в секции ИЗ не значится таблица "Документ.ЗаказПокупателя".

И еще вопрос: надо выбрать реализации у которых подразделение совпадает с любым заказом или только на основании которого он введен?
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Nail2010

Извиняюсь, этот вопрос снимается - ответ нашел в реквизите Сделка, который =ДокументОснование
Теперь по -настоящему трудная задачка.
Имеется обраьотка СтруктураПодчиненности, которая выводит в дерево все документы, введенные на основании.
Пример:
                                ЗаказПокупателя
                                |_РеализацияТоваровУслуг
                                |_ПриходныйКассовыйордер

Как сделать выборку документов Реализации, которые были введены на основании ЗаказПокупателя вместе с Приходным ордером? То есть именно те документы Реализация, которые отображаются в приведенной мной конструкции-примере.
Жду вариантов!

Nail2010

За ответ вс-таки спасибо! Ценная инфа все-равно, пригодиться в процессе работы!

Nail2010

Поясню еще: трудность в том, что выбираются либо абсолюнто все документы, введенные на основании ЗаказаПокуппателя, либо все документы ПКО, введенные на том же основании. Это может показаться странным, но нужно выбрать именно в том случае, когда ПКО и Реализация были введены вместе. Причем выбрать ТОЛЬКО документы Реализацию...

cska-fanat-kz

А если сегодня на основании Заказа ввели Реализацию, а завтра на основании этого же Заказа ввели ПКО - это уже не будет считаться "введены вместе"?

Опять же связка документов осуществляется через реквизит ДокументОснование у Реализации и у ПКО, который в ОбработкеЗаполнения этих документов и устанавливается.
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Nail2010

Именно так - к примеру ЗаказПокупателя0001 вчера были введены оба документа - и ПКО и Реализация, а на основании заказПокупателя0002 - только Реализация (или только ПКО). Такое условие в выборку не попадает.
Только если и Пко и Реализация вместе.

Может быть вариант сделать пакетным запросом?

ВЫБРАТЬ
                     |ЗаказПокупателя.Ссылка,
                     |РеализацияТоваровУслуг.Ссылка КАК Реализация
             |ПриходныйКассовыйОрдер.ДокументОснование.Ссылка КАК Приходный
             |ПОМЕСТИТЬ РеализацияТУ
                             |ИЗ
                     |Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
             |ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя КАК ЗаказПокупателя
             |ПО РеализацияТоваровУслуг.Сделка = ЗаказПокупателя.Ссылка
             |;
             |ВЫБРАТЬ
                  |РеализацияТУ.Ссылка // Из Заказа Покупателя
             |Реализация.Приходный //Из ПКО
                             |ИЗ РеализацияТУ КАК РеализацияТУ
                             |ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя КАК ЗаказПокупателя
                             |ПО ПриходныйКассовыйОрдер.Документоснование=ЗаказПокупателя.Ссылка

И как объединить результат???

cska-fanat-kz

Не знаю, если устроит такое допущение что
"Введены вместе" = "Введены в один день", то
можете использовать условие например такое

РАЗНОСТЬДАТ(Реализация.Дата, ПКО.Дата, ДЕНЬ) = 0

ну и конечно связь по

Реализация.ДокументОснование = ПКО.ДокументОснование
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Nail2010

По идее, праильнее было бы конечно выбрать ИЗ ЗаказаПокупателя, сначала ссылки на ДокОснование Реализации, а затем из получившегося списка выборки - Реализацию. Но почему-то в строку ИЗ________ Заказ покупателя не попадает, а при ручной вставке выдает ошибку

cska-fanat-kz

"|ПриходныйКассовыйОрдер.ДокументОснование.Ссылка КАК Приходный"

уже не сработает потому что в "ИЗ" опять нет таблицы "ПриходныйКассовыйОрдер"
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск