Как не регистрировать стопку документов в планах обмена с включенной авторегистрацией при групповом перепроведении

18.12.15

Интеграция - Обмен между базами 1C

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

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

Для начала я вкратце расскажу, как ручная регистрация происходит в типовой конфигурации:

  1. Перед записью документа вызывается событие "МеханизмРегистрацииОбъектовПередЗаписьюДокумента", которое, собственно, и отвечает за регистрацию. Я пропущу большую часть всех условий, а перейду к сути.
  2. А именно к функции "ОбъектМодифицированДляПланаОбменаПопыткаИсключение". Функция получает "ТаблицаРеквизитовРегистрации", которая, по-видимому, берется из правил регистрации объектов. После чего для каждого реквизита или таблицы регистрации идет запрос (ЗАПРОС В ЦИКЛЕ) для значения реквизита до изменений. И идет сравнение с текущим значением реквизита. 
  3. В результате перед записью одного документа выполняется хренова куча кода с хреновой кучей запросов.

Скажу честно, такой подход мне показался не слишком оптимальным, и при этом достаточно МНОГОВРЕМЕНИЗАТРАЧИВАЕМЫМ для моей простой небольшой базы. Поэтому я и решил поискать способ попроще.

  1. Чтобы отменить авторегистрацию, нужно написать где-нибудь:
    Источник.ОбменДанными.Получатели.АвтоЗаполнение = Ложь;
  2. Я создал подписку перед записью документа и решил добавить простенькую проверку на модифицированность
    Если Не Источник.Модифицированность() Тогда
        Источник.ОбменДанными.Получатели.АвтоЗаполнение = Ложь; 
    КонецЕсли; 
  3. Каково же было моё удивление, что она не работает))) Причем, даже есть проверять модифицированность в самом начале в модуле объекта. Решением стал вызов подписчика на процедуру "ОбработкаПроверкиЗаполнения". Но и это не все! если проведение происходит из списка документов, то проверка на модифицированность даёт ЛОЖЬ, а если через форму документа (даже если ты просто нажал ОК) ИСТИНА.

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

П.С. Я не думаю, что была бы гораздо эффективнее ручная регистрация. В моём случае.))) Небольшое количество лишних документов не компенсирует весть тот код, который выполняется перед записью для каждого документа.

ОбменДанными авторегистрация АвтоЗаполнение Получатели групповое перепроведение отключить автоматическая регистрация план обмена

См. также

SALE! 20%

Перенос данных из УПП 1.3 в ERP 2 / УТ 11 / КА 2. Переносятся документы, справочная информация и остатки

Обмен между базами 1C Платформа 1С v8.3 1С:Управление производственным предприятием 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

Перенос документов, начальных остатков и справочной информации из УПП 1.3 в ERP 2 | из УПП 1.3 в УТ 11 | из УПП в КА 2 | Правила конвертации (КД 2) в продаже с 2015 года, постоянно работаем над их развитием | Более 360 предприятий выполнили переход с использованием этого продукта! | Сэкономьте время - используйте готовое решение для перехода! | Позволяет перенести из УПП 1.3 в ERP / УТ 11 / КА 2 всю возможную информацию | В переносе есть фильтр по организации и множество других опциональных параметров выгрузки | Есть несколько алгоритмов выгрузки остатков на выбор

45650 36520 руб.

04.08.2015    159662    363    267    

345

SALE! 15%

[ED3] Обмен для ERP 2.5, КА 2.5, УТ 11.5 БП 3.0, Розница, УНФ и других с EnterpriseData (универсальный формат обмена), правила обмена

Обмен между базами 1C Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Россия Платные (руб)

Правила в универсальном формате обмена для ERP 2.5, КА 2.5, УТ 11.5, БП 3.0, Розница, УНФ, для последних версий конфигураций. Ссылки на другие конфигурации в описании публикации. Правила совместимы со всеми другими версиями конфигураций новыми и старыми, поддерживающими обмен в формате EnterpriseData. Не требуется синхронного обновления правил после обновления другой конфигурации, участвующей в обмене. Типовой обмен через планы обмена кнопкой Синхронизация вручную или автоматически по расписанию, или вручную обработкой.

25080 22572 руб.

12.06.2017    134915    722    291    

388

SALE! 20%

Перенос данных из ERP 2 / КА 2 / УТ 11 в БП 3.0. Переносятся документы, начальные остатки и справочники

Обмен между базами 1C Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

