8.х небольшой вопрос по запросу

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем KirillSemenov, 15 дек 2009.

  1. TopicStarter Overlay
    KirillSemenov
    Offline

    KirillSemenov

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

    Абырвалг Опытный в 1С

    Регистрация:
    8 дек 2009
    Сообщения:
    112
    Симпатии:
    1
    Баллы:
    29
    Если ты зайдешь в отладчик, то увидишь, что у тебя "МояСтрока" типа Массив.
    У тебя регистр сведений "я_Ассортимент" периодический? Тогда ты хочешь получить за весь период список типов цен или актуальный тип цен на определенную дату?
  3. TopicStarter Overlay
    KirillSemenov
    Offline

    KirillSemenov

    Регистрация:
    2 дек 2009
    Сообщения:
    41
    Симпатии:
    0
    Баллы:
    1
    Ага Массив! я знаю что в результате запроса одно единственное значение. Мне тут посоветовали обратиться к массиву по индексу как СтрокаМоя[0].Что скажешь?
  4. Абырвалг
    Offline

    Абырвалг Опытный в 1С

    Регистрация:
    8 дек 2009
    Сообщения:
    112
    Симпатии:
    1
    Баллы:
    29
    Скажу плохо, потому что ты можешь получить не то что требуется.
    Еще раз обрати внимание на мои вопросы, тогда посоветую что лучше сделать:
  5. TopicStarter Overlay
    KirillSemenov
    Offline

    KirillSemenov

    Регистрация:
    2 дек 2009
    Сообщения:
    41
    Симпатии:
    0
    Баллы:
    1
    регистр непериодический. Записи по нему не привязаны к дате.
  6. Абырвалг
    Offline

    Абырвалг Опытный в 1С

    Регистрация:
    8 дек 2009
    Сообщения:
    112
    Симпатии:
    1
    Баллы:
    29
    Тогда делай лучше так:
    Код:
    "ВЫБРАТЬ
    |я_Ассортимент.Прайс.Наименование КАК Прайс,
    |я_Ассортимент.Номенклатура.НаименованиеПолное КАК Номенклатура,
    |я_Ассортимент.ТипЦен.Наименование КАК ТипЦен
    |ИЗ
    |РегистрСведений.я_Ассортимент КАК я_Ассортимент
    |ГДЕ
    |я_Ассортимент.Прайс = &Прайс
    |И я_Ассортимент.Номенклатура = &Номенклатура
    |";
    
    ЗапросМой.УстановитьПараметр("Прайс",МойРеквизит);
    ЗапросМой.УстановитьПараметр("Номенклатура",ПредставлениеГруппировки);
    
    // Вот так:
    Выборка = ЗапросМой.Выполнить().Выбрать();
    Если Выборка.Следующий() Тогда // В регистре запись найдена
    СтрокаМоя = "Тип цен: "+Выборка.ТипЦен
    Иначе // в регистре запись не найдена
    СтрокаМоя = "Тип цен не найден!"
    КонецЕсли;
    
    Сообщить(МойРеквизит);
    Сообщить(ПредставлениеГруппировки);
    Сообщить(СтрокаМоя);
    
  7. TopicStarter Overlay
    KirillSemenov
    Offline

    KirillSemenov

    Регистрация:
    2 дек 2009
    Сообщения:
    41
    Симпатии:
    0
    Баллы:
    1
    не работает( Походу с ПредставлениемГруппировки все не так просто. Я ж не с нуля пишу а правлю кое-что в УТ
  8. Абырвалг
    Offline

    Абырвалг Опытный в 1С

    Регистрация:
    8 дек 2009
    Сообщения:
    112
    Симпатии:
    1
    Баллы:
    29
    Ну скорей всего у вас ПредставлениемГруппировки - это строка,а вам надо ссылку на номенклатуру :)
  9. TopicStarter Overlay
    KirillSemenov
    Offline

    KirillSemenov

    Регистрация:
    2 дек 2009
    Сообщения:
    41
    Симпатии:
    0
    Баллы:
    1
    Может и это тоже. Именно "Выборка" уже используется выше по тексту модуля который я правлю))) Поэтому и ошибка всплыла) Переименовал и заработало) Только запрос пустой. Будем разбираться
  10. Абырвалг
    Offline

    Абырвалг Опытный в 1С

    Регистрация:
    8 дек 2009
    Сообщения:
    112
    Симпатии:
    1
    Баллы:
    29
    Ну дык запускайте отладчик и вперёд смотреть, что хранится в ваших переменных, которые вы передаёте в параметры:
    Код:
    		ЗапросМой.УстановитьПараметр("Прайс",МойРеквизит);
    ЗапросМой.УстановитьПараметр("Номенклатура",ПредставлениеГруппировки);
    
  11. TopicStarter Overlay
    KirillSemenov
    Offline

    KirillSemenov

    Регистрация:
    2 дек 2009
    Сообщения:
    41
    Симпатии:
    0
    Баллы:
    1
    ага этим и занят))) Прям коробит когда ок мне на "ВЫ"))))))

    Запрос пустой походу потому, что тип параметров передаваемых в запрос СТРОКА и значение в отладчике пишет в ковычках. А нужно же ссылку как я понимаю так?
  12. Абырвалг
    Offline

    Абырвалг Опытный в 1С

    Регистрация:
    8 дек 2009
    Сообщения:
    112
    Симпатии:
    1
    Баллы:
    29
    да, тебе нужна ссылка на элемент справочник Номенклатура, где взял "ПредставлениеГруппировки" там ищи и ссылку.
  13. TopicStarter Overlay
    KirillSemenov
    Offline

    KirillSemenov

    Регистрация:
    2 дек 2009
    Сообщения:
    41
    Симпатии:
    0
    Баллы:
    1
    предположим на ПредставлениеГруппировки ссылку найти можно, а МойРеквизит я через ПолеВвода задаю

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