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

Публикация № 87467

Разработка - Инструментарий разработчика

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

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

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

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

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

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

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

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

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

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

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

Наименование Файл Версия Размер
UpdпоискИЗамена

.rar 8,03Kb
22.10.12
70
.rar 8,03Kb 70 Скачать

Специальные предложения

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

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

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

где вы описали эти вышеуказанные ограничения?
3. Ish_2 1052 17.07.11 17:32 Сейчас в теме
Любые "родные" движки этих систем при приближении к объема базы к 1 терабайту(приблизительно) уже не удовлетворяли по быстродействию при выполнении каких=то массовых операций, поэтому все частные задачи решались уже конкретными скриптами.


Вопрос :
как поставщики решений относились к такому творчеству ?
Из своего опыта скажу , что также как и 1с ,
т.е. резко отрицательно , с угрозами снятия с поддержки.
4. Sorm 53 17.07.11 18:07 Сейчас в теме
Подписки на события и собственные модули ещё никто не отменял, мне кажется. Ну вот подобных принципов придерживаются и все остальные разработчики. И потом, решения для заказчиков с размерами баз терабайт и более, они... "законно" обладают некоторой самостоятельностью. Потому что заказчики не простые.
5. romansun 191 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 1052 17.07.11 19:54 Сейчас в теме
(5) У каждого свой опыт.
Поставщики решений (oracle к примеру) относятся именно так : Боже упаси.
Хм.. Имею опыт работы с одним таким "мировым лидером".
Так и не удалось добиться , чтобы в символьное поле комментария(разумеется неключевое) одной таблицы писалась некоторая символьная информация (Update).

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

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

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

