#0
by fazendoid
Добрый день, есть задача, моск уже не варит. Нужно: 1. Взять все документы (ну это ясно, метаданные конфы). 2. Вытащить их табличные части (тут метаданные доков), 3. в которых есть строки с номенклатурой (Товары, Услуги, Материалы и т.п. — не ясно) 4. Сочленить эту номенклатуру в один список (объединяем). 5 (не обязательный). Пометить номенклатуру, отсутствующую в списке из пункта 4 на удаление. Вот по отдельности всё вроде как ясно, а сочленить в рабочее решение не получается. Никто не сталкивался с таким? Или, может, я вообще велосипед изобретаю?
#3
by Нуф-Нуф
получить массив всей номенклатуры, получить на них ссылки, отобрать с ссылками в документах. остальные удалить
#4
by fazendoid
Едрать... Всё, вопрос отпал :) Огромное спасибо, вы предотвратили появление очередного веломобиля))
#10
by fazendoid
Тьфу, дебажные сообщения забыл удалить :). И у меня такое ощущение, что строк маловато выводит(
#12
by КуплюКровать
пометь на удаление всю номенклатуру, запусти удаление помеченых, потом сними пометку. Че удалится - то без ссылок было. Одна проблема, нужно сохранить пометки удаления, которые были до проведения этой операции. Но это, думаю догадаешься как
#13
by fazendoid
Да я это пишу и запускаю в микроредакторе в клиентском режиме — так побыстрее и попроще получается. И что-то у меня не получается подцепить отладчик на внешнюю обработку. ЧЯДНТ?
#15
by fazendoid
Да это в первую очередь нужно для человека, который шерстит номенклатуру на предмет неиспользуемости — вывести ему отчет, какая нома где используется. А удаление — это уже полезная хфича
#19
by Reset
Что-то я не понял... Вроде и ответ дали и автор ему обрадовался, а таки прет по старому пути :???:
#20
by fazendoid
Это из любопытства всё Как-то не как надо работает, в конечный список попадают-таки номенклатуры с документами.
#21
by Reset
Из любопытства, хм. Тогда не забудь еще собрать всё из справочников, где номенклатура может в реквизитах быть и в табличных частях, в регистрах сведений (без регистратора особенно). Да и в регистрах накопления технически может быть, даже если в дркументах есть (напр документ КорректировкаЗаписей РегистровНакопрления без табл частей). Регистры бухгалтерии (бух операция может там оставить двежения).
#23
by Reset
Лень анализировать, бросилось в глаза Если Реквизит.Имя = "Номенклатура" Тогда Это неверно, проверять надо не по имени реквизита, а по типу.
#25
by Reset
ТипНоменклатура=Тип("СправочникСсылка.Номенклатура"); ... Если Реквизит.Тип.СодержитТип(ТипНоменклатура)
#27
by fazendoid
Теперь другой путь: И получаем: У нас ведь таблица создается путем выгрузки результатов запроса, типы должны быть расставлены. Почему так?
#41
by Reset
Если честно, для одноразовой обработки я вообще с запросом не заморачивался СсылкиНоменклатуры.Индексы.Добавить("Ссылка"); Для каждого СтрНоменклатуры из ВсяНоменклатура цикл
#42
by fazendoid
Я бы, наверное, тоже не заморачивался. Если бы умел это делать :) И если бы это не было частью самообучения. Хм, Временная все-таки заполнена, я перепроверил.
#43
by Reset
Как то странно, если ТЗ не пустая. Или я в упор не вижу какого-то косяка, хз, но на вид выборка в вт нормальная. Можно добавить Выразить, но моему, это не должно влиять. ВЫБРАТЬ Выразить(НоменклатураПоСсылкам.НоменклатураСсылка Как Справочник.Номенклатура) КАК НоменклатураСсылка
#47
by Reset
Вообще, если цель удалить все неиспользуемые, можно обойтись без обработок (ну почти) :) 1. Пометить на удаление ВСЕ. 2. С помощью платформенной "удаление помеченных объектов" удалить все что удастся. 3. Снять пометку у ВСЕХ.
#48
by fazendoid
Это-то мне в голову и не пришло :) А есть ли обработка для автоматной замены дублирующихся объектов? Например, у нас из-за переноса из 7.7 предыдущим одмином образовались дублирующиеся ЕдиницыИзмерения (да и не только они). Один элемент пометили на удаление, второй остался. И на него ссылка. В общем, находим элементы с теми же значениями реквизитов, тока помеченные на удаление, и заменяем ссылки на тот объект, который на удаление не помечен. Ну или как-то так. [Ушел писать обработку… :-D]
#50
by Reset
не очень хорошо, т.к. при установке пометки могут сработать различные события, подписки, которые могут сделать что-то не то
#51
by fazendoid
Она ж вручную по одному заменят, если не ошибаюсь? А у меня их тут много. Сильно много
#52
by fazendoid
Я кажется понял, что не так. НайтиПоСсылкам выводит ведь абсолютно любые ссылки на объект? А номенклатуры, на которую ничего не ссылается просто быть не может - как минимум будет заполнено поле единиц измерения, и в ЕдиницыИзмерения.Владелец — ссылка на наш объект. В итоге получаем две идентичные таблицы Справочник.Номенклатура и ВременнаяТаблица. [Много, много ругательных слов]
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
В этой группе 1С
- Один регистр с ФИО или два (для клиентов и сотрудников)
- Обновление УТ 10.2 на УТ 10.3 и ПланВидовХарактеристик.НастройкиПользователей
- v7: Как происходит сортировка таблицы значений
- Настройка "секционирования" в скуле для 1С
- ЗУП. Перевод сотрудников в другой филиал
- СКД объединение колонок 1с
- Тор16 в УТ 10.3 без цены и сумм, как получить цену?
- 1С не освобождает память после печати картинок!
- УПП Таблица SQL настроек отчетов пользователей
- объект WshExtra.Clipboard не создается в WinServer
- БГУ Новая база в новом году
- Как сделать левое соединение только ОДНОГО значения?
- УПП. Треб. нак. Движение по регистру ПартииТоваровНаСкладахБухгалтерскийУчет
- Кнопка ДтКт в Бухгалтерии ред.3
- v8: ЗУП формирование СЗВ-6 вместо ДЕТИ - ДЛДЕТИ
- Ошибка чтения ХМЛ
- Субконто 1007
- Мобильная торговля Android 2013
- В УПП у счета 41 нет партий
- Ошибка при выполнении запроса POST