Удаление документов для любых баз на управляемых формах

Публикация № 1121943

Администрирование - Администрирование данных 1С - Чистка базы

Удаление и распроведение документов для любых баз на УФ.

Всем привет!

Решал задачу - создания новой базы для новой организации, но с теми же контрагентами и номенклатурой.

Самым простым решением стало - скопировать имеющуюся базу и почистить ее от всех документов. Так и родилась данная обработка.

Разрабатывалась на конфигурации, платформа 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) (есть нюансы с Чеками ККМ, пример тут //cat.1module.ru/public/1115171/)

Данные ограничения можно обойти с помощью списков из п.7.

Немного теории и практики.

1. Если надо удалить/распровести документы до определенной даты, то ставьте в поле "До даты" любой период. По умолчанию период устанавливается текущей датой. Можете указать организацию, иначе будут обработаны документы без учета организации.

 
 Не все документы имеют реквизит "Организация" - необходима проверка на организацию

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

Пример свертки и удаления только помеченных на удаление документов: //cat.1module.ru/public/1033813/

В связи с этим добавлена функциональность

3. Однажды удалял документы на измененной типовой базе и столкнулся с тем, что документ-регистратор был удален из базы без проверки связанных ссылок, а записи по регистру сведений удалены не были. После чего программно или интерактивно удалить записи из регистра не удается! Задействовал "Тестирование и исправление" с режимом "создания объекта - при наличии ссылок на несуществующие объекты". После чего почистил записи.

Так как в той ситуации подобных баз было несколько (филиальная сеть) - решил перед удалением распровести документы. И так появилась еще одна функциональность "Распроводить документы перед удалением":

 

4. В дальнейшем, идея распроводить документы перед удалением мне понравилась, и я выделил "Распроведение документов" в отдельный функционал:

 
 Не все документы имеют разрешение на проведение при записи - необходима проверка свойства

5. Иногда при чистке баз требуется оставить вместе с номенклатурой цены, поэтому появилась функциональность "Не удалять документы Установка цен номенклатуры":

6. После удаления документов без проверок связанных ссылок, необходимо почистить вручную все зарегистрированные изменения для обмена. В моем случае в исходной базе был настроен обмен с УТ.

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

7. Добавил возможность отбирать документы для удаления / распроведения в виде прямых и обратных списков: "Обрабатывать только из списка" и "Не обрабатывать из этого списка".

 

С помощью данных списков можно исключить из обработки документы, по которым специфичным образом настроены типовые механизмы и из-за которых, к примеру, нельзя распровести документы перед удалением. См. нюансы отладки Розницы и УНФ в начале статьи.

ПС. Во время разработки понадобилось узнать максимальную длину наименований документов в БП, разработал вспомогательную обработку (прикладываю в публикации). Оказалось, что в БП максимальная длина документов составляет 93 символа (см. вложенные скрины). 

 
 См. также

 

Всем добра! :)

С пользой для клиентов, Rustig

 

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

Наименование Файл Версия Размер
Удаление документов для любых типовых баз на УФ (управляемых формах)

.epf 11,70Kb
12.09.19
68
.epf 11,70Kb 68 Скачать
Максимальная длина наименований объектов метаданных

.epf 5,93Kb
04.02.20
0
.epf 5,93Kb Скачать

Специальные предложения

Лучшие комментарии
4. Rustig 1485 30.10.19 16:08 Сейчас в теме
(2) есть же стандарт разработки - когда перед записью встраивается конструкция Если ОбменДанными.Загрузка = Истина Тогда никакие проверки не делаются!

В этом случае можно удалить /загрузить/распровести / использовать групповую типовую обработку.

Если это правило игнорируется, и ставятся проверки до этой конструкции, то групповой обработкой уже не воспользуешься, ибо у вас есть связанные отгрузки.

В Рознице 2.2 с чеками ровно такая проблема.
19. Rustig 1485 12.11.19 11:48 Сейчас в теме
(14) Знаете, я попробовал Удалить документы без распроведения.
В итоге, удалилось.

Единственно, ошибка вышла:
{ВнешняяОбработка.УдалитьВсеДокументыБезПроверки.Форма.Форма.Форма(181)}: Ошибка при вызове метода контекста (Удалить)
			Док.Удалить();              
