Имя: Пароль:
1C
1С v8
ошибка записи не установлен отбор по регистратору регистр накопления
0 pedagog
 
31.05.16
09:50
При свертке базы вылетает такая ошибка "ошибка записи не установлен отбор по регистратору регистр накопления "Товары в резерве". Почитала на форумах, но так и не поняла, что делать.
1 Московский
 
31.05.16
09:50
Чё там отладчик говорит?
2 Волшебник
 
модератор
31.05.16
09:50
ошибка в обработке свёртки базы
3 Рэйв
 
31.05.16
09:51
Ты забыл
ТвояЗапись.Регистратор=ссылкаТвойДок
4 Рэйв
 
31.05.16
09:52
+(3)По первости тоже часто на эти грабли наступал.Думал, чт. установленного отбора достаточно:-)
5 Рэйв
 
31.05.16
09:53
+ну или сам отбор криво поставлен
6 pedagog
 
31.05.16
09:57
обработка свертки типовая.
Процедура сбСформироватьДокументВводаОстатков(Запрос, ТекРег, ДатаСвертки, ОграничиватьРазмерДокументовВводаОстатков, ТипРегистра, КоличествоСтрокВДокументеВводаОстатков)
    Результат = Запрос.Выполнить();
    Если НЕ Результат.Пустой() ТОгда
        Если ОграничиватьРазмерДокументовВводаОстатков Тогда
            ТабДвиж = Результат.Выбрать();            
            НомерПоследнейЗаписи = 0;
            Пока НомерПоследнейЗаписи < ТабДвиж.Количество() Цикл
                НомерПервойЗаписи = НомерПоследнейЗаписи + 1;
                НомерПоследнейЗаписи = НомерПервойЗаписи + КоличествоСтрокВДокументеВводаОстатков;
                НомерПоследнейЗаписи = Мин(НомерПоследнейЗаписи, ТабДвиж.Количество());
                
                ДокОст = сбСформироватьШапкуДокументаВводаОстатков(ТекРег, ДатаСвертки, ТипРегистра, НомерПервойЗаписи, НомерПоследнейЗаписи);
                
                Если ТипРегистра = "накопления" Тогда
                    НаборЗаписей = РегистрыНакопления[ТекРег.Имя].СоздатьНаборЗаписей();
                    
                Иначе
                    НаборЗаписей = РегистрыСведений[ТекРег.Имя].СоздатьНаборЗаписей();
                    
                КонецЕсли;
                
                НаборЗаписей.Отбор.Регистратор.Установить(ДокОст);
                
                Для ш = НомерПервойЗаписи По НомерПоследнейЗаписи Цикл
                    ТабДвиж.Следующий();
                    НоваяЗапись = НаборЗаписей.Добавить();
                    ЗаполнитьЗначенияСвойств(НоваяЗапись, ТабДвиж);
                    НоваяЗапись.Регистратор = ДокОст.Ссылка;
                    
                КонецЦикла;    
                
                НаборЗаписей.Записать();
                
            КонецЦикла;    
            
        Иначе
            ТабДвиж = Результат.Выгрузить();
            
            ДокОст = сбСформироватьШапкуДокументаВводаОстатков(ТекРег, ДатаСвертки, ТипРегистра);
            
            Если ТипРегистра = "накопления" Тогда
                НаборЗаписей = РегистрыНакопления[ТекРег.Имя].СоздатьНаборЗаписей();
                
            Иначе
                НаборЗаписей = РегистрыСведений[ТекРег.Имя].СоздатьНаборЗаписей();
                
            КонецЕсли;    
            
            НаборЗаписей.Отбор.Регистратор.Установить(ДокОст);
            НаборЗаписей.Загрузить(ТабДвиж);
            НаборЗаписей.Записать();
            
        КонецЕсли;    
        
        сбСообщениеСвертки("Сформирован документ ввода остатков " + ТекРег.Имя);
        
    КонецЕсли;    
    
КонецПроцедуры
7 pedagog
 
31.05.16
09:58
ругается на строке  НаборЗаписей.Записать();
8 Nuobu
 
31.05.16
09:59
(7) На какой именно? Их две.
9 pedagog
 
31.05.16
10:04
на первой
10 pedagog
 
31.05.16
10:07
разобралась. Просто док  КорректировкаЗаписейРегистровНакопления не являлся регистратором для данного регистра.