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