Здравствуйте, помогите новичку обработать таблицу, которую возвращает запрос. Можно обработать как выборку или как выгрузку.
Либо вообще запросами решить задачу, не знаю как лучше.
Запрос дает следующее:
ПодчиненыйДокумент........ДатаДокумента.....ДокументОснование
РеализацияТоваровУслуг1......01.05.2104.............ЗаказКлиента1
ЗаказПоставщику1................02.05.2104.............ЗаказКлиента1
РеализацияТоваровУслуг2......13.06.2014.............ЗаказКлиента2
РеализацияТоваровУслуг2a.....13.06.2014.............ЗаказКлиента2
ЗаказПоставщику2................14.06.2014.............ЗаказКлиента2
РеализацияТоваровУслуг3......15.06.2014.............ЗаказКлиента2
РеализацияТоваровУслуг3а.....15.06.2014.............ЗаказКлиента2
ЗаказПоставщику3................16.06.2014.............ЗаказКлиента2
РеализацияТоваровУслуг4......17.06.2014.............ЗаказКлиента2
Т.е. типы подчиненных либо РеализацияТоваровУслуг, либо ЗаказПоставщику, а основание всегда ЗаказКлиента.
И так для всех заказов клиента отбирается. Цель - для каждого документа ЗаказКлиента в его структуре подчиненности
отобрать такие документы РеализацияТоваровУслуг, у которых дата меньше даты документа ЗаказПоставщику,
исключая из отбора такие реализации перед которыми более ранний документ в структуре подчиненности это ЗаказПоставщику. И все отобранные документы реализацийсо всех заказов клиентам поместить в таблицу значений.
Допустим в данном примере будет отобраны документы РеализацияТоваровУслуг2, РеализацияТоваровУслуг2а и РеализацияТоваровУслуг3а.
Если нетрудно, напишите код плиз.
Либо вообще запросами решить задачу, не знаю как лучше.
Запрос дает следующее:
ПодчиненыйДокумент........ДатаДокумента.....ДокументОснование
РеализацияТоваровУслуг1......01.05.2104.............ЗаказКлиента1
ЗаказПоставщику1................02.05.2104.............ЗаказКлиента1
РеализацияТоваровУслуг2......13.06.2014.............ЗаказКлиента2
РеализацияТоваровУслуг2a.....13.06.2014.............ЗаказКлиента2
ЗаказПоставщику2................14.06.2014.............ЗаказКлиента2
РеализацияТоваровУслуг3......15.06.2014.............ЗаказКлиента2
РеализацияТоваровУслуг3а.....15.06.2014.............ЗаказКлиента2
ЗаказПоставщику3................16.06.2014.............ЗаказКлиента2
РеализацияТоваровУслуг4......17.06.2014.............ЗаказКлиента2
Т.е. типы подчиненных либо РеализацияТоваровУслуг, либо ЗаказПоставщику, а основание всегда ЗаказКлиента.
И так для всех заказов клиента отбирается. Цель - для каждого документа ЗаказКлиента в его структуре подчиненности
отобрать такие документы РеализацияТоваровУслуг, у которых дата меньше даты документа ЗаказПоставщику,
исключая из отбора такие реализации перед которыми более ранний документ в структуре подчиненности это ЗаказПоставщику. И все отобранные документы реализацийсо всех заказов клиентам поместить в таблицу значений.
Допустим в данном примере будет отобраны документы РеализацияТоваровУслуг2, РеализацияТоваровУслуг2а и РеализацияТоваровУслуг3а.
Если нетрудно, напишите код плиз.
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
ВЫБРАТЬ
ВложенныйЗапрос.ПодчинДокумент КАК ПодчиненныйДокумент,
ВложенныйЗапрос.Дата КАК ДатаДокумента,
ЗаказКлиента.Ссылка КАК ДокументОснование
ИЗ
Документ.ЗаказКлиента КАК ЗаказКлиента
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
ВЫБОР
КОГДА ЗаказПоставщику.Дата < РеализацияТоваровУслуг.Дата
ТОГДА ЗаказПоставщику.Дата
КОГДА ЗаказПоставщику.Дата > РеализацияТоваровУслуг.Дата
ТОГДА РеализацияТоваровУслуг.Дата
КОНЕЦ КАК Дата,
ВЫБОР
КОГДА ЗаказПоставщику.Дата < РеализацияТоваровУслуг.Дата
ТОГДА ЗаказПоставщику.Ссылка
КОГДА ЗаказПоставщику.Дата > РеализацияТоваровУслуг.Дата
ТОГДА РеализацияТоваровУслуг.Ссылка
КОНЕЦ КАК ПодчинДокумент,
ВЫБОР
КОГДА ЗаказПоставщику.Дата < РеализацияТоваровУслуг.Дата
ТОГДА ЗаказПоставщику.ДокументОснование
КОГДА ЗаказПоставщику.Дата > РеализацияТоваровУслуг.Дата
ТОГДА РеализацияТоваровУслуг.Сделка
КОНЕЦ КАК ДокОснование
ИЗ
Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЗаказПоставщику КАК ЗаказПоставщику
ПО РеализацияТоваровУслуг.Сделка = ЗаказПоставщику.ДокументОснование) КАК ВложенныйЗапрос
ПО ЗаказПокупателя.Ссылка = ВложенныйЗапрос.ДокОснование
УПОРЯДОЧИТЬ ПО
ДатаДокумента
Показать
Благодарю вас за очень полезные для меня знания.
В УТ 11.1 весто сделки заказ клиента, в итоге ваш запрос такой:
Но все-таки всей логики запрос не учел.
Наример если структура подчиненности такая:
Заказ клиента 00ЦБ-000100 от 06.05.2014
_____Заказ поставщику 00ЦБ-000100 от 08.05.2014
_____Реализация товаров и услуг 00ЦБ-000100 14.05.2014
_____Заказ поставщику 00ЦБ-000101 от 16.05.2014
То эта реализаци попадает в отбор, хотя не должна, так как перед ней самый ранний документ в структуре подчиненности
есть заказ поставщику.
Может быть все-таки с помощью запроса не решить или не эффективно решать такую задачу, а нужно программировать выборку или выгрузку запроса?
В УТ 11.1 весто сделки заказ клиента, в итоге ваш запрос такой:
Код |
---|
ВЫБРАТЬ
ВложенныйЗапрос.ПодчинДокумент КАК ПодчиненныйДокумент,
ВложенныйЗапрос.Дата КАК ДатаДокумента,
ЗаказКлиента.Ссылка КАК ДокументОснование
ИЗ
Документ.ЗаказКлиента КАК ЗаказКлиента
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
ВЫБОР
КОГДА ЗаказПоставщику.Дата < РеализацияТоваровУслуг.Дата
ТОГДА ЗаказПоставщику.Дата
КОГДА ЗаказПоставщику.Дата > РеализацияТоваровУслуг.Дата
ТОГДА РеализацияТоваровУслуг.Дата
КОНЕЦ КАК Дата,
ВЫБОР
КОГДА ЗаказПоставщику.Дата < РеализацияТоваровУслуг.Дата
ТОГДА ЗаказПоставщику.Ссылка
КОГДА ЗаказПоставщику.Дата > РеализацияТоваровУслуг.Дата
ТОГДА РеализацияТоваровУслуг.Ссылка
КОНЕЦ КАК ПодчинДокумент,
ВЫБОР
КОГДА ЗаказПоставщику.Дата < РеализацияТоваровУслуг.Дата
ТОГДА ЗаказПоставщику.ДокументОснование
КОГДА ЗаказПоставщику.Дата > РеализацияТоваровУслуг.Дата
ТОГДА РеализацияТоваровУслуг.ЗаказКлиента
КОНЕЦ КАК ДокОснование
ИЗ
Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЗаказПоставщику КАК ЗаказПоставщику
ПО РеализацияТоваровУслуг.ЗаказКлиента = ЗаказПоставщику.ДокументОснование) КАК ВложенныйЗапрос
ПО ЗаказКлиента.Ссылка = ВложенныйЗапрос.ДокОснование
ГДЕ
ЗаказКлиента.Дата >= &ДатаНачала
И ЗаказКлиента.Дата <= &ДатаКонца
УПОРЯДОЧИТЬ ПО
ДатаДокумента
Показать полностью |
Но все-таки всей логики запрос не учел.
Наример если структура подчиненности такая:
Заказ клиента 00ЦБ-000100 от 06.05.2014
_____Заказ поставщику 00ЦБ-000100 от 08.05.2014
_____Реализация товаров и услуг 00ЦБ-000100 14.05.2014
_____Заказ поставщику 00ЦБ-000101 от 16.05.2014
То эта реализаци попадает в отбор, хотя не должна, так как перед ней самый ранний документ в структуре подчиненности
есть заказ поставщику.
Может быть все-таки с помощью запроса не решить или не эффективно решать такую задачу, а нужно программировать выборку или выгрузку запроса?
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот