Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Выбор данных из непериодического регистра сведений.
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.1 (8.0)
Dmitriy-CoDy
Помогите плиз. решить проблемку...

Есть непериодический регистр сведений: "Изменения"
измерения
- СсылкаНаОбъект [ЛюбаяСсылка]
- НомерСообщения [Число]
ресурсы
- Изменения [ХранилищеЗначения]


Как мне из этого регистра убить все записи в которых значение измерения "НомерСообщения" меньше 5, например.

Идеально подошла бы вот такая конструкция:

НаборЗаписей = РегистрыСведений.Изменения.СоздатьНаборЗаписей();    
НаборЗаписей.Отбор.НомерСообщения.ВидСравнения = ВидСравнения.МеньшеИлиРавно;
НаборЗаписей.Отбор.НомерСообщения.Установить(5, Истина);
НаборЗаписей.Записать(Истина);


Но пишет, что в этой конструкции можно использовать в качестве вида сравнения только Равенство.
shavulsky
ну в цикл от 0 до 5 загониТЕ проверку (если числа не отрицательные)
Dmitriy-CoDy
Вот такой "костыль" решил проблему(может кому пригодится):
        Запрос = Новый Запрос();
    Запрос.Текст = "
    |ВЫБРАТЬ
    |    Изменения.НомерСообщения КАК НомерСообщения
    |ИЗ
    |    РегистрСведений.ИзмененияОбъектов1 КАК ИзмененияОбъектов1
    |ГДЕ
    |    Изменения.НомерСообщения <= &НомерСообщения
    |    И Изменения.НомерСообщения > 0
    |    И Изменения.СсылкаНаОбъект = &СсылкаНаОбъект";
    Запрос.УстановитьПараметр("НомерСообщения", НомерСообщения);
    Запрос.УстановитьПараметр("СсылкаНаОбъект", Ссылка);
    
    РезультатЗапроса = Запрос.Выполнить();
    Если Не РезультатЗапроса.Пустой() Тогда
        Массив = РезультатЗапроса.Выгрузить().ВыгрузитьКолонку("НомерСообщения");                
        НаборЗаписей = РегистрыСведений.Изменения.СоздатьНаборЗаписей();        
        
        Для Каждого Элемент Из Массив Цикл
            НаборЗаписей.Отбор.СсылкаНаОбъект.Установить(Ссылка, Истина);
            НаборЗаписей.Отбор.НомерСообщения.Установить(Элемент, Истина);
            НаборЗаписей.Записать(Истина);
        КонецЦикла;
    КонецЕсли;
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.