Удаление документов для любых баз на управляемых формах
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
| Наименование | Скачано | Купить файл | По подписке PRO |
|---|---|---|---|
|
Удаление документов для любых типовых баз на УФ (управляемых формах)
.epf 13,51Kb ver:3.0
370
|
370 | 3 000 руб. Купить | 2 SM Скачать |
|
Удаление документов для любых типовых баз на УФ (управляемых формах) + поддержать автора 1см
.epf 13,51Kb ver:3.0
76
|
76 | 3 400 руб. Купить | 3 SM Скачать |
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Всем привет!
Обработка для удаления и распроведения документов применяется в след. задачах:
- При создании новой базы для новой организации, но с теми же контрагентами и номенклатурой - частая задача для файловых баз.
- При очистке базы от документов по организации за весь период - частая задача для клиент-серверных баз.
Представлена внешняя обработка, которая открывается через меню Файл - Открыть.
Протестирована на конфигурациях, платформы 1С:Предприятие 8.3 (8.3.13.1644, 8.3.17.1851 и 8.3.18.1289):
- Бухгалтерия предприятия, редакция 3.0 (3.0.71.89, 3.0.96.35)
- Зарплата и управление персоналом, редакция 3.1 (3.1.7.61)
- Управление нашей фирмой, редакция 1.6 (1.6.13.54)
- Управление торговлей, редакция 11 (11.4.13.123)
- Розница, редакция 2.2 (2.2.11.29)
Список обработанных документов (распроведенных и удаленных) появится в конце процесса в сообщениях пользователю.
Если вам нужно контролировать процесс и иметь возможность останавливать процесс обработки документов, моя рекомендация - запускать процесс через отладку конфигуратора.
Описание функционала:
1. Сначала выбираете период (обязательный параметр) и организацию (необязательный параметр). После этого надо заполнить список документов. При изменении периода и организации список документов очищается - требуется новое перезаполнение.
В списке документов выберите документы для распроведения и удаления. Иногда, некоторые документы можно отключить, чтобы вернуться к ним позже, или запустить параллельно на втором сеансе. Иногда, такой документ как "Установка цен номенклатуры" также отключают для того, чтобы сохранились цены по номенклатуре.
Рядом с кнопкой "Заполнить список" имеется параметр "Рассчитывать количество документов" - данный расчет является длительной операцией, особенно, когда за период имеется много документов - применяйте с осторожностью. Рассчитывая количество документов заранее, вы не выиграете по скорости обработки документов.

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


Не забудьте обнулить номера сообщений.

