Дубликаты контрагентов, замена ссылок на контрагентов в документах

Тема в разделе "1C и всё что с ней связано", создана пользователем Истребитель, 5 май 2011.

  1. Истребитель

    Истребитель Well-Known Member

    Регистрация:
    9 июн 2010
    Сообщения:
    110
    Симпатии:
    0
    Добрый день!

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

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

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

    Вопрос первый - правильно ли я мыслю? Так ли стоит делать? Быть может есть ошибка, или есть какой-то известный способ сделать проще, или готовая обработка?

    Вопрос второй - как получить список всего, что ссылается на объект? Как например при удалении обработка показывает - какие есть ссылки, как мне сделать такой запрос? Конкретно - мне нужны все ссылки на контрагента, но ведь удалялка 1С для любых объектов показывает это, интересно, как это делается?

    Спасибо!
     
  2. KiR

    KiR НЕ шибка опытный програмер)
    1C Team

    Регистрация:
    11 сен 2007
    Сообщения:
    1.581
    Симпатии:
    0
    логика у тебя верная, ИМХО. тебе поможет
    НайтиСсылки(<?>,);
    Синтаксис:
    НайтиСсылки(<Объекты>,<Ссылки>)
    Назначение:
    Находит ссылки на объекты, переданные в списке значений.
    Параметры:
    <Объекты> - конкретное значение искомого объекта или значение типа ''СписокЗначений'', в котором данной процедуре передаются объекты, по которым надо найти ссылки.
    <Ссылки> - идентификатор объекта типа ''ТаблицаЗначений'', в который данная процедура помещает найденные ссылки на объекты. Таблица значений состоит из 3 колонок: 1. объект на который ссылаются; 2. объект, который содержит ссылку; 3. комментарий к ссылке.
     
  3. Истребитель

    Истребитель Well-Known Member

    Регистрация:
    9 июн 2010
    Сообщения:
    110
    Симпатии:
    0
    Спасибо, видимо это то, что нужно.

    Не будет ли базе "плохо" от перепроведения такого количества документов?
    Нет ли какого-то "закрытия года" или что-то типа того, что подразумевает, что документы в той части уже не должны меняться больше?


    Добавлено: Эмм, функции "НайтиСсылки" нет.
    У меня восьмерка, а не семерка...
     
  4. Истребитель

    Истребитель Well-Known Member

    Регистрация:
    9 июн 2010
    Сообщения:
    110
    Симпатии:
    0
    Разобрался, называется немного иначе и работает немного иначе но всё равно работает :)

    Как и подозревал, есть дубликаты, участвующие аж во вводе начальных остатков. Вопрос - нормально ли их трясти? (т.е. заменять контрагента в документе ввод начальных остатков и перепроводить документ, по сути, задним числом)?
     
  5. unknown181538

    unknown181538 НеГуру
    1C Team

    Регистрация:
    28 дек 2008
    Сообщения:
    1.418
    Симпатии:
    0
    Вы ребята молодцы, что готовы это писать! Но не надо)
    Гуглите "Поиск и замена значений". Можно на ИТС.
    И перепроводить не надо ничего.
     
  6. Истребитель

    Истребитель Well-Known Member

    Регистрация:
    9 июн 2010
    Сообщения:
    110
    Симпатии:
    0
    Благодарю! Именно это, вероятно, и искал. Но как же не перепроводить?

    Допустим есть документ - продажа товара. Он делает проводку - вешает "долг" на покупателя и в плюс пишет сумму проданного.
    Если я сменю покупателя - как же я могу не перепровести документ, ведь пока я не перепровёл, проводка останется на того, предыдущего контрагента?
    Или я не прав?
     
  7. puh14

    puh14 Well-Known Member
    1C Team

    Регистрация:
    11 июл 2008
    Сообщения:
    1.412
    Симпатии:
    0
    Пасиб - мне тож пригодится. Хотя лично мне дописывать однозначно придется - у меня часть данных хранится в списочке свернутом в строку в элементе справочника.
     
  8. unknown181538

    unknown181538 НеГуру
    1C Team

    Регистрация:
    28 дек 2008
    Сообщения:
    1.418
    Симпатии:
    0
    Замена ссылок происходит в том, числе и наборах записей.
    Но если, например, аванс висел на одном, реализация на другом, то зачет аванса надо перерассчитывать... ну вы поняли.
     
  9. Дайнеко

    Дайнеко Well-Known Member
    1C Team

    Регистрация:
    19 ноя 2009
    Сообщения:
    951
    Симпатии:
    0
    Перепроведение - это смерть.
    Обработка "Поиск и замена значений" может заменить Клиента в регистрах и проводках.
     
  10. KiR

    KiR НЕ шибка опытный програмер)
    1C Team

    Регистрация:
    11 сен 2007
    Сообщения:
    1.581
    Симпатии:
    0
    а обработка меняет только контрагента или же договор тоже? в смысле можно такой обработкой воспользоваться если мне нужно не контрагента поменять а один договор на другой?
     
  11. unknown181538

    unknown181538 НеГуру
    1C Team

    Регистрация:
    28 дек 2008
    Сообщения:
    1.418
    Симпатии:
    0
    Она все, что угодно меняет...
     
  12. Истребитель

    Истребитель Well-Known Member

    Регистрация:
    9 июн 2010
    Сообщения:
    110
    Симпатии:
    0
    То есть если у меня есть контрагент, на него документы - счет на оплату, реализация товаров и услуг, договор, счет в банке, и их записи в регистрах, то эта обработка заменит всё везде одновременно, счет перейдет на другого контрагента, договор тоже, и записи в регистрах. Как она это сделает в обход функций "при записи" и без отмены проведения документа, разве в 1С не автоматически документ при записи отменяет проведение?
     
  13. puh14

    puh14 Well-Known Member
    1C Team

    Регистрация:
    11 июл 2008
    Сообщения:
    1.412
    Симпатии:
    0
    Не обязательно.
     
  14. unknown181538

    unknown181538 НеГуру
    1C Team

    Регистрация:
    28 дек 2008
    Сообщения:
    1.418
    Симпатии:
    0
    Через набор записей. Документ может иметь проводки и без проведения вообще.
     
  15. KiR

    KiR НЕ шибка опытный програмер)
    1C Team

    Регистрация:
    11 сен 2007
    Сообщения:
    1.581
    Симпатии:
    0
    а от какого числа на диске ИТС есть эта обработка? или ее на сайте можно скачать?
     
  16. Дайнеко

    Дайнеко Well-Known Member
    1C Team

    Регистрация:
    19 ноя 2009
    Сообщения:
    951
    Симпатии:
    0
    Ну ты лентяй! Да на всех ИТС она есть. "ПоискИЗаменаЗначений.epf"
     
  17. KiR

    KiR НЕ шибка опытный програмер)
    1C Team

    Регистрация:
    11 сен 2007
    Сообщения:
    1.581
    Симпатии:
    0
    ой, и в правду есть. вот только стоит пользоваться виндовым поиском вместо итс!
    Дайнеко, пасиба агромное! :)
     
Загрузка...
Похожие Темы - Дубликаты контрагентов замена
  1. Олег130465
    Ответов:
    0
    Просмотров:
    967

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