gifts2017

Перепроведение документов только по выбранным регистрам

Опубликовал Сергей Синцов (s.sintsov) в раздел Обработки - Обработка документов

Иногда возникает необходимость перепровести документы за прошлые периоды только по одному или нескольким определенным регистрам. Например, такая ситуация может возникнуть, если в управленческом учете вели учет затрат с НДС, а потом вдруг решили в настройках учетной политики для управленческого учета поставить галку "Не включать НДС в затраты".

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

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

Для работы обработки обязательно требуется, чтобы период был открыт. Желательно делать перепроведение в монопольном режиме, особенно в базах, находящихся под высокой нагрузкой. И, конечно, не забываем делать резервную копию перед запуском обработки.

Краткое описание алгоритма:

1. Открываем транзакцию 
2. Проводим документ 
3. Записываем во временную таблицу движения по нужным регистрам 
4. Отменяем транзакцию 
5. Напрямую записываем движения из временной таблицы в нужные регистры 

P.S. В текущей реализации поддерживаются только регистры накопления (т.к. не было надобности проводить по другим).

Скачать файлы

Наименование Файл Версия Размер
ПерепроведениеДокументовТолькоПоВыбраннымРегистрам.epf 532
.epf 12,64Kb
09.07.13
532
.epf 12,64Kb Скачать

См. также

Подписаться Добавить вознаграждение
Комментарии
1. Артур Аюханов (artbear) 26.08.11 18:01
Что-то такое уже было на сайте, Герман для своего Ei точно выкладывал
Алгоритм опиши, пожалуйста.
Делаешь в транзакции проведение, затем сохраняешь нужные движения, откатываешь транзакцию, и устанавливаешь нужные движения.
Или наоборот - без всякой транзакции сохраняешь наборы по ненужным регистрам, перепроводишь документ, восстанавливаешь по всем, кроме нужных.
2. Константин Соболевский (Константин С.) 26.08.11 22:33
угу непонятно, откуда берутся значения для движения по регитрам?
3. sitis (s.sintsov) 29.08.11 08:09
Алгоритм такой:
1. Открываем транзакцию
2. Проводим документ
3. Записываем во временную таблицу движения по нужным регистрам
4. Отменяем транзакцию
5. Напрямую записываем движения из временной таблицы в нужные регистры

Второй алгоритм, описанный (1) мне кажется сложнее для реализации.
4. KSM MAtus (KSM) 05.10.11 11:35
5. Ольга Зуева (olga1523) 28.10.11 13:49
Сергей, спасибо за полезную обработку!.
Есть пожелание: добавить возможность отбирать документы по реквизитам (например, по тому же принципу, что и в Групповой обработке справочников и документов).
Это необходимо в случае, если мне нужно перепровести, скажем, документы определенного вида только по одной организации.
С\
6. bar_s (bar_s) 08.11.11 12:50
Сергей, спасибо. Обработка очень актуальна. Допольнительный отбор по документам тоже полезная штука.
7. lsamarina (mika_mika) 14.11.11 12:37
Спасибо. Пригодилась. Т.к. пришлось много раз использовать эту обработку для одно лишь регистра, мне было удобнее отключить в форме автоматический выбор обрабатываемых регистров для выбранных документов.
8. Дмитрий Головинский (Karglak) 25.01.12 11:17
Полезная обработка, можно добавить отбор по документам как он есть в типовых формах списка.
9. Алексей Захаров (almas) 07.03.12 14:50
Конечно плюс, но описание хотелось- бы в встроеннной справке иметь.
10. 1cSupport - третий (Зеленоград) 09.04.12 20:58
Взял как прототип. Не смог настроить для своей задачи - допроведения. Т.е. есть документы, у которых движения по новому регистру отсутствуют, при перепроведении появляются, но изменяются другие регистры, и нужно только дописать новый регистр.


Нашёл ошибку - если выбираю диапазон дат с 01 января 2012 по эту же дату, то выборка документов пустая.. Обошёл установкой второй даты на следующие сутки, но тут, в восьмёрке, надо к КонДата добавлять длительность суток.
11. KV1s (KroVladS) 13.02.13 14:31
Как раз то что нужно.

Сейчас надо будет попробовать.
12. KV1s (KroVladS) 13.02.13 16:15
Работает, вот только дюже медленно.
Просто перепровести быстрее.
13. Alex Azarnin (1985Alex1985) 24.04.13 02:18
Процедура ВыполнитьПерепроведениеДокументаПОВыбраннымРегистрам

Строка 83 (ДокументОбъект.Записать(РежимЗаписиДокумента.Проведение);)

Если в выбранном периоде документ проведен, а при перепроведении этого по каким то причинам сделать не удалось (у меня в базе что то делали задним числом, и не хватило остатков на эту дату при перепроведении), обработка выдает ошибку и останавливается.

При этом, если запустить повторно обработку, "со следующего дня", то докумены после "ошибочного" не проведутся. Мое ОВМ - стоит подумать как это исправить.

З.Ы. Сам придумаю - допишу
14. Alex Azarnin (1985Alex1985) 24.04.13 02:32
Попытка
    ДокументОбъект.Записать(РежимЗаписиДокумента.Проведение);
Исключение
    ОтменитьТранзакцию();
    Возврат;
КонецПопытки;
...Показать Скрыть


Вот такая конструкция помогла. Обработка нормально отработала.
15. Дима Путин (dimasikus31) 29.11.13 12:10
Здравствуйте, а для управляемых форм есть что-нибудь похожее, в частности для УТ 11? Очень актуальная тема!
16. Екатерина * * (ekaterinaeon) 04.12.13 06:43
Спасибо! очень выручила обработка!
17. Maximilian Alekseevich (1cmax) 30.03.14 19:33
(15) dimasikus31, Открываем в режим обычного приложения и вперед.
Обработка очень помогла! Спасибо!
18. Anton Chikov (Fr1eNd_Tver) 31.03.14 10:48
(15) dimasikus31, я думаю не очень сложно будет прикрутить управляемую форму к обработки, если только весь код не прописан в модуле формы.
19. Александр Ш (iney4) 07.07.14 15:16
Обработка не зависит от конфигурации ?
20. Дмитрий Дорин (DmitriyDI) 03.04.15 13:25
21. Ярослав Радкевич (WKBAPKA) 16.05.15 12:22
когда то нужно было себе такое организовать, не додумался до такого алгоритма, пришлось вносить изменения в модуля
22. Владимир (vladir) 29.01.16 08:29
Спасибо! Очень пригодилась для решения возникших проблем.