Обработка удаления неиспользуемой номенклатуры для УТ
Выполнено
4 000.00
8 |
1
16 декабря 2021 в 13:42:05
(2 года 48 недель 5 дней 23 часа назад)
49800
V8.x Управление торговлей
08.08.2019 15:48:15
до 13.08.2019
Текст задания
Конфигурация: Управление торговлей, редакция 11 (11.4.8.92)
Кратко: Требуется обработка, для поиска и обработки неиспользуемых элементов справочника номенклатуры.
Вводная: Есть база УТ 11 в которую долгое время "вливались" прайсы поставщиков из файлов Excel. Эта процедура сопровождается созданием документа установки цен. Только часть этой номенклатуры реально продавалась или была как-то использована в движениях. При этом её нельзя просто так взять и удалить потому что во-первых, выискивать руками, что использовалось, а что нет - сложно. Во-вторых, эта номенклатура как минимум при заливке прайса попала в документ установки цен по номенклатуре. В третьих, по ней могут быть служебные данные, типа ключей аналитики или каких-то регистров сведений.
Требования к функционалу:
1. Обработка должна найти все элементы номенклатуры, которые нигде не использовались, кроме как в документах установки цен и служебных справочниках/регистрах. И ПОМЕТИТЬ их на удаление. Если в папке с номенклатурой нет ни одного элемента или все помечены на удаление, папка также помечается на удаление.
2. Удалить найденные позиции из табличной части документов установки цен и из регистров цен. Имеются ввиду и установки цен предприятия и установки цен поставщиков.
3. Пометить на удаление все служебные данные (типа ключей аналитики), связанные с это номенклатурой и удалить связанные регистры сведений. Одним словом - все, что может блокировать удаление элемента стандартными средствами через администрирование - удаление помеченных объектов.
Требования к быстродействию:
Т.к. база раздута - основное требование - чтобы программа не выполнялась вечность, а могла отработать хотя бы за выходные 48 часов. Понятно, что все зависит от быстродействия компьютера и размера базы, но предположим, примерно мы говорим о компьютере, на котором установлена только ОС и файловая 1С, Intel i7, 16 ГБ ОЗУ, база лежит на дисках SSD. Базу, чтобы оценить объем, я готов предоставить. Предположительно, нужно найти и удалить 25 000 позиций.
Заключение: обработка будет выполняться очень редко, т.е. можно сказать - одноразовая. Поэтому каких-то требований по интерфейсу или стилю написания кода у меня нет. Главное, чтобы код был грамотно составлен в плане быстродействия. Минимизация или полное отсутствие запросов в цикле. А также, например, если нужно удалить 100 позиций в документе установки цен, то нужно один раз удалить все 100 позиций и записать документ, а не 100 раз искать каждую следующую позицию в табличной части и вновь и вновь перезаписывать один и тот же документ. Такие алгоритмы недопустимы.
Здравствуйте! Профессионально занимаюсь разработкой в системе 1С Предприятие 8 более 7 лет. При необходимости могу предоставить любые удобные для Вас контакты для связи. Буду рад сотрудничеству!