К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

Удаление записей из регистра остатков с битыми ссылками

Гость
0 - 11.03.2015 - 07:59
Как удалить из регистра остатков записи с битыми ссылками
при помощи обработки



Гость
1 - 11.03.2015 - 08:10
ммм.... написать обработку, которая будет определять факт "битости" не предлагать?
В просторечии "битая" означает отсутствие записи в основной таблице. Дальше сам.
Гость
2 - 11.03.2015 - 08:44
А разве, когда в конфигураторе запускаешь режим проверки и исправления ошибок, там не спрашивает, что делать с "битыми" ссылками? Удалять, или создавать новые объекты. Где-то такое было...
Гость
3 - 11.03.2015 - 08:54
Я хочу именно обработкой удалить из регистра остатков эти записи
Гость
4 - 11.03.2015 - 09:10
если тема о 7ке, то по прежнему непонятно в чём собственно загвоздка?
5 - 11.03.2015 - 09:16
(3)
разрешаем... не благодари)
Гость
6 - 11.03.2015 - 09:55
как обработкой указать регистратор.
Ведь документ который сделал движения удален а движения его остались?
Гость
7 - 11.03.2015 - 09:59
сильно! этот вопрос (6), но сформулированный иначе меня интриговал с 9:10
8 - 11.03.2015 - 10:12
в 8-ке очень помогло
http://w1c.ru/files/epf/GUID_300114.rar
Гость
9 - 11.03.2015 - 11:45
(6) и что?
Ссылка на регистратор есть? есть, хотя и "битая".
Отбор по ней кто-то запрещает установить? В чём проблема-то?
Гость
10 - 11.03.2015 - 13:02
Мне нужно сделать это обработкой в 7.7
Как я запишу регистратор обработкой?
и как я получу этот регистратор, ведь если я выгружаю итоги регистра - регистратора я не вижу.
Гость
11 - 11.03.2015 - 13:04
ВремРег = СоздатьОбъект("Регистры");
Рег = ВремРег.ОстаткиТовара;
Если Дта<ПолучитьДатуТА() Тогда
Рег.ВременныйРасчет();
КонецЕсли;
Рег.УстановитьФильтр(,ВыбСклад);
Если Дта<ПолучитьДатуТА() Тогда
ВремРег.РассчитатьРегистрыПо(Дта);
КонецЕсли;
Рег.ВыгрузитьИтоги(Табл,1,1);

Табл.ВыбратьСтроки();
Пока Табл.ПолучитьСтроку()=1 Цикл
Регистр.ОстаткиТовара.Товар=Табл.Товар;
Регистр.ОстаткиТовара.Склад=Табл.Склад;
Регистр.ОстаткиТовара.Количество=Табл.Количество;
Регистр.ОстаткиТовара.Стоимость=Табл.Сумма;
Регистр.ОстаткиТоваровСк.ДвижениеРасходВыполнить() ;
КонецЦикла;
а куда записать регистратор?
Гость
12 - 11.03.2015 - 13:20
11-Pusto > Неправильно.
Не надо ничего записывать в регистр: надо восстановить объект метаданных.
Т.е., если "битая ссылка" является указателем на несуществующую запись справочника Номенклатура, то надо создать по новому свежую запись Номенклатуры с прежним значением ID.

P.S. Для этого достаточно запустить ТиИ с оцией "Исправить".
P.P.S. А потом убить ап стену того типа, который разрешил непосредственное удаление объектов. С особой жестокостью.
Гость
13 - 11.03.2015 - 13:23
Это периферийная база и запускать ТиИ (проверка логической целостности) нельзя так как это чревато другими последствиями. Центральная база больше ПБ раз в 50. Поэтому нужна только обработка.
Гость
14 - 11.03.2015 - 13:37
13-Pusto > Регистратор записывается самим регистратором из Модуля документа.
Разработчики 1Cv7 смотрят на тебя с интересом.
15 - 11.03.2015 - 22:27
Можно сделать
Так как в регистр штатно доступ только через документ
То есть два варианта
Прямыми запросами ищешь битые ссылки и удаляешь записи с такими ссылками
Виорой вариант запускаешь тии с опуией исправить
Она тебе нарожает кучу дркументов которые отсутствуют в базе но по которым есть движения в регистре
Далее в модуле этих документов делаешь вставку чтобы отрабатывала только удаление записей при проведении и делаешь проведение и распроведение этих доков потом удаляешь эти доки штатно
А потом снимаешьчистишь таблицу регистрации изменений чтобы вся эта муть не ушла в цб

Но прямыми запросами быстрее будет наверное
Посмотри на исе разработку
Граната для обезьянки
16 - 11.03.2015 - 22:29
10-Pusto > итоги по регистру это отдельная таблица
Так как итоги по регистратору бессмыслены то в таблице итогов ссыли на регистратор нет
Регистратор есть только в таблице движений
Более подробно инфу можно почерпнуть в словаре данных
Это файлик с расширением dd или dds


К списку вопросов






Copyright ©, Все права защищены