новое событие
Информационный поток
Задания вакансии материалы разработки сообщения форума
Есин Сергей
Приватное сообщение

Обработка удаления неиспользуемой номенклатуры для УТ

8 |  1
16 декабря 2021 в 13:42:05 (3 года 1 неделя 15 часов назад)
49800
Текст задания
Конфигурация: Управление торговлей, редакция 11 (11.4.8.92)

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

Вводная: Есть база УТ 11 в которую долгое время "вливались" прайсы поставщиков из файлов Excel. Эта процедура сопровождается созданием документа установки цен. Только часть этой номенклатуры реально продавалась или была как-то использована в движениях. При этом её нельзя просто так взять и удалить потому что во-первых, выискивать руками, что использовалось, а что нет - сложно. Во-вторых, эта номенклатура как минимум при заливке прайса попала в документ установки цен по номенклатуре. В третьих, по ней могут быть служебные данные, типа ключей аналитики или каких-то регистров сведений.

Требования к функционалу:
1. Обработка должна найти все элементы номенклатуры, которые нигде не использовались, кроме как в документах установки цен и служебных справочниках/регистрах. И ПОМЕТИТЬ их на удаление. Если в папке с номенклатурой нет ни одного элемента или все помечены на удаление, папка также помечается на удаление.
2. Удалить найденные позиции из табличной части документов установки цен и из регистров цен. Имеются ввиду и установки цен предприятия и установки цен поставщиков.
3. Пометить на удаление все служебные данные (типа ключей аналитики), связанные с это номенклатурой и удалить связанные регистры сведений. Одним словом - все, что может блокировать удаление элемента стандартными средствами через администрирование - удаление помеченных объектов.

Требования к быстродействию:
Т.к. база раздута - основное требование - чтобы программа не выполнялась вечность, а могла отработать хотя бы за выходные 48 часов. Понятно, что все зависит от быстродействия компьютера и размера базы, но предположим, примерно мы говорим о компьютере, на котором установлена только ОС и файловая 1С, Intel i7, 16 ГБ ОЗУ, база лежит на дисках SSD. Базу, чтобы оценить объем, я готов предоставить. Предположительно, нужно найти и удалить 25 000 позиций.

Заключение: обработка будет выполняться очень редко, т.е. можно сказать - одноразовая. Поэтому каких-то требований по интерфейсу или стилю написания кода у меня нет. Главное, чтобы код был грамотно составлен в плане быстродействия. Минимизация или полное отсутствие запросов в цикле. А также, например, если нужно удалить 100 позиций в документе установки цен, то нужно один раз удалить все 100 позиций и записать документ, а не 100 раз искать каждую следующую позицию в табличной части и вновь и вновь перезаписывать один и тот же документ. Такие алгоритмы недопустимы.
0
Выбранные исполнители
Отклики