Как удалить запись регистра бухгалтерии с пустым регистратором

1. aaudin90 09.08.13 11:32 Сейчас в теме
Добрый день. Прошу помочь с проблемой.
После свертки базы (делалась еще до меня) в регистре бухгалтерии появились записи с пустыми регистраторами. Выяснилось это после формирования отчета "Главная книга", т.к. из за этих записей не закрывается 000 счет.
Но дело в том, что в физической таблице "Регистр бухгалтерии" таких записей нет. Записи находятся в виртуальной таблице "ЕПСБУОстаткиИОбороты".(проверял в консоле).
Вопрос: Как это так?) И каким образом можно удалить эти записи?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. deniseek77 86 09.08.13 11:34 Сейчас в теме
(1) aaudin90, Сначала тестирование и исправление. Затем, если не поможет, то в регистр установить регистратор, а потом удалить
7. motorkuzbassa.it 101 09.08.13 12:06 Сейчас в теме
(1)есть тут обработка, чистка регистра без регистратора.
9. aaudin90 09.08.13 12:11 Сейчас в теме
(7) motorkuzbassa.it, вроде бы уже качал сегодня. Она просто универсальна, но работает с регистрами накопления и сведений. Принцип работы через так же через набор записей, я ее переделал под бухгалтерский регистр, но увы, ошибка осталась та же("для записи не установлен регистратор...")
11. alexk-is 6545 09.08.13 12:31 Сейчас в теме
(1) Если записей нет, то может быть просто переиндексировать, итоги пересчитать и всё?
13. deniseek77 86 09.08.13 12:33 Сейчас в теме
3. aaudin90 09.08.13 11:44 Сейчас в теме
Тестирование и исправление делал, со всеми вариантами настроек. Как это сделать? Так еще есть сложность в том, что в физической таблице нет таких записей. Эти 2 записи нет и в виртуальной таблице ЕПСБУОстатки, а в ОстаткахИОборотах есть.
4. deniseek77 86 09.08.13 11:48 Сейчас в теме
(3) aaudin90, Написать обработку, с запросом к этой таблице, программно получить Запись регистра, установить регистратор
5. aaudin90 09.08.13 11:57 Сейчас в теме
Я так понимаю, что это делается через Набор записей регистра, и так как регистр подчинен регистратору, то через отбор по регистратору?
6. deniseek77 86 09.08.13 12:02 Сейчас в теме
(5) aaudin90, Так как там пусто, то наверное, по условию ПустаяСсылка()...Предположительно.
8. aaudin90 09.08.13 12:09 Сейчас в теме
	НаборЗаписей = РегистрыБухгалтерии.ЕПСБУ.СоздатьНаборЗаписей();
	
        НаборЗаписей.Отбор.Регистратор.Значение = Документы.КорректировкаЗаписейРегистров.ПустаяСсылка();




Набор записей пуст, т.к. отбор по регистратору у набора записей происходит по физической таблице, но там нет записей с пустым регистратором.

Может ли быть ошибка в платформе? (по сути ошибка возникает в платформе, при формировании виртуальной таблица "ОстаткиИОбороты").

ПО: Бухгалтерия государственного учреждения, редакция 1.0 (1.0.20.5) и 1С:Предприятие 8.2 (8.2.17.153).
10. Allexe8.1 09.08.13 12:28 Сейчас в теме
Это, случайно, не итоговые записи, на начало/конец периода ?
12. aaudin90 09.08.13 12:33 Сейчас в теме
(10) Allexe8.1, Не совсем понял, но аналогичные данные сформированы документом КорректировкаЗаписейРегистра. Он должен закрываться, но там по идее есть 2 записи без регистратора, которые и формируют остатки на начало периода этого года.
16. Allexe8.1 09.08.13 12:40 Сейчас в теме
(12) aaudin90, (12) aaudin90, Вы уже сами ответили на свой вопрос:
"Может ли быть ошибка в платформе? (по сути ошибка возникает в платформе, при формировании виртуальной таблица "ОстаткиИОбороты"). "

Получается, что если до НачалоПериода или после КонецПериода - есть записи, то в виртуальную таблицу выводятся дополнительно итоговые строки. Имхо, это глюк.

Побороть можно условием
Регистратор <> Неопределено
14. aaudin90 09.08.13 12:36 Сейчас в теме
Делал тестирование и исправление с различными настройками, и в самом регистре бухгалтерии проверку проводок.
17. deniseek77 86 09.08.13 12:40 Сейчас в теме
(14) aaudin90, Ну так Запрос.Выполнить().Выбрать() пок выборка следующий... и торкай туда левый регистратор
19. aaudin90 09.08.13 12:47 Сейчас в теме
(17) deniseek77, я разве смогу в выборку данных из виртуальной таблицы записать в физический регистр? Напишите пожалуйста код, если не сложно. Первый раз с бух регистром работаю, да и знания умных людей пригодятся)
Allexe8.1; +1 Ответить
21. deniseek77 86 09.08.13 12:54 Сейчас в теме
(19) aaudin90, Не не так... Попробуйте НаборЗаписей=РегистрыБухгалтерии.Хозрасчетный.ВыбратьПоРегистратору(...
22. deniseek77 86 09.08.13 12:58 Сейчас в теме
(19) aaudin90, Кстати, вспомнилось еще, что комуто помогало Вагрузить в dt, загрузить из dt назад, причем тестирование не давало ничего. Может и тут проканает. Или это было для 7...не помню
1Cynep4eJIoBek; +1 Ответить
15. aaudin90 09.08.13 12:39 Сейчас в теме
Данный запрос возвращает 0 записей.

ВЫБРАТЬ
	ЕПСБУ.Регистратор,
	ЕПСБУ.СчетДт,
	ЕПСБУ.СчетКт
ИЗ
	РегистрБухгалтерии.ЕПСБУ КАК ЕПСБУ
ГДЕ
	(ЕПСБУ.Регистратор = НЕОПРЕДЕЛЕНО
			ИЛИ ЕПСБУ.Регистратор ЕСТЬ NULL )
Показать


А этот 2:

ВЫБРАТЬ
	ЕПСБУОстаткиИОбороты.Учреждение,
	ЕПСБУОстаткиИОбороты.КВД,
	ЕПСБУОстаткиИОбороты.Баланс,
	ЕПСБУОстаткиИОбороты.СуммаКонечныйОстатокДт,
	ЕПСБУОстаткиИОбороты.СуммаКонечныйОстатокКт,
	ЕПСБУОстаткиИОбороты.Регистратор
ИЗ
	РегистрБухгалтерии.ЕПСБУ.ОстаткиИОбороты(&н, &к, Регистратор, , , , КВД = &КВД) КАК ЕПСБУОстаткиИОбороты
ГДЕ
	ЕПСБУОстаткиИОбороты.Счет = &Счет
	И ЕПСБУОстаткиИОбороты.Регистратор = НЕОПРЕДЕЛЕНО
Показать
18. Allexe8.1 09.08.13 12:43 Сейчас в теме
В физической таблице этой записи нет. Это глюк запроса, который строит виртуальную таблицу на основе физических таблиц - движений остатков и оборотов
20. aaudin90 09.08.13 12:49 Сейчас в теме
(18) Allexe8.1, если бы я писал свой отчет - нет проблем) Но данный "касяк" портит типовой отчет "Главная книга". Его переписывать крайне не охото...
24. Allexe8.1 09.08.13 13:03 Сейчас в теме
(20) aaudin90, Как оказалось, тут играет параметр МетодДополнения виртуальной таблицы. Попробуйте явно указать Движения
26. aaudin90 09.08.13 13:11 Сейчас в теме
(24) Allexe8.1, О каком именно измерении или ресурсе идет речь? И цель у меня не получить пустой запрос от виртуальной таблицы, а добиться корректной работы типового отчета.

