8.х ТЗ в запросе

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

  1. TopicStarter Overlay
    Dmitrij
    Offline

    Dmitrij Опытный в 1С

    Регистрация:
    6 май 2008
    Сообщения:
    844
    Симпатии:
    1
    Баллы:
    26
    Подскажите как правильно синтаксически написать такой запрос
    Код:
    			Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("ТекАртикул", ТекАртикул);
    Запрос.УстановитьПараметр("ТЗАртикул", ТЗАртикул);
    Запрос.Текст = "ВЫБРАТЬ
    |	Номенклатура.Артикул КАК Артикул,
    |	Номенклатура.Ссылка КАК Номенклатура,
    |	Номенклатура.НаименованиеПолное КАК НаименованиеПолное,
    |	Номенклатура.Родитель КАК Родитель,
    |	Номенклатура.Код
    |ПОМЕСТИТЬ Номенклатура
    |ИЗ
    |	&ТЗАртикул КАК Номенклатура
    |ГДЕ
    |	Номенклатура.Артикул = &ТекАртикул";
    
    
    я вот так написал но запрос не выполняется ошибка
    {(11, 2)}: Неоднозначное поле "Номенклатура.Артикул"
    <<?>>Номенклатура.Артикул = &ТекАртикул
  2. Itsys
    Offline

    Itsys Опытный в 1С

    Регистрация:
    3 янв 2010
    Сообщения:
    1.394
    Симпатии:
    0
    Баллы:
    26
    Попробуйте так:
    Код:
    			Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("ТекАртикул", ТекАртикул);
    Запрос.УстановитьПараметр("ТЗАртикул", ТЗАртикул);
    Запрос.Текст = "ВЫБРАТЬ
    |	Номенклатура.Артикул КАК Артикул,
    |	Номенклатура.Ссылка КАК Номенклатура,
    |	Номенклатура.НаименованиеПолное КАК НаименованиеПолное,
    |	Номенклатура.Родитель КАК Родитель,
    |	Номенклатура.Код
    |ПОМЕСТИТЬ НоменклатураИзТЗ
    |ИЗ
    |	&ТЗАртикул КАК Номенклатура
    |ГДЕ
    |	Номенклатура.Артикул = &ТекАртикул";
    
  3. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.554
    Симпатии:
    716
    Баллы:
    204
    дело не в имени временной таблицы, а в том, что колонки у ТЗ должны быть строго типизированы.
  4. TopicStarter Overlay
    Dmitrij
    Offline

    Dmitrij Опытный в 1С

    Регистрация:
    6 май 2008
    Сообщения:
    844
    Симпатии:
    1
    Баллы:
    26
    Это что значит можно примерчик
  5. has
    Offline

    has Опытный в 1С

    Регистрация:
    18 июн 2009
    Сообщения:
    708
    Симпатии:
    0
    Баллы:
    26
    Для каждой колонки ТЗ указать тип, примерно так
    Код:
    ТЗАртикул.Колонки.Добавить("Артикул", Новый ОписаниеТипов("Строка"));
    ................
    
    
  6. TopicStarter Overlay
    Dmitrij
    Offline

    Dmitrij Опытный в 1С

    Регистрация:
    6 май 2008
    Сообщения:
    844
    Симпатии:
    1
    Баллы:
    26
    Код:
     "ВЫБРАТЬ
    |	ТЗ.Артикул,
    |	ТЗ.Номенклатура,
    |	ТЗ.НаименованиеПолное,
    |	ТЗ.Родитель,
    |	ТЗ.Код
    |ПОМЕСТИТЬ НоменклатураТЗ
    |ИЗ
    |	&ТЗАртикул КАК ТЗ 
    |ГДЕ
    |	ТЗ.Артикул = &ТекАртикул";
    
    
    вот я поправил, теперь другая ошибка
    {Форма.Форма(521)}: Ошибка при вызове метода контекста (Выполнить): Не установлен менеджер временных таблиц
    ФормаВыбораПоиска.ТаблицаНоменклатуры = Запрос.Выполнить().Выгрузить();
    как устанавливать менеджер временных таблиц
  7. TopicStarter Overlay
    Dmitrij
    Offline

    Dmitrij Опытный в 1С

    Регистрация:
    6 май 2008
    Сообщения:
    844
    Симпатии:
    1
    Баллы:
    26
    С менеджером разобрался, а как сделать чтоб на номенклатуру остались ссылки
  8. afinogen
    Offline

    afinogen Опытный в 1С

    Регистрация:
    28 фев 2011
    Сообщения:
    160
    Симпатии:
    0
    Баллы:
    26
    что имеется в виду?
    Менеджер по своей сути создает виртуальную таблицу из которой затем вы выбираете данные согласно какому то условию :angry:

    кстати, если приведенный вами код запроса соответствует вашему реальному запросу (не часть его), то тогда вообще не нуджно менеджер использовать :D
  9. TopicStarter Overlay
    Dmitrij
    Offline

    Dmitrij Опытный в 1С

    Регистрация:
    6 май 2008
    Сообщения:
    844
    Симпатии:
    1
    Баллы:
    26
    Пишет без менеджера нельзя
    {Форма.Форма(522)}: Ошибка при вызове метода контекста (Выполнить): Содержимое объекта данных может быть выбрано только во временную таблицу
    ФормаВыбораПоиска.ТаблицаНоменклатуры = Запрос.Выполнить().Выгрузить();
  10. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.554
    Симпатии:
    716
    Баллы:
    204
    ну сделайте уже пакет запросов и забудьте вы про менеджер временных таблиц....
  11. BVB_berserk
    Offline

    BVB_berserk Опытный в 1С

    Регистрация:
    30 янв 2009
    Сообщения:
    162
    Симпатии:
    0
    Баллы:
    26
    Сделайте пакетным запросом, без менеджеров ВТ

    Опоздал с советом :)

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