по причине:
Ошибка при выполнении обработчика - 'ПередУдалением'
по причине:
{ОбщийМодуль.ЗапасыСервер.Модуль(11222)}: По документу Передача товаров ТД00-000048 от 31.03.2017 23:59:59 есть движения в регистре РезервыТоваровОрганизаций. Удаление документа невозможно.
		ВызватьИсключение ТекстИсключения;


Собственно, перед удалением что-то там проверяется и то только для одного вида документа (в список документов не попали документы после 07.04.2017г) - возможно есть другие виды документов, перед удалением которых проверяется что-то.

...Но в целом, удалились все документы до 07.04.2017.
Уже начинаю думать, что разработчики УТ 11 правильно сделали - зачем распроводить документы, тем более связанные ?!
Если надо удалить и почистить базу - то, пож-та, удаляйте и чистите.
Но при этом не надо распроводить.... :)
Остальные комментарии
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
1. Rustig 1485 22.09.19 06:10 Сейчас в теме
2. born85 54 30.10.19 11:17 Сейчас в теме
Не все документы удаляет. Например в ут 11.4 (можно в демо базе посмотреть) документы по которым были отгрузки - не удаляет.
3. Rustig 1485 30.10.19 15:58 Сейчас в теме
(2) ок, посмотрю.

на всякий случай, напишу, что УТ 11.4 не входило в список тестируемых конфигураций.

P.S. Замечу, что запрет на удаление документов, по которым были отгрузки - это на уровне алгоритмов запреты.
Возможно стоит их обойти так: сначала помечаете на удаление все связанные
отгрузки.
Потом уже основные документы.
То есть имеет значение порядок чистки документов.
7. born85 54 30.10.19 17:07 Сейчас в теме
(3) Зачем в описании вводите в заблуждение тогда "Удаление и распроведение документов для любых баз на УФ"
9. Rustig 1485 30.10.19 17:38 Сейчас в теме
(7) В описании все честно написано - на каких конфигурациях тестировалась. Никого не ввожу в заблуждение.
Для удаления используется платформенная процедура ДокументОбъект.Удалить()
Если по каким-то причинам разработчики конфигураций блокируют удаление на уровне алгоритмов, прав доступа и т.д., то я бы посоветовал писать им в техподдержку.
Я считаю, что у полных прав должны быть права и возможности удалять документы в базах.
И этому поможет моя универсальная обработка (примитивная донельзя, но порой необходимая).
К вашему замечанию я прислушаюсь, гляну что там за проблемы удаления/распроведения в УТ 11.4.
11. born85 54 30.10.19 17:43 Сейчас в теме
(9) Я Вас понимаю, и от части разделяю Вашу точку зрения. Но в данном случае нельзя обработку считать универсальных средством и писать что работает во всех УФ - это не соответствует действительности. А так - да, обработка рабочая, но очень медленная, например при удалении движения не плохо бы в метаданных сразу проверять есть движения (проведен или нет) нежеле далее по циклу гнать в алгоритм, это бы ускорило немного ее.. В общем это придирки, по большому счету все сделано на быструю руку..
13. Rustig 1485 30.10.19 17:46 Сейчас в теме
(11) Доработаю, только спроса ведь на доработку до сих пор никто не высказывал. Спасибо что написали замечание и рекомендации дали.
Я ведь не в курсе, кому она нужна и интересна.
Обратную связь мало кто оставляет.
15. born85 54 30.10.19 17:48 Сейчас в теме
(13) Ну я например скачал за внутрисайтовые мани. И указал на замечания. На счет спроса - вам виднее статистику использования.
4. Rustig 1485 30.10.19 16:08 Сейчас в теме
(2) есть же стандарт разработки - когда перед записью встраивается конструкция Если ОбменДанными.Загрузка = Истина Тогда никакие проверки не делаются!

В этом случае можно удалить /загрузить/распровести / использовать групповую типовую обработку.

Если это правило игнорируется, и ставятся проверки до этой конструкции, то групповой обработкой уже не воспользуешься, ибо у вас есть связанные отгрузки.

В Рознице 2.2 с чеками ровно такая проблема.
5. Rustig 1485 30.10.19 16:31 Сейчас в теме
(2) что за фраза "документы по которым были отгрузки" ?
я понимаю, как связанные с реализацией документы. В этом случае, реализация - это отгрузка. И есть связанные с ней документы - счет на оплату, заказ покупателя, м.б. расходный ордер на товар.
Поясните вашу фразу пож-та.
6. born85 54 30.10.19 17:06 Сейчас в теме
(5) Документы покупателей по котором были частичные или полные отгрузки. Соответственно - эти документы ваша обработка пропускает.
8. Rustig 1485 30.10.19 17:32 Сейчас в теме
(6)
Документы покупателей по котором были частичные или полные отгрузки

опять непонятно.
"Отгрузка" это и есть документ "Реализация товаров и услуг". У вас фраза звучит как "Документы по которым были документы".

Отгрузка может быть по товарам или по покупателям. Но по документам отгрузка быть не может.

Смысл фразы какой?
10. born85 54 30.10.19 17:39 Сейчас в теме
(8) Возможно не правильно сформулирован, но суть же понятна Вам, для примера так же привел конфигурацию - т.е. повторить ситуацию - возможность есть. В данных условиях обработка не работает. Если устраните - будет здорово.
12. Rustig 1485 30.10.19 17:44 Сейчас в теме
(10) Ладно, посмотрю УТ 11.4.
Только не понял какую ситуацию моделировать, и на каких документах проверять.
14. born85 54 30.10.19 17:47 Сейчас в теме
(12) Не поленюсь и добавлю скриншот с настройкой в демо базе ут последней. Посмотрите после отработки - документы останутся с движениями.

Управление торговлей, редакция 11 (11.4.5.111) (http://v8.1c.ru/trade/)
Copyright © ООО "1С-Софт", 2003-2018. Все права защищены
(http://www.1c.ru)
Прикрепленные файлы:
16. born85 54 30.10.19 17:49 Сейчас в теме
(14) Здесь посмотрите - после всех манипуляций - останутся документы не "распроведенные", так же с удалением.
17. Rustig 1485 12.11.19 10:53 Сейчас в теме
(14) Расследование причин не закончено. Но вот, что уже выявлено:

1) В УТ 11 по-умолчанию запущено много фоновых и регламентных заданий - их надо отключить - тогда обработка отработает быстрее

2) В УТ 11 - много подписок на события, которые срабатывают ПередЗаписью документов, при этом проверяется кроме параметра ОбменДанными.Загрузка - различные параметры подобно Источник.ДополнительныеСвойства.Свойство("ПропуститьЗаписьВерсииОбъекта")
или Объект.ДополнительныеСвойства.Свойство("ЗаписатьНаборыЗначенийДоступа")
и еще что-то... Но пока особо непонятно - насколько допсвойства влияют на универсальные групповые обработки документов...

возможно для других целей это знание пригодится - то есть, чтобы реализовать универсально что-то - необходимо знать и учитывать все ДопСвойства...

3) Попробовал программно распровести Заказ ТД0000...3 от 06.04.2017 с помощью текущей обработки - вышла ошибка - смотрю Журнал регистрации - транзакция отменена на объекте РегистрСведений ГрафикПлатежей - это независимый и непериодический регистр....

Хм, попробовал распровести этот заказ интерактивно - распровелся запросто - попробовал провести снова - вышла ошибка - не проводит, то есть заложена функциональность такая - что случайно можно распровести вручную, а вернуть в исходное состояние уже нельзя.... ловушка для пользователей ?!.

Покамест отложу процесс поиска причин....
18. Rustig 1485 12.11.19 11:36 Сейчас в теме
(14) собственно ни один документ нельзя распровести интерактивно (то есть вручную)... надо разбираться с функционалом... искать точки обхода блокировок распроведения...
Прикрепленные файлы:
19. Rustig 1485 12.11.19 11:48 Сейчас в теме
(14) Знаете, я попробовал Удалить документы без распроведения.
В итоге, удалилось.

Единственно, ошибка вышла:
{ВнешняяОбработка.УдалитьВсеДокументыБезПроверки.Форма.Форма.Форма(181)}: Ошибка при вызове метода контекста (Удалить)
			Док.Удалить();              
по причине:
Ошибка при выполнении обработчика - 'ПередУдалением'
по причине:
{ОбщийМодуль.ЗапасыСервер.Модуль(11222)}: По документу Передача товаров ТД00-000048 от 31.03.2017 23:59:59 есть движения в регистре РезервыТоваровОрганизаций. Удаление документа невозможно.
		ВызватьИсключение ТекстИсключения;


Собственно, перед удалением что-то там проверяется и то только для одного вида документа (в список документов не попали документы после 07.04.2017г) - возможно есть другие виды документов, перед удалением которых проверяется что-то.

...Но в целом, удалились все документы до 07.04.2017.
Уже начинаю думать, что разработчики УТ 11 правильно сделали - зачем распроводить документы, тем более связанные ?!
Если надо удалить и почистить базу - то, пож-та, удаляйте и чистите.
Но при этом не надо распроводить.... :)
20. born85 54 12.11.19 19:33 Сейчас в теме
(19) По сути проблемы есть по функционалу обработки в приведенной мной базе, не так как "изначально подразумевался функционал работает", свою проблему я решил быстро переписав часть функционала под клиента, Вам как автору сообщил о не доработках, т.к. так же как и все скачивал за старт мани и обидно что то дописывать в таких случаях (читай как лениво) - точнее о поведении обработки в конкретной базе, далее на ваше усмотрение - поправите хорошо, нет так нет ).

Хорошего вечера.
21. Rustig 1485 13.11.19 12:52 Сейчас в теме
Оставьте свое сообщение

См. также

Список заказов поставщикам (новая форма) + два ноу-хау для разработчиков Промо

Рабочее место Дебиторская и кредиторская задолженность Оптовая торговля Дебиторская и кредиторская задолженность Оптовая торговля v8 v8::ОУ КА1 УТ10 УУ Платные (руб)

Представлена внешняя обработка - "Список заказов поставщикам (новая форма)". Удобство заключается в том, что в одном окне списка отображается структура всех связанных документов с указанием контрагента (заказ поставщику - поступление товаров - заказ покупателя - реализация товаров - оплата товара покупателем). В этом же окне отображается список товаров с заказанным количеством и ценами. Имеется возможность видеть статусы заказов по цветам (исполнен, выполняется, черновик). Форму легко встроить в типовую конфигурацию.

1100 руб.

31.08.2017    19614    18    18    

Анализ возвратов денег за товар при сложных оплатах

Розничная торговля v8 v8::ОУ УТ10 УУ Абонемент ($m)

Разработан механизм для анализа чеков на возврат: помощник подсказывает, сколько и как можно вернуть денег - наличкой или безналом. Актуально для разбора сложных оплат.

2 стартмани

02.06.2020    627    0    Rustig    0    

[Расширение] БП 3.0. Список счетов/ Список реализаций + Связанные документы

Рабочее место Оптовая торговля v8 v8::БУ БП3.0 БУ Абонемент ($m)

Список счетов / список реализаций + Структура подчиненности в одном окне. Расширение для программы БП 3.0.

2 стартмани

09.04.2020    1849    2    Rustig    6    

Подбор товаров по характеристикам (свойствам и значениям)

Оптовая торговля Розничная торговля Рабочее место Оптовая торговля Розничная торговля v8 КА1 УТ10 УНФ УУ Абонемент ($m)

Быстрый фильтр и отбор товаров (номенклатуры) по свойствам. Готовый механизм для УТ 10.3 и УНФ 1.6.

2 стартмани

14.04.2019    7051    13    Rustig    4    

Большие запросы: взгляд на проблему Промо

Практика программирования v8::Запросы 1cv8.cf Бесплатно (free)

Большой (кусочный) запрос подобен карточному домику: строится долго, а захочется поменять карту из середины строения – домик разрушится. На примере учета задолженностей контрагентов в разрезе полугодий (не типовой учет БП, и не ЗУПовский) я покажу, как я изменил механизм учета и превратил «большой» запрос в «маленький», а дальнейшее сопровождение программы в сказку 1С-ника.

26.07.2013    29079    0    Rustig    43    

Сравнение запросов

Инструментарий разработчика v8 v8::Запросы 1cv8.cf Абонемент ($m)

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

2 стартмани

16.03.2019    9225    14    Rustig    31    

Элементы внедрения системы адресного хранения на программе "Кортес: Адресный склад"

