Объект системы взаимодействия не найден 1с ошибка

23.12.2016

Система взаимодействия

Реализовано в версии 8.3.10.2168.

Мы реализовали новый механизм, который назвали Система взаимодействия. Это платформенный механизм, передающий информацию между клиентскими приложениями и серверами 1С:Предприятия.

Система взаимодействия предназначена для автоматизации бизнес-процессов, или для помощи в осуществлении бизнес-процессов предприятия.

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

201 общий вид 1.png

Система взаимодействия реализована в статусе бета-версии. Её функциональность, описанная далее, не является окончательной, а будет расширяться и совершенствоваться.

Зачем нужна система взаимодействия?

Система взаимодействия предоставляет несколько разных (по своему прикладному смыслу) видов интерактивного взаимодействия. Во-первых, вы можете создавать тематические обсуждения, посвященные какому-либо вопросу: мероприятиям, связанным с открытием нового магазина, вариантам проведения новогоднего праздника или грядущему совещанию у директора.

106 общий вид неконтекстного обсуждения.png

Во-вторых, вы можете обсуждать вопросы ведения учёта, связанные с конкретными объектами данных: накладными, товарами, поставщиками и т.д. При этом вся переписка будет отображаться в форме этих данных.

109_1 общий вид контекстного обсуждения.png

И, в-третьих, при наличии микрофона, вы можете звонить другим пользователям. А если у вас и вашего собеседника подключены веб-камеры, вы сможете ещё и видеть друг друга.

115_1 видеозвонок общение.png

В данном случае у администратора отсутствует веб-камера, поэтому при видеозвонке отображается его аватар.

Архитектура системы

Система взаимодействия реализована в клиент-серверной архитектуре. Она состоит из двух частей. Клиентская часть реализована в 1С:Предприятии. Серверная часть представляет собой отдельный программный продукт 1С:Предприятие — Сервер взаимодействия, который может быть развернут в Интернете, или в локальной сети организации.

Схема сервиса.png

Использовать систему взаимодействия могут пользователи информационных баз 1С:Предприятия. Для этого информационная база должна быть зарегистрирована в сервере взаимодействия. Авторизацию осуществляет сервер 1С:Предпрития. Всё остальное платформа выполняет автоматически.

На момент написания этой статьи сервер взаимодействия не поставляется в виде отдельного продукта. Но для того, чтобы вы могли пользоваться новым механизмом, в Интернете, на аппаратных мощностях фирмы «1С», мы развернули экземпляр этого сервера, носящий название 1С:Диалог. В данный момент это публичный сервер, которым могут пользоваться все желающие. Мы планируем поддерживать его и в дальнейшем, но условия использования могут быть изменены.

Связь между клиентскими приложениями и сервером взаимодействия осуществляется по протоколу WebSocket. Этот протокол может использовать как открытую, так и защищённую передачу данных, поэтому взаимодействие, как через Интернет, так и в локальной сети, является достаточно безопасным.

Как «включить» систему взаимодействия?

Чтобы в интерфейсе 1С:Предприятия появились элементы системы взаимодействия, нужно зарегистрировать информационную базу в сервере взаимодействия. Это делается в режиме 1С:Предприятие с помощью стандартной функции Управление системой взаимодействия.

01 вызов общей функции.png

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

В текущей реализации эта функция представляет собой простой диалог, с помощью которого вы можете отправить запрос на подключение к сервису 1С:Диалог, получить по почте код регистрации, и ввести его в качестве подтверждения.

02 диалог подключения.png

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

Небольшое замечание хочется сделать по поводу адреса электронной почты. Система взаимодействия оперирует понятием абонент. Это физическое лицо или организация, от имени которого выполняется регистрация информационной базы в сервере взаимодействия. Схожее понятие используется и в технологии 1cFresh.

У одного абонента системы взаимодействия может быть зарегистрировано несколько информационных баз. Идентификатором абонента является его адрес электронной почты. При запросе регистрации, если в сервере ещё нет абонента с таким адресом, он создаётся автоматически.

Поэтому вам важно понимать, что адрес электронной почты, который вы указываете при регистрации (интерактивной, или программной), это не «какой-то любой адрес», который можно забыть. Это ключевой идентификатор, который может понадобиться вам для общения со службой поддержки, например.

В каком месте интерфейса находится система взаимодействия?

Интерфейсная часть системы взаимодействия реализована в интерфейсе Такси в тонком клиенте, веб-клиенте и в управляемом режиме работы толстого клиента. Для пользователей система взаимодействия обозначается словом Обсуждения. О том, что в информационной базе доступны обсуждения, вы можете узнать по нескольким признакам.

Во-первых, в центре оповещений появляется команда Обсуждения.

501 в центре оповещений.png

Во-вторых, в панели открытых появляется стандартная закладка Обсуждения.

502 в панели открытых.png

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

503 в формах объектов данных.png

Здесь вам нужно обратить внимание на то, что последняя команда появляется только в тех формах, которые не блокируют окно владельца или весь интерфейс. Как правило, это «содержательные» формы, в которых находится большое количество информации, они обладают собственным прикладным контекстом, в них «есть что обсудить».

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

504 в формах блокирующих нет.png

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

Единственное, что могут захотеть пользователи, это указать свои реквизиты в системе взаимодействия: номер телефона и адрес электронной почты. Для этого нужно кликнуть мышью на имени пользователя в заголовке главного окна.

403 реквизиты пользователя системы взаимодействия.png

Здесь же, кликнув мышью на стандартном аватаре, они могут заменить его своей фотографией. Но это необязательные действия. Обсуждения будут работать и без этого.

Типичные сценарии использования

Как мы уже рассказывали в самом начале статьи, есть несколько разных видов общения. Теперь мы остановимся на каждом из них подробнее.

Неконтекстное обсуждение

Любой пользователь информационной базы может создать несколько неконтекстных обсуждений. Каждое такое обсуждение является приватным. Это значит, что читать переписку и отправлять сообщения могут только участники данного обсуждения. Остальным пользователям информационной базы данное обсуждение недоступно.

Все неконтекстные обсуждения, в которых участвует пользователь, находятся в основной форме системы взаимодействия. Открыть эту форму можно либо кликнув на закладке Обсуждения в панели открытых, либо по команде Обсуждения из центра оповещений.

По команде +Новое создаётся новое обсуждение. Например, администратор может создать обсуждение, чтобы напомнить пользователям о грядущем совещании, и узнать их планы по участию в этом совещании.

101_1 участники нового неконтекстного обсуждения.png

Желательно (но не обязательно) указать тему обсуждения, и обязательно нужно выбрать участников. Подбор участников выполняется с помощью поиска, поэтому достаточно ввести фрагмент имени пользователя, а затем выбрать мышью подходящего. Когда все участники обсуждения указаны, нужно нажать кнопку Создать обсуждение.

Теперь можно вести переписку в этом обсуждении. Вы можете написать сообщение, и отправить его нажатием Enter. Также для отправки сообщения можно использовать кнопку Отправить в нижнем правом углу формы.

102 текст нового неконтекстного обсуждения.png

В результате каждый участник обсуждения получит оповещение. Оно, как и оповещения пользователя, будет отображено в правом нижнем углу экрана, а кроме этого оно попадёт в центр оповещений.

103 оповещение о неконтекстном обсуждении.png

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

105 текст входящего неконтекстного обсуждения.png

В результате администратор, инициировавший это обсуждение, через некоторое время (по мере ответа пользователей) увидит такую переписку:

106 общий вид неконтекстного обсуждения.png

Аналогичным образом переписка будет выглядеть и у других участников этого обсуждения. Разница будет только в том, какие сообщения выделены цветом. Потому что цветом выделяются собственные сообщения пользователя.

Кликнув на имени пользователя у любого сообщения, можно увидеть реквизиты пользователя и его увеличенный аватар. Зелёная точка означает, что в данный момент пользователь подключён к информационной базе.

301 реквизиты пользователя.png

Контекстное обсуждение

Контекстные обсуждения, в отличие от рассмотренных выше, являются публичными. На них накладываются ограничения, соответствующие правам доступа на объект данных. То есть все пользователи информационной базы, которым система прав разрешает доступ к данному объекту данных, могут полноценно участвовать в его обсуждении.

Для каждого объекта данных предусмотрено единственное обсуждение. Поэтому ничего создавать не надо, достаточно просто открыть панель обсуждения в форме нужного объекта.

В ней можно написать сообщение, и отправить его клавишей Enter.

108 контекстное обсуждение входящее.png

Это сообщение сможет прочитать любой пользователь, которому доступен товар Валенки. Но, во-первых, как «любой пользователь» узнает, что тут кто-то что-то написал? А во-вторых, менеджер по закупкам, очевидно, хочет обсудить валенки с конкретным пользователем, с продавцом. Поэтому, прежде чем отправить сообщение, он в поле Кому выбирает того пользователя, которого хочет оповестить о своём сообщении.

Дальше всё происходит так же, как и в предыдущем примере. Продавец получит оповещение. Если он рядом с компьютером, он отреагирует на него. Если же он в данный момент отсутствует, то оповещение исчезнет с экрана. Но, вернувшись к компьютеру, продавец увидит, что в центре оповещений есть новая информация.

107 оповещение внеконтекстного обсуждения.png

По клику на оповещение платформа откроет ему форму того объекта, к которому относится данное оповещение.

Продавец нажмёт кнопку Ответить, напишет ответ, и отправит его. В результате менеджер по закупкам увидит такую переписку:

109_1 общий вид контекстного обсуждения.png

Отвечая в контекстном обсуждении в поле Кому можно подобрать нескольких пользователей, которых нужно оповестить о своём сообщении.

401 кого оповещать.png

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

402_1 ответить всем.png

Как мы уже говорили, на контекстные обсуждения накладываются ограничения, соответствующие правам доступа на объект данных. Читать и писать могут все, кому системой прав разрешён доступ к этому объекту.

А раз так, то один из возможных сценариев работы заключается в том, что пользователь не принимает активного участия в обсуждении, но должен быть в курсе того, «что происходит с объектом». Как ему быть в этом случае? Постоянно открывать форму объекта и смотреть, не появилось ли там что-то новое и важное?

Специально для такого случая мы предусмотрели режим наблюдения. Этот режим включается кликом на колокольчик в заголовке обсуждения.

110 режим наблюдения.png

В режиме наблюдения пользователь автоматически будет получать оповещения о каждом новом сообщении в этом обсуждении. Даже в том случае, если он не указан среди тех, кого автор сообщения хотел оповестить.

Также нужно заметить, что отвечая в контекстном обсуждении, можно ничего не указывать в поле Кому. В этом случае сообщение появится в обсуждении, но никто из пользователей (кроме тех, кто наблюдает за этим обсуждением) не будет извещён об этом. Этот способ можно использовать в тех случаях, когда в прикладном решении уже существует собственная система оповещения, например, по электронной почте. Тогда пользователи, для реагирования на изменения, будут использовать привычную им бизнес-логику, а вот сам текст сообщений (который раньше каким-то образом хранился в информационной базе и отображался в форме) будет теперь храниться и показываться в форме средствами системы взаимодействия.

Видеозвонок

При наличии микрофонов, видеозвонки позволяют общаться голосом «один на один» с любым пользователем информационной базы. А при наличии веб-камер, собеседники могут ещё и видеть друг друга.

Видеозвонок можно выполнить, кликнув на имени пользователя в любом обсуждении и выбрав видеозвонок. В этом случае платформа сразу же начнёт установку соединения с выбранным пользователем.

Также видеозвонок можно выполнить из любого обсуждения, неконтекстного или контекстного. В этом случае нужно будет выбрать пользователя, которому адресован звонок.

111 видеозвонок начало.png

В процессе установки соединения в окне видеозвонка отображается аватар пользователя. А в нижней части окна указывается ссылка на обсуждение. Она добавляется автоматически, каким бы образом звонок ни инициировался. В данном случае указана ссылка на обсуждение совещания у директора.

113_1 видео звонок ожидание ответа.png

На стороне собеседника появляется входящий звонок. В нём, кроме вызывающего пользователя, также указана ссылка на обсуждение. Таким образом собеседник, если есть необходимость, (после ответа на звонок) может быстро открыть контекст разговора и познакомиться с ним.

114 входящи видеозвонок.png

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

115_1 видеозвонок общение.png

Если вызываемый собеседник отсутствует на рабочем месте и не может принять входящий звонок, то через некоторое время вызов будет автоматически прекращён, и у него появится оповещение о пропущенном звонке.

117 пропущенный видеозвонок.png

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

116 адресация видеозвонка другому пользователю.png

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

Область уведомлений

При работе тонкого клиента в Windows после установки соединения с сервером взаимодействия в области уведомлений Windows (system tray) отображается значок клиентского приложения. При получении нового уведомления картинка значка изменяется.

602 область уведомлений Виндовс.png

При двойном нажатии на значок активизируется главное окно клиентского приложения и, если есть уведомления, открывается центр уведомлений.

Неполадки

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

03 индикатор отсутствия связи с сервером.png

Программная работа с системой взаимодействия

Во встроенном языке мы реализовали объектную модель для работы с системой взаимодействия. Она, в общем, проста и понятна. С помощью свойства глобального контекста СистемаВзаимодействия вы получаете МенеджерСистемыВзаимодействия, и дальше действуете в зависимости от того, что вам нужно.

04 объектная модель.png

Основным направлением использования этой объектной модели мы считаем тесную интеграцию системы взаимодействия с бизнес-процессами предприятия. Например, генерацию сообщений в зависимости от каких-то событий, которые происходят с данными в информационной базе.

Если говорить более подробно, то вы можете зарегистрировать информационную базу в сервере взаимодействия, или отменить регистрацию. Можете создать обсуждение и сообщение. Можете получить существующие обсуждения по некоторому отбору. Можете получить оповещения, адресованные текущему пользователю и так далее. В этом нет ничего сложного.

Зато в объектной модели есть одна интересная особенность, о которой хочется рассказать подробнее. Теперь, помимо учётной записи пользователя в информационной базе, появляется ещё одна его учётная запись в системе взаимодействия.

Учётная запись в информационной базе представляется объектом встроенного языка ПользовательИнформационнойБазы. А учётная запись в системе взаимодействия представляется объектом встроенного языка ПользовательСистемыВзаимодействия. И тот и другой объекты указывают на одного и того же пользователя (человека). Более того, эти объекты всегда однозначно связаны друг с другом и, зная один из них, вы всегда можете получить другой.

Поэтому теперь, когда вам нужен какой-то пользователь из имеющихся, или текущий пользователь, вы получаете его в одном или другом механизме, в зависимости от своей задачи.

Например, учётную запись текущего пользователя (человека) в информационной базе вы можете получить так:

ТекущийПользовательИБ = ПользователиИнформационнойБазы.ТекущийПользователь();

А учётную запись того же самого пользователя (человека) в системе взаимодействия, так:

IDТекущегоПользователя = СистемаВзаимодействия.ИдентификаторТекущегоПользователя();
ТекущийПользовательСВ = СистемаВзаимодействия.ПолучитьПользователя(IDТекущегоПользователя);

