Всем привет!
Решал задачу — создания новой базы для новой организации, но с теми же контрагентами и номенклатурой.
Самым простым решением стало — скопировать имеющуюся базу и почистить ее от всех документов. Так и родилась данная обработка.
Разрабатывалась на конфигурации, платформа 1С:Предприятие 8.3 (8.3.13.1644) :
— Бухгалтерия предприятия, редакция 3.0 (3.0.71.89).
Также протестирована с успехом была на:
— Зарплата и управление персоналом, редакция 3.1 (3.1.7.61)
Еще не отлажена на конфигурациях (но следите за изменениями):
— Управление нашей фирмой, редакция 1.6 (1.6.13.54) (ошибка в документе ПоказателиЕНВД)
— Розница, редакция 2.2 (2.2.11.29) (есть нюансы с Чеками ККМ, пример тут //infostart.ru/public/1115171/)
Данные ограничения можно обойти с помощью списков из п.7.
Немного теории и практики.
1. Если надо удалить/распровести документы до определенной даты, то ставьте в поле "До даты" любой период. По умолчанию период устанавливается текущей датой. Можете указать организацию, иначе будут обработаны документы без учета организации.
Не все документы имеют реквизит "Организация" — необходима проверка на организацию
2. При свертке баз я уже неоднократно использовал удаление только помеченных на удаление документов. Получается так, что те документы, которые вы хотите удалить, вы заранее помечаете на удаление с помощью например групповой обработки документов. И наоборот, те документы, которые не нужно удалять, вы не помечаете на удаление.
Пример свертки и удаления только помеченных на удаление документов: //infostart.ru/public/1033813/
В связи с этим добавлена функциональность
3. Однажды удалял документы на измененной типовой базе и столкнулся с тем, что документ-регистратор был удален из базы без проверки связанных ссылок, а записи по регистру сведений удалены не были. После чего программно или интерактивно удалить записи из регистра не удается! Задействовал "Тестирование и исправление" с режимом "создания объекта — при наличии ссылок на несуществующие объекты". После чего почистил записи.
Так как в той ситуации подобных баз было несколько (филиальная сеть) — решил перед удалением распровести документы. И так появилась еще одна функциональность "Распроводить документы перед удалением":
4. В дальнейшем, идея распроводить документы перед удалением мне понравилась, и я выделил "Распроведение документов" в отдельный функционал:
Не все документы имеют разрешение на проведение при записи — необходима проверка свойства
5. Иногда при чистке баз требуется оставить вместе с номенклатурой цены, поэтому появилась функциональность "Не удалять документы Установка цен номенклатуры":
6. После удаления документов без проверок связанных ссылок, необходимо почистить вручную все зарегистрированные изменения для обмена. В моем случае в исходной базе был настроен обмен с УТ.
Не забудьте обнулить номера сообщений.
7. Добавил возможность отбирать документы для удаления / распроведения в виде прямых и обратных списков: "Обрабатывать только из списка" и "Не обрабатывать из этого списка".
С помощью данных списков можно исключить из обработки документы, по которым специфичным образом настроены типовые механизмы и из-за которых, к примеру, нельзя распровести документы перед удалением. См. нюансы отладки Розницы и УНФ в начале статьи.
Всем успехов!
См. также:
Фильтр товаров по свойствам как на сайтах
Загрузка товаров, штрихкодов, цен и остатков на управляемых формах на примере Розница 2.2
Как свернуть базу УТ 10.3: принципы свертки, технология
Сравнение двух запросов в одном окне с выводом результата
Как эффективно использовать Инфостарт и начать получать профвыгоду
Список реализаций + структура подчиненности + реестр документов в одном окне
Список заказов поставщикам + структура подчиненности в одном окне
Список заказов покупателей + структура подчиненности в одном окне
Договоры для 1с-ника ТОП-скачиваний
Адаптивная сетка расписания (Свой адаптивный планировщик)
Два механизма, которые ускорили работу бухгалтеров в 1С
Расчет банковских (рабочих) дней
Шаблоны кода в режиме 1С:Предприятие
Доработка конфигурации Конвертация Данных
Планирование платежей. Прогнозирование прибылей и убытков
Ввод показателей план-факта БП 3.0
Большие запросы: взгляд на проблему
Технология создания коммерческих разработок
Андроид-решение для создания заказов в 1С
Печать ценников с одной и двумя ценами 55х40, 100х60, 140х200
Не все документы удаляет. Например в ут 11.4 (можно в демо базе посмотреть) документы по которым были отгрузки — не удаляет.
(2) ок, посмотрю.
на всякий случай, напишу, что УТ 11.4 не входило в список тестируемых конфигураций.
P.S. Замечу, что запрет на удаление документов, по которым были отгрузки — это на уровне алгоритмов запреты.
Возможно стоит их обойти так: сначала помечаете на удаление все связанные
отгрузки.
Потом уже основные документы.
То есть имеет значение порядок чистки документов.
(2) есть же стандарт разработки — когда перед записью встраивается конструкция Если ОбменДанными.Загрузка = Истина Тогда никакие проверки не делаются!
В этом случае можно удалить /загрузить/распровести / использовать групповую типовую обработку.
Если это правило игнорируется, и ставятся проверки до этой конструкции, то групповой обработкой уже не воспользуешься, ибо у вас есть связанные отгрузки.
В Рознице 2.2 с чеками ровно такая проблема.
(2) что за фраза «документы по которым были отгрузки» ?
я понимаю, как связанные с реализацией документы. В этом случае, реализация — это отгрузка. И есть связанные с ней документы — счет на оплату, заказ покупателя, м.б. расходный ордер на товар.
Поясните вашу фразу пож-та.
(5) Документы покупателей по котором были частичные или полные отгрузки. Соответственно — эти документы ваша обработка пропускает.
(3) Зачем в описании вводите в заблуждение тогда «Удаление и распроведение документов для любых баз на УФ»
(6)
опять непонятно.
«Отгрузка» это и есть документ «Реализация товаров и услуг». У вас фраза звучит как «Документы по которым были документы».
Отгрузка может быть по товарам или по покупателям. Но по документам отгрузка быть не может.
Смысл фразы какой?
(7) В описании все честно написано — на каких конфигурациях тестировалась. Никого не ввожу в заблуждение.
Для удаления используется платформенная процедура ДокументОбъект.Удалить()
Если по каким-то причинам разработчики конфигураций блокируют удаление на уровне алгоритмов, прав доступа и т.д., то я бы посоветовал писать им в техподдержку.
Я считаю, что у полных прав должны быть права и возможности удалять документы в базах.
И этому поможет моя универсальная обработка (примитивная донельзя, но порой необходимая).
К вашему замечанию я прислушаюсь, гляну что там за проблемы удаления/распроведения в УТ 11.4.
(8) Возможно не правильно сформулирован, но суть же понятна Вам, для примера так же привел конфигурацию — т.е. повторить ситуацию — возможность есть. В данных условиях обработка не работает. Если устраните — будет здорово.
(9) Я Вас понимаю, и от части разделяю Вашу точку зрения. Но в данном случае нельзя обработку считать универсальных средством и писать что работает во всех УФ — это не соответствует действительности. А так — да, обработка рабочая, но очень медленная, например при удалении движения не плохо бы в метаданных сразу проверять есть движения (проведен или нет) нежеле далее по циклу гнать в алгоритм, это бы ускорило немного ее.. В общем это придирки, по большому счету все сделано на быструю руку..
(10) Ладно, посмотрю УТ 11.4.
Только не понял какую ситуацию моделировать, и на каких документах проверять.
(11) Доработаю, только спроса ведь на доработку до сих пор никто не высказывал. Спасибо что написали замечание и рекомендации дали.
Я ведь не в курсе, кому она нужна и интересна.
Обратную связь мало кто оставляет.
(12) Не поленюсь и добавлю скриншот с настройкой в демо базе ут последней. Посмотрите после отработки — документы останутся с движениями.
Управление торговлей, редакция 11 (11.4.5.111) (http://v8.1c.ru/trade/)
http://www.1c.ru)
Copyright © ООО «1С-Софт», 2003-2018. Все права защищены
(
(13) Ну я например скачал за внутрисайтовые мани. И указал на замечания. На счет спроса — вам виднее статистику использования.
(14) Здесь посмотрите — после всех манипуляций — останутся документы не «распроведенные», так же с удалением.
(14) Расследование причин не закончено. Но вот, что уже выявлено:
1) В УТ 11 по-умолчанию запущено много фоновых и регламентных заданий — их надо отключить — тогда обработка отработает быстрее
2) В УТ 11 — много подписок на события, которые срабатывают ПередЗаписью документов, при этом проверяется кроме параметра ОбменДанными.Загрузка — различные параметры подобно Источник.ДополнительныеСвойства.Свойство(«ПропуститьЗаписьВерсииОбъекта«)
или Объект.ДополнительныеСвойства.Свойство(«ЗаписатьНаборыЗначенийДоступа«)
и еще что-то… Но пока особо непонятно — насколько допсвойства влияют на универсальные групповые обработки документов…
возможно для других целей это знание пригодится — то есть, чтобы реализовать универсально что-то — необходимо знать и учитывать все ДопСвойства…
3) Попробовал программно распровести Заказ ТД0000…3 от 06.04.2017 с помощью текущей обработки — вышла ошибка — смотрю Журнал регистрации — транзакция отменена на объекте РегистрСведений ГрафикПлатежей — это независимый и непериодический регистр….
Хм, попробовал распровести этот заказ интерактивно — распровелся запросто — попробовал провести снова — вышла ошибка — не проводит, то есть заложена функциональность такая — что случайно можно распровести вручную, а вернуть в исходное состояние уже нельзя…. ловушка для пользователей ?!.
Покамест отложу процесс поиска причин….
(14) собственно ни один документ нельзя распровести интерактивно (то есть вручную)… надо разбираться с функционалом… искать точки обхода блокировок распроведения…
(14) Знаете, я попробовал Удалить документы без распроведения.
В итоге, удалилось.
Единственно, ошибка вышла:
Собственно, перед удалением что-то там проверяется и то только для одного вида документа (в список документов не попали документы после 07.04.2017г) — возможно есть другие виды документов, перед удалением которых проверяется что-то.
…Но в целом, удалились все документы до 07.04.2017.
Уже начинаю думать, что разработчики УТ 11 правильно сделали — зачем распроводить документы, тем более связанные ?!
Если надо удалить и почистить базу — то, пож-та, удаляйте и чистите.
Но при этом не надо распроводить…. 🙂
(19) По сути проблемы есть по функционалу обработки в приведенной мной базе, не так как «изначально подразумевался функционал работает», свою проблему я решил быстро переписав часть функционала под клиента, Вам как автору сообщил о не доработках, т.к. так же как и все скачивал за старт мани и обидно что то дописывать в таких случаях (читай как лениво) — точнее о поведении обработки в конкретной базе, далее на ваше усмотрение — поправите хорошо, нет так нет ).
Хорошего вечера.
(20) ок. спасибо тогда)