8.х Ошибка при выполнении запроса

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем Александр84, 11 мар 2012.

  1. TopicStarter Overlay
    Александр84
    Offline

    Александр84 Опытный в 1С

    Регистрация:
    7 окт 2008
    Сообщения:
    342
    Симпатии:
    2
    Баллы:
    29
    Всем доброго времени суток. Создаю внешнюю обработку, в который через запрос делаю выборку номенклатуры, после чего устанавливаю определенное значение для реквизита номенклатуры. Смотрю через отладчик что получается, при выполнении цикла на строке Пока ВыборкаНом.Следующий() почему то выдает ошибку чтения записи, что не так??? Текст кода привожу ниже:
    Код:
    Процедура Заменить()
    
    Запрос = Новый Запрос ("ВЫБРАТЬ
    | Номенклатура.Ссылка
    |ИЗ
    | Справочник.Номенклатура КАК Номенклатура
    |ГДЕ
    | Номенклатура.ЭтоГруппа = ЛОЖЬ");
    РезультатЗапроса = Запрос.Выполнить();
    Выборка = РезультатЗапроса.Выбрать();
    Выборка.Следующий();
    ВыборкаНом = Выборка.Выбрать();
    
    Пока ВыборкаНом.Следующий() Цикл
    ....................
    КонецЦикла;
    КонецПроцедуры
    
  2. 1cUserAndrew
    Online

    1cUserAndrew Профессионал в 1С Команда форума

    Регистрация:
    27 май 2010
    Сообщения:
    4.948
    Симпатии:
    149
    Баллы:
    104
    Эти строки уберите (и все, что ниже до конца процедуры):
    Код:
    Выборка.Следующий();
    ВыборкаНом = Выборка.Выбрать();
    Просто пишите:
    Код:
    Пока Выборка.Следующий() Цикл
    НоменклатураОбъект = Выборка.Ссылка.ПолучитьОбъект();
    НоменклатураОбъект.ИмяИзменяемогоРеквизита = ... //Тут устанавливаете значения реквизитов
    НоменклатураОбъект.Записать();
    КонецЦикла;
  3. TopicStarter Overlay
    Александр84
    Offline

    Александр84 Опытный в 1С

    Регистрация:
    7 окт 2008
    Сообщения:
    342
    Симпатии:
    2
    Баллы:
    29
    Спасибо.

    А вот еще такой вопрос, как из этой обработки обратиться к форме текущего объекта. То есть поле в котором мне надо изменить данные не является реквизитом объекта, оно просто размещено на форме. Пробовал через ЭлементыФормы - выдает что поле объекта не обнаружено.
  4. 1cUserAndrew
    Online

    1cUserAndrew Профессионал в 1С Команда форума

    Регистрация:
    27 май 2010
    Сообщения:
    4.948
    Симпатии:
    149
    Баллы:
    104
    Если это реквизит формы, а не объекта, то это значение в базе не хранится. Соответственно нет смысла к нему обращаться...Там попросту пусто (при закрытой форме).
    Вот тут соседнюю тему почитайте:
  5. TopicStarter Overlay
    Александр84
    Offline

    Александр84 Опытный в 1С

    Регистрация:
    7 окт 2008
    Сообщения:
    342
    Симпатии:
    2
    Баллы:
    29
    Спасибо! Соседняя ветка помогла!

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