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

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

04.05.2011, 15:45. Показов 29423. Ответов 16
Метки нет (Все метки)

Добрый день!

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

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

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

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

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

Спасибо!
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.05.2011, 15:45
Ответы с готовыми решениями:

Выгрузка контрагентов
Приветствую всех! Такой вопрос: при выгрузке из 1С контрагентов получаем строку примерно такого...

Действия контрагентов
Делаю первые шаги в изучении 1С. Не могу сделать одно задание, в интернете подходящего ни чего...

Реестр контрагентов
Добрый день! подскажите как в экселе сделать так что бы например: есть таблица с юр лицами, у...

Выборка контрагентов по собственнику
Доброго времени суток! Уважаемые! оч. прошу помочь... написал обработку, которая...

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

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


Добавлено: Эмм, функции "НайтиСсылки" нет.
У меня восьмерка, а не семерка...
Истребитель
04.05.2011, 20:23 4
Разобрался, называется немного иначе и работает немного иначе но всё равно работает

Как и подозревал, есть дубликаты, участвующие аж во вводе начальных остатков. Вопрос - нормально ли их трясти? (т.е. заменять контрагента в документе ввод начальных остатков и перепроводить документ, по сути, задним числом)?
0 / 0 / 0
Регистрация: 24.12.2008
Сообщений: 1,399
05.05.2011, 04:56 5
Вы ребята молодцы, что готовы это писать! Но не надо)
Гуглите "Поиск и замена значений". Можно на ИТС.
И перепроводить не надо ничего.
0
Истребитель
05.05.2011, 09:28 6
Благодарю! Именно это, вероятно, и искал. Но как же не перепроводить?

Допустим есть документ - продажа товара. Он делает проводку - вешает "долг" на покупателя и в плюс пишет сумму проданного.
Если я сменю покупателя - как же я могу не перепровести документ, ведь пока я не перепровёл, проводка останется на того, предыдущего контрагента?
Или я не прав?
0 / 0 / 0
Регистрация: 07.07.2008
Сообщений: 1,401
05.05.2011, 09:46 7
Гуглите "Поиск и замена значений". Можно на ИТС.
Пасиб - мне тож пригодится. Хотя лично мне дописывать однозначно придется - у меня часть данных хранится в списочке свернутом в строку в элементе справочника.
0
0 / 0 / 0
Регистрация: 24.12.2008
Сообщений: 1,399
05.05.2011, 10:06 8
Цитата Сообщение от Истребитель
Благодарю! Именно это, вероятно, и искал. Но как же не перепроводить?

Допустим есть документ - продажа товара. Он делает проводку - вешает "долг" на покупателя и в плюс пишет сумму проданного.
Если я сменю покупателя - как же я могу не перепровести документ, ведь пока я не перепровёл, проводка останется на того, предыдущего контрагента?
Или я не прав?
Замена ссылок происходит в том, числе и наборах записей.
Но если, например, аванс висел на одном, реализация на другом, то зачет аванса надо перерассчитывать... ну вы поняли.
0
1 / 1 / 0
Регистрация: 15.11.2009
Сообщений: 947
05.05.2011, 10:13 9
Перепроведение - это смерть.
Обработка "Поиск и замена значений" может заменить Клиента в регистрах и проводках.
0
1 / 1 / 0
Регистрация: 04.12.2005
Сообщений: 1,588
05.05.2011, 10:35 10
а обработка меняет только контрагента или же договор тоже? в смысле можно такой обработкой воспользоваться если мне нужно не контрагента поменять а один договор на другой?
0
0 / 0 / 0
Регистрация: 24.12.2008
Сообщений: 1,399
05.05.2011, 11:12 11
Она все, что угодно меняет...
0
Истребитель
05.05.2011, 12:55 12
То есть если у меня есть контрагент, на него документы - счет на оплату, реализация товаров и услуг, договор, счет в банке, и их записи в регистрах, то эта обработка заменит всё везде одновременно, счет перейдет на другого контрагента, договор тоже, и записи в регистрах. Как она это сделает в обход функций "при записи" и без отмены проведения документа, разве в 1С не автоматически документ при записи отменяет проведение?
0 / 0 / 0
Регистрация: 07.07.2008
Сообщений: 1,401
05.05.2011, 13:02 13
разве в 1С не автоматически документ при записи отменяет проведение?
Не обязательно.
0
0 / 0 / 0
Регистрация: 24.12.2008
Сообщений: 1,399
05.05.2011, 19:20 14
Цитата Сообщение от Истребитель
. Как она это сделает в обход функций "при записи" и без отмены проведения документа, разве в 1С не автоматически документ при записи отменяет проведение?
Через набор записей. Документ может иметь проводки и без проведения вообще.
0
1 / 1 / 0
Регистрация: 04.12.2005
Сообщений: 1,588
05.07.2012, 12:45 15
а от какого числа на диске ИТС есть эта обработка? или ее на сайте можно скачать?
0
1 / 1 / 0
Регистрация: 15.11.2009
Сообщений: 947
05.07.2012, 13:08 16
Цитата Сообщение от KiR
а от какого числа на диске ИТС есть эта обработка? или ее на сайте можно скачать?
Ну ты лентяй! Да на всех ИТС она есть. "ПоискИЗаменаЗначений.epf"
0
1 / 1 / 0
Регистрация: 04.12.2005
Сообщений: 1,588
05.07.2012, 13:22 17
ой, и в правду есть. вот только стоит пользоваться виндовым поиском вместо итс!
Дайнеко, пасиба агромное!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.07.2012, 13:22
Помогаю со студенческими работами здесь

Выгрузка Контрагентов. телефоны
Доброго времени суток Помогите с сабжем Используется 1с 7.7 Торговля+Склад 9.2 Необходимо...

Загрузка контрагентов из ТиС в УТ
Всем доброго времени суток! Суть проблемы: Написать внешнюю обработку для загрузки...

Поиск дублей контрагентов в БД
Суть цикла - беру первую запись и сраниваю ее с последующими и т.д. На 10 000 записей, ой блин, как...

Изменение скидки у Контрагентов
Ребята, подскажите, как изменить значение скидки у контрагента и как очистить поле скидка? Имеется...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru