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

Обработка второго куска кода из объединенного запроса

Автор Тимур Давлатов, 04 июл 2019, 14:57

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

Тимур Давлатов

Всем доброго времени суток.
Помогите, пожалуйста, не знаю с какой стороны подойти.
Суть такова, необходимо разделить один и тот-же документ на два но с другой ссылкой и отдельным реквизитом.
Сделал через объединение, как обработать ТЧ понимаю, но выходит, что обрабатывается весь запрос. А нужно, конкретно второй кусок после объединения.

Тимур Давлатов

Примерно вот такое вот наваял:

ТолькоУникальныеЗначения = Истина;
МассивДокументы = ПолучитьКолонкуИзДанныхДляЭкспорта("РеализацииТовары", "Ссылка", ТолькоУникальныеЗначения); // товары я уже разделил, там все выгружается верно

Запрос = Новый Запрос();
Запрос.УстановитьПараметр("Документы", МассивДокументы);

Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ
| Документы.Ссылка КАК Ссылка,
| Документы.Контрагент КАК Контрагент,
| ИерархияПартнеров.Партнер КАК ТорговаяТочка,
| ИерархияПартнеров.Родитель КАК Владелец,
| ВЫБОР
| КОГДА Документы.РеализацияПоЗаказам
| ТОГДА Документы.ЗаказКлиента
| ИНАЧЕ """"
| КОНЕЦ КАК ДокументОснование,
| Документы.Валюта КАК Валюта,
| ИСТИНА КАК УчитыватьНДС,
| ИСТИНА КАК СуммаВключаетНДС,
| ВЫРАЗИТЬ(Документы.Комментарий КАК СТРОКА(512)) КАК Комментарий,
| Документы.ВерсияДанных КАК ВерсияДанных,
| ""Продажа"" КАК Отгрузка,
| Документы.ПометкаУдаления КАК ПометкаУдаления
|ИЗ
| Документ.РеализацияТоваровУслуг КАК Документы
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ИерархияПартнеров КАК ИерархияПартнеров
| ПО Документы.Партнер = ИерархияПартнеров.Партнер
|ГДЕ
| Документы.Ссылка В(&Документы)
| И ИерархияПартнеров.Уровень = 0
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
|       Документы.Ссылка КАК Ссылка, // необходимо обработать ссылку, как знаю, например в цикле СтрокаПриемник.Ссылка= Строка(XMLСтрока(СтрокаИсточник.Ссылка))+"_bonus";
| Документы.Контрагент КАК Контрагент,
| ИерархияПартнеров.Партнер КАК ТорговаяТочка,
| ИерархияПартнеров.Родитель КАК Владелец,
| ВЫБОР
| КОГДА Документы.РеализацияПоЗаказам
| ТОГДА Документы.ЗаказКлиента
| ИНАЧЕ """"
| КОНЕЦ КАК ДокументОснование,
| Документы.Валюта КАК Валюта,
| ИСТИНА КАК УчитыватьНДС,
| ИСТИНА КАК СуммаВключаетНДС,
| ВЫРАЗИТЬ(Документы.Комментарий КАК СТРОКА(512)) КАК Комментарий,
| Документы.ВерсияДанных КАК ВерсияДанных,
| ""Бонус"" КАК Отгрузка,
| Документы.ПометкаУдаления КАК ПометкаУдаления
|ИЗ
| Документ.РеализацияТоваровУслуг КАК Документы
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ИерархияПартнеров КАК ИерархияПартнеров
| ПО Документы.Партнер = ИерархияПартнеров.Партнер
|ГДЕ
| Документы.Ссылка В(&Документы)
| И ИерархияПартнеров.Уровень = 0
|
|УПОРЯДОЧИТЬ ПО
| Документы.Дата,
| Документы.Номер";

ТЗнДокументы = Запрос.Выполнить().Выгрузить();


Но вот как оработать именно вторую часть запроса, не могу додуматься.
Подскажите, люди добрые )

wise

(1) а бонусы от НЕ бонусов в ТЧ, чем отличаются.?? может реквизит КАКОЙ-НИБУДЬ есть?
Представьте себе, какая была бы тишина, если бы люди говорили только то, что знают

Тимур Давлатов

Цитата: wise от 05 июл 2019, 10:57
(1) а бонусы от НЕ бонусов в ТЧ, чем отличаются.?? может реквизит КАКОЙ-НИБУДЬ есть?
Нет никаких реквизитов, был бы реквизит то и проблем не было бы. А так, отличается только тем, что в наименовании есть "%АКЦИЯ%". Собственно по этому признаку я и делю номенклатуру на два массива и в ТЧ он так же разделен на этот признак - ГДЕ ТоварыДокумента.Номенклатура в (&МассивТоваровАкция) // где массив собарнной акционой номенклатуры

wise

(3) дык, может и в запросе ТАК же выбирать, через табличную часть "Товары", чтобы МОЖНО было условие поставить на наименование номенклатуры...
Представьте себе, какая была бы тишина, если бы люди говорили только то, что знают

Тимур Давлатов

Цитата: wise от 05 июл 2019, 16:05
(3) дык, может и в запросе ТАК же выбирать, через табличную часть "Товары", чтобы МОЖНО было условие поставить на наименование номенклатуры...
Да вот боюсь, что будет нагромождение, что в последствии скажется на оптимизации выгрузки. Объем данных очень велик (

wise

(5) Вы же ссылку и реквизиты выбираете... ВЫБРАТЬ РАЗЛИЧНЫЕ т.е. через внутреннее соединение где ТЧТовары.Ссылка=Докмент.Ссылка И ТЧТовары.Номенклатура.Наименование Содержит "%АКЦИЯ%"

а вторая часть ТЧТовары.Номенклатура.Наименование НЕ Содержит "%АКЦИЯ%"
Представьте себе, какая была бы тишина, если бы люди говорили только то, что знают

Теги:

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

Рейтинг@Mail.ru

Поиск