Имя: Пароль:
1C
1С v8
v8: Ошибка записи! Не установлен отбор по регистратору (Регистр сведений)
0 BigShmax
 
24.12.11
10:04
Логист вышел на работу , звонит не проводится документ с ошибкой :

Ошибка при выполнении обработчика - 'ОбработкаПроведения'
по причине:
{ОбщийМодуль.ПолныеПрава(1146)}: Ошибка при вызове метода контекста (Записать)

по причине:

по причине:
Ошибка записи! Не установлен отбор по регистратору (Регистр сведений: План отгрузки стеклопакетов)


лезу вижу что вчера их проводили успешно потом док от 18:15 непроведенный уже не смог.  лезу в регистр  а там  регистр с пустыми полями регистратора :-(  я не представляю что могло  случится за полчаса  но что делать я не знаю ваще.  регистр свежий заполняется всего три месяца одним документом.  я мог бы его перепровести  но он же не хочет  гад :-((((

ругается на последней строке процедуры  :-(  и правильно делает

Процедура ЗаписатьНаборЗаписейНаСервере(ИмяРегистра, Регистратор, ТаблицаДвижений = Неопределено, ТипРегистра = "РегистрНакопления") Экспорт
   
   Если ТипРегистра = "РегистрНакопления" Тогда
       Набор = РегистрыНакопления[ИмяРегистра].СоздатьНаборЗаписей();
       
       Если ТаблицаДвижений <> Неопределено Тогда
           Набор.мТаблицаДвижений = ТаблицаДвижений;
           ОбщегоНазначения.ВыполнитьДвижениеПоРегистру(Набор);        
       КонецЕсли;
       
   Иначе
       Если ТипРегистра = "РегистрБухгалтерии" Тогда
           Набор = РегистрыБухгалтерии[ИмяРегистра].СоздатьНаборЗаписей();
       ИначеЕсли ТипРегистра = "РегистрСведений" Тогда
           Набор = РегистрыСведений[ИмяРегистра].СоздатьНаборЗаписей();
       ИначеЕсли ТипРегистра = "РегистрРасчета" Тогда
           Набор = РегистрыРасчета[ИмяРегистра].СоздатьНаборЗаписей();
       КонецЕсли;
       
       Если ТаблицаДвижений <> Неопределено Тогда
           Набор.Загрузить(ТаблицаДвижений);
       КонецЕсли;
   КонецЕсли;
   
   Набор.Отбор.Регистратор.Установить(Регистратор);
   Набор.Записать();
   
КонецПроцедуры
1 ДенисЧ
 
24.12.11
10:06
а отладчик на що?
2 Мимохожий Однако
 
24.12.11
10:08
Посмотри в отладчике какое измерение не заполнено и попробуй его поправить. Есть еще стандартное: архив, ТИИ, танцы с бубном.
3 BigShmax
 
24.12.11
10:08
а что мне отладчик?  в регистре  действительно пустые поля регистратора
4 BigShmax
 
24.12.11
10:09
"Ошибка записи! Не установлен отбор по регистратору (Регистр сведений: План отгрузки стеклопакетов) "
5 BigShmax
 
24.12.11
10:09
открыл  и глазами вижу пустую колонку регистратора
6 mirosh
 
24.12.11
10:10
(4) в отладчике сделай остановку по ошибке. Когда остановится, посмотри чему равен Регистратор. И выясни почему.
7 mirosh
 
24.12.11
10:10
+(6)только не в регистре, а переменная Регистраотр вот здесь
Набор.Отбор.Регистратор.Установить(Регистратор);
8 BigShmax
 
24.12.11
10:10
база  под сто гигов ТИИ  это ж скока времени то :-(    КАК БЫ ТАК ПОТАНЦЕВАТЬ ТО малой кровью:-(
9 maxstore
 
24.12.11
10:15
Попробуй сделать выгрузку загрузку базы..
10 maxstore
 
24.12.11
10:16
проверь chkdbf.exe-шником
11 andrewks
 
24.12.11
10:16
(9)(10)  ппц...
12 BigShmax
 
24.12.11
10:17
ок (7)  ща схожу в отладчик
(9) начну  но результат будет тока  ближе к вечеру. :-(


а chkdbf.exe  со скуль базами тоже рабтает??????????????
13 maxstore
 
24.12.11
10:18
(12) не.. только с файловыми.
14 BigShmax
 
24.12.11
10:19
(6) (7)   регистратор равен тому и чему должен быть - документ.ссылка  но как я понимаю записаться он не может потому что весь остальной регистр  без  регистраторорв
15 andrewks
 
24.12.11
10:20
" лезу в регистр  а там  регистр с пустыми полями регистратора "
что, у ВСЕХ записей регистратор слетел?
16 BigShmax
 
24.12.11
10:22
99 %   там  регистраторами являются два дока.  вот все что касается первого а это 99% записей регистра пусто  есть строки тока со вторым доком  отмены первого :-(


в общем модуле он делает
Набор.Отбор.Регистратор.Установить(Регистратор);
ну и привет - какой отбор если их нет :-(
17 maxstore
 
24.12.11
10:24
а документ.ссылка что возвращает?
18 BigShmax
 
24.12.11
10:24
этот регистр у меня живет с 23 ноября - заставить бы  эти записи перезаписываться - я бы перепровел доки за месяц нафиг
19 andrewks
 
24.12.11
10:25
(16) конфу правили?
20 wertyu
 
24.12.11
10:25
(18) ну так перезапиши только этот регистр обработкой )
21 BigShmax
 
24.12.11
10:27
в тот период нет.  пятница вечер  мне уже все лень было :-)   а как вижу до 17:30 доки проводились
22 BigShmax
 
24.12.11
10:28
после обеда даже демоническую не юзал
23 BigShmax
 
24.12.11
10:48
каца не все так страшно.  регистратор может принимать два значения  задание и отмена  и есть  еще измерение  задание  где оно есть.  по сути проверять на пусто и копировать из задания в регистратор   а потом записать набор .     ща копию базы сляпаю буду пробовать
24 BigShmax
 
24.12.11
10:51
с кодом у меня пока не ахти но такой наверно реализую
25 BigShmax
 
24.12.11
11:12
вот такой код жизнеспособен? у регистра всего три регистратора. и по идее при именно том что пропал он совпалает  с измерением. повезло :-)
у меня ща копии под рукой нет.   хочу на парочке первых строк проверить.   гляньте можно это н арабочей запсутить?

Процедура КнопкаВыполнитьНажатие(Кнопка)
   й = 0;
   НаборЗаписей = РегистрыСведений.ПланОтгрузкиСтеклопакетов.СоздатьНаборЗаписей();
   НаборЗаписей.Прочитать();
   Для каждого ОчереднаяЗапись Из НаборЗаписей Цикл
       й=й+1;
       Если (ОчереднаяЗапись.Регистратор <> Документы.ОтменаДоставки) И (ОчереднаяЗапись.Регистратор <> Документы.КорректировкаЗаданийНаПеревозкуГруза) Тогда
           ОчереднаяЗапись.Регистратор = ОчереднаяЗапись.ЗаданиеНаПеревозкуГруза;        
           Если й = 2 Тогда
               Прервать;
           КонецЕсли;    
       КонецЕсли;    
   КонецЦикла;    

   
   НаборЗаписей.Записать();
КонецПроцедуры
26 Undefined
 
24.12.11
11:29
Пустые поля по регистратору образовались у проведенного документа? Попробуй отменить проведение и потом заново провести.

И еще если проведение происходит в обработке проведения то не нужно устаналивать отбор по регистратору, он автоматически устанавливается.
27 BigShmax
 
24.12.11
12:00
при отмене проведений  ошибка из (0)  он так же пытается сделать отбор по регистратору  чтобы отменить набор записей
28 BigShmax
 
24.12.11
12:01
как указано в (0)  ошибка в общем модуле
"ОбщийМодуль.ПолныеПрава(1146)"

но убрать по сути могу. конфа очень давно не на поддержке
29 BigShmax
 
24.12.11
12:02
а если он автоматически устанавиливается то все равно не сработает - но ща попробую
30 BigShmax
 
24.12.11
12:12
что и требовалось доказать.
Ошибка:
Ошибка при выполнении обработчика - 'ОбработкаПроведения'
по причине:
{ОбщийМодуль.ПолныеПрава(1146)}: Ошибка при вызове метода контекста (Записать)

по причине:

по причине:
Ошибка записи! Не установлен отбор по регистратору (Регистр накопления: Товары к перевозке


процедура:
Процедура ЗаписатьНаборЗаписейНаСервере(ИмяРегистра, Регистратор, ТаблицаДвижений = Неопределено, ТипРегистра = "РегистрНакопления") Экспорт
   
   Если ТипРегистра = "РегистрНакопления" Тогда
       Набор = РегистрыНакопления[ИмяРегистра].СоздатьНаборЗаписей();
       
       Если ТаблицаДвижений <> Неопределено Тогда
           Набор.мТаблицаДвижений = ТаблицаДвижений;
           ОбщегоНазначения.ВыполнитьДвижениеПоРегистру(Набор);        
       КонецЕсли;
       
   Иначе
       Если ТипРегистра = "РегистрБухгалтерии" Тогда
           Набор = РегистрыБухгалтерии[ИмяРегистра].СоздатьНаборЗаписей();
       ИначеЕсли ТипРегистра = "РегистрСведений" Тогда
           Набор = РегистрыСведений[ИмяРегистра].СоздатьНаборЗаписей();
       ИначеЕсли ТипРегистра = "РегистрРасчета" Тогда
           Набор = РегистрыРасчета[ИмяРегистра].СоздатьНаборЗаписей();
       КонецЕсли;
       
       Если ТаблицаДвижений <> Неопределено Тогда
           Набор.Загрузить(ТаблицаДвижений);
       КонецЕсли;
   КонецЕсли;
   
   //Набор.Отбор.Регистратор.Установить(Регистратор);
   Набор.Записать();
   
КонецПроцедуры
31 BigShmax
 
24.12.11
12:14
отменить проведение  так же как и провести  либо пометить на удаление не получится.

по коду никто не может ничего сказать чтоли?  я то чайник :-)  может кто дать добро на пробу на рабочей  базе?  он отработает как я и хочу  всего две строки? и вообще что нить сделает  ? правильно ли написал?
32 Мимохожий Однако
 
24.12.11
12:19
Перед Прочитать() нужно использовать Отбор. Почему игнорируешь Отбор?
33 BigShmax
 
24.12.11
12:24
(32) я не специально -  я не сильно пишуший  - поэтому прошу прверить поделку
34 Мимохожий Однако
 
24.12.11
12:29
Если нет Отбора, то при успешном проведении очистишь весь регистр.
35 BigShmax
 
24.12.11
12:32
а какой ?
и зачем он мне нужен ?  по сути  мне нужен вечь регистр сведений.  разве что   отборать по пустому регистратору если  тогда можно убрать условие   про типы регистраторов.
и как установить отбор на незаполненный регитсратор?  яправ?

можно написать так :
НаборЗаписей = РегистрыСведений.ПланОтгрузкиСтеклопакетов.СоздатьНаборЗаписей();

НаборЗаписей.Отбор.Регистратор.Установить(ДокументСсылка.ПустаяСсылка());
НаборЗаписей.Прочитать();

тогда код  будет такой:

Процедура КнопкаВыполнитьНажатие(Кнопка)
   й = 0;
   НаборЗаписей = РегистрыСведений.ПланОтгрузкиСтеклопакетов.СоздатьНаборЗаписей();
   НаборЗаписей.Прочитать();
   Для каждого ОчереднаяЗапись Из НаборЗаписей Цикл
       й=й+1;
       ОчереднаяЗапись.Регистратор = ОчереднаяЗапись.ЗаданиеНаПеревозкуГруза;        
       Если й = 2 Тогда
           Прервать;
       КонецЕсли;    
   КонецЦикла;    

   
   НаборЗаписей.Записать();
КонецПроцедуры
36 Мимохожий Однако
 
24.12.11
13:19
НаборЗаписей.Отбор.Регистратор.Установить(Регистратор);
регистратор не должен быть пустой ссылкой
37 BigShmax
 
24.12.11
13:20
(36)  так  для чего был написан код!!!  прблема в том  что  в настоящий момент  в 99%  строк регистра  в регистраторе пусто и ни один документ  являющийся регистратором данного регистра не проводится с ошибкой
38 BigShmax
 
24.12.11
14:13
офигеть  починил
39 BigShmax
 
24.12.11
14:15
Итак  запрос в консоли показал  что  регистратор заполнен!!!  и плевать что мы его не видим.  регистр выглядел  так как будьто бы  один документ убрали из регистратора  .  заглянули в конфигуратор убедились что все наместе почесали репу. пришли к выводу что конфигурация бд и конфигуратора отличаются.  в конфигураторе удалили  из регистратора этот док, тут же добавили и сохранили изменение  , т.к. цех работает сохранили динамически  ииии  о чюдо. после перезапуска клиента  регистр заполнен и все работает.  Спасибо хорошему человеку  - помог :-)