gifts2017

Поиск и замена значений посредством SQL-запросов

Опубликовал Сергей Костяков (Sorm) в раздел Программирование - Инструментарий

Обработка и хранимая процедура предназначены для поиска и замены значений в SQL-базе посредством прямых sql-запросов. UPD Внимание! Работает только при замене любой аналитики на новую! К сожалению, слияние аналитики не работает. Пишу гибридную версию.
UPD Не прошло и года, как я написал гибридную версию:).

Платформа 8.2.13.219. Конфигурация - БП 2.0.20.10. Версия SQL - 2008.

В процессе работы встала задача замены аналитики без перепроводки документов. Стандартная обработка "ПоискИЗамена" не подходила как по скорости работы, так и по вышеуказанному ограничениям. Решил реализовать алгоритм  со стороны базы данных. Результатом служит указанная хранимая процедура и обработка(обработка, главным образом, для красоты и удобства).

Инструмент получился мощный, использовать с осторожностью, на свой страх и риск. После каждого  применения в начале делал ТИИ, ошибок не находил. По понятным причинам после применения требуется пересчет итогов и переиндексация.

Это моя первая публикация, за любую обратную связь буду благодарен.

UPD. Доработал:) Берем архив, распаковываем. Там два текстовых файла и обработка. В текстовых файлах - код процедур поиска и замены. Берем прямо текст и создаем процедуры у себя на сервере СУБД. Внешний вид обработки не изменился.

Внимание! Не использовать для баз с обменом!(Верней, надо тогда будет проводить замену на всех базах, участвующих в обмене)

После применения обработки ОБЯЗАТЕЛЬНЫМ условием является пересчет итогов(ну и проверка ссылочной целостности).

Проверял на УТ, БП, ссылки заменяет корректно, на УТ остатки сходятся, на БП суммы по счетам сходятся. Все ссылки на предыдущий объект пропадают(кроме ссылки в справочнике). Брал контрагенты, склады, товары.

P.s. Ну и, как всегда, пишите. И прошу прощения по срокам, 2 смены работы, и пр. и пр....

Скачать файлы

Наименование Файл Версия Размер
UpdпоискИЗамена 58
.rar 8,03Kb
22.10.12
58
.rar 8,03Kb Скачать

См. также

PowerTools от 1 000
Подписаться Добавить вознаграждение
Комментарии
0. Сергей Костяков (Sorm) 17.07.11 07:39
Обработка и хранимая процедура предназначены для поиска и замены значений в SQL-базе посредством прямых sql-запросов. UPD Внимание! Работает только при замене любой аналитики на новую! К сожалению, слияние аналитики не работает. Пишу гибридную версию.
UPD Не прошло и года, как я написал гибридную версию:).

Перейти к публикации

1. Игорь Исхаков (Ish_2) 17.07.11 07:39
Серия N+1.
Хотя , Использование недокументированных возможностей
1. Противоречит интересам фирмы 1с.
2. Нарушает лицензионное соглашение.
Но
1. Соответствуют законодательству РФ
2. Отвечает интересам владельца БД(базы данных).
2. Сергей Костяков (Sorm) 17.07.11 15:16
Я недавно работаю с 1с, до этого работал с системами, более "близкими" к SQL-серверу, т.е. использующими его функционал гораздо более полно - SP, функции, триггеры, и пр, в т.ч. и интеграцию с другими системами на уровне сервера. Любые "родные" движки этих систем при приближении к объема базы к 1 терабайту(приблизительно) уже не удовлетворяли по быстродействию при выполнении каких=то массовых операций, поэтому все частные задачи решались уже конкретными скриптами. Ну вот я рещил попробовать то же самое с базой 1с. Честно сказать, я не понял, в чем "недокументирование" возможностей - база как база. По поводу нарушения лицензионного соглашения - ну, тут сказать ничего не могу. Но вроде как мое решение некоммерческое и использование связано с определенным риском. Пользуйтесь осторожно или не пользуйтесь - как я и писал.
3. Игорь Исхаков (Ish_2) 17.07.11 17:32
Любые "родные" движки этих систем при приближении к объема базы к 1 терабайту(приблизительно) уже не удовлетворяли по быстродействию при выполнении каких=то массовых операций, поэтому все частные задачи решались уже конкретными скриптами.


Вопрос :
как поставщики решений относились к такому творчеству ?
Из своего опыта скажу , что также как и 1с ,
т.е. резко отрицательно , с угрозами снятия с поддержки.
4. Сергей Костяков (Sorm) 17.07.11 18:07
Подписки на события и собственные модули ещё никто не отменял, мне кажется. Ну вот подобных принципов придерживаются и все остальные разработчики. И потом, решения для заказчиков с размерами баз терабайт и более, они... "законно" обладают некоторой самостоятельностью. Потому что заказчики не простые.
5. Роман Романов (romansun) 17.07.11 19:46
(4)

А можно чуть подробнее про сферу, где такие базы? Очень интересно, до куда уже дотянулась "рука 1С".
Ну, насколько возможно, разумеется :)

По поводу применения sql в 1С - да, применяется без проблем, можно хоть весь функционал переписать, в 1С оставить только кнопки. Работает только в путь, быстро настолько, что не успеваешь "мама" сказать, когда жмакает F5 в квери аналайзере и в последний момент замечаешь, что мааааааленький косячок-таки закрался в инсерт инто или делейт :D

По поводу недокументированности - да, не даёт 1С из под 1С фунционала прямого доступа. Такая вот позиция. Причина - посмотрите, тут на инфостарте есть несколько топиков, где народу помогают с битыми базами, и в каждом третьем посте - "последний бэкап три месяца назад, памагите!!! что делать????". А если б из под 1С-ных запросов можно было не только select писать, а и delete, то новых интересных топиков на ИС было бы в 10 раз больше ))))


Моё личное мнение - я тоже не восторге от использования sql. Причины - возможная криворукость программистов и плачевные последствия. Плюс - существенное усложнение поддержки. Особенное, если sql используется в постоянно работающих алгоритмах.

На своей базе иногда использую.


(3)
поставщики решений (oracle к примеру) относятся обычно нормально :) - собственно там весь код может быть как раз и есть sql + какая-то интерфейсная приблуда. Примеры: АБС в банках.
6. Игорь Исхаков (Ish_2) 17.07.11 19:54
(5) У каждого свой опыт.
Поставщики решений (oracle к примеру) относятся именно так : Боже упаси.
Хм.. Имею опыт работы с одним таким "мировым лидером".
Так и не удалось добиться , чтобы в символьное поле комментария(разумеется неключевое) одной таблицы писалась некоторая символьная информация (Update).

Другими словами , поставщики отказались создать хранимую процедуру ,
на вход которой я бы посылал два параметра для модификации таблицы : Ключ и символьное значение.
7. Сергей Костяков (Sorm) 17.07.11 20:42
А можно чуть подробнее про сферу, где такие базы? Очень интересно, до куда уже дотянулась "рука 1С".

Она пока туда не дотянулась:) Слишком велики объемы данных, чтобы можно было не использовать компиляцию, индексированные временные таблицы и пр. изыски.
По поводу недокументированности - да, не даёт 1С из под 1С фунционала прямого доступа.

И правильно, на мой взгляд. Моя задача и решение - частные, конечно. Просто я вот так вот решил, исходя из опыта и возможностей. А люди делятся на 2 категории - которые делают бэкапы и которые будут их делать.
Так и не удалось добиться , чтобы в символьное поле комментария(разумеется неключевое) одной таблицы писалась некоторая символьная информация (Update).

