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

Помогите новичку !!!

Автор claberRZN, 11 ноя 2015, 13:28

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

claberRZN

Люди помогите сделать задание !!! Мозг кипит уже неделю сижу не получается :( Есть запрос , нужно в дерево значение вывести Документ Поступления , а под ним Документ Возврата "Если он был ", ну и что бы это было в иерархии !!!! HELP. Запрос вот

Процедура КнопкаВыполнитьНажатие(Кнопка)
   
   Дерево = Новый ДеревоЗначений;
   ЗапросПоступление = Новый Запрос;
   ЗапросПоступление.УстановитьПараметр("НачалоПериода",НачалоПериода);
   ЗапросПоступление.УстановитьПараметр("КонецПериода",КонецПериода);
   
   ЗапросПоступление.Текст = ("ВЫБРАТЬ
                              |   ПоступлениеТоваровУслугТовары.Ссылка.Ссылка,
                              |   ПоступлениеТоваровУслугТовары.Ссылка.Дата КАК Дата,
                              |   ПоступлениеТоваровУслугТовары.Ссылка.Номер,
                              |   ПоступлениеТоваровУслугТовары.Ссылка.СуммаДокумента,
                              |   ПоступлениеТоваровУслугТовары.Ссылка.Контрагент,
                              |   ПоступлениеТоваровУслугТовары.Ссылка.Организация
                              |ИЗ
                              |   Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
                              |ГДЕ
                              |   ПоступлениеТоваровУслугТовары.Ссылка.Дата МЕЖДУ &НачалоПериода И &КонецПериода
                              |
                              |СГРУППИРОВАТЬ ПО
                              |   ПоступлениеТоваровУслугТовары.Ссылка.Ссылка,
                              |   ПоступлениеТоваровУслугТовары.Ссылка.Дата,
                              |   ПоступлениеТоваровУслугТовары.Ссылка.Номер,
                              |   ПоступлениеТоваровУслугТовары.Ссылка.СуммаДокумента,
                              |   ПоступлениеТоваровУслугТовары.Ссылка.Контрагент,
                              |   ПоступлениеТоваровУслугТовары.Ссылка.Организация
                              |
                              |УПОРЯДОЧИТЬ ПО
                              |   Дата"
   );
   
   
   Дерево = ЗапросПоступление.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
   
   
   ЗапросВозврат  = Новый Запрос;
   
   ЗапросВозврат.Текст = ("ВЫБРАТЬ
                          |   ВозвратТоваровПоставщику.Ссылка,
                          |   ВозвратТоваровПоставщику.Дата КАК Дата,
                          |   ВозвратТоваровПоставщику.Номер,
                          |   ВозвратТоваровПоставщику.СуммаДокумента,
                          |   ВозвратТоваровПоставщику.Организация,
                          |   ВозвратТоваровПоставщику.Контрагент
                          |ИЗ
                          |   Документ.ВозвратТоваровПоставщику КАК ВозвратТоваровПоставщику
                          |
                          |СГРУППИРОВАТЬ ПО
                          |   ВозвратТоваровПоставщику.Ссылка,
                          |   ВозвратТоваровПоставщику.Дата,
                          |   ВозвратТоваровПоставщику.Номер,
                          |   ВозвратТоваровПоставщику.СуммаДокумента,
                          |   ВозвратТоваровПоставщику.Организация,
                          |   ВозвратТоваровПоставщику.Контрагент
                          |
                          |УПОРЯДОЧИТЬ ПО
                          |   Дата");
   
      
   Дерево = ЗапросВозврат.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);

Vladimir_Sh

Ну во первых нужно объединить эти два запроса, так будет проще. Какая конфигурация?
Если я Вам помог, нажми - Спасибо!

claberRZN

Цитата: Vladimir_Sh от 11 ноя 2015, 13:53
Ну во первых нужно объединить эти два запроса, так будет проще


Что я только не делал за эти дни , ничего не получалось ( я не могу понять как мне описать цикл где он будет выводить возврат на основании поступления  (
Добавлено: 11 ноя 2015, 13:58




Конфигурация
Компания "?????", ред. 10.2 (10.2.11.3)

Vladimir_Sh

В документе ВозвратТоваровПоставщику указывается документ поступления по которому происходит возврат? И где он указывается в Табличной части или реквизите? Просто под рукой нет релиза 10.2(это я так понимаю УТ)
Если я Вам помог, нажми - Спасибо!

claberRZN

Цитата: Vladimir_Sh от 11 ноя 2015, 14:04
В документе ВозвратТоваровПоставщику указывается документ поступления по которому происходит возврат? И где он указывается в Табличной части или реквизите? Просто под рукой нет релиза 10.2(это я так понимаю УТ)
Да это управление торговлей , я забыл его в запрос добавить =( получается вот так будет


Дерево = Новый ДеревоЗначений;
   ЗапросПоступление = Новый Запрос;
   ЗапросПоступление.УстановитьПараметр("НачалоПериода",НачалоПериода);
   ЗапросПоступление.УстановитьПараметр("КонецПериода",КонецПериода);
   
   ЗапросПоступление.Текст = ("ВЫБРАТЬ
                              |   ПоступлениеТоваровУслугТовары.Ссылка.Ссылка,
                              |   ПоступлениеТоваровУслугТовары.Ссылка.Дата КАК Дата,
                              |   ПоступлениеТоваровУслугТовары.Ссылка.Номер,
                              |   ПоступлениеТоваровУслугТовары.Ссылка.СуммаДокумента,
                              |   ПоступлениеТоваровУслугТовары.Ссылка.Контрагент,
                              |   ПоступлениеТоваровУслугТовары.Ссылка.Организация
                              |ИЗ
                              |   Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
                              |ГДЕ
                              |   ПоступлениеТоваровУслугТовары.Ссылка.Дата МЕЖДУ &НачалоПериода И &КонецПериода
                              |
                              |СГРУППИРОВАТЬ ПО
                              |   ПоступлениеТоваровУслугТовары.Ссылка.Ссылка,
                              |   ПоступлениеТоваровУслугТовары.Ссылка.Дата,
                              |   ПоступлениеТоваровУслугТовары.Ссылка.Номер,
                              |   ПоступлениеТоваровУслугТовары.Ссылка.СуммаДокумента,
                              |   ПоступлениеТоваровУслугТовары.Ссылка.Контрагент,
                              |   ПоступлениеТоваровУслугТовары.Ссылка.Организация
                              |
                              |УПОРЯДОЧИТЬ ПО
                              |   Дата"
   );
   
   
   Дерево = ЗапросПоступление.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
   
   
   ЗапросВозврат  = Новый Запрос;
   
   ЗапросВозврат.Текст = ("ВЫБРАТЬ
                          |   ВозвратТоваровПоставщику.Товары.(
                          |      Ссылка.Номер,
                          |      Ссылка.Дата,
                          |      Ссылка.Контрагент,
                          |      Ссылка.Организация,
                          |      ДокументПоступления
                          |   )
                          |ИЗ
                          |   Документ.ВозвратТоваровПоставщику КАК ВозвратТоваровПоставщику");
   
      
   Дерево = ЗапросВозврат.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
    ЭлементыФормы.Дерево.СоздатьКолонки();

Vladimir_Sh

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

Запрос.УстановитьПараметр("КонецПериода", КонецПериода);
Запрос.УстановитьПараметр("НачалоПериода", НачалоПериода);

Дерево = Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);


Вот Вам в помощь. Результат 2 колонки ДокументПоступление и ДокументВозврат. На форме оставьте видимой ДокументВозврат(можете изменить наименование) и получите в группировке документ поступление под ним документ возврат(если он есть)
Добавлено: 11 ноя 2015, 14:21


Это черновой вариант:) но рабочий
Если я Вам помог, нажми - Спасибо!

claberRZN

Цитата: Vladimir_Sh от 11 ноя 2015, 14:20
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ПоступлениеТоваровУслугТовары.Ссылка КАК ДокументПоступления
|ПОМЕСТИТЬ ВТДокументыПоступления
|ИЗ
| Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
|ГДЕ
| ПоступлениеТоваровУслугТовары.Ссылка.Дата МЕЖДУ &НачалоПериода И &КонецПериода
|
|СГРУППИРОВАТЬ ПО
| ПоступлениеТоваровУслугТовары.Ссылка
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ВозвратТоваровПоставщикуТовары.Ссылка КАК ДокументВозврата,
| ВозвратТоваровПоставщикуТовары.ДокументПоступления
|ПОМЕСТИТЬ ВТДокументыВозврата
|ИЗ
| Документ.ВозвратТоваровПоставщику.Товары КАК ВозвратТоваровПоставщикуТовары
|ГДЕ
| ВозвратТоваровПоставщикуТовары.Ссылка.Дата МЕЖДУ &НачалоПериода И &КонецПериода
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ВТДокументыПоступления.ДокументПоступления КАК ДокументПоступления,
| ВТДокументыВозврата.ДокументВозврата КАК ДокументВозврата
|ИЗ
| ВТДокументыПоступления КАК ВТДокументыПоступления
| ЛЕВОЕ СОЕДИНЕНИЕ ВТДокументыВозврата КАК ВТДокументыВозврата
| ПО ВТДокументыПоступления.ДокументПоступления = ВТДокументыВозврата.ДокументПоступления
|ИТОГИ
| МАКСИМУМ(ДокументПоступления) КАК ДокументВозврата
|ПО
| ДокументПоступления";

Запрос.УстановитьПараметр("КонецПериода", КонецПериода);
Запрос.УстановитьПараметр("НачалоПериода", НачалоПериода);

Дерево = Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);


Вот Вам в помощь. Результат 2 колонки ДокументПоступление и ДокументВозврат. На форме оставьте видимой ДокументВозврат(можете изменить наименование) и получите в группировке документ поступление под ним документ возврат(если он есть)
Добавлено: 11 ноя 2015, 14:21


Это черновой вариант:) но рабочий

Не получается так ( все равно он выводит две колонки, хоть и видимость убираю . И мне надо через цикл перебирать строки . Иначе данные о возврате будут не корректными =( "получается что по другому делать нельзя, почему без понятия , так сказали "

Vladimir_Sh

claberRZN, во второй колонке идут в группировках поступления и возвраты как детализация. Что и зачем вы собираетесь перебирать? Даже если так перебирайте без проблем все внимание на колонку ДокументыВозврат.
Если я Вам помог, нажми - Спасибо!

claberRZN

Не помог запрос который дали !!! Не выводит он как надо . я в панике =( не представляю че с ним делать

Vladimir_Sh

claberRZN, так стоп. давайте еще раз. Как нужно? Нарисуйте где нить и выложите. Еще лучше опишите что вообще хотите в итоге получить.
Если я Вам помог, нажми - Спасибо!

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

Рейтинг@Mail.ru

Поиск