8.х Получение данных запросом из регистра.

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем alp, 26 май 2010.

  1. TopicStarter Overlay
    alp
    Offline

    alp Опытный в 1С

    Регистрация:
    8 янв 2009
    Сообщения:
    432
    Симпатии:
    0
    Баллы:
    26
    Добрый день.
    У меня есть запрос:
    Код:
    Запрос = Новый Запрос;
    Запрос.Текст = 
    "ВЫБРАТЬ
    |	ПартииТМЦОстаткиИОбороты.Организация,";
    Если ЗначениеЗаполнено(Склад) Тогда 
    Запрос.Текст = Запрос.Текст+"
    |	ПартииТМЦОстаткиИОбороты.Склад,";
    КонецЕсли;
    Запрос.Текст = Запрос.Текст+"
    |	ПартииТМЦОстаткиИОбороты.Партия,
    |	ПартииТМЦОстаткиИОбороты.ТМЦ,
    |	ПартииТМЦОстаткиИОбороты.КоличествоНачальныйОстаток,
    |	ПартииТМЦОстаткиИОбороты.КоличествоКонечныйОстаток,
    |	ПартииТМЦОстаткиИОбороты.КоличествоПриход,
    |	ПартииТМЦОстаткиИОбороты.КоличествоРасход,
    |	ПартииТМЦОстаткиИОбороты.СуммаНачальныйОстаток,
    |	ПартииТМЦОстаткиИОбороты.СуммаКонечныйОстаток,
    |	ПартииТМЦОстаткиИОбороты.СуммаПриход,
    |	ПартииТМЦОстаткиИОбороты.СуммаРасход
    |ИЗ
    |	РегистрНакопления.ПартииТМЦ.ОстаткиИОбороты(&НачДата, &КонДата, , , ) КАК ПартииТМЦОстаткиИОбороты
    |ГДЕ
    |  ПартииТМЦОстаткиИОбороты.Организация = &Организация";
    
    Если ЗначениеЗаполнено(Склад) Тогда
    Запрос.Текст = Запрос.Текст + " И
    |  ПартииТМЦОстаткиИОбороты.Склад = &Склад";
    Запрос.УстановитьПараметр("Склад",Склад);
    КонецЕсли;
    Если ЗначениеЗаполнено(ТМЦ) ТОгда
    Если ТМЦ.ЭтоГруппа Тогда
    Запрос.Текст = Запрос.Текст + " И
    |  ПартииТМЦОстаткиИОбороты.ТМЦ В (&ТМЦ)";
    ИНаче
    Запрос.Текст = Запрос.Текст + " И
    |  ПартииТМЦОстаткиИОбороты.ТМЦ = &ТМЦ";
    КонецЕсли;
    Запрос.УстановитьПараметр("ТМЦ",ТМЦ);
    КонецЕсли;
    Запрос.Текст = Запрос.Текст+"
    |ИТОГИ
    |СУММА(КоличествоНачальныйОстаток),
    |СУММА(КоличествоКонечныйОстаток),
    |СУММА(КоличествоПриход),
    |СУММА(КоличествоРасход),
    |СУММА(СуммаНачальныйОстаток),
    |СУММА(СуммаКонечныйОстаток),
    |СУММА(СуммаПриход),
    |СУММА(СуммаРасход)
    |ПО
    | ТМЦ";	
    
    Запрос.УстановитьПараметр("НачДата",НачДата);
    Запрос.УстановитьПараметр("КонДата",КонДата);
    Запрос.УстановитьПараметр("Организация",Организация);
    Результат = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    Пока Результат.Следующий() Цикл 
    ДокументыДвижения = Результат.Выбрать();
    Пока ДокументыДвижения.Следующий() Цикл
    КонецЦикла;
    КонецЦикла;
    
    
    
    На первом уровне обхода результатов, показывается вроде все верно, но
    у меня в выборку попадает документ от 01.04.10, хотя начДата = "01.05.10";
    Помогите разобраться.
  2. nomad_irk
    Online

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.566
    Симпатии:
    717
    Баллы:
    204
    документ точно за 01.04.10, а не 01.04.09, например?
  3. Максим
    Offline

    Максим Опытный в 1С

    Регистрация:
    28 фев 2008
    Сообщения:
    688
    Симпатии:
    8
    Баллы:
    29
    Посмотри в форме списка по регистру ПартииТМЦ. Там движения по этому документу за какой период?
  4. TopicStarter Overlay
    alp
    Offline

    alp Опытный в 1С

    Регистрация:
    8 янв 2009
    Сообщения:
    432
    Симпатии:
    0
    Баллы:
    26
    У меня запрос показывает , остаток по этому документу, но как сделать так что бы он показывал только обороты за период ?

    движение за 01.04.2010, но по этому документу(Партии) не все измерения списаны.
  5. x_under
    Offline

    x_under Модераторы Команда форума Модератор

    Регистрация:
    25 апр 2007
    Сообщения:
    2.576
    Симпатии:
    13
    Баллы:
    29
    Взять виртуальную таблицу оборотов, а не остатков и оборотов.
  6. TopicStarter Overlay
    alp
    Offline

    alp Опытный в 1С

    Регистрация:
    8 янв 2009
    Сообщения:
    432
    Симпатии:
    0
    Баллы:
    26
    То есть ине остатки получать из таблицы остатков, а обороты из оборотов?? и как это все сопоставить вместе.. в моей голове не укладывается :unsure:
  7. x_under
    Offline

    x_under Модераторы Команда форума Модератор

    Регистрация:
    25 апр 2007
    Сообщения:
    2.576
    Симпатии:
    13
    Баллы:
    29
    Так. Давайте с начала. Вы же чуть выше говорили, что необходимы только остатки.
    Что вы хотите видеть?
  8. TopicStarter Overlay
    alp
    Offline

    alp Опытный в 1С

    Регистрация:
    8 янв 2009
    Сообщения:
    432
    Симпатии:
    0
    Баллы:
    26
    Хочу видить подобно отчету "Карточка счета" , или "Ведомость по контрагентам" , где идет Остаток ТМЦ на начало периода, затем идут движения(увеличение,уменшение) по ТМЦ и затем конечный остаток.
    Вот написал запрос по меньше:
    Код:
    Запрос = Новый Запрос;
    Запрос.Текст = 
    "ВЫБРАТЬ
    |	ПартииТМЦОстаткиИОбороты.ТМЦ КАК ТМЦ,
    |	ПартииТМЦОстаткиИОбороты.КоличествоНачальныйОстаток КАК КоличествоНачальныйОстаток,
    |	ПартииТМЦОстаткиИОбороты.КоличествоКонечныйОстаток КАК КоличествоКонечныйОстаток,
    |	ПартииТМЦОстаткиИОбороты.КоличествоПриход КАК КоличествоПриход,
    |	ПартииТМЦОстаткиИОбороты.КоличествоРасход КАК КоличествоРасход,
    |	ПартииТМЦОстаткиИОбороты.Партия
    |ИЗ
    |	РегистрНакопления.ПартииТМЦ.ОстаткиИОбороты(&НачДата, &КонДата, Регистратор, , ) КАК ПартииТМЦОстаткиИОбороты
    |ИТОГИ
    |	СУММА(КоличествоНачальныйОстаток),
    |	СУММА(КоличествоКонечныйОстаток),
    |	СУММА(КоличествоПриход),
    |	СУММА(КоличествоРасход)
    |ПО
    |	ТМЦ";
    Запрос.УстановитьПараметр("НачДата",НачДата);
    Запрос.УстановитьПараметр("КонДата",КонДата);
    Результат = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    Пока Результат.Следующий() Цикл
    Доки = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    Пока Доки.Следующий() Цикл
    КонецЦикла;
    
    КонецЦикла;
    
    
    Что нужно дописать в запросе что бы у меня во втором цикле считалить только обороты или может я вообще не правильно запрос формирую??
  9. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Регистратор на Авто замените, для начала...
  10. TopicStarter Overlay
    alp
    Offline

    alp Опытный в 1С

    Регистрация:
    8 янв 2009
    Сообщения:
    432
    Симпатии:
    0
    Баллы:
    26
    Заменил , но не каких изменений
  11. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    1. Одним запросом тут тяжело будет обойтись
    2. Лучше делать на СКД
    3. Тогда получим три таблицы в пакетном запросе
    4. Настраиваем схему в СКД
    5. Профит! :)
  12. TopicStarter Overlay
    alp
    Offline

    alp Опытный в 1С

    Регистрация:
    8 янв 2009
    Сообщения:
    432
    Симпатии:
    0
    Баллы:
    26
    Вы Имеете ввиду вложенный запрос или несколько разных запросов ?
    А со СКД я не дружу , да и время нету с ней подружиться, сроки поджимают.
  13. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    А чем вам не годиться универсальный отчет?
    Он покажет именно "идет Остаток ТМЦ на начало периода, затем идут движения(увеличение,уменшение) по ТМЦ и затем конечный остаток."
  14. TopicStarter Overlay
    alp
    Offline

    alp Опытный в 1С

    Регистрация:
    8 янв 2009
    Сообщения:
    432
    Симпатии:
    0
    Баллы:
    26
    ВедомостьПоОстаткамТМЦ то есть?

    у меня самописная конфа...
    + Хочется научиться хорошо разбираться в 8-ке с запросами, а практика это самый лучший способ научиться.
  15. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Ну так там используется САМЫЙ простой запрос из подобных.
    Банально ОстаткиИОбороты с периодичностью АВТО. Все :)
Похожие темы
  1. andyid
    Ответов:
    2
    Просмотров:
    1.084
Загрузка...

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