Управление проектом Учет ТМЦ Учет ТМЦ v8 КА1 УУ Абонемент ($m)

С чего начать внедрение адресного хранения склада? Возможно ли проводить безбумажную инвентаризацию? Не понимаете, о чем я спрашиваю? - Объясню по порядку.

1 стартмани

12.11.2018    10164    16    Rustig    40    

Программистские этюды Промо

Практика программирования v8 Бесплатно (free)

Рассматриваются задачи, связанные с учетом характеристик номенклатуры: 1) Обход итогов при партионном списании по ФИФО для пары Номенклатура+Характеристика 2) Обмен сведениями об остатках номенклатуры с помощью XML для пары Номенклатура+Характеристика Дополнительно. Внимание новичкам – типовая консоль запросов.

03.07.2012    27763    0    Rustig    36    

Рабочий стол кассира

ККМ Рабочее место Кассовые операции Розничная торговля Кассовые операции Розничная торговля v8 v8::ОУ УТ10 Абонемент ($m)

Внешняя обработка - рабочий стол кассира (54-ФЗ) - с дополнительным функционалом для УТ 10.3. Тестировалась на ККМ Атол-30ф.

2 стартмани

18.07.2018    9337    15    Rustig    0    

Маркировка ячеек цветом. Отладка загрузки данных из эксель.

Практика программирования Загрузка и выгрузка в Excel v8 1cv8.cf Бесплатно (free)

После 100-ой кривой загрузки родился способ, как отладить алгоритм.

05.07.2018    8956    0    Rustig    7    

Печать ценников с одной и двумя ценами 55х40, 100х60, 140х200. УТ 10.3

Розничная торговля Ценники Розничная торговля v8 v8::ОУ УТ10 УУ Абонемент ($m)

Печать ценников с одной и двумя ценами специальных размеров под пластиковые подставки для ценников: 55х40, 70х40(Две цены), 90х60(Две цены), 100х60, 140х200 мм.

1 стартмани

26.03.2018    10200    9    Rustig    2    

Андроид-решение для создания заказов в 1С

Рабочее место Оптовая торговля Учет ТМЦ Оптовая торговля Учет ТМЦ v8 1cv8.cf УУ Абонемент ($m)

Разработка создает заказы в 1С на Андроид-телефонах через RDP-клиент. Описана технология подобных разработок.

3 стартмани

23.03.2018    21120    15    Rustig    66    

Загрузка номенклатуры из Эксель (новый взгляд)

Загрузка и выгрузка в Excel Обработка справочников Практика программирования v8 1cv8.cf Абонемент ($m)

Представлена обработка "Загрузка номенклатуры из Эксель" (новый взгляд). Подходит для любого формата и любой структуры Эксель, ОпенОфиса: потому что пользователь сам решает - что ему загружать, а что нет.

1 стартмани

29.08.2017    14656    17    Rustig    8    

Список номенклатуры (новый взгляд)

Рабочее место Оптовая торговля Оптовая торговля v8 КА1 УТ10 Россия УУ Абонемент ($m)

Представлена внешняя обработка - "Список номенклатуры (новый взгляд)". Удобство заключается в том, что в отдельных таблицах представлены: цены на номенклатуру и остатки по складам в разрезе серий, характеристик. При этом для каждой номенклатуры проверяются признаки ведения учета по характеристикам и сериям, и, как следствие, остатки отображаются только в тех разрезах, в которых ведется учет. Форму можно встроить в типовую конфигурацию.

1 стартмани

16.08.2017    15450    15    Rustig    5    

Доработка конфигурации Конвертация Данных (вер. 2.1.8.2)

Инструментарий разработчика v8 КД Абонемент ($m)

Добавил в конфигурацию Конвертация Данных (вер. 2.1.8.2): 1) появляющиеся подсказки по обработчикам 2) аналог "Найти в списке" 3) историю переходов по объектам ПКО

2 стартмани

24.12.2011    20903    11    Rustig    23    

Шаблоны текста (Ctrl+Shift+T) в режиме 1С:Предприятие

Практика программирования v8 1cv8.cf Россия Абонемент ($m)

Реализован поиск и отбор алгоритмов по ключевым словам.

1 стартмани

06.09.2011    29118    23    Rustig    24