gifts2017

Опыт сведения дублей в бухгалтерской базе в закрытом периоде, или почему перестали "схлопываться" взаиморасчеты

Опубликовал Даниил Матвеев (cargobird) в раздел Программирование - Практика программирования

После проведения свертки дублей по контрагентам, при автоматическом закрытии взаиморасчетов в текущем периоде, в документы взаиморасчетов стали попадать документы двухлетней давности. Рождение, выявление и ликвидация ошибки.

1. Рождение

В процессе работы с бухгалтерией назрела необходимость свертки дублей контрагентов.

Дело нехитрое, вооружившись расширенной версией обработки "Поиск и замена дублирующихся элементов", приступили.

Дубли были свернуты, упавшие границы последовательностей возвращены на место, и все как будто бы ничего.

Но при перепроведении документов текущего периода в ОСВ по счету 62.01 по разным контрагентам стала появляться такая картинка:

ОСВ по счету 62.01

То есть, перестали "схлопываться" проводки по счету 62.01.

2. Выявление

На видимом уровне ничего не изменилось - сами проводки и их составляющие в реализации, заскочившей в текущий период, не изменились.

А на невидимом уровне произошло вот что.

Значения измерений Валюта и Подразделение (ВалютаДт, ВалютаКт, ПодразделениеДт, ПодразделениеКт) проводок регистра бухгалтерии Хозрасчетный у регистраторов, по которым прошлась обработка поиска дублей, вместо NULL приняли значения пустых ссылок на соответствующие справочники.

Для поиска таких регистраторов был написан и выполнен простой запрос:

ВЫБРАТЬ
	Хозрасчетный.Регистратор
ИЗ
	РегистрБухгалтерии.Хозрасчетный КАК Хозрасчетный
ГДЕ
	Хозрасчетный.ВалютаДт = ЗНАЧЕНИЕ(Справочник.Валюты.)
	И Хозрасчетный.ВалютаКт = ЗНАЧЕНИЕ(Справочник.Валюты.)
	И Хозрасчетный.ПодразделениеДт = ЗНАЧЕНИЕ(Справочник.ПодразделенияОрганизаций.)
	И Хозрасчетный.ПодразделениеКт = ЗНАЧЕНИЕ(Справочник.ПодразделенияОрганизаций.)

УПОРЯДОЧИТЬ ПО
	Хозрасчетный.Регистратор.Дата

3. Ликвидация

Для ликвидации ошибки был выбран способ выгрузки/загрузки проводок найденных регистраторов.

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

После такой обработки значения измерений по валютам и подразделениями опять превратились в NULL.

Затем были восстановлены опять упавшие границы последовательностей, перепроведены документы текущего периода, сверены итоги по оборотно-сальдовым за все годы, в которые изменялись документы (ОСВ не изменились).

Вышеописанный метод был взят на вооружение для будущих сверток дублей справочников, хотя почему происходит именно так, пока до конца не выяснено... Если более умудренные опытом коллеги направят мысль на след, буду признателен, поскольку в мат.части пробелов еще достаточно.

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Александр Шалимов (shalimski) 23.04.15 02:52
Да, такое встречал уже не раз. Причину возникновения тоже интересно было бы узнать. Сам не раскопал.
cargobird; +1 Ответить
2. Юрий Кириллов (FullMoon) 23.04.15 11:37
Очень полезная статья, сами долго разбирались с этой проблемой
3. Дмитрий Башинский (bashinsky) 23.04.15 16:13
Тестирование базы и все будет как надо, без всяких обработок
4. Даниил Матвеев (cargobird) 23.04.15 19:31
(3) bashinsky, не совсем понимаю, при чем здесь тестирование, если ошибка появляется именно после обработки, исчезает при вышеуказанных действиях и больше не появляется до следующей обработки... Кроме того, это происходит с разными базами.
5. Юрий Кириллов (FullMoon) 04.05.15 21:50
(3) bashinsky, ТИИ не помогло.
Я написал обработку для выявления этой проблемы http://infostart.ru/public/349891/, после чего программист из головной организации воспользовался способом, описанным в текущей публикации http://infostart.ru/public/348852/, и проблема была решена.
Эта проблема у нас возникла при конвертации базы Бухгалтерии КОРП 2.0 в Бухгалтерию КОРП 3.0.
6. Даниил Матвеев (cargobird) 04.05.15 21:58
(5) FullMoon, спасибо за информацию и ссылку на статью.
Переход на 3.0 нас еще коснется, а значит возможно тоже столкнемся с тем, что вы описали...
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа