1. SantiouS 23.03.20 21:42 Сейчас в теме

Проблемы с распределенной БД

Есть основная БД, ее распределенный узел, а также копия основной БД(для тестов).
Случайно в изменили конфигурацию тестовой БД и выполнили обмен с реальным узлом распределенной БД.
В итоге получилось что конфигурация распределенной и основной бд расходится, а также номера сообщений не сходятся. Как откатить конфигурацию номера сообщений что бы обменяться с реальной бд?

UP: Если я отмечу зарегистрирую изменения в документе, что бы он попал в план обмена, то при перегрузке этого документа документы, на которые хранится ссылка в описанном мною документе тоже перенесутся или в итоге я получу "Объект не обнаружен". Тот же вопрос и о регистрах сведений, накоплений... Если не перенесется, то как мне тогда перегрузить документ и все данные связанные с ним?
Найденные решения
2. soft_wind 23.03.20 22:56 Сейчас в теме
так есть же какие-то стандартные команды отвязки узла и привязки его по новой
ПланыОбмена.УстановитьГлавныйУзел(Узел.Ссылка);
см. СП устанавливает/снимает гл.узел,

технология кажется такая была
1.снимаете ГУ
2.накатываете конфигурацию из главной базы
3.назначаете ГУ
SantiouS; +1 Ответить
4. dhurricane 24.03.20 09:19 Сейчас в теме
(3)
Набрать ссылок на измененные данные и прорегать все?
Да. Попробуйте по журналу регистрации с отбором по событиям группы "Данные" посмотреть в подчиненном узле, какие данные обрабатывались, и все их зарегистрировать к обмену. Включая документы, справочники, регистры и т.д., т.е. все, до чего дотянетесь.

Если у меня в документе будет ссылка на др. документы, то др. документы тоже зарегистрируются?
Нет. И движения документов тоже сами по себе не зарегистрируются.

Знаю ещё типовую 1с обработку "Регистрация изменений для обмена данными".
Именно ей рекомендую пользоваться. Она как правило включена в типовые конфигурации.
SantiouS; +1 Ответить
12. dhurricane 24.03.20 10:16 Сейчас в теме
11. SantiouS 24.03.20 10:15 Сейчас в теме
(10)

При этом загрузка осуществляется в режиме "ОбменДанными.Загрузка". Это значит, что н


Понял. В кратце если есть условный документ "Реализация", который осуществляет движения по "зависимому" регистру накопления "Регистр1" и "независимому" регистру накопления "Регистр2", то мне нужно в базе узла зарегестрировать сам документ "Реализация", после чего по регистратору зарегестрировать "Регистр1", а после уже по измерениям "Регистр2".
Таким образом, например, при использовании обработки "Регистрация изменений для обмена данными" мне нужно отборами отобрать регистрирующиеся элементы из трёх мест. Я верно понимаю?
Остальные ответы
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
2. soft_wind 23.03.20 22:56 Сейчас в теме
так есть же какие-то стандартные команды отвязки узла и привязки его по новой
ПланыОбмена.УстановитьГлавныйУзел(Узел.Ссылка);
см. СП устанавливает/снимает гл.узел,

технология кажется такая была
1.снимаете ГУ
2.накатываете конфигурацию из главной базы
3.назначаете ГУ
SantiouS; +1 Ответить
3. SantiouS 23.03.20 23:11 Сейчас в теме
(2) Я в тестовой БД сделал конфу как в основной БД и обновил распределенный узел, так сказать восстановил конфигурацию.
Потом обработками поменял номера входящих/исходящих сообщений - все стало перегружаться.

Проблема в том что была "подтверждена" перегрузка некоторого объема данных и они больше не передаются в главный узел.
Как мне зарегестрировать данные снова что бы передать их в главный узел?

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

Знаю ещё типовую 1с обработку "Регистрация изменений для обмена данными". Наверное с помощью нее все выбирать и регистрировать?
4. dhurricane 24.03.20 09:19 Сейчас в теме
(3)
Набрать ссылок на измененные данные и прорегать все?
Да. Попробуйте по журналу регистрации с отбором по событиям группы "Данные" посмотреть в подчиненном узле, какие данные обрабатывались, и все их зарегистрировать к обмену. Включая документы, справочники, регистры и т.д., т.е. все, до чего дотянетесь.

Если у меня в документе будет ссылка на др. документы, то др. документы тоже зарегистрируются?
Нет. И движения документов тоже сами по себе не зарегистрируются.