Это цветочки. Ягодки - это когда ты требуешь не разработки, а соблюдения(!) стандартов ... ну, хотя бы обмена. "Мировые лидеры" класть хотели на какие-то договоренности, и частенько сообщения приходят с другой структурой полей или другими форматами кодов. Так что базу после обмена приходится "причесывать" шаблонами и разборами. В этом отношении, работая с 1с, просто отдыхаешь.
8. boggonzikov 398 17.07.11 23:18 Сейчас в теме
Хорошая вещь, если умеешь этим пользоваться.
Можешь еще сделать, чтобы можно было заменять любой ссылочный тип, а не только справочник ?
9. Sorm 53 17.07.11 23:48 Сейчас в теме
(8) Да. Открою тайну - я как раз сначала написал более общий случай, замену любых ссылочных типов на другие, но потом решил ограничить дело только справочниками, и подстраховался дополнительно проверкой ссылки по коду и значению. Там процедуру надо немного править для работы с любыми ссылочными типами.
10. Trise 131 26.07.11 10:28 Сейчас в теме
Решение похожей задачи наблюдал в 77.
Для полной однозначности заменяеммых значений входными параметрами функции должны быть не код и наименование, а функция УникальныйИдентификатор() ссылки или ЗначениеВСтрокуВнутр смотря как они храняться в SQL.
12. Sorm 53 27.07.11 12:06 Сейчас в теме
(10) "функция УникальныйИдентификатор() ссылки или ЗначениеВСтрокуВнутр смотря как они храняться в SQL." Результат первой ничего не дает, результат второй надо резать...
(11) Что касается текущей базы - она помечает, однако, везде, а вот то самое ЗначениеВСтрокуВнутр() в удаленной базе да, придется менять.
11. Trise 131 26.07.11 10:58 Сейчас в теме
Так же данная обработка может быть смертельной, при использовании РИБ (распределенных информационных баз), так как она дожна помечать объекты для фиксирования их в узлах обмена. А там еще встречается логика, такая как пометить для обмена только для определенной организации.
13. sound 530 24.08.11 16:28 Сейчас в теме
(0) Мне нужно заменить один элемент плана видов характеристик на другой (вид субконто), как мне Ваша обработка может помочь?
15. Sorm 53 22.10.11 00:52 Сейчас в теме
(13) Заменить - можно, но - конкретные значения по этому субконто куда девать? Тоже надо будет менять.
(14) УникальныйИдентификатор() - функция, в базе физически лежит другое значение. Надо менять его.
16. sound 530 22.10.11 11:52 Сейчас в теме
(15) У меня в плане видов характеристик 2 вида субконто, но они ссылаются на один и тот же справочник. Получилось так, что были заведены 2 элемента с одним названием и типом значения, вернее 1 был предопределенный и зачем-то завели еще один точно такой же. На вопрос "а нахрена это было надо?" теперь никто ответить не может. И в плане счетов на одних счетах стоит один вид субконто, а на других другой, соответственно и в бухгалтерском регистре творится такая же хрень. Не знаю чем это может грозить в плане искажения информации, ведь по идее значения этих субконто - это элементы одного справочника, но из-за этого становится невозможным сделать, например, тот же Анализ субконто, и приходится как-то извращаться, чтобы получить то что нужно.
Ссылки на Виды Субконто ведь "живут", как ни странно, только в регистрах бухгалтерии. Попробовал на копии запустить обработку по переделке всего этого безобразия, почти как "Поиск и замена значений" только в режиме "Обмен.Загрузка = Истина", первые 2 раза (по 3 дня каждый раз) она так и не отработала вынося платформу с критической ошибкой "Нехватка памяти". Потом запустил с сервера, она вроде отработала, но ссылки все остались на месте - ничо не понял, возможно криво написана. Вот поэтому все еще думаю как это победить :(
17. Sorm 53 22.10.11 16:03 Сейчас в теме
(16) Тогда можно. Я имел в виду замену разных типов субконто - контрагенты на материалы, к примеру(уж не знаю, зачем такая блажь, но вдруг...) Виды субконто одного типа можно заменить.
18. sound 530 22.10.11 16:08 Сейчас в теме
(17) Подскажите, пожалуйста, порядок действий, просто доселе ничем подобным не занимался. Ну создать хранимую процедуру, допустим осилю, а дальше что? Скопировать туда текст Вашей процедуры, ничего в ней менять не нужно? И в обработке вроде там только справочники? Или я что-то не так понял?
19. Sorm 53 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 530 22.10.11 16:49 Сейчас в теме
(19) Жаль что пока, к сожалению, времени нет на эксперименты, потому что чувствую мне долго придется вкуривать это дело. Но пробовал с помощью Вашей обработки заменить в тестовой базе элементы справочников, выдавалась ошибка SQL сервера, что-то вроде "переполнен журнал транзакций" или что-то в этом духе.
14. fit686 21.10.11 22:07 Сейчас в теме
Так же необходимо заменить УникальныйИдентификатор() в одном справочнике на соответствующие из другого,или это лучше делать обработкой синхронизации справочников?
21. boggonzikov 398 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 398 11.11.11 16:48 Сейчас в теме
(21) Нашел в чем причина, не верно определяется таблица хранения
Строка = ТЗ.Найти("Справочник."+строка(тип));
заменить на
Строка = ТЗ.Найти("Справочник."+ СтарыйОбъект.Метаданные().Имя, "ИмяТаблицы");
23. Sorm 53 12.11.11 23:55 Сейчас в теме
24. kr_andr 23.11.11 10:30 Сейчас в теме
25. garcevis 6 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 53 03.02.12 17:10 Сейчас в теме
(27) maxsoft83, Будем разбираться. Спотыкается об уникальный индекс, понятно... У меня такого не вылезало.
29. maxsoft83 03.02.12 17:48 Сейчас в теме
(28) а что по поводу производительности? ... получается что сама 1С все это сделает ну так раз 12-15 быстрее. либо 10-20 минут либо почти 4 часа, по идее все должно быть на оборот. в чем может быть загвоздка? может я что-то сделал не так?
30. maxsoft83 08.02.12 12:08 Сейчас в теме
(28)
Еще я просмотрел количество таблиц получаемых на одну позицию .. получается больше 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 53 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) Ну как бы у меня УПП))) там таблиц в принципе больше .. ладно попытаю порыть в редбуке, а какое время замены одной позиции на бухе??
33. Sorm 53 08.02.12 13:07 Сейчас в теме
(32) maxsoft83, Ну не в 10 раз же... Размер базы какой? У меня такая вот фихня отрабатывала 15 минут на базе порядка 20 ГБ.
34. maxsoft83 08.02.12 14:33 Сейчас в теме
У меня база 104 Gb .... так что видимо 15 минут для меня не светят, да и собственно тоже самое что через саму эску ..... потому как бы не вижу смысла заходить со стороны сиквела. если бы это процесс занимал хотябы 5 минут, а так получается то на то и выходит. у меня через эску слегка модифицированная обработка эсовская как раз сворачивает порядка 3 позиций в час.
35. Sorm 53 08.02.12 15:45 Сейчас в теме
(34) maxsoft83, Можно отловить процедуру в профайлере, которой отыскиваются все ссылки на указанный элемент, разобрать её ответ и уже работать от неё. Попробую.
36. maxsoft83 08.02.12 15:56 Сейчас в теме
(35) будем ждать результатов))) в свою очередь попытаюсь осилить тоже самое со своей стороны, может что получиться)
37. Sorm 53 20.02.12 11:46 Сейчас в теме
Да, господа, поправил публикацию. К сожалению, механизмы 1с в части модификации остатков трансцедентны и непознаваемы(в реальности просто очень сложны , в сумме потратил 2-е суток на профайлер). В настоящий момент изменил заголовок темы, процедура и скрипт остаются рабочими, но, к сожалению, работать будут только при замене аналитики на полностью новую. Т.е. как если бы вам нужно перекинуть остатки с одного контрагента на нового(только что введенного). Или на новую статью затрат, к примеру. "Слияния" аналитики реализовать не удалось, в настоящий момент пишу гибридную версию, которая в части работы работы с остатками и регистрами будет использовать механизм 1с, а в части работы с документами - механизмы SQL.
38. Sorm 53 22.10.12 09:52 Сейчас в теме
Доработал, тестируйте. Движок теперь сам считает итоги, остальное делается скриптом.
39. tango 484 22.10.12 11:19 Сейчас в теме
Как оказалось, я уже плюсовал это дело, так что респект еще раз без +.

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


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


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

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

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

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

где выше? номер сообщения тогда укажите
48. AlexO 129 22.10.12 16:21 Сейчас в теме
(44)
Если был отрицательный опыт - зачем себя пересиливать?

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

а почему не может быть все нормально? Если мы заменяем ссылки во всех таблицах (справочники, документы, регистры... и т.д.), какие могут быть косяки? Плюс пересчитываем регистры.
Если Вы имеете какой-то опыт опишите его нам.
50. kauksi 206 16.05.16 12:03 Сейчас в теме
Как бороться с ситуацией: Произошла исключительная ситуация (Microsoft OLE DB Provider for SQL Server): Не удается вставить повторяющуюся строку ключа в объект "dbo._InfoRg35761" с уникальным индексом "_InfoR35761_ByDims_R". Повторяющееся значение ключа: (0x9e63c92e28a321ad47e4c3d6b82747a7).
51. Sorm 53 17.05.16 23:08 Сейчас в теме
(50) kauksi, аналитику заменяете?
53. script 221 20.01.17 00:56 Сейчас в теме
Ответьте пожалуйста.
Поможет ли мне обработка, если мне нужно заменить одну организацию на другую везде.
Есть база с 4-мя организациями - нужно все слить на одну новую, 5-ю организацию.
54. Sorm 53 20.01.17 07:12 Сейчас в теме
55. Irwin 346 10.03.17 14:38 Сейчас в теме
Поиск в таблице справочника идет по коду и наименованию, а потом берется максимальный элемент (хотя есть ссылка, по которой можно получить GUID). В итоге могут быть ошибки - подберется не тот элемент.
56. taki_zuka 27.04.18 14:40 Сейчас в теме
Как справиться с ошибкой: Невозможно вставить повторяющуюся ключевую строку в объект "dbo._InfoRg17321" с уникальным индексом "_InfoRg17321_ByDims_RN" ?
57. Sorm 53 28.04.18 15:20 Сейчас в теме
(56)
_ByDims_RN
Вы пытаетесь заменить один уже существующий элемент на другой? Сожалею, можно только заменить на новый(т.е. грубо говоря, на элемент, по которму ещё не было записи в данном регистре)
Оставьте свое сообщение

См. также

Установка предопределенных элементов: просмотр, исправление и поиск ошибок (задвоенных и отсутствующих) Промо

Инструментарий разработчика Универсальные обработки v8 1cv8.cf Абонемент ($m)

Простая обработка для просмотра и установки значений предопределенных элементов. Позволяет заменить значение предопределенного элемента с одного элемента справочника на другой, удалить предопределенный элемент (снять пометку предопределенности), установить пометку переопределенного элемента. Проверяет предопределенные данные на наличие задвоений и отсутствующих. Работает со справочниками, планами счетов, планами видов характеристик, планами видов расчетов.

2 стартмани

06.10.2014    147178    1971    ekaruk    164    

Модель объекта

Инструментарий разработчика v8 Абонемент ($m)

Подсистема позволяет описать модель данных объекта, где описана зависимость между реквизитами, и затем использовать эту модель в разных сценариях работы с объектом. Версия платформы: 8.3.6 и выше. С небольшими доработками будет работать на 8.2.

1 стартмани

30.06.2019    11563    0    vadim1980    5    

Конструктор мобильного клиента Simple WMS Client: способ создать полноценный ТСД без мобильной разработки. Теперь новая версия - Simple UI (обновлено 14.11.2019)

Инструментарий разработчика Сканер штрих-кода Терминал сбора данных Мобильная разработка Оптовая торговля Производство готовой продукции (работ, услуг) Розничная торговля Учет ОС и НМА Учет ТМЦ Оптовая торговля Производство готовой продукции (работ, услуг) Розничная торговля Учет ОС и НМА Учет ТМЦ v8 v8::Mobile БУ УУ Абонемент ($m)

Simple WMS Client – это визуальный конструктор мобильного клиента для терминала сбора данных(ТСД) или обычного телефона на Android. Приложение работает в онлайн режиме через интернет или WI-FI, постоянно общаясь с базой посредством http-запросов (вариант для 1С-клиента общается с 1С напрямую как обычный клиент). Можно создавать любые конфигурации мобильного клиента с помощью конструктора и обработчиков на языке 1С (НЕ мобильная платформа). Вся логика приложения и интеграции содержится в обработчиках на стороне 1С. Это очень простой способ создать и развернуть клиентскую часть для WMS системы или для любой другой конфигурации 1С (УТ, УПП, ERP, самописной) с минимумом программирования. Например, можно добавить в учетную систему адресное хранение, учет оборудования и любые другие задачи. Приложение умеет работать не только со штрих-кодами, но и с распознаванием голоса от Google. Это бесплатная и открытая система, не требующая обучения, с возможностью быстро получить результат.

5 стартмани

09.01.2019    41903    247    informa1555    208    

Навигатор по конфигурации базы 1С 8.3 Промо

Инструментарий разработчика Универсальные обработки v8 v8::УФ 1cv8.cf Россия Абонемент ($m)

Универсальная внешняя обработка для просмотра метаданных конфигураций баз 1С 8.3. Отображает свойства и реквизиты объектов конфигурации, их количество, основные права доступа и т.д. Отображаемые характеристики объектов: свойства, реквизиты, стандартные рекизиты, реквизиты табличных частей, предопределенные данные, регистраторы для регистров, движения для документов, команды, чужие команды, подписки на события, подсистемы. Отображает структуру хранения объектов базы данных, для регистров доступен сервис "Управление итогами". Платформа 8.3, управляемые формы. Версия 1.1.0.65 от 05.08.2020

3 стартмани

28.10.2018    31549    283    ROL32    67    

Позиционирование в помещении с помощью нейросети по сигналу Wi-Fi. Интерактивная карта склада в 1С с показом позиции

Инструментарий разработчика Практика программирования v8 Абонемент ($m)

Данная публикация содержит в себе редактор и интерактивную карту склада или иного помещения, на которой в реальном времени отображается позиция устройства, координаты которого вычисляются по уровням сигнала нескольких роутеров Wi-Fi. В статье и приложенным к ней разработкам предлагаются инструменты и методика для реализации вычисления точной геопозиции внутри помещений с помощью нейронной сети. Конфигурация написана на релизе 1С:Предприятие 8.3.12.1412, клиентское приложение имеет минимальный уровень совместимости SDK -16.

5 стартмани

09.08.2018    26293    26    informa1555    26    

Регистры правил [Расширение]

Инструментарий разработчика Информационная безопасность v8 v8::Права УТ11 Абонемент ($m)

Регистры правил - права доступа, запрет редактирования, автоподстановка реквизитов и т.д.

10 стартмани

15.03.2018    16753    9    33lab    1    