Мне бы хотелось просто удалить эти записи)) Но пока не знаю как это сделать.
28. Allexe8.1 09.08.13 13:16 Сейчас в теме
(26) aaudin90, Это параметр виртуальной таблицы.
23. deniseek77 86 09.08.13 13:00 Сейчас в теме
И еще, база файловая? Может проверить cd1 файл ?
25. aaudin90 09.08.13 13:08 Сейчас в теме
(23) deniseek77, База SQL. Она не выгружается, говорит мешает активное предприятие, хотя в активных пользователях ничего нет) Данная проблема тут давно говорят, но бэкапы отлично делаются методами SQL).
На счет НаборЗ = ....ВыбратьПоРегистратору() уже пытался. Подсовывал ему и неопределено и пустую ссылку. Запись формируется пустая и вылетает ошибка при записи набора.
27. deniseek77 86 09.08.13 13:13 Сейчас в теме
(25) aaudin90, Не пустую ссылку, а реальный док.
29. aaudin90 09.08.13 13:19 Сейчас в теме
(27) deniseek77, С реальными доками все ок... или я что то не понял в вашей мысли?
31. deniseek77 86 09.08.13 13:22 Сейчас в теме
(29) aaudin90, Я имел ввиду подсунуть реальный документ, когда получаете набор записей, то есть: в эту запись реальный документ засунуть и записать набор
36. Allexe8.1 09.08.13 13:29 Сейчас в теме
(31) deniseek77, это не запись, это строка результата платформенного запроса к базе.
38. deniseek77 86 09.08.13 13:31 Сейчас в теме
(36) Allexe8.1, Точно, виртуальная таблица... Ок, но откуда же запись то берется? Где то что то должно быть
39. Allexe8.1 09.08.13 13:33 Сейчас в теме
(38) deniseek77, "Как оказалось, тут играет параметр МетодДополнения виртуальной таблицы. Попробуйте явно указать Движения"
40. aaudin90 09.08.13 13:35 Сейчас в теме
(39) Allexe8.1, Я так и не нашел метод дополнения)) Это регистрБухгалтерии, я тут не знаю движений. Может вы говорите о Дт_Кт, но что это может нам дать?
41. deniseek77 86 09.08.13 13:36 Сейчас в теме
(40) aaudin90, В запросе на таблице, параметр дополнения в конструкторе
32. deniseek77 86 09.08.13 13:24 Сейчас в теме
(25) aaudin90, А то, что база не выгружается должно насторожить! Возможно это все звенья одной цепочки.
34. aaudin90 09.08.13 13:28 Сейчас в теме
(32) deniseek77, если бы я только получил набор записей....)) до меня франча пыталась решить эту проблему с выгрузкой в ДТ. Но без успеха...
30. deniseek77 86 09.08.13 13:19 Сейчас в теме
А если как то так? Я на БП писал, по аналогии переделайте

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