На этом все. Всем добра!
С пользой для клиентов, Рустем
Расширения:
1) [Расширение] УНФ. Список заказов + Структура подчиненности
2) [Расширение] БП 3.0. Список счетов/ Список реализаций + Связанные документы
3) [Расширение] УТ 11.4. Счет на оплату с факсимиле и баннерами
Внешние обработки (не расширения!):
1) Список заказов поставщикам + структура подчиненности
2) Список заказов покупателей + структура подчиненности
3) Список реализаций со структурой подчиненности + реестр документов
4) Список заказов покупателей (Расширенная версия)
Другие публикации:
1) Удаление справочников для любых баз на управляемых формах
2) Адресное хранение: этикетки складских ячеек со стрелками
3) Удаление чеков ККМ в Рознице 2.2
4) Загрузка товаров, штрихкодов, цен и остатков на УФ - Розница 2.2
5) Отчет Остатки и цены (прайс с остатками)
6) Как свернуть базу УТ 10.3: принципы свертки, технология, вспомогательные обработки
7) [ЦФшник] Доработка конфигурации Конвертация Данных
8) [Внешняя обработка] Ввод показателей план-факта БП 3.0
9) [Шаблоны] Договоры для 1с-ника
10) Удаление документов для любых баз на обычных формах
11) Выделение документов в списках (обычные формы) для групповой обработки
12) Замена задвоенных договоров в БП 3.0
Из последнего опубликованного:
14) Анализ прав и ролей: поиск подходящего профиля
15) Оцифровка и визуализация склада
16) Свертка базы УТ 10.3 подокументно. Новая концепция
17) Просмотр свойств метаданных (подписки на события, функциональные опции и другое)
Проверено на следующих конфигурациях и релизах:
- Бухгалтерия предприятия, редакция 3.0, релизы 3.0.96.35
- Зарплата и управление персоналом, редакция 3.1, релизы 3.1.7.61
- Управление нашей фирмой, редакция 1.6, релизы 1.6.13.54
- Управление торговлей, редакция 11, релизы 11.4.13.123
- Розница, редакция 2.3, релизы 2.2.11.29
Вступайте в нашу телеграмм-группу Инфостарт
См. также
Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Разработчик Руководитель проекта 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Платные (руб)
Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы, интерфейс 8.5. Может выполнять свертку одновременно в несколько потоков, а также без непосредственного участия пользователя. Решение в Реестре отечественного ПО.
24900 руб.
20.08.2024 83163 431 171
Информационная безопасность Чистка данных Системный администратор Разработчик Руководитель проекта 1С 8.3 1С:Бухгалтерия 3.0 Платные (руб)
Обезличивает копию рабочей базы 1С перед передачей наружу и возвращает настоящие данные обратно, когда база вернулась. Это обратимая псевдонимизация: соответствия «исходное - псевдоним» пишутся в отдельный зашифрованный датасет, который остаётся у владельца. Работает на любой конфигурации - обходит метаданные и находит персональные данные сам, без списка реквизитов под конкретную базу. Суммы, количества, даты и номера документов не трогает никогда, оборотно-сальдовая до и после совпадает до копейки. Проверено на трёх конфигурациях: 106 031 объект, 215 642 замены, ноль ошибок, возврат 100 процентов.
42700 руб.
18.08.2026 1464 3 0
Чистка данных Системный администратор Разработчик 1С:Предприятие 8 1C:Бухгалтерия 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)
Update 2026: добавили многопоточное удаление данных по организациям. Ускорение х6 по сравнению с однопоточным алгоритмом! Позволяет удалить организации из любых из информационных баз 1С на управляемых формах (БП 3.0, УТ 11, КА 2, ERP 2, ЗУП 3, УНФ, Розница 3.0 и пр.). Главное требование - программа должна содержать справочник "Организации". Реализован самый быстрый алгоритм непосредственного удаления объектов. Работает даже на базах большого размера. Для ускорения работы алгоритма не запускается проверка контроля ссылочной целостности. Проверку учета можно запустить отдельно с помощью дополнительной обработки. Необходимо перед удалением самостоятельно проверить базу на наличие перекрестных ссылок разных организаций в одном документе. Эту дополнительную обработку проверки перекрестных ссылок по запросу предоставляем бесплатно нашим покупателям.
12139 руб.
16.03.2015 282862 271 84
Чистка данных Разработчик Пользователь 1С:Предприятие 8 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Зарплата и кадры государственного учреждения 3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x Платные (руб)
Обработка позволяет удобно и выборочно удалить данные из базы 1С на управляемых формах например БП 3.0, УТ 11, КА 2, ERP, УНФ, ЗУП 3, Розница и др. Это могут быть неактуальные организации или другие перечни объектов. При этом есть возможность провести анализ пересечений документов с другими организациями и таким образом уберечься от того, что при удалении обороты по другой организации изменятся. Объекты нужно выбирать вручную и после этого запускать команду удаления. Будут удалены все ссылки на них.
5000 руб.
28.11.2019 31392 86 21
Оптовая торговля Логистика, склад и ТМЦ Чистка данных Разработчик Бухгалтер Пользователь 1С:Предприятие 8 1С:Управление торговлей 11 Россия Управленческий учет Платные (руб)
Если вы начали работать в программном продукте Управление Торговлей, редакция 11 или Комплексная Автоматизация редакция 2 и включили механизм учёта серий, то перейти обратно в учёт без серий будет не так-то просто. Сложность заключается в том, что нужно очистить серии в табличной части документа, например, Реализация Товаров и услуг. Предлагаем алгоритм перехода на учет без серий для программного продукта УТ11. (Очистка серий.)
5084 руб.
09.04.2019 32908 51 15
Чистка данных Системный администратор Разработчик Бухгалтер Пользователь 1С:Предприятие 8 1C:Бухгалтерия Россия Платные (руб)
Решение по удалению дублей позволяет определить связанные элементы в двух синхронизированных базах в качестве оригиналов и избежать необходимости ручного сравнения объектов в базах перед синхронизацией.
6100 руб.
27.06.2018 21474 17 3
Чистка данных Инструменты администратора БД Администрирование 1С 8.3 1С:Документооборот 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление холдингом 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Платные (руб)
Решение представляет собой набор из 6 обработок для 1С по удалению организаций и справочников из базы по фильтрам, документов по фильтрам, универсальное сжатие данных, очистка битых движений регистратора, удаление устаревших регистров сведений, удаление устаревших документов "Электронное письмо входящее" и "Электронное письмо исходящее"
23999 руб.
20.02.2026 2387 1 0
Чистка данных Инструменты администратора БД Разработчик Пользователь 1С 8.3 1С:Управление торговлей 10 1С:Управление торговлей 11 1С:Библиотека стандартных подсистем Абонемент ($m)
Хочешь выборочно удалить одну организацию, тестовую номенклатуру или «мусорного» контрагента, любую ссылку - без ручного поиска ссылок и часовых разборок зависимостей? Этот инструмент сам строит дерево связей, каскадно чистит с "глубоким поиском" документы, справочники, пвх, любые ссылки, регистры, движения в так же делает резервную копию и за пару минут оставляет базу чистой и полностью работоспособной (Управляемые формы, обычный интерфейс)
1 стартмани
03.02.2026 4744 152 war41k 0
1) Было
Если НЕ Стр.Вкл Тогда
Продолжить;
КонецЕсли;
//проверим на пустую строку
Если ПустаяСтрока(Стр.ИмяДокумента) Тогда
Продолжить;
КонецЕсли;
ПоказатьСтало
Если НЕ Стр.Вкл Тогда Продолжить; КонецЕсли;
//проверим на пустую строку
Если ПустаяСтрока(Стр.ИмяДокумента) Тогда Продолжить; КонецЕсли;
это касается не только условий Если, но и всех простых циклов
2) вынес определение табличных частей за цикл, ранее определение табл. частей было внутри цикла по каждому документу и повторялось для каждого документа одного вида...
3) отладочный режим рекомендую запускать только при расследовании ошибок, то есть не использовать его в процессе удаления - отладочный режим замедляет процесс обработки документов
4) порядок удаления документов можно устанавливать самим - мышкой по кнопке "Переместить вверх или вниз"
5) перед удалением в рабочей базе - после тестирования на копии - рекомендую отключить регистрацию событий в журнале регистраций (через конфигуратор делается)
6) желательно отключить все регламентные операции - заранее неизвестно, какая логика заложена в регламентные операции - особенно актуально смотреть на те, которые запускаются при проведении документов
7) возможно, стоит добавить /cРежимОтладки в параметры запуска, чтобы все процессы записи документов при распроведении запускались в основном потоке (без фоновых, без длительных операций). Но это гипотетически, еще никем не проверялось.
8) в процессе тестирования на копии можете включить параметр "Показывать сообщения" - появился в последней версии. На рабочей базе - после отладки процесса на копии - смс включать не обязательно.
9) в процессе удаления документов советую включить шум моря, сходить налить кофе, подумать об отпуске...
:)
У вас удалились документы, при этом связанные регистры не очистились.
Регистры могут быть связаны двумя способами:
1) через механизм движений (так называемых проводок) - при этом мо обработка чистит все такие наборы записей, которые через механизм Движений документа реализованы. При этом в наборе записей (в движениях) регистратор это и есть ваш удаляемый документ.
2) связь может быть алгоритмическая - то есть проводится документ, далее некий алгоритм устанавливает в поле Основание ссылку на документ. Такие связи моя обработка не видит, и не удаляет. Думаю, что другие подобные обработки по удалению подобных записей в регистрах , тоже не справятся. В таких случаях нужно исходить логики работы конфигурации.
Можете пример привести - я посмотрю , что можно сделать.
(66)
Записи уже не удалить.
Надеюсь вы на копии сначала тестировали.
Записи остались - возможно в ЗУП запретили удалить записи задним числом- стоит ПередУдалением Отказ - Истина.
Вам нужно привести пример - какой документ удалялися, какие движения остались, номер релиза ЗУП, укажите типовая у вас УЗП или доработанная.
Я посмотрю и проверю алгоритм удаления.
Проверял все на копии))
Оказалось, что нужно сначала распровести все доки, и вторым этапом удалить. Проверял на ЗУП КОРП 3.1.34.40.
Пробовал и на других базах - обработка отлично себя показала, крутой функционал, работает быстро, нет лишних отборов, одна из самых лучших в данной рубрике! Небольшое пожелание - добавить отображение прогресса длительных операций) - Не критично, но было удобно отслеживать не зависла ли 1С.
1. Оптимизирован алгоритм обхода списка документов - теперь обход документов происходит намного быстрее.
2. Решены "детские" проблемы: например, была ошибка запроса для документа ПоказателиЕНВД программы УНФ (подробности смотрите в комментариях).
3. Изменен алгоритм распроведения документов - теперь никакие проверки при распроведении не срабатывают - а значит не надо дополнительно включать/отключать какие-либо параметры или настройки в программах, и, как дополнение, теперь распроведение работает на многих конфигурациях корректно - протестировано на УТ 11 Демо.
4. Порядок обработки документов (распроведение или удаление) происходит так: если вы задали список видов документов, значит по тому порядку как он задан, если не задали, то по порядку имен объектов метаданных (по возрастанию от А до Я - см. скрин и обратите внимание на документ ПрочиеДоходыРасходы)
Иначе это будет типовая консоль.
Сделайте копию - любые удаления надо тестировать на копии.
Если удаляете документы, их следует распровести предварительно.
О причинах написано в публикации.
И да, у вас не получится, не прочитав и не вникнув в статью, корректно использовать мою и подобные обработки.
Дополнительно удаляет документы, в которых нет Организации в шапке документа.
Вы вводите пользователей в заблуждение своим сообщением - удаление документов происходит достаточно быстро - ни разу не пришлось ждать неделю. Видимо у вас был опыт, что ваша обработка удаляет документы и с проверкой договоров всю неделю, раз вам пришлось оптимизировать свой алгоритм.
Как внедренец 1С с опытом скажу, что достаточно удалить документы по организации.
А контрагенты, и их договора и банковские счета они остаются.
У контрагентов зачастую не один , а несколько договоров - программы с этим справляются.
Банковские счета контрагентов также остаются без изменений после удаления организаций - в этом ничего неправильного для учета 1С нет.
А вообще хорошую идею подкинули - в обработку для удаления справочников посадить отбор по связанным реквизитам - например удалять Договора по определенной организации
1) смещается граница последовательности - если таковая имеется. Желательно перед удалением/распроведением запомнить текущую границу последовательсноти, после удаления/распроведения восстановить границу последовательности - без перепроведения всех документов последовательно.
2) если учет товаров не ведется в разрезе организаций, и имеется общий склад и при этом не проводятся документы в режиме интеркампани, то удалять по одной организации нельзя.
3) еще раз, напомню про регистрацию обменов при распроведении/удалении - "начальную дату переноса документов" нужно переносить.
Для Каждого НЗ Из Док.Движения Цикл
НЗ.Записывать = Истина;
НЗ.Прочитать();
Если НЗ.Количество()=0 Тогда
Продолжить;
КонецЕсли;
НЗ.Очистить();
НЗ.Записать();
КонецЦикла;
ПоказатьКак мой код отработает на старых версиях платформы 1с неизвестно - возможно выдаст ошибку.
Но у вас платформа 8.3.25 - это почти новая :)
Я обновил сейчас свою обработку- спасибо вам за обратную связь - добавил чуточку измененный код - см. скрин. Результат не заставил себя ждать.
как способ , отключите все расширения - галочки Активно снимите - и проверьте работу обработки по распроведению документов - возможно в расширениях стоит специфичная "блокировка" - у меня здесь ниже в комментариях есть пример про специфичную блокировку в УНФ - 49 пост, 50, 51 и 54 пост
Как мой код отработает на старых версиях платформы 1с неизвестно - возможно выдаст ошибку.
Но у вас платформа 8.3.25 - это почти новая :)
Я обновил сейчас свою обработку- спасибо вам за обратную связь - добавил чуточку измененный код - см. скрин. Результат не заставил себя ждать.
на всякий случай, напишу, что УТ 11.4 не входило в список тестируемых конфигураций.
P.S. Замечу, что запрет на удаление документов, по которым были отгрузки - это на уровне алгоритмов запреты.
Возможно стоит их обойти так: сначала помечаете на удаление все связанные
отгрузки.
Потом уже основные документы.
То есть имеет значение порядок чистки документов.
Для удаления используется платформенная процедура ДокументОбъект.Удалить()
Если по каким-то причинам разработчики конфигураций блокируют удаление на уровне алгоритмов, прав доступа и т.д., то я бы посоветовал писать им в техподдержку.
Я считаю, что у полных прав должны быть права и возможности удалять документы в базах.
И этому поможет моя универсальная обработка (примитивная донельзя, но порой необходимая).
К вашему замечанию я прислушаюсь, гляну что там за проблемы удаления/распроведения в УТ 11.4.
В этом случае можно удалить /загрузить/распровести / использовать групповую типовую обработку.
Если это правило игнорируется, и ставятся проверки до этой конструкции, то групповой обработкой уже не воспользуешься, ибо у вас есть связанные отгрузки.
В Рознице 2.2 с чеками ровно такая проблема.
я понимаю, как связанные с реализацией документы. В этом случае, реализация - это отгрузка. И есть связанные с ней документы - счет на оплату, заказ покупателя, м.б. расходный ордер на товар.
Поясните вашу фразу пож-та.
опять непонятно.
"Отгрузка" это и есть документ "Реализация товаров и услуг". У вас фраза звучит как "Документы по которым были документы".
Отгрузка может быть по товарам или по покупателям. Но по документам отгрузка быть не может.
Смысл фразы какой?
Управление торговлей, редакция 11 (11.4.5.111) (
Copyright © ООО "1С-Софт", 2003-2018. Все права защищены
(
1) В УТ 11 по-умолчанию запущено много фоновых и регламентных заданий - их надо отключить - тогда обработка отработает быстрее
2) В УТ 11 - много подписок на события, которые срабатывают ПередЗаписью документов, при этом проверяется кроме параметра ОбменДанными.Загрузка - различные параметры подобно Источник.ДополнительныеСвойства.Свойство("ПропуститьЗаписьВерсииОбъекта")
или Объект.ДополнительныеСвойства.Свойство("ЗаписатьНаборыЗначенийДоступа")
и еще что-то... Но пока особо непонятно - насколько допсвойства влияют на универсальные групповые обработки документов...
возможно для других целей это знание пригодится - то есть, чтобы реализовать универсально что-то - необходимо знать и учитывать все ДопСвойства...
3) Попробовал программно распровести Заказ ТД0000...3 от 06.04.2017 с помощью текущей обработки - вышла ошибка - смотрю Журнал регистрации - транзакция отменена на объекте РегистрСведений ГрафикПлатежей - это независимый и непериодический регистр....
Хм, попробовал распровести этот заказ интерактивно - распровелся запросто - попробовал провести снова - вышла ошибка - не проводит, то есть заложена функциональность такая - что случайно можно распровести вручную, а вернуть в исходное состояние уже нельзя.... ловушка для пользователей ?!.
Покамест отложу процесс поиска причин....
В итоге, удалилось.
Единственно, ошибка вышла:
{ВнешняяОбработка.УдалитьВсеДокументыБезПроверки.Форма.Форма.Форма(181)}: Ошибка при вызове метода контекста (Удалить)
Док.Удалить();
по причине:
Ошибка при выполнении обработчика - 'ПередУдалением'
по причине:
{ОбщийМодуль.ЗапасыСервер.Модуль(11222)}: По документу Передача товаров ТД00-000048 от 31.03.2017 23:59:59 есть движения в регистре РезервыТоваровОрганизаций. Удаление документа невозможно.
ВызватьИсключение ТекстИсключения;Собственно, перед удалением что-то там проверяется и то только для одного вида документа (в список документов не попали документы после 07.04.2017г) - возможно есть другие виды документов, перед удалением которых проверяется что-то.
...Но в целом, удалились все документы до 07.04.2017.
Уже начинаю думать, что разработчики УТ 11 правильно сделали - зачем распроводить документы, тем более связанные ?!
Если надо удалить и почистить базу - то, пож-та, удаляйте и чистите.
Но при этом не надо распроводить.... :)
Хорошего вечера.
Управление нашей фирмой, редакция 1.6 (1.6.20.178)
- Управление нашей фирмой, редакция 1.6 (1.6.13.54) (ошибка в документе ПоказателиЕНВД)
- Розница, редакция 2.2 (2.2.11.29) (есть нюансы с Чеками ККМ, пример тут //infostart.ru/public/1115171/)
Данные ограничения можно обойти с помощью списков из п.7.
ПС. Ошибка могла случиться на любых конфигурациях, на которых название документа и название табличной части совпадает (см. скрин). Теперь такого недоразумения не будет.
{(6, 2)}: Неоднозначное поле "ПоказателиЕНВД.Дата"
<<?>>ПоказателиЕНВД.Дата < &Период
{ВнешняяОбработка.УдалитьВсеДокументыБезПроверки.Форма.Форма.Форма(173)}: Результат = Запрос.Выполнить();
{ВнешняяОбработка.УдалитьВсеДокументыБезПроверки.Форма.Форма.Форма(191)}: УдалитьДокументыНаСервере();
по причине:
{(6, 2)}: Неоднозначное поле "ПоказателиЕНВД.Дата"
<<?>>ПоказателиЕНВД.Дата < &Период
1. Оптимизирован алгоритм обхода списка документов - теперь обход документов происходит намного быстрее.
2. Решены "детские" проблемы: например, была ошибка запроса для документа ПоказателиЕНВД программы УНФ (подробности смотрите в комментариях).
3. Изменен алгоритм распроведения документов - теперь никакие проверки при распроведении не срабатывают - а значит не надо дополнительно включать/отключать какие-либо параметры или настройки в программах, и, как дополнение, теперь распроведение работает на многих конфигурациях корректно - протестировано на УТ 11 Демо.
4. Порядок обработки документов (распроведение или удаление) происходит так: если вы задали список видов документов, значит по тому порядку как он задан, если не задали, то по порядку имен объектов метаданных (по возрастанию от А до Я - см. скрин и обратите внимание на документ ПрочиеДоходыРасходы)
Иначе это будет типовая консоль.
Сделайте копию - любые удаления надо тестировать на копии.
Если удаляете документы, их следует распровести предварительно.
О причинах написано в публикации.
И да, у вас не получится, не прочитав и не вникнув в статью, корректно использовать мою и подобные обработки.
Дополнительно удаляет документы, в которых нет Организации в шапке документа.
Вы вводите пользователей в заблуждение своим сообщением - удаление документов происходит достаточно быстро - ни разу не пришлось ждать неделю. Видимо у вас был опыт, что ваша обработка удаляет документы и с проверкой договоров всю неделю, раз вам пришлось оптимизировать свой алгоритм.
Как внедренец 1С с опытом скажу, что достаточно удалить документы по организации.
А контрагенты, и их договора и банковские счета они остаются.
У контрагентов зачастую не один , а несколько договоров - программы с этим справляются.
Банковские счета контрагентов также остаются без изменений после удаления организаций - в этом ничего неправильного для учета 1С нет.
А вообще хорошую идею подкинули - в обработку для удаления справочников посадить отбор по связанным реквизитам - например удалять Договора по определенной организации
Насчет НСИ по организации - нам было важно их тоже удалять, т.к. база предназначалась для передачи аудиторам. И никакой связи с удаляемыми организациями в ней не должно было оставаться.
Идея поменять реквизиты и название организации интересная. Просто человеческий фактор добавляется. Важно не забыть тогда и банковские счета удалить и т.д. И ведь все равно можно тогда в базе увидеть, с какими контрагентами есть заключенные договоры у этой удаленной уже организации. Лучше уж удалить организацию окончательно, без следов.
Имеем: старая 1с 8.3.5.1383, на ней такая же старая УТ 11.1.9.70. Задача "свернуть" 7 лет работы до 1 года. Документов внутри тьма, есть ошибки в учёте, штатными методами, никак... Решение видится так, обрезка на дату и ввод остатков предыдущей датой. Заработает ли Ваша обработка на моей версии на моей версии и если нет, можете доработать?
по идее обработка не зависит от версии платформы и конфигурации
(38)
Если опишите ошибки, скриншоты, то я конечно буду разбираться... Если у вас типовая конфигурация, конечно.
(38)
Далее мой ответ актуален, если вы программист. Сделайте копию - на ней сохраните остатки регистров через консоль запросов - в табличные документы mxl. Примеры как сворачивать базы тут - только здесь для другой конфы - но принцип везде один и тот же.
Во второй базе удалите все документы, затем загрузите остатки по регистрам через Корректировку записей регистров. Пример тут для КА 2.4
Как загружать из mxl-табличных документов - пример тут для конфы УТ 10.3 - но принцип один и тот же для всех конфигруаций
Собственно есть простой и понятный способ как сохранить сведения во внешний файл, как загрузить их оттуда. Можно конечно все делать в одной базе - остатки тянуть из базы, в которой удаляете документы - тогда сперва создайте остатки, затем удаляйте доки - в таком случае не сможете делать работу параллельно - параллельно удалять и параллельно остатки определять и обрабатывать их.
Разработчики УНФ продолжают радовать - включили в документ "ПлатежноеПоручение" реквизит "Документ" (см. скрин)
Если раньше был запрос, который отрабатывал корректно:
ТекстЗапроса = "ВЫБРАТЬ
| Документ.Ссылка КАК Ссылка
|ИЗ
| Документ.АвансовыйОтчет КАК Документ
|ГДЕ
| Документ.Дата < &Период
| И Документ.Проведен = ИСТИНА";
Показать- то теперь такой запрос вываливается в ошибку для документа ПлатежноеПоручение.
Исправил запрос на следующий:
ТекстЗапроса = "ВЫБРАТЬ
| Док.Ссылка КАК Ссылка
|ИЗ
| Документ.АвансовыйОтчет КАК Док
|ГДЕ
| Док.Дата < &Период
| И Док.Проведен = ИСТИНА";
Показать
или справочник "Документы реализации полномочий налоговых органов"
и т.д.
Справится (удалит) с удалением подобных объектов, связанных с удаляемой организацией, простите за тавтологию )
1) Теперь поясню - документ Транспортное сообщение - это обычный документ 1С.
Представьте на минуту, если сейчас каждый будет задавать вопросы наподобие: "А документы подсистемы "Заказы покупателей" или "Производственные документы" - будут удаляться?"
Для обработки не имеет значений - в какой подсистеме находится(относится) документ.
Универсально в разных конфигурациях эти документы могут иметь разную начинку связей и алгоритмов.
Поэтому специально не проверял на удаление ТранспортныхСообщений.
Если у вас не удалятся, пришлите номер релиз конфигурации и описание ошибки. Потестирую на досуге - исправлю.
2) Справочники я удаляю другой подобной обработкой - Удаление справочников для УФ.
3) Документы по организации - связанные с определенной организацией - нужно лишь указать параметр Организация.
Желательно , чтобы вы прочитали описание к обработке - в статье много разобрано ситуаций.
Итог - по идее обработка должна справиться.
К Ваше публикации пришел по ссылке из обсуждения
Основная проблема при удалении Организации, для которой в базе настроены 1С:ЭДО и 1С:Отчетность в том, что реквизит со ссылкой на справочник Организация может называться "Отправитель" или "Получатель" или еще как-то )
Или быть реквизитом табличной части. Или, или, или )
Поэтому и спросил )
Взял обработку, проверю.
воспользуйтесь поиском Организации среди документов Транспортное сообщение - будет ясно как называется реквизит или поле табл. части.
Далее дело техники воспользоваться готовым запросом - запрос готовится в этой же обработке Поиска ссылки ...
Далее у вас есть запрос по базе для получения всех документов по нужной организации. Далее вставляете запрос в процедуру удаления из обработки Удаление документов УФ.
В принципе идея ваша понятна, но мне кажется вы быстрее сделаете точечно решая свою задачу, чем если бы я сделал сейчас универсально подобный механизм.
1) смещается граница последовательности - если таковая имеется. Желательно перед удалением/распроведением запомнить текущую границу последовательсноти, после удаления/распроведения восстановить границу последовательности - без перепроведения всех документов последовательно.
2) если учет товаров не ведется в разрезе организаций, и имеется общий склад и при этом не проводятся документы в режиме интеркампани, то удалять по одной организации нельзя.
3) еще раз, напомню про регистрацию обменов при распроведении/удалении - "начальную дату переноса документов" нужно переносить.
Ранее, я всегда предполагал, что сначала надо удалить документы, затем можно спокойно удалить справочники - см. схема 1. Теперь разработчики УНФ в независимый регистр сведений Цены номенклатуры засунули в реквизит "Документ установки" ссылку на документ "Установка цен номенклатуры" - см. схему 2 и приложенные рисунки.
Получается, что после удаления документов без проверки связанных ссылок, нельзя удалить Номенклатуру, поскольку автоматом срабатывает удаление записи по регистру. А в модуле записей регистров стоит проверка на массив документов "документ установки".
Скажем так, я бы добавил две проверки в подобную архитектуру:
1) проверку при удалении документов - поиск связанных записей регистров сведений и удаление этих записей.
2) при удалении записей регистра поставил проверку на заполненность реквизита не пустой ссылкой ("Объект не найден").
Скажем так, подобная архитектура на экзамене по Спецу наверное не пройдет - поставят минус, экзамен не будет сдан.
С другой стороны, я за свою практику что-то подобное делал, но пстоянно прописывал разные сценарии (см. п.п. 1) и 2) выше).
2) проверил распроведение на платформе 8.3.23.1865, но для обычных форм - алгоритм очистки движений не срабатывает ! - добавил дополнительно такую процедуру НЗ.Очистить() - все заработало - раньше без нее движения очищались:
Для Каждого НЗ Из Док.Движения Цикл
НЗ.Очистить();
НЗ.Записать();
КонецЦикла;
В ближайшее время внесу изменения
Для Каждого НЗ Из Док.Движения Цикл
НЗ.Записывать = Истина;
НЗ.Прочитать();
Если НЗ.Количество()=0 Тогда
Продолжить;
КонецЕсли;
НЗ.Очистить();
НЗ.Записать();
КонецЦикла;
ПоказатьНЗ = РегистрыСведений.ЦеныНоменклатуры.СоздатьНаборЗаписей();
НЗ.ОбменДанными.Загрузка = Истина;
НЗ.Записать();Команда удаляет все записи без отбора - поэтому в действующей рабочей базе использовать нельзя!!!
То есть просто так мы не можем удалить Реализацию по Организации - полетят остатки по регистру ПартииТоваров.
Подскажите, пожалуйста. При удалении документов не очищаются движения, остаются записи в регистрах, в регистраторе или основании значится "Объект не найден", но данные по другим колонкам присутствуют. Пробовал на тестовой ЗУП 3.1.33. В инструкции написано
Если удалились документы а движения остались, то возможно с помощью данной обработки удалить записи в регистрах? - При нажатии "Заполнить список документов" ТБ не заполняется...
У вас удалились документы, при этом связанные регистры не очистились.
Регистры могут быть связаны двумя способами:
1) через механизм движений (так называемых проводок) - при этом мо обработка чистит все такие наборы записей, которые через механизм Движений документа реализованы. При этом в наборе записей (в движениях) регистратор это и есть ваш удаляемый документ.
2) связь может быть алгоритмическая - то есть проводится документ, далее некий алгоритм устанавливает в поле Основание ссылку на документ. Такие связи моя обработка не видит, и не удаляет. Думаю, что другие подобные обработки по удалению подобных записей в регистрах , тоже не справятся. В таких случаях нужно исходить логики работы конфигурации.
Можете пример привести - я посмотрю , что можно сделать.
(66)
Записи уже не удалить.
Надеюсь вы на копии сначала тестировали.
Записи остались - возможно в ЗУП запретили удалить записи задним числом- стоит ПередУдалением Отказ - Истина.
Вам нужно привести пример - какой документ удалялися, какие движения остались, номер релиза ЗУП, укажите типовая у вас УЗП или доработанная.
Я посмотрю и проверю алгоритм удаления.
У меня не было доработано согласно пункту (54).
Сейчас доработано. У вас есть 30 дней, когда можете скачать файл повторно бесплатно-со дня первого скачивания.
Проверял все на копии))
Оказалось, что нужно сначала распровести все доки, и вторым этапом удалить. Проверял на ЗУП КОРП 3.1.34.40.
Пробовал и на других базах - обработка отлично себя показала, крутой функционал, работает быстро, нет лишних отборов, одна из самых лучших в данной рубрике! Небольшое пожелание - добавить отображение прогресса длительных операций) - Не критично, но было удобно отслеживать не зависла ли 1С.
а реквизит Проведен = ложь не проставился.
И реквизит ПометкаУдаления = истина не проставился.
В итоге документы остались "проведенные", но без движений..
УТ11.5.23, платф кл-серв 8.3.27
Если Док.Проведен Тогда
Док.Проведен = Ложь;
ПерезаписатьДокумент = Истина;
КонецЕсли;
Если Объект.ПомечатьНаУдаление И НЕ Док.ПометкаУдаления Тогда
Док.ПометкаУдаления = Истина;
ПерезаписатьДокумент = Истина;
КонецЕсли;
Если ПерезаписатьДокумент Тогда
Док.ОбменДанными.Загрузка = Истина;
Док.Записать(РежимЗаписиДокумента.Запись);
КонецЕсли;
Показатьпопробуйте через отладку на копии увидеть , что происходит - строка 324
Видимо, косяк запроса динамического списка в УТ.
По факту запросом выбираю список документов, у них
ПеремещениеТоваров.ПометкаУдаления = истина
И ПеремещениеТоваров.Проведен = ложь
, а в списке документов и во всех журналах они отображаются с зеленой галочкой проведения.
не критично
И даже переоткрывал. И даже перезаходил в 1С))
Документы распроведены и помечены на удаление, а визуально - проведены.
При этом штатная обработка удаления помеченных их подхватывает и удаляет.
1) Было
Если НЕ Стр.Вкл Тогда
Продолжить;
КонецЕсли;
//проверим на пустую строку
Если ПустаяСтрока(Стр.ИмяДокумента) Тогда
Продолжить;
КонецЕсли;
ПоказатьСтало
Если НЕ Стр.Вкл Тогда Продолжить; КонецЕсли;
//проверим на пустую строку
Если ПустаяСтрока(Стр.ИмяДокумента) Тогда Продолжить; КонецЕсли;
это касается не только условий Если, но и всех простых циклов
2) вынес определение табличных частей за цикл, ранее определение табл. частей было внутри цикла по каждому документу и повторялось для каждого документа одного вида...
3) отладочный режим рекомендую запускать только при расследовании ошибок, то есть не использовать его в процессе удаления - отладочный режим замедляет процесс обработки документов
4) порядок удаления документов можно устанавливать самим - мышкой по кнопке "Переместить вверх или вниз"
5) перед удалением в рабочей базе - после тестирования на копии - рекомендую отключить регистрацию событий в журнале регистраций (через конфигуратор делается)
6) желательно отключить все регламентные операции - заранее неизвестно, какая логика заложена в регламентные операции - особенно актуально смотреть на те, которые запускаются при проведении документов
7) возможно, стоит добавить /cРежимОтладки в параметры запуска, чтобы все процессы записи документов при распроведении запускались в основном потоке (без фоновых, без длительных операций). Но это гипотетически, еще никем не проверялось.
8) в процессе тестирования на копии можете включить параметр "Показывать сообщения" - появился в последней версии. На рабочей базе - после отладки процесса на копии - смс включать не обязательно.
9) в процессе удаления документов советую включить шум моря, сходить налить кофе, подумать об отпуске...
:)
Если ЗначениеЗаполнено(Объект.Организация) И ИмеетсяРеквизитОрганизация Тогда
ТекстЗапроса = "ВЫБРАТЬ ПЕРВЫЕ " + Формат(Пакет,"ЧГ=") + "
| Док.Ссылка КАК Ссылка
|ИЗ
| Документ.АвансовыйОтчет КАК Док
|ГДЕ
| Док.Дата <= &КонецПериода
| И Док.Дата >= &НачалоПериода
| И Док.Проведен = ИСТИНА
| И Док.Организация = &Организация";
Иначе
ТекстЗапроса = "ВЫБРАТЬ ПЕРВЫЕ " + Формат(Пакет,"ЧГ=") + "
| Док.Ссылка КАК Ссылка
|ИЗ
| Документ.АвансовыйОтчет КАК Док
|ГДЕ
| Док.Дата <= &КонецПериода
| И Док.Дата >= &НачалоПериода
| И Док.Проведен = ИСТИНА";
КонецЕсли;
ПоказатьТаких мест у вас много.
Лаконичнее текст запроса написать бе отбора по организации, а если отбор нужен, добавить в текст отбор по организации..
Так как у вас написано, пишут новички.
Хотя обработка хорошая
Я во многом так не программирую. Не знал, что вы будете скачивать. Для вас бы запрограммировал по другому.
+ недавно нашел еще в одну строчку код с большим количеством операторов.
А что тут писали, что сначала надо распроводить, потом удалять?
я правда, только распровел, надо было бы удалять, посмотрел бы у вас в коде, как там реализовано.
Рейтинг: 1990
Вы можете заказать платную консультацию или разработку у автора. Будет создан приватный заказ на «Бирже заказов» для автора.
№ 1121943
Создание 13.09.19 17:20
Обновление 01.07.26 06:32
Просмотры 32676
Загрузки 454
Рейтинг
23
Комментарии 90
Код открыт Да
Рубрики Чистка данных
Кому Разработчик
Тип файла Внешняя обработка (ert,epf)
Платформа 1С:Предприятие 8
Конфигурация Универсальные
Операционная система Не имеет значения
Страна Не имеет значения
Отрасль Не имеет значения
Налоги Не имеет значения
Вид учета Не имеет значения
Доступ к файлу Абонемент ($m)