1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

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

Тема в разделе "Базы данных и администрирование", создана пользователем Peacedeath, 21 фев 2013.

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

    Peacedeath Member

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

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

    Код:
    Запрос=Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    |	ИнвестиционныеДоговораСрезПоследних.Регистратор,
    |	ИнвестиционныеДоговораСрезПоследних.НомерСтроки,
    |	ИнвестиционныеДоговораСрезПоследних.Активность,
    |	ИнвестиционныеДоговораСрезПоследних.Организация,
    |	ИнвестиционныеДоговораСрезПоследних.Контрагент,
    |	ИнвестиционныеДоговораСрезПоследних.Договор,
    |	ИнвестиционныеДоговораСрезПоследних.Сумма,
    |	ИнвестиционныеДоговораСрезПоследних.Валюта,
    |	ИнвестиционныеДоговораСрезПоследних.ДатаВклада,
    |	ИнвестиционныеДоговораСрезПоследних.ДатаВозврата,
    |	ИнвестиционныеДоговораСрезПоследних.РасчетныеДни,
    |	ИнвестиционныеДоговораСрезПоследних.ПроцентДохода,
    |	ИнвестиционныеДоговораСрезПоследних.Период
    |ИЗ
    |	РегистрСведений.ИнвестиционныеДоговора.СрезПоследних(&Период, ) КАК ИнвестиционныеДоговораСрезПоследних
    |ИТОГИ ПО
    |	ОБЩИЕ";
    
    
    Запрос.УстановитьПараметр("Период" = ЭлементыФормы.Дата.Значение);
    РезультатЗапроса = Запрос.Выполнить();
    ТабличноеПоле = РезультатЗапроса.Выбрать();	
    
    Для каждого стр из ТабличноеПоле Цикл
    
    п = ТабличнаяЧасть1.Добавить();
    п.ПроцентныйДоход = стр.ПроцентДохода;
    п.Договор = стр.Договор;
    п.Валюта = стр.Валюта;
    
    КонецЦикла;
    У меня во первых с датой документа проблемы! + В табличнойЧасти появляются лишние пустые записи.
    Прошу вас помогите решить..
     
  2. unknown181538

    unknown181538 НеГуру

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

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

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

    Peacedeath Member

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

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

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

    Peacedeath Member

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

    -master- Well-Known Member

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

    unknown181538 НеГуру

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

    Дайнеко Well-Known Member

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

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

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

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

    Peacedeath Member

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

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