Знаю ещё типовую 1с обработку "Регистрация изменений для обмена данными".
Именно ей рекомендую пользоваться. Она как правило включена в типовые конфигурации.
SantiouS; +1 Ответить
5. SantiouS 24.03.20 09:27 Сейчас в теме
(4) В обработке "Регистрация изменений для обмена данными" нет возможности "набрать" ссылок.
Есть возможность взять тип документа и отборами выбрать массив документов.
Мне в каждый предполагаемый тип входить и отбором выставлять настройки?
6. dhurricane 24.03.20 09:38 Сейчас в теме
(5) Видимо так. К сожалению, мне не известны альтернативы, может кто-то другой подскажет.
7. SantiouS 24.03.20 09:47 Сейчас в теме
(6) Если например у меня "Реализация" сделала запись в РН "ТоварыНаСкладах" и я ее уже перегружал в основную БД, а теперь снова регистрацией захвачу ее же, то в основной БД она за дублируется?
8. dhurricane 24.03.20 09:53 Сейчас в теме
9. SantiouS 24.03.20 10:03 Сейчас в теме
(8) А как оно определить перезаписывать или нет, если, например, документ делает движения по независимому регистру и я снова выберу его "перегружать"?
Перезапишет в случае, если данные "Измерений" совпадут, как я понимаю. Немного путаюсь, простите...
10. dhurricane 24.03.20 10:08 Сейчас в теме
(9) Мы же говорим про документ, не про регистр. При загрузке документа будет осуществлен поиск в базе по ссылке (уникальному идентификатору). Если документ в базе-приемнике по ссылке будет найден, он будет перезаписан, если нет, то создан новый.

При этом загрузка осуществляется в режиме "ОбменДанными.Загрузка". Это значит, что никакие сопровождающие данные, никакие движения не обновляются. Только сам документ.

Если нужно обновить и его движения, значит нужно регистрировать и наборы записей регистров. Аналогично и для независимых регистров сведений, с той разницей, что отбор для регистрации осуществляется не по регистратору, а по значениям измерений.
11. SantiouS 24.03.20 10:15 Сейчас в теме
(10)

При этом загрузка осуществляется в режиме "ОбменДанными.Загрузка". Это значит, что н


Понял. В кратце если есть условный документ "Реализация", который осуществляет движения по "зависимому" регистру накопления "Регистр1" и "независимому" регистру накопления "Регистр2", то мне нужно в базе узла зарегестрировать сам документ "Реализация", после чего по регистратору зарегестрировать "Регистр1", а после уже по измерениям "Регистр2".
Таким образом, например, при использовании обработки "Регистрация изменений для обмена данными" мне нужно отборами отобрать регистрирующиеся элементы из трёх мест. Я верно понимаю?
12. dhurricane 24.03.20 10:16 Сейчас в теме
13. SantiouS 24.03.20 12:50 Сейчас в теме
(12) Все сделал, но не без косяков. Есть документ "Касса" в котором есть ТЧ с документами "ЧекиККМ", "ПриходныеКассовыеОрдера" и т.д.
Вообщем первый раз зарегистрировал сам документ "Касса" и только "ЧекиККМ" - перегрузил в основную БД. В результате получил док, но в месте "ПриходныеКассовыеОрдера" получил "ОбъектНеНайден". Решил регистрацией изменений выбрать еще "ПриходныеКассовыеОрдера" и перегрузил их - перегрузилось, но данные в самом документе естественно не обновились.
Потом попытался снова перегрузить просто документ "Касса" - не помогло - все равно ссылки в документе "битые".
Не критично, но интересно, можно мою ошибку при перегрузке теперь как то исправить?
14. dhurricane 24.03.20 13:29 Сейчас в теме
(13)
Решил регистрацией изменений выбрать еще "ПриходныеКассовыеОрдера" и перегрузил их - перегрузилось, но данные в самом документе естественно не обновились.
Нет, это не естественно. Должны были появиться. Стало быть либо не загрузились, либо Вы не то выгрузили.
15. SantiouS 24.03.20 13:40 Сейчас в теме
(14) Снова выгрузил - все хорошо. Моя ошибка.
Не подскажете как это работает? Получается у меня есть док "Касса" с ссылкой на документ "ХХХ", которого нет в БД.
Потом я выгружаю с распределенной БД этот док. ХХХ и при сохранении в основную БД у него, как я думаю, становиться другая ссылка, а в ПКО останется старая ссылка, либо при сохранении с файла обмена документа проверяются все таблицы на наличие данной ссылки, и если она есть то и ссылка в самом документе заменяется на новую соответствующую документу "ХХХ".
Не понятно как оно "связалось"
16. dhurricane 24.03.20 14:04 Сейчас в теме
(15) Документ "Касса" со ссылками как загрузился, так и остается. Когда Вы его открываете, платформа по указанным ссылкам на приходные ордера формирует запрос к БД для получения даты и номера, чтобы сформировать представление документа. Но приходных ордеров в базе по данным ссылкам нет, поэтому в качестве представления выводится надпись "<Объект не найден [Ссылка]>. Так происходит всякий раз, как вы открываете документ "Касса". Ссылки на приходные ордера так и остаются в нем, просто представление ссылок такое.

В файле выгрузки из базы-корреспондента вместе с приходными ордерами выгружаются и их ссылки. Именно с этими ссылками они и загрузятся в базу. Когда по указанным ссылкам в базе-приемнике уже есть документы, они перезаписываются. Когда документов нет, создаются новые. Но всегда с той же самой ссылкой, что они были выгружены из базы-источника.

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

Если Вы каким-либо образом опять удалите приходные ордера в базе, при том без контроля ссылочной целостности, Вы вновь увидите "битые ссылки". Сам документ "Касса" не меняется, но по указанным в нем ссылкам на приходные ордера вновь платформа не сможет получить номер и дату, а значит и сформировать правильное представление документов.
17. SantiouS 24.03.20 14:12 Сейчас в теме
(16)
ров в базе по данным ссылкам нет, поэтому в качестве представления выводится надпись ". Так происходит всякий раз, как вы открываете документ "Касса", и ссылки на приходные ордера так и остаются в нем, просто представление ссылок такое.

В файле выгрузки из базы-корреспондента вместе с приходными ордерами выгружаются и их ссылки. Именно с этими ссылками они и загрузятся в базу. Когда по указанным ссылкам в базе-приемнике уже есть документы, они переза


Получается ссылка на документ "Касса" в головном узле распределенной базы и в подчинённых узлах будет идентична?
Я мыслил в сторону того, что создается новый документ - заполняется данными из файла выгрузки и записывается, в результате чего получая совершенно другую случайную ссылку.
Если ссылки одинаковые, то все понятно. Спасибо за объяснение.
Я вот почитал пару статей о том "что такое ссылка" и понимаю ее как уникальный идентификатор GUID, который является отдельным столбцом БД и назначается по сути платформенно при записи, ведь в принципе никогда не нужно при записи заполнять GUID. Клоню к тому что мне не понятно как с xlsx файла загрузился документ в основную БД с сохранением ссылки на него. Помогите осознать пожалуйста. Очень хочется разобраться)
18. dhurricane 24.03.20 14:28 Сейчас в теме
(17)
Получается ссылка на документ "Касса" в головном узле распределенной базы и в подчинённых узлах будет идентична?
Да.

Я вот почитал пару статей о том "что такое ссылка" и понимаю ее как уникальный идентификатор GUID, который является отдельным столбцом БД и назначается по сути платформенно при записи, ведь в принципе никогда не нужно при записи заполнять GUID.
Все верно. Заполнять самому как правило не нужно, но порой такая необходимость возникает (в частности при синхронизации данных), и платформа для этого предоставляет инструменты.

Клоню к тому что мне не понятно как с xlsx файла загрузился документ в основную БД с сохранением ссылки на него.
Не понял. Мне казалось, мы говорим про РИБ. Откуда Excel? :-)
19. SantiouS 24.03.20 14:33 Сейчас в теме
(18)
Не понял. Мне казалось, мы говорим про РИБ. Откуда Excel? :-)


Простите, - xml. Выгружается файлик, а в другом месте загружается :)

Получается при сохранении документа по сути можно указать GUID аналогичный GUID из загруженной БД. Очень интересно. Не подскажете направление функций и процедур, которыми это можно делать. Хотелось бы изучить.

И ещё, все же есть вероятность что в основной бд уже создали документ и платформа дала ему аналогичный GUID, как пришел в файле, в таком случае данные нещадно затрутся? Я понимаю что вероятность, наверное, крайне мала, но все же.
20. dhurricane 24.03.20 14:38 Сейчас в теме
(19)
Получается при сохранении документа по сути можно указать GUID аналогичный GUID из загруженной БД. Очень интересно. Не подскажете направление функций и процедур, которыми это можно делать. Хотелось бы изучить.
УстановитьСсылкуНового() - метод ссылочных объектов, позволяющий указать задать нужную ссылку новому объекту.

Простите, - xml. Выгружается файлик, а в другом месте загружается
Вот в этом файле можно найти ссылки в виде уникальных идентификаторов.

И ещё, все же есть вероятность что в основной бд уже создали документ и платформа дала ему аналогичный GUID, как пришел в файле, в таком случае данные нещадно затрутся?
Да, если речь про документы одного типа.
SantiouS; +1 Ответить
21. SantiouS 24.03.20 15:23 Сейчас в теме
(20) Понял, спасибо большое. Очень рад что на форуме есть такие крутые 1с-ники. Может Вы себя таким и не считаете, но знайте что я думаю именно так :) Спасибо !)
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Product Owner (Менеджер по продукту 1С)
Москва
зарплата от 100 000 руб. до 170 000 руб.
Полный день

Тим лид по разработке 1С (Team Lead 1С)
Москва
зарплата от 100 000 руб. до 200 000 руб.
Полный день

Программист, аналитик, эксперт 1С
Санкт-Петербург
По совместительству

Программист 1С
Новосибирск
зарплата от 30 000 руб.
Временный (на проект)

Программист 1С
Москва
зарплата от 100 000 руб. до 150 000 руб.
Полный день