Перенос данных из ERP в БП 3 | из КА 2 в БП 3 | из УТ 11 в БП 3 | из ЕРП в БП 3 | В продаже с 2019г. | Воспользовались более 176 предприятий! | Сэкономьте время - используйте готовое решение для перехода! | Перенос разработан в формате КД 2 (правила конвертации данных) | Переносятся все возможные виды документов, начальных остатков и нормативно-справочная информация| Можно опционально выгружать каждую пару "номенклатура+характеристика" как отдельную номенклатуру | Есть выгрузка настроек счетов учета и зарплатных данных из ERP / КА 2 | Можно проверить на вашем сервере перед покупкой, обращайтесь!

34650 27720 руб.

15.04.2019    68410    178    138    

111

SALE! 20%

Перенос данных из ERP 2 / КА 2 в ЗУП 3. Переносятся остатки, документы и справочники

Обмен между базами 1C Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет Управленческий учет Платные (руб)

Перенос данных из ERP в ЗУП 3 | из КА 2 в ЗУП | Воспользовались более 79 предприятий! | Предлагаем приобрести готовые правила конвертации данных (КД 2) для переноса остатков, документов с движениями и справочной информации 3 | В продаже с 2020г. | Оперативно обновляем правила до актуальных релизов 1С | Есть перенос начальной задолженности по зарплате и начальной штатной расстановки на выбранную дату | Обороты за прошлые годы (данные для расчета среднего) переносятся свернуто в документ "Перенос данных" | Есть фильтр по организациям | Документы за текущий период переносятся сразу с движениями, поэтому не потребуется делать перерасчеты | Перенос можно проверить перед покупкой, обращайтесь!

43450 34760 руб.

03.12.2020    34166    80    58    

78

SALE! 10%

Перенос данных из УТ 10.3 в УТ 11.5. Переносятся документы (обороты за период), справочная информация и остатки

Обмен между базами 1C Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 Оперативный учет 1С:Управление торговлей 10 1С:Управление торговлей 11 Россия Управленческий учет Платные (руб)

Перенос данных из 1С:Управление торговлей 10.3 в 1С:Управление торговлей 11.5 с помощью правил обмена. Переносятся остатки, документы (обороты за период), справочная информация. Правила проверены на конфигурациях УТ 10.3 (10.3.87.x) и УТ 11.5 (11.5.16.x).

28000 25200 руб.

23.07.2020    46281    196    64    

157

SALE! 10%

Перенос данных из БП 3.0 в УТ 11 / КА 2 / ERP 2. Переносятся начальные остатки, документы и справочники

Обмен между базами 1C Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

В продаже с 2014г. | Воспользовались более 122 предприятий! | Перенос данных из БП 3.0 в УТ 11 | из БП 3.0 в КА 2 | из БП 3.0 в ERP | Сэкономьте свое время - используйте готовое решение для перехода! | Постоянно работаем над развитием переноса данных | Обновляем на новые релизы 1С | Есть фильтр выгрузки по организациям | Переносятся начальные остатки на выбранную дату, документы за период времени и вся возможная справочная информация | Перенос сделан на технологии КД 2 (правила конвертации данных)

50722 45650 руб.

31.10.2014    231386    124    327    

295

Перенос данных из Парус 10 в ЗГУ ред.3

Внешние источники данных Кадровый учет Файловый обмен (TXT, XML, DBF), FTP Обмен между базами 1C Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактических удержаниях, НДФЛ, вычетах, страховых взносах из базы Парус 10 учреждений в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (ЗГУ) и начать с ней работать с любого месяца года.

60000 руб.

05.10.2022    9204    9    8    

10

SALE! 10%

Перенос данных из УПП 1.3 в БП 3.0. Переносятся документы (обороты за период), справочная информация и остатки

Обмен между базами 1C Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 1С:Управление производственным предприятием 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Управленческий учет Платные (руб)

Перенос данных из 1С:Управление производственным предприятием 1.3 в 1С:Бухгалтерия предприятия 3.0 с помощью правил обмена. Переносятся остатки, документы (обороты за период), справочная информация. Правила проверены на конфигурациях УПП 1.3 (1.3.223.x) и БП 3.0 (3.0.149.x). Правила подходят для версии ПРОФ и КОРП.

28000 25200 руб.

15.12.2021    20232    132    38    

90
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. insurgut 207 19.12.15 07:58 Сейчас в теме
Текст можно и покорректнее сделать, как модераторы пропустили "хренова куча кода с хреновой кучей запросов"?
veyron21; kild; ardn; +3 Ответить
4. KilloN 56 19.12.15 18:22 Сейчас в теме
(1) insurgut, А что собственно Вам не нравится - этот сайт не научное издание и публикация не учебник. А материал - это опыт которым я поделился. Стиля РОБОТА я не придерживаюсь! Он скучен и нуден.

