Имя: Пароль:
1C
1С v8
Удаление косячных записей регистра накоплений
0 ВотОнЯ
 
28.09.11
05:07
Вобщем дело такое. Есть доки перемещение по складам.
По ходу дела эти доки успешно удалились, а записи в регистре "Товары на складах" остались.

С регистратором "Объект не найден".
ТиИ не запускается, ибо "Ошибка SDBL Попытка обращения к полю простого типа как к таблице."

Что делать?
1 guitar_player
 
28.09.11
05:21
компонента chdbfl.exe?
2 ВотОнЯ
 
28.09.11
05:32
База на скуле (postgreSQL)
3 ZanderZ
 
28.09.11
05:37
я бы сделал документ, поменял бы ему uid на "Объект не найден" и удалил записи
4 ВотОнЯ
 
28.09.11
05:40
(3) я б тоже так сделал.. если бы знал как поменять UID документу на "объект не найден"

насколько мне известно метода

Новый ОбъектНеНайден;

в 1С неть ))))
5 ZanderZ
 
28.09.11
05:41
(4) но есть прямой доступ к СУБД через консоль или как то еще
6 Mkonst
 
28.09.11
05:41
(0) вот эту обработку посмотри
http://gmixdev.ru/index.php?option=com_remository&Itemid=29&func=fileinfo&id=12
7 ВотОнЯ
 
28.09.11
05:42
Вопрос номер 2

как устранить ошибку запуска ТИИ в сабже?

1С 8.2.14.496
8 ВотОнЯ
 
28.09.11
05:44
(6)увлекательная обработка, автору зачет...
но она как я понимаю ничего не исправляет же..
9 ZanderZ
 
28.09.11
05:48
(8) комментарий прочитай в (6)
10 DJ Anthon
 
28.09.11
05:48
то есть

c:\Program Files\1cv82\8.2.14.496\bin\chdbfl.exe

не работает, да?
11 DJ Anthon
 
28.09.11
05:58
а, скуль...
12 DJ Anthon
 
28.09.11
05:59
а выгрузить, загрузить файлово, проверить и загрузить обратно тоже не получается?
13 ВотОнЯ
 
28.09.11
05:59
(9)япона мать! Вот я слепень! Да, спасибо, нашел.
Весьма садистический способ применяется если ссылок несколько сотен, но за готовую обработку автор имеет право поиздеваться))
14 DJ Anthon
 
28.09.11
06:01
(13) а не скинешь обработочку на djanthonсобакамайлточкару? пожалуйста...
15 ВотОнЯ
 
28.09.11
06:03
(14)а по ссылке качнуть неа? :)
Я ее конвертнул под 8.2. У тебя 8.2?
16 ВотОнЯ
 
28.09.11
06:03
если да - то скину
17 DJ Anthon
 
28.09.11
06:04
(15) там региться надо ((  у меня 8.2 давно уже везде... заранее спасибо!
18 ZanderZ
 
28.09.11
06:05
(17) "там региться надо" - ну да это же непосильная задача, лучше клянчить...
19 ВотОнЯ
 
28.09.11
06:06
(17)ушло
20 ВотОнЯ
 
28.09.11
06:07
интересно, а если просто сделать выгрузку-загрузку ИБ, не помогет?
21 ВотОнЯ
 
28.09.11
06:07
без ТИИ

в 7.7 я помню от многого спасало
22 DJ Anthon
 
28.09.11
06:35
(18) ну зачем мёртвые души-то плодить ради одного файла...
(19) спасибо!
23 Маленький Вопросик
 
28.09.11
06:41
Тестирование и исправление ...
24 ВотОнЯ
 
28.09.11
06:44
(23) что "Тестирование и исправление"?
25 Маленький Вопросик
 
28.09.11
06:45
(24) есть такая процедура в конфигураторе в8
26 catena
 
28.09.11
06:48
(25)Не, ну ладно тему не читать, но хоть входящее сообщение...
27 ВотОнЯ
 
28.09.11
06:52
(25)до чего техника дошла... ))))

Доброе утро! Товарищь!!! =)
28 Маленький Вопросик
 
28.09.11
06:53
(25) и что? тестирование и исправление - позволяет создавать удаленные объекты по существующим на них ссылкам? слыхала о таком?
29 DJ Anthon
 
28.09.11
06:55
(28) )))))
30 ВотОнЯ
 
28.09.11
06:55
(28)
Ты б эта.. зубки почистил, умылся.. глядишь и проснулся бы)
31 catena
 
28.09.11
06:55
(28)Попей кофе, открой глазки и еще раз прочитай (0) :))
32 ВотОнЯ
 
28.09.11
06:56
блин! Время 6-55, база до сих пор грузится.. Чота как то я по моему погорячился с выгрузкой-загрузкой
33 guitar_player
 
28.09.11
06:58
(28) дык чукча писатель
34 ВотОнЯ
 
28.09.11
07:01
чот понять не могу...

В конфигураторе стэйт "Загрузка информационной базы"..

Загрузка проца: 0-1%

не взвисло ли? Или это нормально?
35 DJ Anthon
 
28.09.11
07:01
(33) еще и любитель сам с собой поговорить...
36 DJ Anthon
 
28.09.11
07:02
(34) нормально. а че ему думать-то?.. вся нагрузка на жёсткий...
37 ВотОнЯ
 
28.09.11
07:09
ясно.. буим ждать
38 Mkonst
 
28.09.11
07:12
(0) а еще на инфорстарте были обработки на предмет удаления битых сылок
39 Мыш
 
28.09.11
07:18
(0) Не знаю, как на Постгри, но на Скуле это DELETE :)
40 ВотОнЯ
 
28.09.11
07:20
(28)да, уже смотрел, они в платном разделе((

Блин я похоже понял откуда взялись эти ссылки..
У клиента РБД..
Нашел план обмена в котором не переливаются в голову(где и обнаружены "битые ссылки") никакие доки кроме перемещений.

Если доки реализации не перелились а записи регистра перелились - то вот они! Битые ссылки..

Блин.. очень надеюсь, что загрузка-выгрузка НЕ ПОМОЖЕТ убить эти ссылки
41 Мыш
 
28.09.11
07:21
(37) Перешли, пожалуйста, мне ту увлекательную обработочку по поиску битых ссылок. Тоже заинтересовался :)
42 ВотОнЯ
 
28.09.11
07:23
(38) в семерке работал с базой напрямую, в восьмерке не настолько хорошо знаю структуру.. страшновато еще
43 Мыш
 
28.09.11
07:23
(40) Загрузка-выгрузка битые ссылки не убьет скорее всего.
44 ВотОнЯ
 
28.09.11
07:24
фуххх все на месте
45 ВотОнЯ
 
28.09.11
07:24
(41) мыло давай
46 Мыш
 
28.09.11
07:26
(45) oleg.goman ___ gmail.com
47 БибиГон
 
28.09.11
07:27
мне тоже пришлите пожалуйста обработку. :)
48 ВотОнЯ
 
28.09.11
07:28
Клиент говорит такой план обмена им сделали для того чтобы  некоторые пользователи головы не видели реализации и фин показателей определенного филиала.

Прежде чем я исправлю план обмена и помечу все объекты филиала к выгрузке в голову, такой вопрос:

Есть ли вариант в УТ ограничить доступ пользователей по складам\кассам штатными средствами?
49 ВотОнЯ
 
28.09.11
07:30
всем кто просил обработка ушла
50 БибиГон
 
28.09.11
07:32
спасибо.
в УТ ограничения только по контрагентам и организациям штатно. RLS писать нужно
51 ВотОнЯ
 
28.09.11
07:32
ИМХО (Ее можно и нужно еще допилить, полуавтомат на исправление 200-300 битых ссылок выбьет оператора из процесса на несколько часов)
52 Мыш
 
28.09.11
07:32
(48) Получил, спасибо.

В УТ не спец, но предполагаю что RLS там работает. И скорее всего как раз по складам.
53 ВотОнЯ
 
28.09.11
07:33
(50)ааааа... мое слабое место(((
Не знаю как их писать и доков нет.
В тех манах что есть - нихрена не понятно что пишется в RLS,  Что там от чего зависит и как сам механизм работает.
54 guitar_player
 
28.09.11
07:34
(53) RLS нафиг не нужен... тормозит все.
Имхо ждать УТ с фишками разделения данных, появившихся в 8.2.14
55 ВотОнЯ
 
28.09.11
07:36
(54) я то подожду.. хоть 100 тыщ лет, а вот заказчик ждать нихатит((
56 Мыш
 
28.09.11
07:37
Посмотрел обработку. Можно выкидывать. Вот код:

>> Если Найти(Строка(Значение),"<Объект не найден>")>0

Такое не интересно :(
57 Мыш
 
28.09.11
07:40
(53) Посмотри на готовом примере, постарайся вникнуть. А так тормозит, да.
58 ZanderZ
 
28.09.11
07:44
(56) ты на сайте автора напиши
59 Я не курил
 
28.09.11
07:44
60 Mkonst
 
28.09.11
07:44
Процедура КнопкаВыполнитьНажатие(Кнопка)
   // Вставить содержимое обработчика.
   Запрос =  новый Запрос;
   Запрос.Текст="ВЫБРАТЬ
                |    КатегорииОбъектов.Регистратор КАК Регистратор,
                |    КатегорииОбъектов.ЗаказПартии
                |ИЗ
                |    РегистрСведений.СписанныеТовары КАК КатегорииОбъектов
                |ГДЕ
                |    КатегорииОбъектов.Регистратор.Номер ЕСТЬ NULL
                |ИТОГИ ПО
                |    Регистратор";
               
   Результат= запрос.Выполнить();
   Выборка = Результат.Выбрать(ОбходрезультатаЗапроса.ПоГруппировкам);
   Набор = РегистрыСведений.СписанныеТовары.СоздатьНаборЗаписей();
   Пока Выборка.следующий() Цикл
       Набор.Отбор.Регистратор.Установить(Выборка.Регистратор);
       Набор.Записать();
    сообщить(Выборка.Регистратор);
   
    ОбработкаПрерыванияПользователя();
   
    КонецЦикла;
   
   
КонецПроцедуры
61 Я не курил
 
28.09.11
07:44
+(59) оттуда

Ниже дана программа для удаления записей регистров, у которых регистратор - битая ссылка, т.е. не существует в базе.

Процедура УдалениеБитыхСсылок(ИмяРегистра,ТипРегистра,ТипРегистраЗ)
   МенеджерРегистра = ТипРегистра[ИмяРегистра];
   
   Запрос = Новый Запрос("
   |ВЫБРАТЬ Регистратор
   |ИЗ "+ТипРегистраЗ+"."+ИмяРегистра+"
   |ГДЕ Регистратор.Ссылка ЕСТЬ NULL И НЕ Регистратор = &ПустаяСсылкаДокумента");
   Запрос.УстановитьПараметр("ПустаяСсылкаДокумента",Неопределено);
   
   Выборка = Запрос.Выполнить().Выбрать();
   Пока Выборка.Следующий() Цикл
       Набор = ТипРегистра[ИмяРегистра].СоздатьНаборЗаписей();
       Набор.Отбор.Регистратор.Установить(Выборка.Регистратор);
       Набор.Записать();
       ОбработкаПрерыванияПользователя();
       Состояние(""+ТипРегистра+" "+ИмяРегистра);
   КонецЦикла;
КонецПроцедуры


Процедура КнопкаВыполнитьНажатие(Кнопка)

   Для Каждого пРегистр из Метаданные.РегистрыСведений Цикл
       Подчинен        =    (пРегистр.РежимЗаписи = Метаданные.СвойстваОбъектов.РежимЗаписиРегистра.ПодчинениеРегистратору);
       Если Подчинен Тогда
           УдалениеБитыхСсылок(пРегистр.Имя,РегистрыСведений,"РегистрСведений")
       КонецЕсли;    
   КонецЦикла;
 
   Для Каждого пРегистр из Метаданные.РегистрыБухгалтерии Цикл
       УдалениеБитыхСсылок(пРегистр.Имя,РегистрыБухгалтерии,"РегистрБухгалтерии")
   КонецЦикла;
   
   Для Каждого пРегистр из Метаданные.РегистрыРасчета Цикл
       УдалениеБитыхСсылок(пРегистр.Имя,РегистрыРасчета,"РегистрРасчета")
   КонецЦикла;

   Для Каждого пРегистр из Метаданные.РегистрыНакопления Цикл
       УдалениеБитыхСсылок(пРегистр.Имя,РегистрыНакопления,"РегистрНакопления")
   КонецЦикла;
   
КонецПроцедуры
62 Мыш
 
28.09.11
07:54
(58) Зачем? Может ещё зайти в спортбар фанатов ЦСКА и крикнуть "Спартак - чемпион"? :)

(59) Читал, в курсе. Интересовался готовой универсальной обработкой.
63 Я не курил
 
28.09.11
07:56
(62) в 61 код для "универсальной обработки"
64 Мыш
 
28.09.11
08:11
(63) "Код для" и "готовое" несколько различаются.