Это цветочки. Ягодки - это когда ты требуешь не разработки, а соблюдения(!) стандартов ... ну, хотя бы обмена. "Мировые лидеры" класть хотели на какие-то договоренности, и частенько сообщения приходят с другой структурой полей или другими форматами кодов. Так что базу после обмена приходится "причесывать" шаблонами и разборами. В этом отношении, работая с 1с, просто отдыхаешь.
8. Андрей Куришко (boggonzikov) 17.07.11 23:18
Хорошая вещь, если умеешь этим пользоваться.
Можешь еще сделать, чтобы можно было заменять любой ссылочный тип, а не только справочник ?
9. Сергей Костяков (Sorm) 17.07.11 23:48
(8) Да. Открою тайну - я как раз сначала написал более общий случай, замену любых ссылочных типов на другие, но потом решил ограничить дело только справочниками, и подстраховался дополнительно проверкой ссылки по коду и значению. Там процедуру надо немного править для работы с любыми ссылочными типами.
10. Антон Лыткин (Trise) 26.07.11 10:28
Решение похожей задачи наблюдал в 77.
Для полной однозначности заменяеммых значений входными параметрами функции должны быть не код и наименование, а функция УникальныйИдентификатор() ссылки или ЗначениеВСтрокуВнутр смотря как они храняться в SQL.
11. Антон Лыткин (Trise) 26.07.11 10:58
Так же данная обработка может быть смертельной, при использовании РИБ (распределенных информационных баз), так как она дожна помечать объекты для фиксирования их в узлах обмена. А там еще встречается логика, такая как пометить для обмена только для определенной организации.
12. Сергей Костяков (Sorm) 27.07.11 12:06
(10) "функция УникальныйИдентификатор() ссылки или ЗначениеВСтрокуВнутр смотря как они храняться в SQL." Результат первой ничего не дает, результат второй надо резать...
(11) Что касается текущей базы - она помечает, однако, везде, а вот то самое ЗначениеВСтрокуВнутр() в удаленной базе да, придется менять.
13. sound sound (sound) 24.08.11 16:28
(0) Мне нужно заменить один элемент плана видов характеристик на другой (вид субконто), как мне Ваша обработка может помочь?
14. alex lost (fit686) 21.10.11 22:07
Так же необходимо заменить УникальныйИдентификатор() в одном справочнике на соответствующие из другого,или это лучше делать обработкой синхронизации справочников?
15. Сергей Костяков (Sorm) 22.10.11 00:52
(13) Заменить - можно, но - конкретные значения по этому субконто куда девать? Тоже надо будет менять.
(14) УникальныйИдентификатор() - функция, в базе физически лежит другое значение. Надо менять его.
16. sound sound (sound) 22.10.11 11:52
(15) У меня в плане видов характеристик 2 вида субконто, но они ссылаются на один и тот же справочник. Получилось так, что были заведены 2 элемента с одним названием и типом значения, вернее 1 был предопределенный и зачем-то завели еще один точно такой же. На вопрос "а нахрена это было надо?" теперь никто ответить не может. И в плане счетов на одних счетах стоит один вид субконто, а на других другой, соответственно и в бухгалтерском регистре творится такая же хрень. Не знаю чем это может грозить в плане искажения информации, ведь по идее значения этих субконто - это элементы одного справочника, но из-за этого становится невозможным сделать, например, тот же Анализ субконто, и приходится как-то извращаться, чтобы получить то что нужно.
Ссылки на Виды Субконто ведь "живут", как ни странно, только в регистрах бухгалтерии. Попробовал на копии запустить обработку по переделке всего этого безобразия, почти как "Поиск и замена значений" только в режиме "Обмен.Загрузка = Истина", первые 2 раза (по 3 дня каждый раз) она так и не отработала вынося платформу с критической ошибкой "Нехватка памяти". Потом запустил с сервера, она вроде отработала, но ссылки все остались на месте - ничо не понял, возможно криво написана. Вот поэтому все еще думаю как это победить :(
17. Сергей Костяков (Sorm) 22.10.11 16:03
(16) Тогда можно. Я имел в виду замену разных типов субконто - контрагенты на материалы, к примеру(уж не знаю, зачем такая блажь, но вдруг...) Виды субконто одного типа можно заменить.
18. sound sound (sound) 22.10.11 16:08
(17) Подскажите, пожалуйста, порядок действий, просто доселе ничем подобным не занимался. Ну создать хранимую процедуру, допустим осилю, а дальше что? Скопировать туда текст Вашей процедуры, ничего в ней менять не нужно? И в обработке вроде там только справочники? Или я что-то не так понял?
19. Сергей Костяков (Sorm) 22.10.11 16:21
(18) Мою хранимую процедуру надо упростить. Требуется обойти проверки на то, что это элементы справочника, соотвественно, вот сюда :

--Получаем ссылки
exec ('insert #temp(sourc) select _IDRRef from '+@table_name_exclude+' where _code = '''+@code_sourse+''' and _description = '''+@desc_source+'''')
exec ('insert #temp(dest) select _IDRRef from '+@table_name_exclude+' where _code = '''+@code_dest+''' and _description = '''+@desc_dest+'''')

Надо подсунуть ссылки(т.е. идентификаторы) на указанных видов субконто. Посмотреть, где они хранятся, можно обработкой "Описание метаданных"(вроде, навскидку не помню), короче, обработкой, которая показывает, в каких таблицах(верней, таблице) хранятся виды субконто. Получится нечто вроде:

exec('insert #temp(sourc) select _IDRREF from '+(таблица определения субконто)+' where '(отличительные признаки вида субконто) = конкретные значения для данного вида субконто.
И запустить процедуру.
Это сделать, понятное дело, на тестовой базе+ ВНИМАТЕЛЬНО ПРОСМОТРЕТЬ ЧТО СКАЖЕТ СЕРВЕР! если все ок, сделать ТИИ, пересчитать остатки. Проверить.
20. sound sound (sound) 22.10.11 16:49
(19) Жаль что пока, к сожалению, времени нет на эксперименты, потому что чувствую мне долго придется вкуривать это дело. Но пробовал с помощью Вашей обработки заменить в тестовой базе элементы справочников, выдавалась ошибка SQL сервера, что-то вроде "переполнен журнал транзакций" или что-то в этом духе.
21. Андрей Куришко (boggonzikov) 11.11.11 15:29
В чем может быть причина ошибки:
Ошибка при вызове метода контекста (Execute): Произошла исключительная ситуация (Microsoft SQL Server Native Client 10.0): Недопустимое имя столбца "_code".
CommandSQL.Execute();
по причине:
Произошла исключительная ситуация (Microsoft SQL Server Native Client 10.0): Недопустимое имя столбца "_code".
На некоторых справочниках отрабатывает, на других выдает ошибку
Или подскажи как переписать хранимую процедуру, чтобы работало по УникальныйИдентификатор?
Спб
22. Андрей Куришко (boggonzikov) 11.11.11 16:48
(21) Нашел в чем причина, не верно определяется таблица хранения
Строка = ТЗ.Найти("Справочник."+строка(тип));
заменить на
Строка = ТЗ.Найти("Справочник."+ СтарыйОбъект.Метаданные().Имя, "ИмяТаблицы");
23. Сергей Костяков (Sorm) 12.11.11 23:55
24. Andrey Krapivin (kr_andr) 23.11.11 10:30
25. Иван (garcevis) 16.12.11 14:35
Спасибо. Стоит примерно такая же задача. Сейчас скачаю теект процедуры и попробую
26. Максим Ковалев (maxsoft83) 02.02.12 18:31
Доброго дня. Загнал процедуру в свою базу под 2005 SQL, запускаю замену одного элемента на другой (причем не из 1С, а на прямую в SQL) крутиться бесконечно долго и никаких результатов. В чем может быть проблемма, есть какиенибуть мысли?
27. Максим Ковалев (maxsoft83) 03.02.12 11:59
И так в продолжении справочник номенклатуры 312 тыщ записей, конфа УПП 1.2, запустил на ночь свертку 2 х позиций. Через 1С'овскую обработину глянул сколько ссылок на объекты на каждый было не больше 50 ссылок. Время выполнения свертки 3,40 минут и в итоге вывалились ошибки:

Сообщение 2601, уровень 14, состояние 1, строка 1
Невозможно вставить повторяющуюся ключевую строку в объект "dbo._ReferenceChngR2461" с уникальным индексом "_Refere2461_ByDataKey_RR".
Выполнение данной инструкции было прервано.
Сообщение 2601, уровень 14, состояние 1, строка 1
Невозможно вставить повторяющуюся ключевую строку в объект "dbo._AccRgAT21549" с уникальным индексом "_AccRg21549_ByPeriod_TRRRRRN".
Выполнение данной инструкции было прервано.
Сообщение 2601, уровень 14, состояние 1, строка 1
Невозможно вставить повторяющуюся ключевую строку в объект "dbo._AccRgAT21549" с уникальным индексом "_AccRg21549_ByPeriod_TRRRRRN".
Выполнение данной инструкции было прервано.
Сообщение 2601, уровень 14, состояние 1, строка 1
Невозможно вставить повторяющуюся ключевую строку в объект "dbo._AccRgAT21579" с уникальным индексом "_AccRg21579_ByPeriod_TRRRRRN".
Выполнение данной инструкции было прервано.
28. Сергей Костяков (Sorm) 03.02.12 17:10
(27) maxsoft83, Будем разбираться. Спотыкается об уникальный индекс, понятно... У меня такого не вылезало.
29. Максим Ковалев (maxsoft83) 03.02.12 17:48
(28) Sorm, а что по поводу производительности? ... получается что сама 1С все это сделает ну так раз 12-15 быстрее. либо 10-20 минут либо почти 4 часа, по идее все должно быть на оборот. в чем может быть загвоздка? может я что-то сделал не так?
30. Максим Ковалев (maxsoft83) 08.02.12 12:08
(28) Sorm,
Еще я просмотрел количество таблиц получаемых на одну позицию .. получается больше 30000 таблиц ... по моему многовато

я не настолько хороший знаток SQL, но может быть проблема в этом запросе

Select column_name,table_name from
(Select
source.name as column_name
, tables_name.name as table_name
from
(select * from sys.columns where system_type_id = 173) source
inner join
(select object_id,name from sys.objects where type = 'U') tables_name
on
source.object_id = tables_name.object_id) source2

все ли ограничения наложены ... или если у меня более 10 БД на SQL он выбирает ссылки по всем таблицам в этих БД?
31. Сергей Костяков (Sorm) 08.02.12 12:27
(30) maxsoft83, Каких 30 тысяч таблиц в сеансе??
Select distinct table_name from
(Select
source.name as column_name
, tables_name.name as table_name
from
(select * from sys.columns where system_type_id = 173) source
inner join
(select object_id,name from sys.objects where type = 'U') tables_name
on
source.object_id = tables_name.object_id) source2
Выдает 1072 строки таблиц, содержащих ссылки. Бухия 2.0. Дальше смотри по процедуре - там идет отсечка таблиц, не имеющих в какой-либо колонке данного типа упомянутого значения замены. Я прошу прощения, просто занят сильно последнее время, не могу взяться за процедуру и сесть в профайлер. Процедуру придется менять, то ли таблицы остатков отсекать с обязательным пересчетом по окончании работы процедуры, то ли апдейтить их через временные таблицы с группировкой по индексу. Все задачи решаемы, просто времени пока нет.
32. Максим Ковалев (maxsoft83) 08.02.12 12:58
(31) Sorm, Ну как бы у меня УПП))) там таблиц в принципе больше .. ладно попытаю порыть в редбуке, а какое время замены одной позиции на бухе??
33. Сергей Костяков (Sorm) 08.02.12 13:07
(32) maxsoft83, Ну не в 10 раз же... Размер базы какой? У меня такая вот фихня отрабатывала 15 минут на базе порядка 20 ГБ.
34. Максим Ковалев (maxsoft83) 08.02.12 14:33
У меня база 104 Gb .... так что видимо 15 минут для меня не светят, да и собственно тоже самое что через саму эску ..... потому как бы не вижу смысла заходить со стороны сиквела. если бы это процесс занимал хотябы 5 минут, а так получается то на то и выходит. у меня через эску слегка модифицированная обработка эсовская как раз сворачивает порядка 3 позиций в час.
35. Сергей Костяков (Sorm) 08.02.12 15:45
(34) maxsoft83, Можно отловить процедуру в профайлере, которой отыскиваются все ссылки на указанный элемент, разобрать её ответ и уже работать от неё. Попробую.
36. Максим Ковалев (maxsoft83) 08.02.12 15:56
(35) Sorm, будем ждать результатов))) в свою очередь попытаюсь осилить тоже самое со своей стороны, может что получиться)
37. Сергей Костяков (Sorm) 20.02.12 11:46
Да, господа, поправил публикацию. К сожалению, механизмы 1с в части модификации остатков трансцедентны и непознаваемы(в реальности просто очень сложны , в сумме потратил 2-е суток на профайлер). В настоящий момент изменил заголовок темы, процедура и скрипт остаются рабочими, но, к сожалению, работать будут только при замене аналитики на полностью новую. Т.е. как если бы вам нужно перекинуть остатки с одного контрагента на нового(только что введенного). Или на новую статью затрат, к примеру. "Слияния" аналитики реализовать не удалось, в настоящий момент пишу гибридную версию, которая в части работы работы с остатками и регистрами будет использовать механизм 1с, а в части работы с документами - механизмы SQL.
38. Сергей Костяков (Sorm) 22.10.12 09:52
Доработал, тестируйте. Движок теперь сам считает итоги, остальное делается скриптом.
39. Михаил Ражиков (tango) 22.10.12 11:19
Как оказалось, я уже плюсовал это дело, так что респект еще раз без +.

А теперь как-то возник вопрос по поводу
В процессе работы встала задача замены аналитики без перепроводки документов. Стандартная обработка "ПоискИЗамена" не подходила


мне и в голову не пришло бы использовать П&З для задачи, поскольку очевидно, что для "без перепроведения" надо менять не только реквизиты, но и аналитику в движениях. Но и в СКЛ бы не полез - пять минут, как говорится, в конфигураторе.
И раз уж все равно пересчитывать итоги в 1ске, то нафига огород городить? Неужели настолько существенен выигрыш по времени? По комментам судя, выигрыша-то и нет...
40. Сергей Костяков (Sorm) 22.10.12 11:57
(39) tango, предполагалось, что все манипуляции с базой данных будут выполнены "за движком" 1с, причем минимальным числом запросов. Т.е. я отпишу Update на таблицу документа по условию, а не сделаю миллион запросов на тот же самый апдейт через движок. Идея была такова. Совсем "за движком" не получилось, приходится анализировать структуру метаданных + исключать итоги(ибо не уверен, что хорошо переводить базу в режим разделения итогов, а без него модифицировать итоги не хочу, ибо не знаю результата), но принцип остался тот же.
"пять минут, как говорится, в конфигураторе. " Какой примерно алгоритм для замены одного контрагента другого "везде" через конфигуратор?
41. Михаил Ражиков (tango) 22.10.12 12:08
Какой примерно алгоритм для замены одного контрагента другого "везде" через конфигуратор?


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

1 запрос - получаем список доков, где реквизит = Контрик
2. ползем по списку, подставляем реквизит - записываем без проведения. в движениях подставляем контрика. это можно не торопясь в фоновом режиме
3. если РИБ - записываем состояния изменения

ну, и итоги, если надо

весь трабл - в скорости. практически эта задача не требует "реалтайма", лишь бы дошла до конца (за день - другой - нормально)
42. Алекс Ю (AlexO) 22.10.12 12:13
(2) Sorm,
так и по вышеуказанному ограничениям

где вы описали эти вышеуказанные ограничения?
43. Алекс Ю (AlexO) 22.10.12 12:17
(41) tango,
Михаил, опять очередной студент ринулся править 1С через SQL :)
Не отыскав типовую обработку по поиску и замене (или доработанные от типовой же).
Плюсики вы свои, конечно, вольны расставлять кому угодно, но любые действия в 1С минуя 1с-платформу - чреваты рассылочностью базы.
И всегда предупреждаю - не лазить через SQL в 1с8 базу, плохо кончится.
Но каждый месяц - один-два студента с обработкой "как я ускорил 1С через SQL" ... :)
44. Сергей Костяков (Sorm) 22.10.12 12:31
(41) tango, "весь трабл - в скорости. практически эта задача не требует "реалтайма", лишь бы дошла до конца (за день - другой - нормально". Честно сказать, постепенный рост , к примеру, кредитового сальдо на 60 счете у одного контрагента и уменьшение у другого, как-то слабо себе представляю. Но возможно, возможно. Только бухгалтерам будет странно, достанут.
(42) AlexO, выше.
(43) AlexO, условия использования я описал, алгоритм описал. Если обработка кому-то поможет, я буду рад.
"И всегда предупреждаю - не лазить через SQL в 1с8 базу, плохо кончится. " - полностью согласен. Если был отрицательный опыт - зачем себя пересиливать?
45. Михаил Ражиков (tango) 22.10.12 12:48
(43) AlexO, дык автор же пишет - граната, абезианов не беспокоиться
46. Алекс Ю (AlexO) 22.10.12 16:19
(44) Sorm,
(42) AlexO, выше.

где выше? номер сообщения тогда укажите
47. Алекс Ю (AlexO) 22.10.12 16:19
(45) tango,
ну хорошо, минус ставить не будем, раз предупредил :))
48. Алекс Ю (AlexO) 22.10.12 16:21
(44) Sorm,
Если был отрицательный опыт - зачем себя пересиливать?

а, т.е. вы считате - что если вот так залезли и база сразу не рухнула, то все нормально? :)
косяки вылезают как раз в данных, когда они не совпадают по регистрам там или документам.
49. Вера Белевич (integragirl) 20.02.13 07:57
(48) AlexO,
а, т.е. вы считате - что если вот так залезли и база сразу не рухнула, то все нормально? :)
косяки вылезают как раз в данных, когда они не совпадают по регистрам там или документам.

а почему не может быть все нормально? Если мы заменяем ссылки во всех таблицах (справочники, документы, регистры... и т.д.), какие могут быть косяки? Плюс пересчитываем регистры.
Если Вы имеете какой-то опыт опишите его нам.
50. Sergei (kauksi) 16.05.16 12:03
Как бороться с ситуацией: Произошла исключительная ситуация (Microsoft OLE DB Provider for SQL Server): Не удается вставить повторяющуюся строку ключа в объект "dbo._InfoRg35761" с уникальным индексом "_InfoR35761_ByDims_R". Повторяющееся значение ключа: (0x9e63c92e28a321ad47e4c3d6b82747a7).
51. Сергей Костяков (Sorm) 17.05.16 23:08
(50) kauksi, аналитику заменяете?