Зная учётную запись пользователя (человека) в информационной базе, вы можете получить соответствующую ей учётную запись этого пользователя (человека) в системе взаимодействия:

IDПользователяСВ = СистемаВзаимодействия.ПолучитьИдентификаторПользователя(ТекущийПользовательИБ.УникальныйИдентификатор);
ПользовательСВ = СистемаВзаимодействия.ПолучитьПользователя(IDПользователяСВ);

И наоборот:

IDПользователяСВ = СистемаВзаимодействия.ИдентификаторТекущегоПользователя();
IDПользователяИБ = СистемаВзаимодействия.ПолучитьИдентификаторПользователяИнформационнойБазы(IDПользователяСВ);
ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоУникальномуИдентификатору(IDПользователяИБ);

Физически это выглядит следующим образом.

601 пользователи.png

Когда пользователь (человек) аутентифицируется (вводит логин/пароль, или другими способами) в 1С:Предприятии, он сопоставляет себя с некоторой учётной записью, имеющейся в информационной базе. Дальше запускается сеанс. Если это первый запуск сеанса этого пользователя после того, как информационная база была зарегистрирована в сервере взаимодействия, то платформа автоматически создаёт для этого пользователя информационной базы учётную запись в сервере взаимодействия. Таким образом получается, что эти записи жёстко связаны друг с другом и указывают на одного и того же пользователя (человека).

Планы и обратная связь

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

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

Также нас интересует использование системы взаимодействия в реальной среде, потому что существует множество нюансов, связанных с разными браузерами, прокси-серверами и так далее.

И, конечно же, после выпуска этого функционала мы будем готовы рассматривать и обсуждать ваши замечания и пожелания к этой системе.

Теги:
Система взаимодействия 
8.3.10 

Создано 14.09.2020 10:23
Опубликовано 14.09.2020 10:23
Автор: Administrator
Просмотров: 19331

Судя по количеству просмотров предыдущей статьи про повреждение файла базы данных, мы понимаем, что такие ошибки в работе пользователей 1С – далеко не редкость. В прошлом материале мы подробно описали механизм исправления этого недочета. И на, первый взгляд, все стало хорошо: ошибка устранена, пользователь смог зайти в базу данных и продолжить работу. Однако далее была обнаружена еще одна ошибка с текстом «Объект не найден», вызванная всё тем же повреждением базы данных. И тут уже придется прибегнуть к тестированию базы. Каким образом была выявлена эта ошибка и как исправлена, расскажем далее. 

Для начала приведем пример как выглядит эта ошибка:

Данная ошибка может проявляться в любом документе, в любой базе. В наименовании этой ошибки могут быть любые символы (буквы/цифры). Главное – это название «Объект не найден».

Каким образом эта ошибка себя проявила?

После устранения сбоя, описанного нами ранее, программа открывается и работает, но ведет себя странно. В отчетах отображается информация, а первичный документ пользователь не может найти. В частности, начисление зарплаты по сотруднику. При вводе начисления еще раз документ формируется пустым. И ведь верно – зарплата то ему уже начислена. И это «подтверждают» отчеты. Посмотрим более внимательно.

Сформировав отчет «Полный свод начислений и удержаний», мы видим, что начисление есть.

Попытаемся разобраться, какой документ зафиксировал это начисление. Дальше мы наблюдаем за этой суммой…

Чтобы посмотреть, каким документом введена сумма, нажмите на ней правой кнопкой мышки и выберите команду «Расшифровать».

В открывшемся окне выберите «Регистратор».

Регистратор – это и есть документ, зафиксировавший запись, на основании которой формируется данный отчет и выбранная сумма.

Открываем расшифровку и что мы видим: «Объект не найден» и наша сумма.

В среде программистов это называется «битая ссылка», т.е. в отчете данные отображены (данные в таблицах программы зафиксированы), а сам объект отсутствует. Соответственно, это не дает нам дальше работать, вводить документы, плюс это отображает некорректную информацию.

Все отчеты показывают, что сумма есть. А первичный документ (в нашем случае – начисление зарплаты) мы найти не можем.

Рассмотрим, как выйти из такой ситуации.

Удаление битых ссылок. Тестирование информационной базы.

Шаг 1. Запустите программу в режиме «Конфигуратор».

Шаг 2. Выберите в разделе «Администрирование» пункт «Тестирование и исправление…».

Еще раз напоминаем, что при любых действиях с информационной базой, рекомендуется сначала сделать ее резервную копию. И если вы сомневаетесь в ваших действиях, обратитесь к специалисту за помощью.

Шаг 3. Сделайте резервную копию информационной базы.

В окне настройки тестирования много галочек и каждое действие выполняется при разного рода ошибках. В нашем случае нарушена ссылочная целостность информационной базы. И далее все зависит от варианта решения проблемы. В нашем случае произошла потеря данных, создать объект не получится. Потому, чтобы избавиться от «битой ссылки», ее просто надо удалить.

Шаг 4. Установите галочку «Проверка ссылочной целостности» и «Проверка логической целостности». Установите переключатель в положение «Очищать ссылки» и «Удалять объект».

Т.е. при обнаружении таких несуществующих объектов, система их удалит.

Установка других галочек, в принципе, не помешает. Подробно мы их рассматривать в данной статье не будем. Единственное, некоторые процессы могут занять длительное время.

По окончанию проверки внизу выводится сообщение, что «Тестирование закончено» и строчки проверки «перестают бегать» в окне служебных сообщений.

Наша ошибка исправлена.

Шаг 5. Проверим базу.

Сумма с «битой ссылкой» исчезла из отчета «Полный свод начислений и удержаний».

Программа дает заполнить документ «Начисление зарплаты и взносов» корректно.

Сотрудник, по которому была «битая ссылка», вновь попадает в начисление.

Проблема решена.

Автор статьи: Ольга Круглова

Понравилась статья? Подпишитесь на рассылку новых материалов

Добавить комментарий

В начале апреля фирма «1С» выпустила новую версию платформы – 8.3.10.

Новые возможности получились весьма «вкусными». В этой статье мы рассмотрим Систему взаимодействий.

Если коротко, то это Skype (или Telegram) внутри конфигурации 1С. О таком корпоративном мессенджере давно мечтали руководители и IT-шники

И вот чудо свершилось – теперь можно звонить, общаться текстом и устраивать конференции между сотрудниками не покидая 1С. И все это может привязано к объектам – конкретным документам, договорам, контрагентам, …

Начнем рассмотрение Системы взаимодействия с самых основ.

Концепция

Сначала давайте рассмотрим, что из себя представляет «1С:Предприятие». Этот программный комплекс построен по классической трёхзвенной архитектуре. Представить его можно в следующем виде:

Рисунок 1 – Упрощённая схема трёхзвенной архитектуры

Есть клиентская часть, серверная часть и база данных. Передача данных между клиентом и сервером происходит при помощи серверного вызова, а доступ к базе данных возможен только со стороны сервера.

Подробнее про серверные вызовы можно прочитать в статье «Как работает серверный вызов в 1С». Для данного же материала важно отметить следующий факт – инициировать серверный вызов для передачи данных возможно только на клиентской части.

Но давайте вернёмся к «Системе взаимодействий»! Для начала обратимся к документации и посмотрим – что же скрывается под таким громким названием?

Система взаимодействия – это механизм, позволяющий пользователям одной информационной базы системы «1С:Предприятие» общаться друг с другом в режиме реального времени с помощью текстовых сообщений и видеозвонков.

Под термином «видеозвонок» понимается любой возможный вариант общения двух пользователей, который включает в себя как только голосовой канал общения, так и полноценный видеозвонок (голосовая информация и изображение).

