Привет всем, подскажите такой нюанс, делаю УРБД для самописной конфы согласно статьи http://kb.mista.ru/article.php?id=7, но блин возникает один нюанс в данной статьи не прописано или недописано то, что коды справочников и номера документов становятся не уникальными. Кто-нибудь делал такое или может есть другие статьи??? Кто-нибудь допиливал, помогите кто делал!
Для этого в типовых конфигурация используется Константа "Префикс ИБ", она и отвечает чтоб во всем РИБ коды справочников и номера документов были уникальными.
я настраивал обмен по этой статье, но не совсем понял о чем речь
если у тебя обмениваются два узла, то в любом случае второй узел, если разрешен обмен данным справочником, к примеру, получит объект из первого узла с таким же кодом. Если я правильно понимаю, то объекты с одинаковым именем или кодом раздваиваются, дело в том, что у них разные внутренние идентификаторы, поэтому база допиливает и вторые. Данную проблем можно решить через обмен по правилам обмена, чтобы поиск объектов в базе приемнике был не по внутреннему иден-ру, а по наименованию или коду, раз он уникальный, также можно исключить из обмена перенос кода объекта, следовательно база приемник будет сама присваивать новый код полученному объекту
сам от этой статьи отказался. Была попытка настроить обмен через почту mail.ru, но возникло много сложностей, из-за которых перешел на идею обмена через собственный ftp-ресурс
(4) я просто хотел кпримеру чтобы все коды в основной начинались на к примеру О, а в периферийной на П. По внутреннему, т.е. если не переносить код, как он будет знать что такой уже есть.
если создать элемент справочника в одном узле с префиксом О, то при обычном обмене, куда и относится данная статья, в центральную попадет этот же элемент с префиксом О, а если в обратную сторону, то в первый узел попадет с префиксом П... если же делать через правила обмена и исключить из обмена код справочника, а поиск при обмене делать по наименованию, то в одном узле будет О, а в другом П, потому что база сама будет добавлять свои префиксы при загрузке данных без кодов
// Использовать 2 параметра сеанса использованиериб(булево) префиксриб
// Префикс сюда передать префикс организации
Если ПараметрыСеанса.ИспользованиеРИБ
Префикс = ПараметрыСеанса.ПрефиксУзлаРаспределеннойИнформационнойБазы + Префикс;
КонецЕсли;
КонецПроцедуры
вызываешь при формировании кода для справочника или документа
Чтобы не отлавливать коды по всей конфигурации, используй подписки на событие.
1. Проверь чтобы во всех справочниках которыми ты будешь обмениваться (по умолчанию - все справочники оптом) - были коды типа "строка" (впрочем, 1С по умолчанию и так их предлагает делать строкой).
2. Создай подписку на событие ПриУстановкеНовогоКода для всех справочников
3. Создай общий модуль УстановкаПрефиксовСправочников или в другом модуле...
4. Пропиши туда процедуру:
Шаблон процедуры для тебя любезно создаст мастер при создании события.
Точно такую же процедуру ты обязан проделать для документов (в качестве дополнительного пирожка ты по префиксу документа сможешь увидеть, где его создали).
После выполнения этих действий тебе больше не нужно будет беспокоиться о дублировании кодов.
Хинт: используй в качестве всех префиксов и прочего латинские символы. Тогда ты сможешь запросто кодировать коды или номера документов в штрихкод (Code128).