Как вставить ссылку на документ из другой базы 1С?
Есть необходимость в элементе справочника Номенклатура одной базы 8.3 указывать ссылку на какой-нибудь элемент справочника Номенклатура из другой базы. Как это можно реализовать? COM соединением или по HTTP я могу взять выборку из справочника другой базы, но…
1. Как вставить эту выборку в форму выбора? По нажатию кнопки выбора на форме элемента надо, чтобы открылась форма списка номенклатуры из другой базы.
2. Как хранить выбранную ссылку так, чтобы в документе хранилась ссылка, а отображалось например наименование?
Подскажите пожалуйста, в какую сторону копать.
Если есть задача хранить ссылку на объект из другой базы и при этом на формах отображать его по представления, то я бы пошел по пути создания дополнительного справочника для внешних данных. Наименование сделать идентичным тому, которое во внешней базе и оно же будет представлением. Далее сохранять путь подключения к другой базе, вид метаданных и GUID из ссылки - по двум последним сущностям вы сможете при COM-соединении получить на той стороне ссылку на элемент. При выборе элемента на других формах можно для начала, наложив фильтр по метаданным, отобрать уже сохраненные в первую базу элементы нужного типа и добавить туда же возможность запроса уже полной выборки во внешней базе.
Я понял Вашу идею. Но ведь при этом надо будет регулярно сливать с второй базы новые элементы справочника либо во второй базе при сохранении новых элементов писать их еще и в первую базу. То есть без этого не обойтись?
Илья Бражников: архитектурные решения определяются ограничениями использования. Если вас совершенно не смущают задержки при отображении формы, то при открытии можно запустить связь со второй базой и получить представление для показа на форму из нее - тогда никакого дополнительного справочника не нужно.
Если вас поставили в жесткие рамки - форма должна открываться быстро, а новые метаданные добавлять нельзя, то можно воспользоваться сохраняемыми настройками куда запихнуть объект типа Соответствие, где ключами будут ссылки внешней базы, а значениями их представления.
Но если нужно делать отчеты или какие-то настройки формы по данному полю, то эти два новых варианта становятся более тяжелыми в реализации. Тогда как при дополнительном справочнике из изначальной идеи, просто бери и пользуйся базовыми функциями платформы без всяких шаманских танцев.
Но ведь при этом надо будет регулярно сливать с второй базы новые элементы справочника
Нет, не все, а только те, которые пользователь явно выбрал в элементе формы. Общая форма выбора может отображать полное состояние во второй базе.
либо во второй базе при сохранении новых элементов писать их еще и в первую базу.
Это уже как сами решите. Если захотите в первой базе создавать элементы для второй, то нужно будет подключится и создать. Иначе просто работайте в режиме просмотра (read-only).
Реализаций несколько - все зависит от потребностей. В самом общем случае создавай общую форму с таблицей/деревом значений, которая будет наполнятся данными из внешнего источника (динамический список не получится в любом случае). При клике на позицию в таблице (событие "Выбор") вызывай закрытие данной формы передавая в качестве параметра закрытия структуру со всей нужной тебе информацией.
При клике на позицию в таблице (событие “Выбор”) вызывай закрытие данной формы передавая в качестве параметра закрытия структуру со всей нужной тебе информацией.
Вы можете мне с этим помочь? По скайпу например. Там дел на 10 мин, но я не могу найти толковую документацию на эту тему.
Илья Бражников: там совсем не на 10 минут! Одно только тестирование займет минимум 10 минут, а разработка не менее часа. Если вопрос про возврат данных с формы выбора, то любые данные можно поместить в виде параметра для метода формы Закрыть() и вызвавшая форма получит их назад. Для обычного приложения нужно написать что-то типа: РезультатВыбора = ФормаВыбора.ОткрытьМодально(). А для управляемого приложения при открытии нужно описать ОписаниеОповещения с процедурой, в первый параметр которой и будет возвращен результат открытия формы. Примеры были даже в синтаксис-помощнике, не говоря про кучи кода на infostart.ru
Дмитрий Кинаш: Все получилось, спасибо большое. Ох и помучился я с передачей выбранного значения. Ни разу до этого не делал из произвольной формы форму выбора. Столько там нюансов…А документации толковой нет.