Сорри, перечитал еще, так тоже пробовали...
33. aaudin90 09.08.13 13:26 Сейчас в теме
(30) deniseek77, Да, вот что получается;
Прикрепленные файлы:
35. deniseek77 86 09.08.13 13:28 Сейчас в теме
(33) aaudin90, Это в момент прочитать?
37. aaudin90 09.08.13 13:30 Сейчас в теме
(35) deniseek77, это в момент записи набора.
42. deniseek77 86 09.08.13 13:37 Сейчас в теме
Метод дополнения : Движения или движенияИГраницаПериода
43. aaudin90 09.08.13 13:50 Сейчас в теме
Допустим так...) но проблема в типовом отчете осталась :\
44. deniseek77 86 09.08.13 14:01 Сейчас в теме
(43) aaudin90, попробуйте индексировать базу скуля: http://www.forum.mista.ru/topic.php?id=631043
45. aaudin90 12.08.13 07:04 Сейчас в теме
Проблема еще не решена :( Заметил закономерность в запросе :

ВЫБРАТЬ
	ЕПСБУОстаткиИОбороты.Регистратор,
	ЕПСБУОстаткиИОбороты.Учреждение,
	ЕПСБУОстаткиИОбороты.КВД,
	ЕПСБУОстаткиИОбороты.КБК,
	ЕПСБУОстаткиИОбороты.Валюта,
//	ЕПСБУОстаткиИОбороты.Баланс,
	ЕПСБУОстаткиИОбороты.СуммаКонечныйОстатокДт,
	ЕПСБУОстаткиИОбороты.СуммаКонечныйОстатокКт
ИЗ
	РегистрБухгалтерии.ЕПСБУ.ОстаткиИОбороты(&н, &к, Авто, , , , КВД = &КВД) КАК ЕПСБУОстаткиИОбороты
ГДЕ
	ЕПСБУОстаткиИОбороты.Счет = &Счет
	И ЕПСБУОстаткиИОбороты.Регистратор = НЕОПРЕДЕЛЕНО
Показать


Если убрать поле "Баланс", но запрос вернется пустым, тоесть по нему не будет остатков.
Получается этих записей нет и в виртуальной таблице, при некоторых условиях?
46. fly_men 14.08.13 10:37 Сейчас в теме
(45) aaudin90, Чтоб получить "битые" записи без регистратора нужно проверять саму ссылку.

В секции запроса "ГДЕ" надо прописать:
ГДЕ
ЕПСБУОстаткиИОбороты.Регистратор.Ссылка Есть NULL
47. aaudin90 14.08.13 10:44 Сейчас в теме
(46) fly_men, Это понятно. Результат будет такой же... Но как их удалить?
48. Ягг 497 14.08.13 11:10 Сейчас в теме
(47) aaudin90, если база SQL, и если данные зависли не в таблице движений, а в таблице остатков может быть попробовать удалить их непосредственно в SQL-ной базе?

Таблица остатков должна быть _AccTtl0<номер регистра>
Таблицы остатков и оборотов должны быть _AccTtl<кол-во субконто><номер регистра>
Таблица итогов оборотов между считами _AccTtlC<номер регистра>

По этим таблицам SQL и строятся виртуальные таблицы.

Толька естествено все на копии (а не на рабочей базе)!

Ну, может поможет
49. fly_men 14.08.13 11:11 Сейчас в теме
(47) aaudin90, Вот что подумал, если в основной таблице битых записей нет, а в виртуальных таблицах они остались то можно выполнить полный пересчет итогов, платформа сама должна почистить таблицу остатков и оборотов:


РегистрыБухгалтерии.ЕПСБУ.ПересчитатьИтоги();
50. aaudin90 14.08.13 12:16 Сейчас в теме
(49) fly_men, ОК, завтра попробую.
51. aaudin90 19.08.13 05:53 Сейчас в теме
52. fly_men 19.08.13 10:38 Сейчас в теме
(51) aaudin90, Сталкнулся с аналогичной проблемой вот как помогло:

Для вашего регистра будет как то так:

РегистрыБухгалтерии.ЕПСБУ.УстановитьИспользованиеИтогов(Ложь)
РегистрыБухгалтерии.ЕПСБУ.УстановитьИспользованиеТекущихИтогов(Ложь);
РегистрыБухгалтерии.ЕПСБУ.УстановитьИспользованиеИтогов(Истина);
РегистрыБухгалтерии.ЕПСБУ.УстановитьИспользованиеТекущихИтогов(Истина);
РегистрыБухгалтерии.ЕПСБУ.УстановитьПериодРассчитанныхИтогов(КонецМесяца(РабочаяДата));
53. aaudin90 20.08.13 07:56 Сейчас в теме
55. m-serg74 46 20.08.13 08:39 Сейчас в теме
(53) aaudin90, а в запросе к остаткам оборотам ограничение по периоду убрать нафиг не советовали еще? просто лень всю чушь читать...
Allexe8.1; +1 Ответить
56. fly_men 20.08.13 09:58 Сейчас в теме
(53) aaudin90, Ну тогда остаётся более жёсткий метод, если запрос:

ВЫБРАТЬ
ЕПСБУ.Регистратор
ИЗ
РегистрБухгалтерии.ЕПСБУ КАК ЕПСБУ
ГДЕ
ЕПСБУ.Регистратор.Ссылка ЕСТЬ NULL

ничего не возвращяет, тогда делаем следующее:

сперва:

РегистрыБухгалтерии.ЕПСБУ.УстановитьИспользованиеИтогов(Ложь)
РегистрыБухгалтерии.ЕПСБУ.УстановитьИспользованиеТекущихИтогов(Ложь);

потом удаляем записи как писал (48)Ягг, и только потом:

РегистрыБухгалтерии.ЕПСБУ.УстановитьИспользованиеИтогов(Истина);
РегистрыБухгалтерии.ЕПСБУ.УстановитьИспользованиеТекущихИтогов(Истина);
РегистрыБухгалтерии.ЕПСБУ.УстановитьПериодРассчитанныхИтогов(КонецМесяца(РабочаяДата));

Пробуйте сначала на копии, после удаления записей в вритуальных таблицах метод УстановитьПериодРассчитанныхИтогов(КонецМесяца(РабочаяДата)) должен создать итоги заново.
54. Ягг 497 20.08.13 08:28 Сейчас в теме
Мне кажется, если делалось тестирование и исправление со всеми галочкам и (а они включают и пересчет итогов и реструкторизацию таблиц и т.д.), то ни специальным пересчетом ни включением выключеним итогов проблему не решить. Смотрите физические таблицы остатков.
57. NightRain 01.02.19 17:03 Сейчас в теме
Для истории
Может кому пригодится
У меня выводилось начальное сальдо на любой начальный период
Сделал следующий код и все стало ок:

РегистрыБухгалтерии.МеждународныйУпрощенный.УстановитьИспользованиеИтогов(Ложь);
РегистрыБухгалтерии.МеждународныйУпрощенный.УстановитьИспользованиеТекущихИтогов(Ложь);

РегистрыБухгалтерии.МеждународныйУпрощенный.УстановитьИспользованиеИтогов(Истина);
РегистрыБухгалтерии.МеждународныйУпрощенный.УстановитьИспользованиеТекущихИтогов(Истина);

РегистрыБухгалтерии.МеждународныйУпрощенный.ПересчитатьИтоги();
Fux; taramaz; +2 Ответить
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот