gifts2017

Замена одного элемента справочника, счета или перечисления другим

Опубликовал VladimirB Belov (VladimirB) в раздел Обработки - Универсальные обработки

Обработка позволяющая заменить одно значение справочника, счета или перечисления на другое везде, где оно присутствует (реквизиты справочников, общие реквизиты, реквизиты шапки и реквизиты табличных частей документов, сменить владельца у подчиненных элементов справочников, ссылки в других справочниках,константах, и в проводках где может присутствовать в виде субконто).
+ Может изменять движения документа ( периодических реквизитов установленных в документах через УстановитьРеквизитСправочника(), а также регистров Оперативного учета )
После замены можно например удалить дубликаты справочников (для этого собственно данная обработка и писалась).
Обработка предназначена для компонент Бухгалтерский учет и Оперативный учет 7.7

Используется внешняя компонента FormEx.dll  (у меня 2.0.5.97, можно более ранние - нужна реализация этой компоненты    ВыполнитьФункцию()  )

Только для того чтобы изменять движения документа, нужно в этих документах ввести некоторые изменения :

1. Определить глобальную переменную в глоб.модуле (можно определить ее в модуле проведения документа)
  

	   Перем глСервисFormEx Экспорт;
       .........
    ЗагрузитьВнешнююКомпоненту("FormEx.dll");
    глСервисFormEx=СоздатьОбъект("Сервис");
2. Изменить процедуру ОбработкаПроведения() в модуле документа на:

	 Процедура ОбработкаПроведения(_Параметр)
    Если ТипЗначенияСтр(_Параметр)="СписокЗначений" Тогда
        Если Число(_Параметр.Получить("ИзменениеДвиженийДокумента"))=1 Тогда
            _КонтекстОбработки=_Параметр.Получить("КонтекстОбработкиИзменения");
            _Функция=_Параметр.Получить("Функция");
            _Параметр.Установить("КонтекстДокумента",Контекст);
            _СЗ=СоздатьОбъект("СписокЗначений");
            _СЗ.ДобавитьЗначение(_Параметр);
            _Результат=0;
            глСервисFormEx.ВыполнитьФункцию(_КонтекстОбработки,_Функция,_СЗ,_Результат);
            Возврат;
        КонецЕсли;
    КонецЕсли;
   <далее ваше проведение>
	     ...
 КонецПроцедуры


 вот собственно и все.

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

Наименование Файл Версия Размер
ЗаменаОдногоЗначенияДругим1.rar 140
.rar 25,25Kb
11.09.14
140
.rar 25,25Kb Скачать

См. также

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

Комментарии

1. Сергей Жемойтель (djam_arttek) 27.12.09 12:28
А uchoice.ert из ИТС разве не тоже самое делает?
2. Inga Kabisova (ingah3) 27.12.09 13:44
(1) ... делает и даже без ВК :)
3. VladimirB Belov (VladimirB) 27.12.09 17:56
не согласен с комментами 1 и 2. Uchoice.ert например не меняет периодический Реквизит созданный движением документа, а добавляет свой если датаПер не равна дате установке периодических реквизитов и вовсе ничего не делает если эти даты равны. После моей же обработки можно безболезненно удалить дубликаты справочников.
Кроме того можно менять движения регистров "БЕЗ ПРОВЕДЕНИЯ ДОКУМЕНТА" (на самом деле при проведении используется ТЗ)
это и достигается модифицированной обработкой проведения и с помощью ВК.

Насколько я знаю средства языка не позволяют изменять движения регистра вне контекста документа
или я ошибаюсь?
Странно конечно, что разработчики в свое время этого не сделали так же как с операцией документа (ее можно менять без контекста документа)
4. misha226 (misha226) 11.01.10 15:29
спасибо VladimirB попробую! хотел сам написать для торговли... манагеры понаплодили двойной номенклатуры!!! Жалко во все доки надо прописывать, но понятно что иначе никак. :D
5. Равиль Каримов (karaw) 21.04.10 12:49
А в Зарплате похоже не работает :(((
6. cbr900 (cbr900) 08.04.15 05:24
Супер! Замена плана счетов - то, что надо!
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа