Запрос Который Должен Заполнить Табличную Часть Документа

Тема в разделе "1C и всё что с ней связано", создана пользователем Peacedeath, 21 фев 2013.

Статус темы:
Закрыта.
  1. Peacedeath

    Peacedeath Member

    Регистрация:
    20 фев 2013
    Сообщения:
    16
    Симпатии:
    0
    Доброго времени суток.

    Задание на этот раз такое: По кнопке «Заполнить» в табличную часть подбираются данные из регистра сведений «Инвестиционные договора».

    Код ( (Unknown Language)):
    Запрос=Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    |   ИнвестиционныеДоговораСрезПоследних.Регистратор,
    |   ИнвестиционныеДоговораСрезПоследних.НомерСтроки,
    |   ИнвестиционныеДоговораСрезПоследних.Активность,
    |   ИнвестиционныеДоговораСрезПоследних.Организация,
    |   ИнвестиционныеДоговораСрезПоследних.Контрагент,
    |   ИнвестиционныеДоговораСрезПоследних.Договор,
    |   ИнвестиционныеДоговораСрезПоследних.Сумма,
    |   ИнвестиционныеДоговораСрезПоследних.Валюта,
    |   ИнвестиционныеДоговораСрезПоследних.ДатаВклада,
    |   ИнвестиционныеДоговораСрезПоследних.ДатаВозврата,
    |   ИнвестиционныеДоговораСрезПоследних.РасчетныеДни,
    |   ИнвестиционныеДоговораСрезПоследних.ПроцентДохода,
    |   ИнвестиционныеДоговораСрезПоследних.Период
    |ИЗ
    |   РегистрСведений.ИнвестиционныеДоговора.СрезПоследних(&Период, ) КАК ИнвестиционныеДоговораСрезПоследних
    |ИТОГИ ПО
    |   ОБЩИЕ";


    Запрос.УстановитьПараметр("Период" = ЭлементыФормы.Дата.Значение);
    РезультатЗапроса = Запрос.Выполнить();
    ТабличноеПоле = РезультатЗапроса.Выбрать();

    Для каждого стр из ТабличноеПоле Цикл

    п = ТабличнаяЧасть1.Добавить();
    п.ПроцентныйДоход = стр.ПроцентДохода;
    п.Договор = стр.Договор;
    п.Валюта = стр.Валюта;

    КонецЦикла;
    У меня во первых с датой документа проблемы! + В табличнойЧасти появляются лишние пустые записи.
    Прошу вас помогите решить..
     
  2. unknown181538

    unknown181538 НеГуру
    1C Team

    Регистрация:
    28 дек 2008
    Сообщения:
    1.418
    Симпатии:
    0
    "У меня во первых с датой документа проблемы! "
    Какие?

    "В табличнойЧасти появляются лишние пустые записи."
    Итоги уберите из запроса для начала.

    " Для каждого стр из ТабличноеПоле Цикл" это вообще работает? обычно выборку так не обходят.
     
  3. Peacedeath

    Peacedeath Member

    Регистрация:
    20 фев 2013
    Сообщения:
    16
    Симпатии:
    0
    Код ( (Unknown Language)):
    Запрос.УстановитьПараметр(&Период, ЭлементыФормы.Дата.Значение)
    - Вот это я делаю с датой. Дабы Период моей выборки совпал с выборкой документа.
    Пока получаю ошибку "Недостаточно фактических параметров"

    Итоги убрал, пустые поля не появляются! Супер

    " Для каждого стр из ТабличноеПоле Цикл" это вообще работает? обычно выборку так не обходят."
    Ну а как по другому, Циклом Пока Элемент.Следующий() я очень плохо понимаю как заносить туда параметры.
    По крайней мере, некие данные заносятся в табличку через эдакий метод (Для Каждого)
     
  4. Peacedeath

    Peacedeath Member

    Регистрация:
    20 фев 2013
    Сообщения:
    16
    Симпатии:
    0
    Код ( (Unknown Language)):
       
    Запрос=Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    |   ИнвестиционныеДоговораСрезПоследних.Период,
    |   ИнвестиционныеДоговораСрезПоследних.Регистратор,
    |   ИнвестиционныеДоговораСрезПоследних.НомерСтроки,
    |   ИнвестиционныеДоговораСрезПоследних.Активность,
    |   ИнвестиционныеДоговораСрезПоследних.Организация,
    |   ИнвестиционныеДоговораСрезПоследних.Контрагент,
    |   ИнвестиционныеДоговораСрезПоследних.Договор,
    |   ИнвестиционныеДоговораСрезПоследних.Сумма,
    |   ИнвестиционныеДоговораСрезПоследних.Валюта,
    |   ИнвестиционныеДоговораСрезПоследних.ДатаВклада,
    |   ИнвестиционныеДоговораСрезПоследних.ДатаВозврата,
    |   ИнвестиционныеДоговораСрезПоследних.РасчетныеДни,
    |   ИнвестиционныеДоговораСрезПоследних.ПроцентДохода,
    |   КурсыВалютСрезПоследних.Курс,
    |   КурсыВалютСрезПоследних.Кратность
    |ИЗ
    |   РегистрСведений.ИнвестиционныеДоговора.СрезПоследних(&Дата, ) КАК ИнвестиционныеДоговораСрезПоследних
    |       ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних(&Дата, ) КАК КурсыВалютСрезПоследних
    |       ПО ИнвестиционныеДоговораСрезПоследних.Валюта = КурсыВалютСрезПоследних.Валюта";


    Запрос.УстановитьПараметр("Дата", ЭлементыФормы.Дата.Значение);
    РезультатЗапроса = Запрос.Выполнить();
    ТабличноеПоле = РезультатЗапроса.Выгрузить();                                

    //Пока ТабличноеПоле.Следующий() цикл
    //ТабЧ = ЭлементыФормы.ТабличнаяЧасть1.ТекущаяСтрока;
    //ТабЧ.Договор = ТабличноеПоле.Договор;
    //КонецЦикла;

    Для каждого стр из ТабличноеПоле Цикл

    п = ТабличнаяЧасть1.Добавить();
    п.ПроцентныйДоход = стр.ПроцентДохода;
    п.Договор = стр.Договор;
    п.Валюта = стр.Валюта;   
    п.Контрагент = стр.Контрагент;


    п.Курс = стр.Курс;

    КонецЦикла;
    Всё теперь как положено работает) Всем спс
     
  5. -master-

    -master- Well-Known Member

    Регистрация:
    14 янв 2012
    Сообщения:
    629
    Симпатии:
    19
    если ТабличнаяЧасть1 это таблица, то все это можно решить 1-им запросом, без клиента и циклов.
     
  6. unknown181538

    unknown181538 НеГуру
    1C Team

    Регистрация:
    28 дек 2008
    Сообщения:
    1.418
    Симпатии:
    0
    "если ТабличнаяЧасть1 это таблица, то все это можно решить 1-им запросом, без клиента и циклов."
    Вы о чем вообще?? Апдейтом что ли или инсертом?
     
  7. Дайнеко

    Дайнеко Well-Known Member
    1C Team

    Регистрация:
    19 ноя 2009
    Сообщения:
    951
    Симпатии:
    0
    Вот где косяк:
    Код ( (Unknown Language)):
          Для каждого стр из ТабличноеПоле Цикл
    Логически понимаю, что надо выбрать Результат запроса. И на каждый проход цикла добавить по 1 строке в ТЧ "ТабличнаяЧасть1" (убивал бы за такие названия и за такое оформление текста).

    А Вы делаете столько циклов, сколько строк в "ТабличноеПоле". А, кстати, что это оно такое?

    Добавлено: Ой! Только сейчас рассмотрел!. Данные исходные берутся из все той же стр = ТабличноеПоле.

    Ставлю диагноз: .... Ладно дам задание: расставьте в голове, что Вы хотите сделать? Сосредоточьтесь на вопросе: Откуда берем и Куда пишем?
     
  8. Peacedeath

    Peacedeath Member

    Регистрация:
    20 фев 2013
    Сообщения:
    16
    Симпатии:
    0
    Да все уже угомонись!
    иди врачу покажись
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей