#0
by soroka
В нашей фирме поставили задачу, консолидации справочников. Существует порядка 10 баз. Каждую нужно привести единобразию. Посоветуйте, есть ли возможность изменить md-шник так, чтоб при обращению программным кодом (например Контрагент.Адрес) реквизит забирался из другого SQL сервака, или хотяб из другой базы.
#2
by soroka
это пожалуй лень, не хочется переписывать множество отчетов. У нас практически все реквизиты контрагента будут храниться в другой базе. В рабочих базах будут оставаться только объекты.
#3
by Programmer
сделайте в базах справочники тока на чтение и подгружайте регулярно из одной общей базы, в которой будут добавляться новые элементы.
#4
by Джинн
Штатно это не сделать. Да и нештатно тоже - идентификаторы элементов уникальны в пределах базы. А значит можно поиметь геморрой.Вариант "однообразия" - одна "эталонная" база, где и заводятся все элементы. И экспорт во все остальные базы оттуда.
#5
by soroka
>>сделайте в базах справочники тока на чтение и подгружайте регулярно из >>одной общей базы, в которой будут добавляться новые элементы.Этот вариант не подходит, т.к. любой вариант подгрузки может не запуститься, база может быть занята монопольно, да ещё много факторов кот. могут повлиять на данное задание. Да и вариант с любым экспортом тоже не катит, по тем же причинам.Если уж делать, то через компаненту 1С++, прямыми запросами к базе.может ещё будут какие нить решения данной задачи?
#6
by vS
вот сам ты себе и ответил...если "центральная" база будет монопольно, не достанешь ты из нее данные, хоть через 1С*/
#7
by Джинн
То 5. Ты знаешь сколько людей наступали на грабли, пытаясь писать что-то в базу в обход штатных процедур? Есть уверенность, что твое знание структуры данных позволит не получить удар граблями?
#8
by soroka
ну при этом хотяб получит сообщение об ошибке пользователь, и будет понимать, что база занята и отчет он сможет получить позже. В случае же переноса, пользователь не будет знать обновились данные в базе или нет. И будет дергать программера.
#9
by soroka
то 7. Мне не нужно ничего писать, ни проставлять нигде реквизиты. Я хочу, чтоб при обращении к реквизиту справочника 1с отрабатывала не стандартно, а выполняла sql запрос нужный мне. Чтоб, грубо говоря возвращялся реквизит находящийся не в данной базе а другой.
#10
by Джинн
То 8. Такое же сообщение юзверь может получить и при переносе штатными средствами. Какая разница кто ему это сообщение выдаст?То 9. А если вторая база, к которой ты обращаешься в это время недоступна? Сам себе же противоречишь :) А как ты будешь синхронизировать элементы в двух базах? Что возьмешь за "точку опоры"?
#11
by soroka
я не хочу синхронизить базы, я хочу чтоб в момент вывода отчетов, требуемые реквизиты брались с другой базы и все. Передо мной не стоит задача синхронизации. В рабочей базе данные реквизиты вообще будут пустые, просто при обращении к ним мне нужно перехватывать запрос 1с к скулю и перенаправлять его не другую базу. Там элемент я буду искать по своему ID, его я буду устанавливать в реквизите справочника.
#12
by Джинн
Опять начинаешь с того, "сихронизировать не хочу", а затем "я буду искать по своему ID" :) Ты разберись что ты хочешь то.У тебя в базах данных есть некий элемент справочника. Во внешней базе есть другой справочник, которых синхронизирован с твоим по некому полю. Но у тебя несколько баз ссылаются на внешнюю. Кто установит соответствие элементов справочника в этих базах с внешней базой? Например во внешней базе есть контрагент "Рога и копыта". Как установить его соответствие десяти элементам "Рога и копыта" в других базах?
#13
by soroka
В каждой базе есть реквизит ID (это реквизит кот. я добавил в конфигураторе 1С). По этому реквизиту все уже синхронизированно. Эту проблему мы уже решили. Мы перехватываем выбор контрагенты и выдаем ТаблицуЗначений для выбора из базы "центральной", если выбранного контрагенты не находим, добавляем его в справочник программно. Теперь остается проблема с реквизитами данного объекта. У контрагента "Рога и копыта" меняется любой реквизит, ну предположим адрес. В рабочей базе его тоже нужно изменить. Так вот, я и хочу, чтоб данный реквизит, по своему ID находился в другой SQL базе и заберал от туда значение реквизита адрес.
#14
by Джинн
"добавляем его в справочник программно." - добавляем в "центральной базе" или в локальной?Кстати ID - очень нехорошее наименование. У справочника есть штатный реквизит ID. Запутаешься потом.
#15
by МуМу
Для справочников относительно несложно настроить репликацию.Можно конечно сделать и подмену реквкизитов но это будет не эффективно особенно в плане производительности.
#20
by PJs
"Я один, а они в ряд. Как пуговицы, насмерть!" (с) ЖванецкийБаза, где вводятся контрагенты - центральная, рабочие - перефирийные. Отредактировать _1sp_RegisterUpdate, чтобы в автообмен уходили только контрагенты.
#25
by soroka
да, блин... я же говорю, что вариант синхронизации мне не желателен. ЕСли говорить о синхронизации я её могу проводить DTS пакетами и не мучаться, с откатом транзаций и все такое ... Мне вот именно нужно чтоб инфа бралась из другой базы и всё.
#26
by Дядя Коля
...гхм!Посоветуй руководству поставить Axapta :)))А вообще, когда мне предлагают такое, обычно выхожу из кабинета, извинившись, возвращаюсь с чайной ложкой и с саморезм с крестовой шляпкой и напильником.Обычно хватает одной демонстрации.
#27
by soroka
это не важно, в SQL запросе можно все преобразовать и все нужные реквизиты найти.!!! ЭТО НЕ УРБД !!!
#28
by PJs
У тебя будут синхронизироваться центральная база-отправитель, в которой будут только заводится контрагенты, и ни чего более, и перефирийные базы-получатели, в которых не будет заводится контрагентов. А как объяснили старшие товарищи, подмену на лету сделать проблематично.
#29
by soroka
не понимаю сарказма. С аксаптой уже успел познакомится ... пожалуй не нужно нам такого счастья. Чуть успел ноги уволочь (перешёл на другую работу):)). А задача вполне нужная, и , я думаю выполнима, тока нужно понять направление, куда копать.
#32
by PJs
Если сможешь сделать соответствие 1:1 во всех базах. Видимо, триггер на таблицу во всех базах, и в транзакции обновляешь запись (во всех базах, кроме изменяемой :-). На УРБД сделать легче.
#35
by soroka
я ж говорю, все это хорошо, но мне эту процедуру нужно будет под каждый реквизит изменять, да и при написании нового отчета нужно будет постоянно помнить об этом, кроме того у меня настроен универсальный отчет по реквизитам любых справочников, сам понимаешь ни какой универсальности :)))
#37
by loobooger
напиши одну функцию, которая этим будет заниматься и её-то родимую везди и используй
#38
by soroka
как в рекламе "нежнее ... ещё нежнее" ... в нашем применении короче ... ещё короче ... А если честно ... в 10 базах переписать это гимор
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Почистить справочник контрагенты
- Перенос Базы SQL c одного компа на другой
- ТиС. Контрагенты. Форма списка. Телефоны
- переиндексация SQL базы средствами SQL
- Как написать SQL запрос на 1С при обращении к другой SQL базе?
- Знатокам MS SQL 2000 - Перенос сервера SQL на другой комп
- "Справочник ссылка: Контрагенты". Как получить Справочник.Контрагенты?
- 1cv8 SQL: Имя SQL сервера и имя SQL базы данных
- Контрагенты
- Как обновить структуру базы в SQL Server 2000/2005 из другой базы?
- Как узнать имя текущей базы SQL или имя базы 1с .
- КД 2.0 Реквизит "Строка" в Реквизит "СправочникСсылка"
В этой группе 1С
- v8. Оплата пластиковой картой
- Учет рабочего времени в УПП
- ЗиК начисление пособия по уходу за ребенком?
- Имеет ли смысл переходить на 1с:?
- 1С v 8.0 УПП 1.1.4.4
- Штрих ФР - К (блокировка пароля налогового инспектора)
- 1C-ка через сеть тормозит!
- Как программно перейти на следующую строку ?
- Функция ПолучитьНомерНаПечать(Документ) Экспорт
- Кнопки "Сохранить Значения", "Восстановить Значения"
- Расчет дней отпуска в ЗиК
- Зачем при подключение через ADO вызывать метод RecordSet.MoveFirst()?
- При открытии в конфигураторе "общих таблиц" вылет
- Обработка упирается в 2Гб предел по памяти - есть ли выход?
- Как посчитать строки в таблице обработки по колонке
- Как узнать текущий номер строки в табличной части документа?
- Не обнаружен ключ защиты программы на комп. пользователей
- Как из модуля объекта увидеть переменную модуля формы?
- установка и снятие пометок в таблице значений
- Сохранить документ Word в базе 1С