Коррекция регистров

Опубликовал Владислав Цылёв (vet7777) в раздел Администрирование - Сервисные утилиты

Документ "Коррекция регистров" для правки движений по любому регистру.
Редактирование регистров я давно хотел добавить в "Редактор реквизитов" (http://infostart.ru/projects/3072/), но время показало, что гораздо удобнее и правильнее создавать корректирующий документ.
Если решил бы реализовывать редактирование движений в редакторе, то , во-первых, пришлось бы это делать прямыми запросами, во-вторых, повторное проведение документа восстановило бы старые движения.
Вообще, вот вам еще один мой инструмент "исключительно для админо-программерского использования". Его я еще не показывал на публику, хотя написан он также давно, в году 2004 наверное.

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

Есть фильтр для отбора итогов, чтобы можно было скорректировать неправильные остатки, поняв как пользоваться этим фильтром, сможете многое...

Можно заполнить текущими остатками, можно частями по фильтру, главное не превысить 9999 строк в документе в DBF базе и 32767 в SQL и выгрузить его в пустую конфигурацию с теми же справочниками, организовав тем самым свертку базы.

В общем, если научитесь пользоваться этим инструментом, применение найдёте и не одно.

В приложенной конфигурации содержится 2 объекта: документ "КоррекцияРегистров" и журнал документов "КоррекцииРегистров", их собственно и нужно загрузить в вашу через объединение. Потом не забудьте права настроить и в интерфейс добавить, если нужно.

Ограничение для использования: в регистре не больше 10 измерений, 10 ресурсов и 10 реквизитов, но я думаю вам хватит, мне хватало с запасом. :)

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

Наименование Файл Версия Размер
v1.1
.1230982725 25,15Kb
01.08.14
974
.1230982725 25,15Kb 974 Скачать

См. также

Комментарии
1. Владислав Цылёв (vet7777) 466 02.01.09 17:52 Сейчас в теме
вот собственно и мой подарок вам....
2. Сергей (seermak) 656 03.01.09 08:38 Сейчас в теме
Интересно,я не до конца разобрался пока. Вопрос:
Процедура ОбработкаПроведения()
СпрТов=Создатьобъект("Справочник.Номенклатура");
СпрТов.ВыбратьЭлементы();
Пока СпрТов.ПолучитьЭлемент()=1 Цикл
Если СпрТов.ЭтоГруппа()=0 Тогда
Значение=СпрТов.ТекущийЭлемент();
Прервать;
КонецЕсли;
КонецЦикла;
этот кусок кода для чего?
3. Владислав Цылёв (vet7777) 466 03.01.09 09:21 Сейчас в теме
сам не помню уже :) давно писал....
спасибо за находку, поправлю.
4. Владислав Цылёв (vet7777) 466 03.01.09 14:41 Сейчас в теме
новая версия 1.1
- удалил лишнее, подравнял, запеременил процедуры и функции...
- добавил возможность вводить сторно на основании другой коррекции или любого документа (нужнот только установить возможность вводить на его основании)
5. Сhe Burashka (CheBurator) 04.01.09 20:09 Сейчас в теме
Заголовки измерений меняются после выбора вида регистра?
6. Poppy (poppy) 3299 04.01.09 21:09 Сейчас в теме
КолИзм = Метаданные.Регистр(ПечРегистр).Измерение();
{Документ.КоррекцияРегистров.Форма.Модуль(732)}: Поле агрегатного объекта не обнаружено (Измерение)
7. Сhe Burashka (CheBurator) 04.01.09 21:20 Сейчас в теме
(6) в качестве ПечРеггистр передан идентификатор несуществующего регистра...??
8. Poppy (poppy) 3299 04.01.09 21:34 Сейчас в теме
(7) Точно, в конфигурации где регистров нету совсем... ;-)
9. Сhe Burashka (CheBurator) 04.01.09 21:56 Сейчас в теме
Ура! я выиграл пирожок! просто тольо потому, что получил аналогичную ошибку при обрашении к Ревизит(ИмяРеквизита).Длина - имяреквизита было "неправильное"
10. Poppy (poppy) 3299 04.01.09 22:31 Сейчас в теме
У меня в аналогичной разработке стоит запрет на создание документа при отсутствии регистров.
11. Vasily Kushnir (vasilykushnir) 62 05.01.09 10:38 Сейчас в теме
(7) Или я чего-то не понял, или... тяжелое последствие праздников... Обработка "Коррекция регистров". А что корректировать, если регистров нет...?

А вообще спасибо автору - давно ожидаемая обработка.
12. Владислав Цылёв (vet7777) 466 05.01.09 16:09 Сейчас в теме
сделать чтобы при открытии посылала в сад, когда нет регистров? :)))))
vasilykushnir; +1 Ответить 2
13. Poppy (poppy) 3299 05.01.09 17:44 Сейчас в теме
(12)Напиши например так:
В процедуре ПриОткрытии()
Код
   Если ВидРегистра.РазмерСписка()>0 Тогда
      Если ВидРегистра.ТекущаяСтрока()=0 Тогда
         ВидРегистра.ТекущаяСтрока(1);
      КонецЕсли;
   Иначе
      Сообщить("В данной конфигурации нет ни одного регистра!");
      СтатусВозврата(0);
   КонецЕсли;
Показать полностью


Посмотри как у меня сделано в идентичном документе http://infostart.ru/projects/888/
14. Vasily Kushnir (vasilykushnir) 62 06.01.09 08:45 Сейчас в теме
(12) +5
- Папа, откуда берутся дети?
- Оттуда, куда потом посылают взрослых.....
15. Владислав Цылёв (vet7777) 466 11.01.09 11:14 Сейчас в теме
так что? дальше открытия документа кто-нибудь ходил? :)
какие еще есть пожелания, замечания?
16. Сергей (seermak) 656 11.01.09 11:21 Сейчас в теме
я включил в рабочую конфу, но пока "оказии" для применения небыло. Надеюсь что в нужный момент не подведет;)
17. Poppy (poppy) 3299 12.01.09 12:30 Сейчас в теме
(15)
Есть еще фича. В оборотных регистрах движение не завист от знака, указанного в документе.
18. Ёпрст (Ёпрст) 1017 12.01.09 12:44 Сейчас в теме
19. Евгений Долиновский (Dolly_EV) 262 12.01.09 13:03 Сейчас в теме
+ неглядя! как раз сейчас трубуется сие, в свое время сам писал, но там не было фильтра... потестю - отпишу.

(10) poppy, а ваше аналогичное посмотреть можно?
20. Poppy (poppy) 3299 12.01.09 13:37 Сейчас в теме
(19) Конечно смотри http://infostart.ru/projects/888/

Вот еще похожий документ http://infostart.ru/projects/2172/ не мое.

(18)
Нет, недолжно. Здесь для создания движений оборотных регистров вместо метода ДвижениеВыполнить() используются методы ДвижениеПриходВыполнить() и ДвижениеРасходВыполнить(). Вроде все работает, но в этом есть некоторая неаккуратность...
ЛохНесс; +1 Ответить 2
21. Ёпрст (Ёпрст) 1017 12.01.09 13:45 Сейчас в теме
(20) Ну, раз создатели не озаботились правильной работой методов то и ладно.. :)
Это как получение атрибутов ДатаДок и НомерДок у документа двигающего регистр в запросе... Тоже по-разному "работает" в скули и дбф, хотя не должно работать вообще...
22. Сергей (seermak) 656 12.01.09 13:54 Сейчас в теме
А и правда: методы для регистров оборотов и остатков разные.......
23. Евгений Долиновский (Dolly_EV) 262 12.01.09 14:10 Сейчас в теме
24. Евгений Долиновский (Dolly_EV) 262 12.01.09 14:37 Сейчас в теме
Вобщем - весчь! Автору - респект!.. добавил еще фильтр "В" для измерений (тип "Справочник") и ПОООЛностью удовлетворился!
жаль, только 1 плюс ставится.
25. Ёпрст (Ёпрст) 1017 12.01.09 14:46 Сейчас в теме
Аналогичная ошибка и в этой обработке при работе с метаданными....
Точнее недочОт и еще какой...
Хорошие грабли для начинающих :)
26. Владимир Вовк (vovk_v) 130 12.01.09 23:41 Сейчас в теме
Владислав, спасибо! Работает на твердое 5! +1 :) Отдельная благодарность за то, что поделились разработкой, ведь теперь мы можем сосредоточиться на решении других задач, а не решать каждый по отдельности одно и то же 1000 раз. ;)
27. Владислав Цылёв (vet7777) 466 13.01.09 09:31 Сейчас в теме
(24,26) Очень рад что разработка понравилась и пригодилась!
Сам пользовался и редактором реквизитов и коррекцией регистров довольно долго, инструменты получились очень хорошие, много раз выручали...
To Dolly_EV: В следующую версию добавлю фильтр "В" для измерений. :)
На базе этой коррекции можно решить проблему свертки, только нужно сделать или найти обработки - выгрузка документов в файл, загрузка документов из файла, ну и обработку свертки написать, которая создаст по всем регистрам остатков документы коррекции пачками (с учетом ограничения строк в документе) ...
Наработки такие были, найду - выложу...
А так вообще, чем вам не редактор движений? )
Если в качестве документа основания для коррекции, установите какой нибудь другой документ, то на его основании можно будет делать коррекцию его движений, попробуйте... Выбираете регистр и коррекция заполняется сторнирующими движениями. Так же можно и корректировать коррекцию... Вообщем применений много, про фильтр вы и сами уже должны были прочувствовать удобство, фактически засунул в документ отчет по итогам...
28. Ёпрст (Ёпрст) 1017 14.01.09 09:52 Сейчас в теме
29. Владислав Цылёв (vet7777) 466 14.01.09 13:38 Сейчас в теме
(28) в 25 ничего конкретно не написано, может в 6?
30. Ёпрст (Ёпрст) 1017 14.01.09 13:58 Сейчас в теме
(29) а ну да, забыл сказать, просто в другой ветке говорил... :)

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

Все как-то про них забывают. Потом граблёй по лбу имеют... Особенно при свёртке.
31. Vasily Kushnir (vasilykushnir) 62 15.01.09 09:39 Сейчас в теме
(30) А если для неопределенного предложить юзьверу выбрать тип метаданного, а потом уже по назначенному типу - выбор самого матаданного? Кстати, ты прав, этим грешат даже очень солидные проекты - сколько раз предлагал Доржи сделать подобный выбор в Новейшем Отчете, цены б ему тогда не было.... Хотя он и так в ракламе не нуждается - функционал выше крыши.
А вот эти две обработочки Влада - текущая и редактор реквизитов - не смотря на мелкие шероховатости - просто прелесть. Правда Редактор реквизитов я дополнил перепроведением дока - честно! влом мне создавать еще один корректирующий документ. Знаю, знаю, что это есть неверный подход, но... Да и сами данные меняю только те, что не влияют на товарные отчеты и в документах, любое действие над которыми уже запрещено - доки у меня могут корректироватся только не более 3-х дневной давности - более поздние уже фиг (только обработочка Влада и выручает).
32. Ёпрст (Ёпрст) 1017 15.01.09 09:57 Сейчас в теме
(31) Зачем юзверю это надо ? :))
Всё гораздо проще :
При записи атрибутов , просто поглядеть на тип реквизита/измерения (смотря, куда пишем) из самих метаданных, если неопределенно и значение записываемого атрибута не пустое - назначаем тип реквизиту/измерению, беря его из самого значения атрибута.. Вот и всё. Т.е. тупо вставить условие на неопределенный тип.
Пара строк кода.
:)
33. Ёпрст (Ёпрст) 1017 15.01.09 09:58 Сейчас в теме
+32 А вид, как мы знаем, назначать необязательно, главное ТИП ...
34. Vasily Kushnir (vasilykushnir) 62 15.01.09 12:22 Сейчас в теме
(33) В принципе таки да - можно и так. Это даже попроще.
35. Vasily Kushnir (vasilykushnir) 62 15.01.09 12:23 Сейчас в теме
+ к (34) А под юзьвером я предполагал человека работающего с обработкой и это далеко не рядовой юз.
36. Евгений Долиновский (Dolly_EV) 262 16.01.09 05:30 Сейчас в теме
помимо "В" еще ошибочка (или недоЧОТ)):
При выборе значения фильтра у тебя уловие сбрасывается всегда на "=", даже если оно уже ранее выбрано - поправил проверкой на пустое значение.
37. kairat primbetov (karat60) 16.01.09 11:33 Сейчас в теме
38. Евгений Стоянов (quick) 557 24.03.10 17:17 Сейчас в теме
39. Александр Макаров (makaray) 13.09.10 09:36 Сейчас в теме
я хоть и занимаюсь 1С не очень давно, но уже реально оценил, вещчь!
40. Владимир Балашов (vlanik) 02.07.13 11:31 Сейчас в теме
Задумка хорошая, с недочетами можно справиться и самому, а так вещь полезная.