8.х помогите с запросом

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

  1. TopicStarter Overlay
    bannov
    Offline

    bannov Опытный в 1С

    Регистрация:
    17 дек 2008
    Сообщения:
    185
    Симпатии:
    0
    Баллы:
    26
    Есть справочник с названием "вз_СвойстваНоменклатуры" , у него реквезит "номенклатура" с типом ссылка на справочник номенклатурные группы. В форме выбираем конкретную номенклатурную группу и в табличной части справочника заводим ей свойства, которые хранятся в другом справочнике. Далее создаём документ в котором выбираем нужную номенклатуру и при этом в табличную часть документа должны автоматически добавиться те свойства номенклатурной группы, которые мы завели. В карточке номенклатуры записано что она пренадлежит этой номенклатурной группе на которую мы завели свойства. Вот код, что не так не пойму:
    Код:
    запрос = новый запрос;
    запрос.Текст = "выбрать вз.НаименованиеСвойства как наа
    | из справочник.вз_СвойстваНоменклатуры.Свойства как вз
    |  где ссылка.Номенклатура = &НазваниеНоменклатуры";
    запрос.УстановитьПараметр("НазваниеНоменклатуры",элементыФормы.Номенклатура.Значение);
    Результат = Запрос.Выполнить().Выбрать();
    
    ТабличнаяЧасть1.Очистить();
    Пока Результат.Следующий()>0 цикл
    НоваяСтрока = ТабличнаяЧасть1.Добавить();
    НоваяСтрока.Свойство = Результат.наа;
    КонецЦикла;
    
    
    
    
    
    
    
  2. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.566
    Симпатии:
    717
    Баллы:
    204
    Пока Результат.Следующий()>0 цикл

    следует писать Пока Результат.Следующий() Цикл
  3. TopicStarter Overlay
    bannov
    Offline

    bannov Опытный в 1С

    Регистрация:
    17 дек 2008
    Сообщения:
    185
    Симпатии:
    0
    Баллы:
    26
    не помогло
  4. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.566
    Симпатии:
    717
    Баллы:
    204
    на чем затык происходит?

    однако проблема в
    | где ссылка.Номенклатура = &НазваниеНоменклатуры"

    нужно

    | где Вз.Ссылка = &НазваниеНоменклатуры"

    или

    | где Вз.Владелец = &НазваниеНоменклатуры"
  5. TopicStarter Overlay
    bannov
    Offline

    bannov Опытный в 1С

    Регистрация:
    17 дек 2008
    Сообщения:
    185
    Симпатии:
    0
    Баллы:
    26
    Дело в запросе, мне кажется, потому что когда раньше устанавливали свойства не для группы, а для конкретной номенклатуры, то всё работало, но сейчас надо для группы
  6. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.566
    Симпатии:
    717
    Баллы:
    204
    тода используй конструкцию вида

    | где ссылка.Номенклатура В ИЕРАРХИИ (&НазваниеНоменклатуры)"
  7. TopicStarter Overlay
    bannov
    Offline

    bannov Опытный в 1С

    Регистрация:
    17 дек 2008
    Сообщения:
    185
    Симпатии:
    0
    Баллы:
    26
    всё перепробовал не помогает
  8. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.566
    Симпатии:
    717
    Баллы:
    204
    на чем конкретно затык происходит? или просто пустой результат запроса?
  9. TopicStarter Overlay
    bannov
    Offline

    bannov Опытный в 1С

    Регистрация:
    17 дек 2008
    Сообщения:
    185
    Симпатии:
    0
    Баллы:
    26
    вот в этом случае: | где Вз.Ссылка = &НазваниеНоменклатуры"

    или

    | где Вз.Владелец = &НазваниеНоменклатуры"

    пишет что поле вз.ССылка не найдено, а в этом:
    где ссылка.Номенклатура В ИЕРАРХИИ (&НазваниеНоменклатуры)"

    просто ничего не выкидывает
  10. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.566
    Симпатии:
    717
    Баллы:
    204
    значит во втором случае возможно не правильные значение параметра передано в запрос.

    что в параметр &НазваниеНоменклатуры передается? такое ощущение, что там Справочники.НомеклатурныеГруппы.ПустаяСсылка()
  11. TopicStarter Overlay
    bannov
    Offline

    bannov Опытный в 1С

    Регистрация:
    17 дек 2008
    Сообщения:
    185
    Симпатии:
    0
    Баллы:
    26
    запрос.УстановитьПараметр("НазваниеНоменклатуры",элементыФормы.Номенклатура.Значение);

    это поле на форме, номенклатура которую выбираем
  12. TopicStarter Overlay
    bannov
    Offline

    bannov Опытный в 1С

    Регистрация:
    17 дек 2008
    Сообщения:
    185
    Симпатии:
    0
    Баллы:
    26
    справочник номенклатурные группы состоит из групп (папочек), а в них уже сами номенклатурные группы находятся, в справочнике номенклатура в поле номенклатурные группы выбраны сами номенклатурные группы. Но свойство мы задаём не конкретно номенклатурным группам а как бы их родителю. т.е. тем самым папочкам в справочнике номенклатурные группы
  13. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.566
    Симпатии:
    717
    Баллы:
    204
    родители учитываются при конструкции В ИЕРАРХИИ

    Ээээ....мож
    "выбрать вз.НаименованиеСвойства.Родитель как наа"
    поможет?
  14. TopicStarter Overlay
    bannov
    Offline

    bannov Опытный в 1С

    Регистрация:
    17 дек 2008
    Сообщения:
    185
    Симпатии:
    0
    Баллы:
    26
    не помогло
  15. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.566
    Симпатии:
    717
    Баллы:
    204
    хорошо, давай по-порядку:

    Выборка = Справочники.ВЗ_СвойСтвоНоменклатуры.Выбрать().Следующий();
    какие выдает поля и какие их типы?
  16. BabySG
    Offline

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

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Это неверный код :)

    Переменная Выборка будет содержать значение типа Булево!
  17. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.566
    Симпатии:
    717
    Баллы:
    204
    Балин....уработался нафиг :)

    в любом случае, топикстартер молчит чего-то...
  18. TopicStarter Overlay
    bannov
    Offline

    bannov Опытный в 1С

    Регистрация:
    17 дек 2008
    Сообщения:
    185
    Симпатии:
    0
    Баллы:
    26
    Всё вопрос решился. Спасибо большое за помощь. Надо было вот как писать:
    Код:
    запрос = новый запрос;
    запрос.Текст = "ВЫБРАТЬ
    |	вз_СвойстваНоменклатурыСвойства.НаименованиеСвойства как наа
    |ИЗ
    |	Справочник.вз_СвойстваНоменклатуры.Свойства КАК вз_СвойстваНоменклатурыСвойства
    |ГДЕ
    |	вз_СвойстваНоменклатурыСвойства.Ссылка.Номенклатура = &Ссылка";
    запрос.УстановитьПараметр("Ссылка",Номенклатура.НоменклатурнаяГруппаЗатрат.Родитель);
    Результат = Запрос.Выполнить().Выбрать();
    
    ТабличнаяЧасть1.Очистить();
    Пока Результат.Следующий()>0 цикл
    НоваяСтрока = ТабличнаяЧасть1.Добавить();
    НоваяСтрока.Свойство = Результат.наа;
    КонецЦикла;
    
    
    
    nomad_irk спасибо большое!

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