Текст можно и покорректнее сделать
- Что Вы имеете в виду под фразой поконкретнее?
5. insurgut 207 20.12.15 17:38 Сейчас в теме
(4) у вас не только с описанием, но и с чтением проблемы :)
6. KilloN 56 21.12.15 01:23 Сейчас в теме
(5) insurgut, С чтением - это означает я не смог прочитать. Как то не правдоподобно звучит. Молодец - ничего поумнее не смог придумать?
А вот у тебя проблемы с русским языком, раз не можешь ответить на достаточно простой вопрос. ))
11. insurgut 207 28.12.15 08:48 Сейчас в теме
(6) на что мне отвечать, если корректнее <> конкретнее. Читайте внимательнее буквы. :)

P.S. И если вам несколько человек сделали замечание по поводу ненадлежащего оформления статьи - проблема вероятнее всего в оформлении статьи, а не в людях, сделавших замечание.
7. TODD22 18 21.12.15 07:33 Сейчас в теме
(4)
Стиля РОБОТА я не придерживаюсь! Он скучен и нуден.

Цыганский стиль весёлый и задорный....
С чтением - это означает я не смог прочитать. Как то не правдоподобно звучит. Молодец - ничего поумнее не смог придумать?

Очень даже правдоподобно....

Не зря же говорят что в 1С порог вхождения очень низкий. Писать не умеют, культура письменной речи отсутствует, читать внимательно не могут, элементарных знаний в теории оформления статей, текстов то же нет. Зато в конфигуратор научился и уже делится опытом.
nporrep; insurgut; alest; dmpas; +4 Ответить
8. KilloN 56 21.12.15 09:40 Сейчас в теме
(7) TODD22,
Цыганский стиль весёлый и задорный....

Цыганам лучше знать про цыганский стиль веселый и задорный! ))
Не зря же говорят что в 1С порог вхождения очень низкий. Писать не умеют, культура письменной речи отсутствует, читать внимательно не могут, элементарных знаний в теории оформления статей, текстов то же нет. Зато в конфигуратор научился и уже делится опытом.

Когда я ищу в какой либо ответ в интернете, то мне абсолютно наплевать как оформлен ответ, с каким стилем и другой чепухой. Потому что всё это мишура, которой цена 0!
Я лучше найду один правильный ответ, на сайте с фоном картинки в виде Ж*ПЫ, нежели 10 000 прекрасно оформленных с культурой письменной речи статей, которые ничего не дают, кроме как потраченного времени!
22. user1779407 19.05.22 16:18 Сейчас в теме
(7) Да не обращай на них внимания, такие ханжи везде есть, а уж в 1с этих нудных типов выше крыши. Норм статья, как раз по теме.
2. TODD22 18 19.12.15 14:48 Сейчас в теме
Текст можно и покорректнее сделать, как модераторы пропустили "хренова куча кода с хреновой кучей запросов"?

+1
Оформление ужасное. Видимо и раскраска текста для компенсации бедности речи.
3. KilloN 56 19.12.15 18:15 Сейчас в теме
(2) TODD22, Ты случаем не блондин для которого ВАЖНО какого цвета телефон, вместо самих характеристик?
Что ж посмотрел, я на твои публикации, у тебя оформления вообще нет!
9. karapuzzzz 63 23.12.15 17:32 Сейчас в теме
Для того, чтобы писать сопровождаемый код, необходимо пользоваться общами паттернами программирования, которые были разработаны годами. Если программист знает, что стоит авторегистрация, то и будет уверен, что авторегистрация проходит успешно. Если авторегистрация по каким-либо признакам не подходит, то указывается ручная регистрация а дальше через подписку на событие проводятся нужные проверки и т.д. Это логично именно так надо поступать.
10. KilloN 56 23.12.15 22:08 Сейчас в теме
(9) karapuzzzz, Все верно. Но, не зря же в есть возможность отключать "АвтоЗаполнение"? ))

Допустим есть 1000 яблок в корзине. Нужно отобрать свежие. Свежих 999. Зачем перебирать 999 яблок в другую корзину, если можно выбросить одно гнилое?
Так и получается у меня. что проще сделать одно исключение из правила с размером кода в 3 строчки которое актуально для всех планов обмена, нежели переделывать все на ручную регистрацию.

На ХабраХабре наткнулся на статью про паттерны. Один из них такой:

Ненужная сложность (Accidental complexity)