Программное формирование форматированной строки в стиле html+inline CSS

Работа с интерфейсом Инструментарий разработчика v8 1cv8.cf Абонемент ($m)

Если вам приходилось работать с форматированными строками программно, то вы знаете, какая это боль. Данное решение облегчает программное формирование таких строк.

1 стартмани

18.11.2017    29537    32    bonv    10    

[Расширение] Контроль отрицательных остатков по регистру бухгалтерии при проведении Промо

Универсальные функции Инструментарий разработчика Учет ТМЦ Учет ТМЦ v8 1cv8.cf Россия БУ Абонемент ($m)

Расширение позволяет без изменений конфигурации проверять остатки по регистру бухгалтерии при проведении каждого документа и запрещает проведение при появлении отрицательных остатков после проведения.

1 стартмани

17.08.2015    45808    155    ekaruk    32    

Набор подсистем "Умные таблицы"

Инструментарий разработчика v8 Беларусь Россия Казахстан Абонемент ($m)

Данный набор подсистем – прикладная библиотека, призванная помочь программисту 1С быстрее решать ряд типовых задач бизнес-логики, таких как: ведение статусов объектов, отправка почтовых сообщений в определенное время, ведение произвольных таблиц с возможностью редактирования, сохранения и группировки, ориентированные на расчет бюджетных таблиц (план продаж, ретробонусы B2C, проценты по договорам B2B и договорные условия по КАМ), расчет коммерческой политики для бюджетных таблиц, исполнение произвольных алгоритмов с хранением кода в информационной базе, определение рабочих баз, хранение файлов во внешних СУБД (Postgre SQL, MS SQL и MongoDB) и выполнение произвольного кода после изменений ссылочного объекта вне транзакции изменения.

1 стартмани

22.05.2017    31770    94    Silenser    34    

Конструктор-тестер http запросов в 1С

WEB Инструментарий разработчика v8 1cv8.cf Россия Абонемент ($m)

Данная обработка позволяет в несколько кликов конструировать http запросы на языке 1С и просматривать результаты их выполнения.

3 стартмани

19.08.2016    40851    295    hlopik    17    

Подсистема обмена данными с порталом ИМНС по электронным счетам-фактурам (автоматический обмен)

Внешние источники данных WEB Инструментарий разработчика v8 1cv8.cf Беларусь БУ НДС Абонемент ($m)

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

1 стартмани

28.07.2016    32413    19    c1nil    4    

Навигатор по структуре и данным баз 1С 8

Инструментарий разработчика v8 v8::УФ 1cv8.cf Абонемент ($m)

Просмотр структуры и данных информационных баз 1С:Предприятие 8.2, 8.3. Состав, типы объектов, табличных частей, движений. Размер, структура хранения объекта. Для администраторов и разработчиков. Версия 1 - на обычных формах, версия 2 - на управляемых.

1 стартмани

11.07.2016    27815    127    o.nikolaev    17    

Яндекс.Деньги "Благотворительность"

Инструментарий разработчика Практика программирования v8 1cv8.cf Абонемент ($m)

Яндекс.Деньги теперь в 1С. Форма для приема благотворительных взносов. Форму легко сделать и вставить на любую страницу сайта или блога. Платежи будут приходить на ваш кошелек. На форме есть три способа платежа: из кошелька, с банковской карты, с баланса мобильного.

1 стартмани

16.02.2016    22071    8    Tatitutu    5    

Интерфейс сопоставления объектов для обмена (для типового регистра СоответствиеОбъектовДляОбмена) Промо

Инструментарий разработчика Универсальные обработки Перенос данных из 1C8 в 1C8 v8 КА1 БП2.0 ЗУП2.5 УТ10 УПП1 Абонемент ($m)

Вы внедряете обмен данными между двумя типовыми или основанными на типовых БД и вам необходим инструмент, чтобы сопоставить между собой справочники этих конфигураций? Вы хотите навести порядок в обмене данными, потому что вам надоело вылавливать дублирующиеся объекты? Вам очень хочется перепоручить сопоставление объектов обменивающихся баз пользователям, но нет подходящего и понятного пользователям интерфейса? Тогда вам нужна именно эта обработка!

4 стартмани

11.11.2015    38074    133    catsam    8    

Faster - многофункциональный ускоритель работы программиста 1С Промо

Инструментарий разработчика v8 1cv8.cf Россия Абонемент ($m)

Программа Faster 8.7 позволяет ускорить процесс работы программиста 1С (и не только 1C). Программа Faster позволяет делится кодом с другими программистами в два клика или передать ссылку через QR Код. Исправление введенных фраз двойным Shift (с помощью speller.yandex) Полезная утилита для тех, кто печатает много однотипного текста, кодирует в среде Windows на разных языках программирования. Через некоторое время работы с программой у вас соберется своя база часто используемых словосочетаний и кусков кода. Полностью переделан механизм перехвата клавиш, теперь не зависает при обработке скриптов.

1 стартмани

24.05.2012    76392    207    moolex    145    

Универсальная учетная система с конструктором документов и справочников в режиме 1С: Предприятие

Инструментарий разработчика Практика программирования v8 1cv8.cf УУ Абонемент ($m)

Заголовок статьи звучит фантастично, но это не шутка. Занимаясь внедрениями, я часто сталкивался с ситуацией, когда надо было к типовой конфе приделать простенький модуль учета чего-нибудь, не специфичного для самой конфы. Например в УТ учет материалов в эксплуатации. Модуль обычно состоял из пары справочников (2-3), 3-х документов и регистра или пары регистров. Однажды подобные пристройки понадобились одновременно на 3 проектах. Скучно делать одинаковую работу, и я подумал, а что, если сделать универсальный инструмент, в котором пользователь сам сможет нарисовать себе справочники, реквизиты к ним, документы и движения. Т.е. конструктор полноценных документов в пользовательском режиме. Это оказалось не так сложно - все дело в подходящей архитектуре данных.

1 стартмани

29.07.2015    30664    88    informa1555    41    

Мастерская запросов

Инструментарий разработчика v8 1cv8.cf Абонемент ($m)

Данный инструмент предназначен для разработчиков на платформе "1С:Предприятие 8" и позволяет в пользовательском режиме разрабатывать и тестировать запросы и схемы компоновки данных. Основная цель создания инструмента - максимальное удобство в работе при использовании конфигураций на управляемых формах. Текущая версия 1.0.8 от 19.09.2016 г. Тестирование выполнялось на платформе версии 8.3.8. Работа на более ранних версиях не гарантируется.

1 стартмани

01.06.2015    14444    39    Saint    28    

История изменений объектов информационной базы во внешнем хранилище ElasticSearch

Инструментарий разработчика Администрирование данных 1С v8 1cv8.cf Абонемент ($m)

ElasticSearch - это opensource решение для очень быстрого поиска данных в больших массивах информации. Как один из примеров эффективного решения технологической задачи для 1С - использовать ElasticSearch для хранения истории изменений объектов информационной базы.

1 стартмани

25.03.2015    41718    99    Aleksey.Bochkov    34    

[x1c.ru] 1CDBin: Работа с файлами *.1CD на низком уровне средствами языка 1С с возможностью чтения таблиц (поддерживается формат 8.3.8.0)

Тестирование и исправление Инструментарий разработчика v8 1cv8.cf Абонемент ($m)

Обработка позволяет просматривать файловые базы 1CD на низком уровне средствами встроенного языка. Реализована часть функциональности Tool_1CD, но на языке 1С Предприятия. Показываются таблицы, параметры таблиц, поля таблиц, записи таблиц, значения полей BLOB, есть 16-ричный просмотр страниц базы и консоль кода. Можно использовать для изучения структуры файлов 1CD, просмотра баз 1CD для выявления повреждений, создания своих обработок для выгрузки данных без открытия исследуемой базы в 1С:Предприятии.

1 стартмани

07.10.2014    50874    206    GusevNA    75    

График 3D

Инструментарий разработчика v8 1cv8.cf Абонемент ($m)

Новый релиз программы График 3d. Ещё больше возможностей! График, который можно поворачивать! Каждую позицию можно рассмотреть подробно в реальном времени. И всё это можно запускать из 1С!

3 стартмани

29.01.2015    10847    3    dinopopyys    7    

Консоль кода для УФ

Инструментарий разработчика v8 v8::УФ 1cv8.cf Абонемент ($m)

Простая консоль кода для УФ. Предназначена для выполнения серверного кода 1С в режиме предприятия. Умеет выполнять введенный код, выводить сообщения. Сохраняет историю выполненных команд. Можно задать параметры, которые будут использоваться выполняемым кодом (удобно для работы со ссылками).

1 стартмани

24.10.2014    30588    95    ekaruk    14    

Разбираемся со структурой правил конвертации данных Промо

Инструментарий разработчика v8 КД Абонемент ($m)

При переносе данных между различающимися данными частенько приходится смотреть в правила. И часто, чтобы выяснить, к примеру, каким документом формируются остатки по конкретному ПВД, нужно заглядывать в него и искать, какое ПКО в нем вызывается. А может вызываться и алгоритм, в котором вызывается ПКО ;-) А если правил много? Чтобы не мучить себя утомительными поисками, предлагаю воспользоваться этой обработкой.

1 стартмани

14.10.2011    21606    29    Meta    17    

Дерево объектной модели схемы запроса (декомпиляция текста запроса).

Практика программирования Инструментарий разработчика v8 1cv8.cf Абонемент ($m)

Удобный просмотр схемы запроса. Формирование команд программной модификации запроса.

1 стартмани

05.10.2014    35076    190    ekaruk    20    

Пример построения маршрута и оптимизация его с помощью Яндекс карт и api Яндекса 2.1

Практика программирования Универсальные обработки WEB v8 1cv8.cf Автомобили, автосервисы Розничная и сетевая торговля (FMCG) Абонемент ($m)

Пример использования карт Яндекса и api 2.1. Построение оптимального маршрута движения курьеров. Оптимальность маршрута считается для общественного транспорта. Потом можно переключить маршрут на автомобиль.

1 стартмани

03.10.2014    48891    214    Трактор    56    

Обработка по анализу и тестированию веб-сервисов

Инструментарий разработчика WEB v8 1cv8.cf Абонемент ($m)

Основные возможности: - Работа практически с любыми веб-сервисами; - получение свойств веб-сервиса; - выполнение операций веб-сервиса; - установка параметров ws-операции как простого типа (строка, число, булево, дата), так и сложного (путём копирования веток дерева параметров - принцип:ветка дерва это объект); - возможность сохранения уже введённых параметров; - вывод результата исполнения ws-операции в дерево значений; - сохранение раннее запускаемых веб-сервисов; - вывод статистики; - поддержка протокола SSL (данная функция работает с версии платформы 8.3); - генератор кода обращения к веб-сервису, можно скопировать этот код в любую другую обработку и использовать для работы с веб-сервисом; - возможно просматривать структуру возвращаемых значений веб-сервиса.

2 стартмани

02.10.2014    15394    62    _root    15    

Учим 1С разговаривать с клиентами или работаем с API Бродкастер

Универсальные обработки Практика программирования SMS рассылки v8 v8::УФ 1cv8.cf Абонемент ($m)

Пример использования API Бродкастера в 1С. Совершаем автоматические обзвоны путем синтезирования речи из текста.

29.09.2014    32820    33    Zircool    30    

Линейка для вёрстки табличных макетов

Инструментарий разработчика v8 1cv8.cf Абонемент ($m)

Обработка для подгонки размеров печатных форм.

1 стартмани

29.08.2014    16614    42    saiten    8    

КопиПастаМер

Инструментарий разработчика v8 1cv8.cf Абонемент ($m)

Предлагается отчет, который за приемлемое время находит и показывает ВСЕ повторяющиеся фрагменты в текстах программных модулей анализируемой конфигурации. Приводятся подробности реализации отчета, основанного на алгоритме Манбера и Майерса построения суффиксного массива и на алгоритме Касаи построения LCP-массива. В данной реализации поиск повторов ведется до уровня строк. Отчет можно применять для определения повторяющихся последовательностей строк и в любых других текстах.

1 стартмани

30.07.2014    42730    120    ildarovich    76    

TurboConf:Cloud - облачные сервисы в Конфигураторе

Инструментарий разработчика v8 1cv8.cf Россия Абонемент ($m)

TurboConf:Cloud - это облачные сервисы шаблонов кода и проверки модулей 1С. Благодаря специальному клиенту, вы можете использовать эти сервисы прямо в Конфигураторе.

1 стартмани

17.07.2014    141955    17    m.bolsun    61