Исходя из описания, получается что фирма «1С» встроила в платформу «мессенджер» для общения пользователей между собой. «Наконец-то!» – воскликнут одни. «Зачем?» – вопрошают другие. Оставим эту дискуссию для комментариев, а пока продолжим рассматривать «Систему взаимодействий» дальше.

Логично, что общение имеет смысл в том случае, когда в системе работают два или более пользователей. В среде «1С:Предприятие» для каждого пользователя организуется своя рабочая область. Поэтому [в клиент-серверном варианте] несколько клиентских подключений к информационной базе можно представить следующим образом:

Рисунок 2 – Схема многопользовательского варианта работы «1С:Предприятие»

Вроде бы «чего проще» – передать сообщение с одной клиентской части на другую?

Но! Клиентские процессы работают каждый в своей рабочей области и не имеют пересечений. Единственная возможность передачи информации – через серверную часть.

И здесь кроется очередное «Но!» – как упоминалось ранее, серверная часть не может инициировать клиентский вызов. А это значит, что для обнаружения новых сообщений в существующей системе необходимо организовать периодический мониторинг клиентом серверной части. Выглядеть это будет примерно следующим образом:

Рисунок 3 – Схема запуска клиентской частью обработчика ожидания для периодического запроса к серверной части

Как видим, общение клиентских частей таким образом возможно, но оно имеет свои особенности.

Например, подобное решение будет нагружать клиентские сеансы дополнительным фоновым процессом для проверки системы на наличие новых сообщений или запросов на инициацию голосовых вызовов. Также при подобной схеме работы не получится избежать задержки при получении входящих.

Но самое главное: увеличится нагрузка на самое узкое место системы – соединение между клиентом и сервером (особенно в момент передачи потока медиа). Поэтому фирме «1С» надо было найти иное решение задачи взаимодействия пользователей.

Давайте разберём, что же предстояло сделать разработчикам платформы для встраивания в «1С:Предприятие» механизма обмена текстовыми и видео-сообщениями.

Во-первых, необходимо дать пользователям возможность отправлять и принимать сообщения (в том числе служебных – для инициации видео-вызовов):

Рисунок 4 – Отправка сообщения

Во-вторых, должен быть налажен механизм транспорта исходящих и входящих сообщений:

Рисунок 5 – Транспорт исходящего сообщения

Причём желательно иметь возможность оперативного получения информации о поступлении новых сообщений.

Рисунок 6 – Транспорт входящего и информирование о поступлении нового сообщения

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

Рисунок 7 – Канал для передачи сообщений между пользовательскими сеансами

Понятное дело, что пользователей может быть больше двух. А значит, организовывать прямой канал «клиент» – «клиент» нецелесообразно, нужен некий «маршрутизатор» – серверная часть «Системы взаимодействий».

Рисунок 8 – Схема серверной части «Системы взаимодействий». Первое приближение

Встроить этот «маршрутизатор» в серверную часть «1С:Предприятие», по уже понятным нам причинам, нецелесообразно. Поэтому («в-третьих»), дополнительно необходимо определиться с расположением серверной части «Системы взаимодействий».

Итак, у нас получилось несколько «пазлов», сложив которые, мы увидим полную картину о «Системе взаимодействий». Давайте прямо сейчас это и сделаем!

Серверную часть «Системы взаимодействий» разработчики фирмы «1С» реализовали в виде отдельного программного продукта «1С:Предприятие – Сервер взаимодействия», который в будущем может быть развернут как в рамках локальной сети конкретной организации, так и в интернете в виде сервиса. Клиентскую часть системы разработчики встроили в платформу «1С:Предприятие».

Вопрос с оперативной двусторонней передачей информации между клиентом и сервером «Системы взаимодействий» решился без «изобретения велосипеда»: на помощь пришёл современный протокол WebSocket (далее WS). В качестве «вишенки на торте» – этот протокол позволяет передавать информацию в зашифрованном виде, что обеспечивает защиту передаваемой информации.

Стоит отметить, что при совершении видеовызовов по протоколу WS передается лишь служебная информация для инициализации звонка. Передача видео происходит с использованием других технологий, встроенных в «Систему взаимодействий».

Сложив всё вместе, получаем следующую схему:

Рисунок 9 – Схема работы «Системы взаимодействий». Первое приближение

Итак, «Система взаимодействий» является дополнительным сервисом обмена сообщениями. А значит, там должен быть механизм независимой от 1С регистрации и аутентификации пользователей. Но сложная схема начала работы с новым сервисом означает, что количество желающих попробовать его «на старте» будет невелико, а для массового использования он должен обладать очень и очень весомыми преимуществами.

Получается, для того чтобы этот функционал начали активно использовать даже те, кто работает в программах «1С:Предприятие» давно, необходимо, чтобы он был единым целым с существующей системой, а не «чем-то сбоку». А для этого необходимо, чтобы «Система взаимодействий» «видела» пользователей информационной базы.

Но как «Система взаимодействий» узнает о пользователях информационной базы, если это отдельный сервис?

Разработчики фирмы «1С», на мой взгляд, пошли единственно верным путём – они максимально упростили «точку входа» в сервис. Платформа самостоятельно выполняет регистрацию, аутентификацию и определение адресатов сообщений. Это возможно благодаря созданию в «Системе взаимодействий» парных пользователей.

Для каждого пользователя в информационной базе 1С создается новый пользователь в «системе взаимодействия». Это происходит автоматически при первой аутентификации пользователя информационной базы после подключения её к сервису. При этом уникальный идентификатор нового адресата для взаимодействий сохраняется как в базе данных, так и в сервисе.

Рисунок 10 – Схема работы «Системы взаимодействий». Второе приближение

Благодаря этому в «Системе взаимодействий» происходит корректная маршрутизация сообщений с привязкой к пользователю информационной базы. А человек, работая в «1С:Предприятие», совершенно не задумывается о том, что использует какой-то дополнительный сервис.

В настоящий момент начать обмениваться сообщениями может любой желающий, даже несмотря на то, что «Система взаимодействий» пока не поставляется в виде отдельного продукта. Дело в том, что фирма «1С» запустила сервер в качестве сервиса «1С:Диалог», по адресу «1cDialog.com».

Получается, что все желающие будут пользоваться одним «маршрутизатором»? Как это возможно, как не запутаться – где чья информационная база и кому можно управлять её подключением к сервису?

Логично, что на уровне сервиса должно происходить глобальное разделение областей данных с информационными базами. По аналогии с другими существующими облачными сервисами от фирмы «1С» в качестве такого разделителя выступает понятие «Абонент». Его олицетворением является некое лицо (юридическое или физическое), которое желает иметь в своих информационных базах возможность обмена мгновенными сообщениями и совершения видеовызовов.

Рисунок 11 – Схема серверной части «Системы взаимодействий». Второе приближение

Идентификация абонента выполняется по адресу электронной почты, и он может являться владельцем одной или нескольких информационных баз, подключенных к «Системе взаимодействий».

Каждое подключение базы регистрируется в сервисе под уникальным идентификатором, который сохраняется как в «Системе взаимодействий», так и в самой информационной базе. Также на обеих сторонах хранятся криптографические ключи для безопасной передачи сообщений между клиентом и сервером с использованием (как мы уже знаем) протокола WS.

Обмен сообщениями и совершение видеозвонков происходит в рамках обсуждений, которые бывают двух видов – контекстные и неконтекстные. Первые используются в привязке к некоторым объектам информационной базы, что позволяет пользователям вести беседу по конкретному предмету, который в момент переписки и/или видео-звонка будет находиться перед глазами.

Неконтекстные обсуждения представляют собой чаты общего характера, доступные только тем пользователям, которые были добавлены в беседу. При помощи них можно устраивать групповые совещания с ограниченным кругом участников.

