8.х [Решено] Не находит поле (тип.пример Радченко 8.2)

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

  1. TopicStarter Overlay
    MrSanChes
    Offline

    MrSanChes

    Регистрация:
    5 июл 2016
    Сообщения:
    4
    Симпатии:
    0
    Баллы:
    1
    Добрый день форумчане, можете подсказать где накосоебил. В самом конце кода ругается что не видит поле Стоимость, у регистра ресурс именно так называется

    Движения.ОстаткиМатериалов.Записывать = Истина;
    Движения.СтоимостьМатериалов.Записывать = Истина;
    Движения.Продажи.Записывать = Истина;

    //Создать менеджер временных таблиц
    МенеджерВТ = Новый МенеджерВременныхТаблиц;

    Запрос = Новый Запрос;

    //Укажем какой менеджер временных таблиц использует этот запрос
    Запрос.МенеджерВременныхТаблиц = МенеджерВТ;

    Запрос.Текст =
    "ВЫБРАТЬ
    | ОказаниеУслугПереченьНоменклатуры.Номенклатура,
    | ОказаниеУслугПереченьНоменклатуры.Номенклатура.ВидНоменклатуры КАК ВидНоменклатуры,
    | СУММА(ОказаниеУслугПереченьНоменклатуры.Количество) КАК КоличествоВДокументе,
    | СУММА(ОказаниеУслугПереченьНоменклатуры.Сумма) КАК СуммаВДокументе
    |ПОМЕСТИТЬ НоменклатураДокумента
    |ИЗ
    | Документ.ОказаниеУслуг.ПереченьНоменклатуры КАК ОказаниеУслугПереченьНоменклатуры
    |ГДЕ
    | ОказаниеУслугПереченьНоменклатуры.Ссылка = &Ссылка
    |
    |СГРУППИРОВАТЬ ПО
    | ОказаниеУслугПереченьНоменклатуры.Номенклатура,
    | ОказаниеУслугПереченьНоменклатуры.Номенклатура.ВидНоменклатуры";

    Запрос.УстановитьПараметр("Ссылка", Ссылка);

    РезультатЗапроса = Запрос.Выполнить();

    Запрос2 = Новый Запрос;
    Запрос2.МенеджерВременныхТаблиц = МенеджерВТ;
    Запрос2.Текст = "ВЫБРАТЬ
    | НоменклатураДокумента.Номенклатура,
    | НоменклатураДокумента.ВидНоменклатуры,
    | НоменклатураДокумента.КоличествоВДокументе,
    | НоменклатураДокумента.СуммаВДокументе,
    | ЕСТЬNULL(СтоимостьМатериаловОстатки.СтоимостьОстаток, 0) КАК Стоимость,
    | ЕСТЬNULL(ОстаткиМатериаловОстатки.КоличествоОстаток, 0) КАК Количество
    |ИЗ
    | НоменклатураДокумента КАК НоменклатураДокумента
    | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиМатериалов.Остатки(
    | ,
    | Материал В
    | (ВЫБРАТЬ
    | НоменклатураДокумента.Номенклатура
    | ИЗ
    | НоменклатураДокумента)) КАК ОстаткиМатериаловОстатки
    | ПО НоменклатураДокумента.Номенклатура = ОстаткиМатериаловОстатки.Материал
    | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СтоимостьМатериалов.Остатки(
    | ,
    | Материалы В
    | (ВЫБРАТЬ
    | НоменклатураДокумента.Номенклатура
    | ИЗ
    | НоменклатураДокумента)) КАК СтоимостьМатериаловОстатки
    | ПО НоменклатураДокумента.Номенклатура = СтоимостьМатериаловОстатки.Материалы";

    //Запишем пустые наборы записей, чтобы читать остатки без учета данных в документе.
    Движения.СтоимостьМатериалов.Записать();
    Движения.ОстаткиМатериалов.Записать();

    Результат = Запрос2.Выполнить();

    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл

    Если ВыборкаДетальныеЗаписи.Количество = 0 Тогда
    СтоимостьМатериала = 0;
    Иначе
    СтоимостьМатериала = ВыборкаДетальныеЗаписи.Стоимость / ВыборкаДетальныеЗаписи.Количество;
    КонецЕсли;
    --- Объединение сообщений, 12 июл 2016 ---
    Вопрос решен
    Последнее редактирование: 12 июл 2016
  2. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.647
    Симпатии:
    948
    Баллы:
    204
    Вот тут ошибка

    Результат = Запрос2.Выполнить();

    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

    Надо писать

    Результат = Запрос2.Выполнить();

    ВыборкаДетальныеЗаписи = Результат.Выбрать();

    т.к. РезультатЗапроса - это результат первого запроса где была временная таблица

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