7.7 Выборка из запроса

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем mhl, 1 авг 2008.

  1. TopicStarter Overlay
    mhl
    Offline

    mhl Опытный в 1С

    Регистрация:
    23 июн 2007
    Сообщения:
    418
    Симпатии:
    0
    Баллы:
    26
    Забыл как в семерке организовать цикл по выборке. В восьмерке было так:
    Код:
    Результат = Запрос.Выполнить();
    Выборка = Результать.Выбрать();
    Пока Выборка.Следующий() Цикл
    
    Вот собственно сам запрос, может в нем есть ошибки
    Код:
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса =
    "//{{ЗАПРОС(Запрос)
    |Обрабатывать НеПомеченныеНаУдаление;
    |Склад = Регистр.ОстаткиТМЦ.Склад;
    |Количество = Регистр.ОстаткиТМЦ.Количество;
    |Склад1 = Регистр.РезервыТМЦ.Склад;
    |Количество1 = Регистр.РезервыТМЦ.Количество;
    |Номенклатура = Регистр.ОстаткиТМЦ.Номенклатура;
    |Номенклатура1 = Регистр.РезервыТМЦ.Номенклатура;
    //|Условие(Склад = Склад);
    //|Условие(Склад1 = Склад);
    |Условие(Номенклатура = Наименование);
    |Условие(Номенклатура1 = Наименование);
    |";//}}ЗАПРОС 
    
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
    Возврат;
    КонецЕсли;
    
    
  2. Stado_adama
    Offline

    Stado_adama Модераторы Модератор

    Регистрация:
    27 ноя 2007
    Сообщения:
    1.086
    Симпатии:
    0
    Баллы:
    26
    пока группировка получить... (только вот нет у тебя группировок)... но вместо группировок рекомендую выгрузить все в тз и работать с ней...
  3. WaRDeR
    Offline

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

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    Попробуй мастер запроса.
  4. TopicStarter Overlay
    mhl
    Offline

    mhl Опытный в 1С

    Регистрация:
    23 июн 2007
    Сообщения:
    418
    Симпатии:
    0
    Баллы:
    26
    Мне собственно нужно взять переменные количество и количество1 и присвоить их неким реквизитам формы, пусть это будут Реквизит1 и Реквизит2.
  5. Iren222
    Offline

    Iren222

    Регистрация:
    22 дек 2007
    Сообщения:
    12
    Симпатии:
    0
    Баллы:
    1
    табл = СоздатьОбъект("ТаблицаЗначений");
    Запрос.Выгрузить(табл);


    И делай, что хочешь
  6. WaRDeR
    Offline

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

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    Тогда нужно использовать функции НачОст или КонОст
  7. TopicStarter Overlay
    mhl
    Offline

    mhl Опытный в 1С

    Регистрация:
    23 июн 2007
    Сообщения:
    418
    Симпатии:
    0
    Баллы:
    26
    Написал следующий код:
    Код:
    Процедура ПоКнопкеОстаткиРезервы()
    Форма.НпОстаток.Видимость(1);
    Форма.НпРезерв.Видимость(1);
    Форма.ПоказОстаток.Видимость(1);
    Форма.ПоказРезерв.Видимость(1);
    
    ЗапросПоОстаткам = СоздатьОбъект("Запрос");
    ТекстЗапросаОст = 
    "//{{ЗАПРОС(СформироватьОст)
    |Обрабатывать НеПомеченныеНаУдаление;
    |Количество = Регистр.ОстаткиТМЦ.Количество;
    |Номенклатура = Регистр.ОстаткиТМЦ.Номенклатура;
    |Группировка Номенклатура упорядочить по Номенклатура.Наименование;
    |"//}}ЗАПРОС
    ;
    // Если ошибка в запросе, то выход из процедуры
    Если ЗапросПоОстаткам.Выполнить(ТекстЗапросаОст) = 0 Тогда
    Возврат;
    КонецЕсли;
    
    Пока ЗапросПоОстаткам.Группировка(1) = 1 Цикл
    Если ЗапросПоОстаткам.Номенклатура = Наименование Тогда
    ПоказОстаток = ЗапросПоОстаткам.Количество;
    КонецЕсли;
    КонецЦикла;
    
    ЗапросПоРезервам = СоздатьОбъект("Запрос");
    ТекстЗапросаРезерв =
    "//{{ЗАПРОС(СформироватьРезерв)
    |Обрабатывать НеПомеченныеНаУдаление;
    |Количество = Регистр.РезервыТМЦ.Количество;
    |Номенклатура = Регистр.РезервыТМЦ.Номенклатура;
    |Группировка Номенклатура упорядочить по Номенклатура.Наименование;
    |";//}}ЗАПРОС 
    
    // Если ошибка в запросе, то выход из процедуры
    Если ЗапросПоОстаткам.Выполнить(ТекстЗапросаОст) = 0 Тогда
    Возврат;
    КонецЕсли;
    
    Пока ЗапросПоРезервам.Группировка(1) = 1 Цикл
    Если ЗапросПоРезервам.Номенклатура = Наименование Тогда
    ПоказРезерв = ЗапросПоРезервам.Количество;
    КонецЕсли;
    КонецЦикла;
    КонецПроцедуры
    
    Смотрю в отчете данные выводятся, а в моем запросе на ту же номенклатуру пусто. В чем дело.
  8. Kaboom
    Offline

    Kaboom Опытный в 1С

    Регистрация:
    2 июл 2007
    Сообщения:
    158
    Симпатии:
    0
    Баллы:
    26
    Без функций по ресурсам регистра запрос ничего не выдает:
    Код:
    ТекстЗапросаОст = 
    "//{{ЗАПРОС(СформироватьОст)
    |Обрабатывать НеПомеченныеНаУдаление;
    |Количество = Регистр.ОстаткиТМЦ.Количество;
    |Номенклатура = Регистр.ОстаткиТМЦ.Номенклатура;
    |Остаток = КонОст(Количество);     // <-------
    |Группировка Номенклатура упорядочить по Номенклатура.Наименование;
    |"//}}ЗАПРОС
    
  9. TopicStarter Overlay
    mhl
    Offline

    mhl Опытный в 1С

    Регистрация:
    23 июн 2007
    Сообщения:
    418
    Симпатии:
    0
    Баллы:
    26
    Спасибо помог
  10. WaRDeR
    Offline

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

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    А я что писал? Читай внимательнее

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