Такой подход позволяет закрыть все потребности в удалённом общении пользователей – от «Марья Ивановна, посмотри отгрузку номер 330 от 31 декабря – там цена почему-то занижена…» до управленческих конференций.

Стоит отметить, что пока нет возможности выполнять групповые видеовызовы, и будет ли развитие в этом направлении – информации на текущий момент нет.

В заключении теоретической части стоит отметить, что сообщения, которыми обмениваются пользователи, не хранятся в информационной базе. Поэтому в настоящий момент при отсутствии подключения к серверу «Системы взаимодействий» на рабочем месте не получится не только отправлять/принимать сообщения, но и увидеть историю сообщений.

Если же в момент отсутствия у пользователя подключения к сервису взаимодействий ему отправлялись сообщения или были попытки совершения видеовызовов, то при следующем подключении он получит оповещение о пропущенных входящих. Это удобно!

Внимание! К моменту публикации этой статьи фирма «1С» уже опубликовала некоторые особенности платформы 8.3.11, в которых сообщается об изменении механизма работы «Системы взаимодействий» в части видеовызовов.

В платформе 8.3.10 технология видеозвонков была реализована при помощи центрального видео-сервера, встроенного в сервер «Системы взаимодействий». Скорее всего, тестирование данного механизма показало большую нагрузку на серверную часть «Системы взаимодействий» при совершении пользователями звонков. И уже в следующей версии платформы [8.3.11] видеовызовы будут выполняться по технологии peer-to-peer.

Также, разработчики «приоткрыли завесу» над технологиями, которые они использовали при создании «Системы взаимодействий». Например, для хранения сессий пользователей, подписок на события и прочей служебной информации они используют распределенное хранилище Hazelcast.

Ну что, наверное уже хочется попробовать «Систему взаимодействий»? Сейчас мы расскажем, как начать её использовать.

Подключение

Начать работать с «Системой взаимодействий» можно на любой, даже пустой, конфигурации, если используется платформа «8.3.10». Для этого необходимо убедиться, что свойство Режим совместимости установлено в значение Не использовать:

Рисунок 12 – Настройка режима совместимости конфигурации

А в конфигурации есть хотя бы один пользователь, и он обладает правом РегистрацияИнформационнойБазыСистемыВзаимодействия:

Рисунок 13 – Настройка роли

Кроме этого, на компьютерах, где планируется использовать обмен сообщениями, должен быть открыт доступ по URL к серверу «Системы взаимодействий». Так как сейчас сервер доступен исключительно в виде сервиса, то на рабочих местах не должно быть запрета на адрес «wss://1cdialog.com:443».

Когда условия в информационной базе соблюдены, можно начинать использовать «Систему взаимодействий». Для этого необходимо её сначала подключить к сервису «1С:Диалог». Управление подключением к «Системе взаимодействий» производится в пользовательском режиме «1С:Предприятие» при помощи соответствующей стандартной функции, доступной через главное меню программы в разделе Все функции:

Рисунок 14 – Меню подключения к «Системе взаимодействий»

В случае, если информационная база ещё не подключена к сервису «1С:Диалог», откроется следующая форма:

Рисунок 15 – Окно управления подключением к «Системе взаимодействий». Подключение отсутствует

Регистрация в системе происходит по двухступенчатому принципу: сначала на сервер отсылается запрос с указанием электронной почты абонента сервиса и идентификатора информационной базы, а затем при помощи кода подтверждения происходит завершение регистрации. Поэтому при подключении необходимо сначала воспользоваться кнопкой Получить код, по которой откроется диалог для ввода электронной почты:

Рисунок 16 – Окно управления подключением к «Системе взаимодействий». Запрос кода регистрации

Что примечательно, после ввода в строку даже одного символа кнопка Получить код становится активной, следовательно на данном этапе нет проверки введенного текста на соответствие маске электронной почты. При нажатии на кнопку Получить код система выдаст сообщение о том, что «Код регистрации выслан на адрес …», и откроется диалоговое окно подтверждения регистрации.

Также отметим, что указание существующего адреса электронной почты не всегда приводит к ожидаемому результату. Автору так и не удалось дождаться письма с кодом подтверждения регистрации на его активный адрес бесплатного почтового сервера mail.ru. Зато с «импортным» gmail.com таких проблем не возникло.

Когда вы укажете адрес электронной почты, на который сервис «1С:Диалог» сможет выслать регистрационную информацию, на него придёт письмо примерно следующего содержания:

Рисунок 17 – Пример письма с кодом регистрации в «Системе взаимодействий»

Цифровой код из письма (на рисунке подсвечен желтым цветом), необходимо использовать для завершения регистрации при помощи диалогового окна подтверждения регистрации следующего вида:

Рисунок 18 – Окно управления подключением к «Системе взаимодействий». Регистрация

Интуитивно понятно, что в поле Адрес электронной почты абонента необходимо указать электронную почту, которая была использована на первом шаге регистрации, а в поле Код регистрации – код из письма. При указании некорректных данных в этих полях ввода «Система взаимодействий» вернёт ошибку «Отказано в доступе» и регистрация не будет завершена.

Поле Наименование информационной базы заполняется произвольными символами (как показала практика, можно использовать даже спец. символы).

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

В случае, если вам удастся соблюсти все требования и произвести нехитрые манипуляции по регистрации без ошибок, «1С:Предприятие» наградит вас за это следующим сообщением:

Рисунок 19 – Окно управления подключением к «Системе взаимодействий». Успех!

После этого в текущем сеансе «1С:Предприятие» объекты «Системы взаимодействий» автоматически активизируются без перезапуска клиента. Остальным пользователям для получения возможности участвовать в обсуждениях и получать/выполнять звонки, необходимо выполнить перезапуск сеанса работы в информационной базе.

На этом регистрация в «Системе взаимодействий» завершена. Читателю может показаться, что процесс сложный и затянутый, но на самом деле это не так. Регистрация информационной базы в «Системе взаимодействий» может быть выполнена меньше чем за минуту.

Стоит отметить, что сервис 1cDialog.com пока работает в тестовом режиме. Поэтому доступ к видеозвонкам ограничен и предоставляется только по запросу в службу технической поддержки по адресу электронной почты info@1cDialog.com. В этом письме-запросе необходимо указать:

  • Регистрационный номер лицензионной программы 1С и ИНН организации, на которую приобреталась эта программа
  • Электронную почту абонента сервиса
  • Планируемое количество пользователей.

Каждая заявка анализируется, и по результатам рассмотрения открывается доступ к видео-вызовам или присылается отказ.

Доступ к тестированию видеозвонков открывается абоненту и действует на все информационные базы, подключенные этим абонентом к сервису.

Использование «Системы взаимодействий» «в картинках»

А теперь заглянем в использование системы. Но только совсем чуть-чуть… Как говорится – «для затравочки»!

Рисунок 20 – Неконтекстное обсуждение. Информирование о поступлении нового сообщения

Рисунок 21 – Неконтекстное обсуждение. Переписка

Рисунок 22 – Контекстное обсуждение

Рисунок 23 – Контекстный видеозвонок «Второго пользователя» «Первому»

Вместо заключения

В заключение автору хотелось бы озвучить свои впечатления и мысли, возникшие в ходе тестирования «Системы взаимодействий».

Механизм получился очень интересный, перспективный и отвечающий веяниям времени. Удалённое взаимодействие и электронное общение всё глубже укореняются в нашей жизни, а время становится всё более «дорогим».

Теперь не надо будет при приёме на работу нового сотрудника создавать ему аккаунт в мессенджере для общения по рабочим вопросам. А пользователям не надо переключаться между окнами и уметь пользоваться разными инструментами для электронного общения. Вести учёт и переписку теперь стало возможным в режиме одного окна, без использования сторонних средств!

И напоследок для раздумий и дискуссий в комментариях – фантазии автора (это исключительно мнение автора, которое не имеет ничего общего с мнением команды «Курсы-по-1С» и, тем более, с официальными источниками фирмы «1С»):

  1. Спустя тестовый период использования, сервис 1cDialog.com станет «условно бесплатным»
  2. В рамках договора сопровождения ИТС уровня ПРОФ будет бесплатно предоставляться возможность использования «Системы взаимодействий» ограниченному количеству пользователей
  3. Возможность совершать видеовызовы будет платной даже для категории пользователей, подпадающих под п. 2
  4. Отдельный сервер «Системы взаимодействий» будет являться самостоятельной позицией прайса фирмы «1С»
  5. Появится возможность общаться между собой у пользователей разных информационных баз, а может быть, даже баз, принадлежащих разным абонентам.

А на ваш взгляд, какова вероятность воплощения в жизнь этих фантазий? Пишите в комментариях!

Об авторе

PDF-версия статьи для участников группы ВКонтакте

Мы ведем группу ВКонтакте – http://vk.com/kursypo1c.

Если Вы еще не вступили в нее – сделайте это сейчас, и в блоке ниже (на этой странице) появятся ссылки на скачивание материалов.

Если Вы уже участник группы – нужно просто повторно авторизоваться в ВКонтакте, чтобы скрипт Вас узнал. В случае проблем решение стандартное: очистить кэш браузера или подписаться через другой браузер.

Иногда при пробитии чека в актуальной Розница 2.3 у меня выскакивает сообщение:

ОписаниеОшибки         =  Невозможно установить соединение с сервером системы взаимодействия Timer Expired

Раньше я думал, что сервер взаимодействия встроен в файловую базу 1С.

Но оказывается, клиент при настройке сервера взаимодействия сам прописал стандартный внешний сервер взаимодействия.

В связи с этим пакет вопросов:

1. Можно ли штатно отказаться от сервера взаимодействия в пробитии чеков, заменив на обработчик ожидания.

2. Свой сервер взаимодействия если поднять, он бесплатный или требует лицензии?

3. Какого лешего 1С встроила сервер взаимодействия для пробития чеков (регистрация безналичной олпаты), это не из пушки ли по воробьям? Нельзя ли дать клиентам, которые не хотят его использовать, обычный обработчик ожидания.

Работая с информационными базами на платформе 1С, многие пользователи нередко сталкиваются с ситуацией, когда вместо ожидаемой ссылки на какой-нибудь объект появляется та самая надпись:  <Объект не найден> .

Данная ситуация вполне типичная и почти каждый пользователь платформы 1С:Предприятие сталкивался с такой битой ссылкой* («Объект не найден») хотя бы раз.


Предупреждение: Перед тем, как приступать к каким-либо манипуляциям с базой данных 1С, необходимо сделать ее резервную копию. Чтобы сделать резервную копию информационной базы данных можно воспользоваться командой «Выгрузить информационную базу» в конфигураторе, сделать резервную копию из режима 1С:Предприятия или скопировать папку с самой информационной базой на съемный носитель / в другое место.


Теперь перейдем непосредственно к решению проблемы несуществующих объектов.Первое, что необходимо сделать – это разобраться в причине возникновения таких объектов.

Причины могут быть разные, в каждом случае требуется особый подход для решения проблемы и восстановления целостности данных. Рассмотрим основные из них.

  • 1.   Непосредственное удаление объектов без пометки на удаление и контроля ссылочной целостности

В программе 1С:Предприятие при стандартном удалении объектов производится контроль ссылочной целостности, предусматривающий удаление объекта в два этапа:

1) установка пометки на удаление;

2) удаление стандартной процедурой с контролем ссылочной целостности.

Однако этот механизм можно обойти, имея право непосредственного удаления объектов без пометки на удаление и контроля ссылочной целостности (в правах пользователя — право «Интерактивное удаление»). Такое удаление производится сочетанием клавиш «SHIFT + DELETE». В результате непосредственного удаления ссылка на объект становится битой и при ее наличии в других объектах отображается как «Объект не найден».

Решение:

Восстановить объект в этой базе невозможно, поэтому можно воспользоваться одним из способов:

  • При наличии резервных копий информационной базы восстановить последнюю (если она была сделана недавно и от текущей она не отличается) и работать в ней;
  • Если пользователь знает, какой объект был удален: найти копию базы, где присутствует этот объект, воспользоваться обработкой «Выгрузка и загрузка данных XML», которая находится в свободном доступе в интернете, перенести объект из старой базы в новую с помощью данной обработки. Битые ссылки заменятся этим объектом. Если неизвестно, какой объект был удален – можно найти его по уникальному идентификатору в старой базе и перенести его обработкой «Выгрузка и загрузка данных XML».

Рекомендации:

Чтобы избежать таких ошибок в дальнейшем, как вариант — запретить пользователям интерактивное удаление. Также необходимо обеспечить регулярное резервное копирование Информационной базы 1С: Предприятие, чтобы всегда иметь возможность восстановить поврежденные или удаленные данные.

  • 2.  Объект из другой базы. Имеет место обмен с другой информационной базой (Стандартный обмен, обмен в Распределенной информационной базе «РИБ», Универсальный обмен)
  •         2.1  Объект не был выгружен из базы – источника

Решение

В этом случае можно выгрузить объект из Базы – Источника заново,  в результате чего этот объект заменит собой все пустые ссылки.

Используем в качестве примера обмен между базами: 1С: Управление торговлей 11.2 и 1С: Бухгалтерия Предприятия 3.0.

При выгрузке документа реализации номенклатура из табличной части не выгрузилась в Бухгалтерию Предприятия. Такое могло произойти при ошибочном снятии объектов справочника «Номенклатура» с регистрации к обмену, либо при нарушении последовательности обмена между базами.

Если таких объектов немного, можно найти их в базе-источнике и зарегистрировать к обмену еще раз (например, написать комментарий к объекту и сохранить изменения, тогда он зарегистрируется к обмену автоматически и выгрузится при следующей синхронизации данных).

Также можно зарегистрировать объекты к выгрузке через стандартную обработку «Регистрация изменений для обмена данными». Для этого нужно из списка настроенных синхронизаций данных сначала найти обмен с базой, в которой есть ненайденные объекты, затем выбрать «Состав отправляемых данных» (или найти обработку «Регистрация изменений для обмена данными» во «Всех функциях»).

В обработке нужно выбрать необходимые объекты в дереве с помощью флажков и зарегистрировать:

— все объекты выбранных типов — можно выбрать объект и все его подчиненные объекты;

— объекты выбранных типов с авторегистрацией;

— одиночные объекты (выбрать из списка);

— объекты при помощи отбора (задать отбор для элементов).

При следующей синхронизации данных, вновь зарегистрированные объекты выгрузятся в базу — приемник и заполнят битые ссылки.

В результате обмена данными ссылки восстановятся.

Рекомендации:

Поскольку такие ошибки возникают, если вручную снимать объекты с регистрации, менять номера сообщений обмена, изменять файлы для обмена данными, то в большинстве случаев рекомендуется придерживаться стандартной процедуры обмена.

  • 2.2           Распределенная информационная база «РИБ».

Объект был удален

Из периферийной информационной базы в Центральную выгрузили объект с пометкой на удаление, а затем сняли ее. В Центральной базе объект с пометкой был удален, а затем выгружен в периферийную как «Объект не найден».

Решение

Как и при непосредственном удалении без контроля ссылочной целостности, в этом случае можно воспользоваться восстановлением объекта из резервной копии базы данных посредством обработки «Выгрузка и загрузка данных XML» (поставляется в составе конфигурации «Конвертация данных, редакция 2» и находится в свободном доступе в Интернете).

ТЕСТИРОВАНИЕ И ИСПРАВЛЕНИЕ ИНФОРМАЦИОННОЙ БАЗЫ 1С

Если данный объект не нужно восстанавливать, то необходимо удалить все ссылки на него посредством стандартного функционала 1С.

Для удаления ссылок на несуществующие объекты можно воспользоваться тестированием и исправлением информационной базы (предварительно сделав резервную копию базы). Для этого необходимо зайти в Конфигуратор – Администрирование – Тестирование и исправление.

В новом окне появятся несколько вариантов проверок и режимов, которые необходимо выбрать.

Реиндексация таблиц информационной базы — это перестроение индексов таблиц базы данных. В информационной базе строится индекс для ускорения поиска по определенным реквизитам. Эта операция приводит к ускорению и оптимизации работы информационной базы, поэтому рекомендуется выполнять ее хотя бы раз в месяц.

Проверка логической целостности информационной базы – проверка логической целостности базы (связи между таблицами базы данных) и исправление ошибок в структурах таблиц информационной базы.

Проверка ссылочной целостности информационной базы — проверка тех самых ссылок на несуществующие объекты в базе данных.

Необходимо выбрать один из трех вариантов исправления таких ошибок:

Создавать объекты — система создает элементы, которые потом нужно заполнить;

Очищать ссылки — ссылки будут очищены;

Не изменять – будут показаны ошибки, ссылки не изменятся. 

Пересчет итогов — пересчет предварительных результатов в регистрах накопления, расчета и бухгалтерии (Срез Последних, Остатки, Обороты, Остатки и обороты и т.д). Пересчет итогов также приводит к ускорению и оптимизации работы информационной базы.

Сжатие таблиц информационной базы—  уменьшение размера базы после тестирования за счет удаления информации об уже удаленных объектах из базы данных.

Реструктуризация таблиц информационной базы – создание идентичных таблиц базы данных и перенос имеющихся данных в изменённые таблицы.

В нашем случае выставим все галочки. После установки настроек нажать «Выполнить» и ждать окончания процедуры. Результаты тестирования можно увидеть в окне служебных сообщений конфигуратора 1С.

После окончания тестирования вопрос с несуществующими объектами будет решен.

Рекомендации:

При удалении объектов и снятии с них пометки на удаление проверять их наличие в других базах. Регулярно выполнять тестирование и исправление информационной базы 1С.

2.3      «Объект не найден» после Универсального обмена данными

Формат предназначен для обмена информацией между программными продуктами 1С Предприятие: он не зависит от структур конфигураций, которые участвуют в обмене и конвертирует данные в универсальный формат EnterpriseData. В процессе синхронизации базы обмениваются XML-файлами с информацией об объектах, зарегистрированных к обмену.

Фирма «1С» активно развивает формат EnterpriseData и его использование во все большем количестве приложений.

При таком обмене иногда могут возникать ошибки, связанные с конвертацией объектов одного типа (базы – источника) в объекты другого типа (базы – приемника).

Например, при обмене между базами 1С: Управление торговлей 11.2 и 1С: Бухгалтерия Предприятия 3.0. документ «Передача товаров между организациями» из «Управление торговлей» переносится в «Бухгалтерию Предприятия» как Документ «Поступление (акт, накладная)» или Документ «Реализация (акт, накладная)». При этом одна организация переносится в «Бухгалтерию Предприятия» как контрагент. Данное преобразование предусмотрено фирмой «1С» в правилах конвертации данных. Но, несмотря на это, иногда происходят ошибки при переносе разнотипных объектов между базами. Это может быть вызвано долгим отсутствием обновления какой-либо базы – участника обмена и как следствие – старыми правилами формата обмена, которые не гарантируют правильного переноса данных.

Решение

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

Используемую версию формата можно изменить в настройках обмена на вкладке «Служебная информация»:

Если после этих действий ссылки «Объект не найден» не были заменены правильными объектами, необходимо настроить сопоставление данных вручную.

Для этого нам понадобится регистр «Публичные идентификаторы синхронизируемых объектов» (Найти его можно через «Все функции» — «Регистры сведений». Он используется для сопоставления объектов при синхронизации через универсальный формат. Ввиду большого количества записей открытие регистра может занять продолжительное время.

Регистр имеет следующую структуру:

В регистре можно обнаружить ссылки на несуществующие объекты:

В первом столбце находятся идентификаторы объектов из другой информационной базы. По этому идентификатору можно найти объект в базе-источнике.

Как получить ссылку на любой элемент информационной базы 1С:

В 1С есть очень полезный функционал – можно получить ссылку на любой объект базы и также перейти к объекту.

Ссылки, представленные во второй колонке регистра, не были найдены в базе, соответственно, эти объекты не были созданы. 

Если битых ссылок не так много, то можно сопоставить их вручную. Сначала найти все битые ссылки в текущей базе и найти их соответствия в другой базе, затем выставить сопоставления в регистре «Публичные идентификаторы синхронизируемых объектов» с правильными объектами.

В нашем примере битые ссылки находятся в документе «Реализация товаров». Вместо контрагента <Объект не найден> (18:805910bf4888a98211e4f89df8b22aab). Находим этот документ в базе-источнике и определяем Организацию, которую необходимо перенести в качестве контрагента. Затем ищем такого же контрагента в базе-приемнике, при его отсутствии – создаем.

После создания или нахождения нужного объекта в ИБ нужно задать сопоставление в регистре «Публичные идентификаторы синхронизируемых объектов». Находим строку, содержащую битую ссылку <Объект не найден> (18:805910bf4888a98211e4f89df8b22aab) и сопоставляем ей необходимого контрагента. В примере: объект с идентификатором «f8b22aab-f89d-11e4-8059-10bf4888a982» будет выгружен в базу как «Моя Организация» в не зависимости от типа объекта источника. В базе – источнике необходимо зарегистрировать такие объекты к обмену заново и запустить  синхронизацию данных. После обмена не найденные объекты заменятся согласно сопоставлениям, сделанным  в регистре.

При большом количестве битых ссылок рекомендуем обратиться к проверенным специалистам, которые восстановят Ваши данные без потерь.

Рекомендации:

В таких случаях нужно обновить правила конвертации данных – загрузить из новой базы или полностью обновить свою информационную базу – формат и правила конвертации поставляются в каждом обновлении продуктов 1С:Предприятие. Также стоит следить за изменениями правил формата обмена на ИТС и других источниках.

Создано 14.09.2020 10:23
Опубликовано 14.09.2020 10:23
Автор: Administrator
Просмотров: 26697

Судя по количеству просмотров предыдущей статьи про повреждение файла базы данных, мы понимаем, что такие ошибки в работе пользователей 1С – далеко не редкость. В прошлом материале мы подробно описали механизм исправления этого недочета. И на, первый взгляд, все стало хорошо: ошибка устранена, пользователь смог зайти в базу данных и продолжить работу. Однако далее была обнаружена еще одна ошибка с текстом «Объект не найден», вызванная всё тем же повреждением базы данных. И тут уже придется прибегнуть к тестированию базы. Каким образом была выявлена эта ошибка и как исправлена, расскажем далее. 

Для начала приведем пример как выглядит эта ошибка:

Данная ошибка может проявляться в любом документе, в любой базе. В наименовании этой ошибки могут быть любые символы (буквы/цифры). Главное – это название «Объект не найден».

Каким образом эта ошибка себя проявила?

После устранения сбоя, описанного нами ранее, программа открывается и работает, но ведет себя странно. В отчетах отображается информация, а первичный документ пользователь не может найти. В частности, начисление зарплаты по сотруднику. При вводе начисления еще раз документ формируется пустым. И ведь верно – зарплата то ему уже начислена. И это «подтверждают» отчеты. Посмотрим более внимательно.

Сформировав отчет «Полный свод начислений и удержаний», мы видим, что начисление есть.

Попытаемся разобраться, какой документ зафиксировал это начисление. Дальше мы наблюдаем за этой суммой…

Чтобы посмотреть, каким документом введена сумма, нажмите на ней правой кнопкой мышки и выберите команду «Расшифровать».

В открывшемся окне выберите «Регистратор».

Регистратор – это и есть документ, зафиксировавший запись, на основании которой формируется данный отчет и выбранная сумма.

Открываем расшифровку и что мы видим: «Объект не найден» и наша сумма.

В среде программистов это называется «битая ссылка», т.е. в отчете данные отображены (данные в таблицах программы зафиксированы), а сам объект отсутствует. Соответственно, это не дает нам дальше работать, вводить документы, плюс это отображает некорректную информацию.

Все отчеты показывают, что сумма есть. А первичный документ (в нашем случае – начисление зарплаты) мы найти не можем.

Рассмотрим, как выйти из такой ситуации.

Удаление битых ссылок. Тестирование информационной базы.

Шаг 1. Запустите программу в режиме «Конфигуратор».

Шаг 2. Выберите в разделе «Администрирование» пункт «Тестирование и исправление…».

Еще раз напоминаем, что при любых действиях с информационной базой, рекомендуется сначала сделать ее резервную копию. И если вы сомневаетесь в ваших действиях, обратитесь к специалисту за помощью.

Шаг 3. Сделайте резервную копию информационной базы.

В окне настройки тестирования много галочек и каждое действие выполняется при разного рода ошибках. В нашем случае нарушена ссылочная целостность информационной базы. И далее все зависит от варианта решения проблемы. В нашем случае произошла потеря данных, создать объект не получится. Потому, чтобы избавиться от «битой ссылки», ее просто надо удалить.

Шаг 4. Установите галочку «Проверка ссылочной целостности» и «Проверка логической целостности». Установите переключатель в положение «Очищать ссылки» и «Удалять объект».

Т.е. при обнаружении таких несуществующих объектов, система их удалит.

Установка других галочек, в принципе, не помешает. Подробно мы их рассматривать в данной статье не будем. Единственное, некоторые процессы могут занять длительное время.

По окончанию проверки внизу выводится сообщение, что «Тестирование закончено» и строчки проверки «перестают бегать» в окне служебных сообщений.

Наша ошибка исправлена.

Шаг 5. Проверим базу.

Сумма с «битой ссылкой» исчезла из отчета «Полный свод начислений и удержаний».

Программа дает заполнить документ «Начисление зарплаты и взносов» корректно.

Сотрудник, по которому была «битая ссылка», вновь попадает в начисление.

Проблема решена.

Автор статьи: Ольга Круглова

Понравилась статья? Подпишитесь на рассылку новых материалов

Добавить комментарий

На чтение 4 мин Опубликовано Обновлено

Одной из наиболее распространенных ошибок, с которыми могут столкнуться пользователи программного комплекса 1С:Предприятие, является ошибка «Объект системы взаимодействия не найден». Эта ошибка может возникнуть при попытке выполнения определенной операции, например, при запуске отчета или при попытке обновления данных в базе.

Ошибку «Объект системы взаимодействия не найден» обычно вызывает неправильное или некорректное использование системного объекта или вызов несуществующего объекта. В большинстве случаев, возникает проблема в настройках или конфигурации системы 1С.

Для решения этой ошибки, сначала следует проверить наличие необходимых объектов в системе и их настройки. Если объекты присутствуют, но ошибка все равно возникает, возможно, стоит обратиться к специалисту по 1С, который поможет настроить систему и устранить проблему. Для более опытных пользователей также доступна документация по 1С, в которой можно найти информацию о причинах возникновения ошибки и способы ее устранения.

В заключение, ошибка «Объект системы взаимодействия не найден» может быть вызвана различными причинами, связанными с настройками и конфигурацией системы 1С. Решить данную проблему можно путем проверки и настройки объектов системы, а при необходимости — обращения к специалисту или использования документации.

Как исправить ошибку «Объект системы взаимодействия не найден» в 1С?

Ошибка «Объект системы взаимодействия не найден» в 1С часто возникает при попытке выполнить операции, связанные с взаимодействием с внешними системами, такими как Интернет-сервисы или веб-сервисы. Эта ошибка может быть вызвана различными причинами, но чаще всего она связана с отсутствием или неправильной настройкой необходимых компонентов.

Для исправления ошибки «Объект системы взаимодействия не найден» в 1С, следуйте следующим рекомендациям:

  1. Проверьте наличие требуемой компоненты: Проверьте, установлена ли требуемая компонента, которая вызывает ошибку. Если компонента отсутствует, установите ее, следуя инструкциям по установке.
  2. Обновите компоненту: Если компонента уже установлена, но ошибка все равно возникает, попробуйте обновить эту компоненту до последней версии. Иногда проблемы могут быть связаны с устаревшей версией компоненты.
  3. Проверьте настройки компоненты: Проверьте настройки компоненты, вызывающей ошибку. Убедитесь, что все настройки указаны правильно, включая URL-адрес или путь к веб-сервису. Используйте документацию или обратитесь к специалисту, чтобы убедиться, что настройки указаны правильно.
  4. Перезапустите сервер 1С: Попробуйте перезапустить сервер 1С, на котором работает ваша информационная база. Иногда перезапуск сервера может помочь решить проблемы с взаимодействием системы.

Если после выполнения этих рекомендаций ошибка «Объект системы взаимодействия не найден» в 1С все еще возникает, рекомендуется обратиться за помощью к IT-специалисту или в поддержку 1С. Они смогут провести детальное исследование проблемы и помочь вам решить ее.

Шаги для устранения проблемы

Если вы сталкиваетесь с ошибкой «Объект системы взаимодействия не найден» в 1С, следуйте этим шагам для устранения проблемы:

  1. Проверьте наличие объекта взаимодействия: Первым шагом нужно убедиться, что объект, с которым возникает проблема, действительно существует в системе. Проверьте его наличие в списке объектов или через поиск.
  2. Проверьте права доступа: Убедитесь, что у пользователя, на котором возникает ошибка, есть права доступа к объекту взаимодействия. Проверьте настройки прав доступа для объекта и пользователя.
  3. Проверьте целостность данных: Проверьте, нет ли ошибок в базе данных, которые могут привести к появлению данной ошибки. Выполните проверку и восстановление базы данных, если это необходимо.
  4. Перезапустите сервер: Если все вышеперечисленные шаги не помогли, попробуйте перезапустить сервер 1С. Это может помочь в случае, если проблема вызвана временным сбоем в системе.
  5. Обратитесь в службу поддержки: Если все вышеперечисленные шаги не решили проблему, свяжитесь со службой поддержки 1С. Они смогут оказать более подробную помощь и решить данную проблему.

Следуя этим шагам, вы сможете устранить ошибку «Объект системы взаимодействия не найден» в 1С и продолжить работу в системе без проблем.

Понравилась статья? Поделить с друзьями:
  • Общий анализ крови ошибка
  • Объясните фундаментальную ошибку атрибуции
  • Объект crypts ошибка при расшифровывании 0x80092004 80092004
  • Общие правила исправления бухгалтерских ошибок
  • Объект ошибки python