Простыми словами — это заумность решения. Ненужная сложность может быть внесена в решение любой задачи. Это могут быть как и ненужные проверки, части кода, продуцированные мягким кодированием, отсутствие какой-либо оптимизации. Это приводит к усложнению понимания кода, понижению скорости работы. Причинами являются — отсутствие или некачественность рефакторинга, некомпетентность программиста. Бороться довольно просто — следует проводить тщательные code review, эффективный рефакторинг.
12. fomix 33 28.12.15 09:50 Сейчас в теме
Здесь что клуб благородных девиц или все оппоненты разом стали ханжами?!
"Хренова куча кода с хреновой кучей запросов" - поддерживаю автора, все правильно написал! Очень часто типовые конфигурации "страдают" избыточным кодом
RomanKod; KilloN; +2 Ответить
13. TODD22 18 28.12.15 10:08 Сейчас в теме
(12) fomix,
Здесь что клуб благородных девиц или все оппоненты разом стали ханжами?!

Действительно чего это... давайте будем быдлом с низким культурным уровнем письменной речи.
14. KilloN 56 28.12.15 13:25 Сейчас в теме
(13) TODD22,
Если хотите можете быть, Ваше право :)

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

Наверное Вы не служили в армии?
В армии ставится задача. Задача должна быть выполнена в конкретные сроки. И абсолютно не важно, с какой лексикой она была выполнена. Главное быстро и качественно!
Для меня главное на этом сайте не лексика, а нужная мне информация, которая затрагивает сферу моей работы.
15. TODD22 18 28.12.15 15:10 Сейчас в теме
(14)
Наверное Вы не служили в армии?

Дома по уставу живёшь? Строем на работе ходишь?
Если кто то где то матерится в публичном месте это не значит что нужно поступать так же.
16. KilloN 56 29.12.15 09:41 Сейчас в теме
(15) TODD22, Значит не служил))
Про армию я вспомнил не потому что там кто то ругался матом, а потому что там акцентировали внимание только на главном.
В моем случае вопросах проблематики обменов. А вместо этого открыли кружёк брезгливых неженок.

Ой как не красиво написано... Как грубо фууууууууууууу... Плохая публикация....


Если так охота поговорить не по теме откройте ветку на форуме, а здесь попрошу не спамить.
17. nems 13.01.16 14:47 Сейчас в теме
Здраствуйте! Как правильно проверять на модифицированность при регистрации движений документов при перепроведении из списка (в ручном режиме регистрации)?
18. KilloN 56 26.01.16 09:22 Сейчас в теме
(17) nems, Здравствуйте! Я сделал так:

Если Не Источник.Модифицированность() Тогда 
	Источник.ДополнительныеСвойства.Вставить("НеИзменен", Истина);
КонецЕсли;


Если Не (Источник.ДополнительныеСвойства.Свойство("НеИзменен") И Источник.ДополнительныеСвойства.НеИзменен) Тогда	
	МеханизмРегистрацииОбъектовПередЗаписьюДокумента("СинхронизацияДанныхЧерезУниверсальныйФормат", Источник, Отказ, РежимЗаписи, РежимПроведения);
КонецЕсли;


Хотя в очень редких случаях может возникнуть ошибка, но с т.з. тер. вер. она ничтожно мала, по сравнению с преимуществами по оптимизации. ))

П.С. Давно не заходил на сайт, надеюсь еще актуально =))
19. insurgut 207 26.01.16 11:22 Сейчас в теме
(18) ошибка может возникнуть в случае незаполненного значения источника (что теоретически маловероятно), поэтому достаточно добавить в условие проверку на заполненность...
Если ЗначениеЗаполнено(Источник) И Не (Источник.ДополнительныеСвойства.Свойство("НеИзменен") И Источник.ДополнительныеСвойства.НеИзменен) Тогда


Еще возможна ситуация когда регистрируется событие непосредственного удаления объекта - источник вроде как будет равен внутреннему идентификатору и метод ДополнительныеСвойства у него не отработает, хотя могу ошибаться.
20. KilloN 56 26.01.16 18:31 Сейчас в теме
(19) insurgut,
Я имел в виду вот что: Когда пользователь создает новый или редактирует существующий документ он всегда будет Модифицирован, но если в документе в процедуре ПередЗаписью производятся какие либо изменения (например изменяется какой либо реквизит). То не будет зарегистрирован измененный документ. Но данная ошибка возникнет только в том случае, если реквизит может изменится от обычного переводоведения! Я лично такого пока не встречал.

Я проверку провожу в подписке "ПередЗаписью", "ПередУдалением" я не трогал. У меня механизм обмнена через универсальный формат EnterpriseData внедрен в комплексную автоматизацию 1.1. А дополнительная проверка уменьшает ненужные обмены =))
21. insurgut 207 26.01.16 19:23 Сейчас в теме
(20) я говорил не о проверке на модифицированность, просто расположение второго кода не знаю, предположил что он где-то в модулях стандартных процедур в плане обмена например :)
Оставьте свое сообщение