8.х Обработка нахождения дублей

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем PavelA, 29 авг 2013.

  1. TopicStarter Overlay
    PavelA
    Offline

    PavelA Опытный в 1С

    Регистрация:
    26 дек 2011
    Сообщения:
    739
    Симпатии:
    0
    Баллы:
    26
    Есть документ с реквизитом номер! задача написать обработку, которая пробежится по всем документам и найдет дубли номеров! То есть у документов будут одинаковые номера! Как правильнее и проще сделать при большом кол-ве документов?
  2. rshakiro
    Offline

    rshakiro Профессионал в 1С Команда форума

    Регистрация:
    17 мар 2011
    Сообщения:
    2.236
    Симпатии:
    144
    Баллы:
    104
  3. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.649
    Симпатии:
    948
    Баллы:
    204
    А стандартная не подходит? Поиск и замена дублирующих?

    ну имеется ввиду под документ переделать
  4. TopicStarter Overlay
    PavelA
    Offline

    PavelA Опытный в 1С

    Регистрация:
    26 дек 2011
    Сообщения:
    739
    Симпатии:
    0
    Баллы:
    26
    Спасибо)
  5. TopicStarter Overlay
    PavelA
    Offline

    PavelA Опытный в 1С

    Регистрация:
    26 дек 2011
    Сообщения:
    739
    Симпатии:
    0
    Баллы:
    26
    А если усложнить задачу и помечать дубли на удаление?
  6. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    и в чем вопрос?
  7. rshakiro
    Offline

    rshakiro Профессионал в 1С Команда форума

    Регистрация:
    17 мар 2011
    Сообщения:
    2.236
    Симпатии:
    144
    Баллы:
    104
    оба документа пометить?? Вы уверены,что Вам это нужно??
  8. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.649
    Симпатии:
    948
    Баллы:
    204
    Ну там же у вас в списке появятся все - вы отметитет что является основным, а затем обход списка и кто не основной - пометка на удаление
  9. TopicStarter Overlay
    PavelA
    Offline

    PavelA Опытный в 1С

    Регистрация:
    26 дек 2011
    Сообщения:
    739
    Симпатии:
    0
    Баллы:
    26
    Нет, один!

    В моем списке появляется кол-во с таким реквизитом!
  10. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.649
    Симпатии:
    948
    Баллы:
    204
    ну надо просто что бы не количество появлялось, а выводился список этих документов и рядом с ними галочки. вы потом пометите какой не трогать, а остальные пометяться на удаление - напишите обработку по нажатии на какую либо кнопку
  11. TopicStarter Overlay
    PavelA
    Offline

    PavelA Опытный в 1С

    Регистрация:
    26 дек 2011
    Сообщения:
    739
    Симпатии:
    0
    Баллы:
    26
    Что то я не соображу, как мне все ссылки получить из этого...
    Код:
    "ВЫБРАТЬ
    | КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ПУ_Рейс.Ссылка) КАК Ссылка,
    | ПУ_Рейс.НомерНакладной КАК НомерНакладной,
    | ПУ_Рейс.Вагон,
    | 1 КАК Всего
    |ИЗ
    | Документ.ПУ_Рейс КАК ПУ_Рейс
    |
    |СГРУППИРОВАТЬ ПО
    | ПУ_Рейс.НомерНакладной,
    | ПУ_Рейс.Вагон
    |
    |ИМЕЮЩИЕ
    | КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ПУ_Рейс.Ссылка) > 1
    |ИТОГИ
    | КОЛИЧЕСТВО(Всего)
    |ПО
    | ОБЩИЕ";
  12. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.649
    Симпатии:
    948
    Баллы:
    204
    насколько я понимаю данный запрос Вам вернет НомерНакладной и количество документов с таки же номером. Так же?
    Так вот почеему бы не сделать еще одну выборку из документов по условиую где номер равен номеру накладной. Допустим к этому запросу добавить еще один запрос

    ВЫБРАТЬ
    ПУ_Рейс.Ссылка
    | ПУ_Рейс.НомерНакладной КАК НомерНакладной,
    |ИЗ
    | Документ.ПУ_Рейс КАК ПУ_Рейс

    И связать его левым соединением по номеру с первым запросом

    Т.е в певом запросе получаем

    0000001 3шт
    0000002 2шт

    во втором

    0000001 ссылка 1
    0000001 ссылка 2
    0000002 ссылка 3

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


    0000001 3шт ссылка 1
    0000001 3шт ссылка 2
    0000002 2шт ссылка 3

    Вот вам и ссылки
  13. TopicStarter Overlay
    PavelA
    Offline

    PavelA Опытный в 1С

    Регистрация:
    26 дек 2011
    Сообщения:
    739
    Симпатии:
    0
    Баллы:
    26
    Допустим я отобрал с ссылками все
    Код:
    ВЫБРАТЬ
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ПУ_Рейс.Ссылка) КАК Ссылка,
    ПУ_Рейс.НомерНакладной КАК НомерНакладной,
    ПУ_Рейс.Вагон КАК Вагон,
    1 КАК Всего,
    ПУ_Рейс1.Ссылка КАК Ссылка1,
    ПУ_Рейс1.НомерНакладной КАК НомерНакладной1,
    ПУ_Рейс1.Вагон КАК Вагон1
    ИЗ
    Документ.ПУ_Рейс КАК ПУ_Рейс
    ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПУ_Рейс КАК ПУ_Рейс1
    ПО ПУ_Рейс.НомерНакладной = ПУ_Рейс1.НомерНакладной
    И ПУ_Рейс.Вагон = ПУ_Рейс1.Вагон
    ГДЕ
    ПУ_Рейс.Дата МЕЖДУ &Дата1 И &Дата2
    СГРУППИРОВАТЬ ПО
    ПУ_Рейс.НомерНакладной,
    ПУ_Рейс.Вагон,
    ПУ_Рейс1.Ссылка,
    ПУ_Рейс1.НомерНакладной,
    ПУ_Рейс1.Вагон
    ИМЕЮЩИЕ
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ПУ_Рейс.Ссылка) > 1
    УПОРЯДОЧИТЬ ПО
    Вагон,
    Вагон1
    ИТОГИ
    КОЛИЧЕСТВО(Всего)
    ПО
    ОБЩИЕ
    Теперь я так понимаю надо сделать условие, что если предыдущий равен текущему, то например 1, иначе 0 и потом как то те , что 1 пометить :)
  14. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.649
    Симпатии:
    948
    Баллы:
    204
    1 Ну можно и так - Выгрузить в ТЗ и обработать
    2. Я предлагал на форме сделать табличную часть в котором будет 2 поля Не Удалять (Булево) и Ссылки
    Вы в эту табличную часть выгружаете все свои ссылки, а затем напротив тех что нужно оставить - ставите галочки. потом нажимате на кнопку и по ней обработка всех у кого нет галочки - метит на удаление.
    Просто тут + в чем вышло у Вас

    0000001 ссылка 1
    0000001 ссылка 2
    0000001 ссылка 3


    0000002 ссылка 4
    0000002 ссылка 5
    0000002 ссылка 6

    а вам надо оставить с номером 1 - ссылку 2, а с номером 2 - ссылку 4

    Програмно вам так не написать. А так посмотрели - сами вынесли приговор и вперед
  15. TopicStarter Overlay
    PavelA
    Offline

    PavelA Опытный в 1С

    Регистрация:
    26 дек 2011
    Сообщения:
    739
    Симпатии:
    0
    Баллы:
    26
    Вот это не совсем понял! Проблема в том, что таких дублей 15 тысяч) Довольно долгий процесс сидеть и перебирать)
    По идее ведь можно свернуть по накладной а потом выгрузить и пометить как то!
  16. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.649
    Симпатии:
    948
    Баллы:
    204
    Да можно. Просто тут вопрос какой документ оставлять - а какие помечать? если оставлять самый первый созданый хронологически, то тогда выгружайте резуьлат запроса в ТЗ сотрируйте по номеру и дате, а потом ваш алгоритм. с проверкой предыдущего
  17. TopicStarter Overlay
    PavelA
    Offline

    PavelA Опытный в 1С

    Регистрация:
    26 дек 2011
    Сообщения:
    739
    Симпатии:
    0
    Баллы:
    26
    А как программно пометить на удаление?
  18. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    УстановитьПометкуУдаления() вроде так называется
  19. mialord
    Offline

    mialord Модераторы Команда форума Модератор

    Регистрация:
    31 июл 2009
    Сообщения:
    5.400
    Симпатии:
    40
    Баллы:
    54
    Странный вопрос, документы нумератором нумеруются с учетом интервала и обязаны быть уникальны, фактически это доп. ключ таблицы базы данных, но в пределах нумератора они могут и должны повторяться, посему задача не понятна.
    Обработка поиска и замены Вам не подходит у нее совсем другие цели, если уж решили делать то просто сделайте запрос с группировкой номеров документов и отбором количество номеров больше 1, там делов то на 5 минут
  20. TopicStarter Overlay
    PavelA
    Offline

    PavelA Опытный в 1С

    Регистрация:
    26 дек 2011
    Сообщения:
    739
    Симпатии:
    0
    Баллы:
    26
    Прошу прощения, не очень понял... В чем данные действия неправильные?)

Поделиться этой страницей