Андрей Заглянувший Сообщений: 509 |
#1
17.01.2020 22:12:27 У нас есть отдельная конфигурация, которая на входе получает данные с внешнего сервиса и создает уже в рабочей базе документ «заказ поставщику». http://ipro.etm.ru/ipro2/solutions/1c_ipro При попытке создания документа, получаем такую ошибку:
У нас Объединенное решение: Модуль 1С:CRM 3 (3.0.17.29) + 1С:Комплексная автоматизация 2 (2.4.11.46) Разработчики данного решения говорят вот что:
Внимание вопрос!)) |
||||
Добрый день! Проблема была направлена в отдел разработки. После получения ответа он будет Вам предоставлен. |
|
Добрый день! Поступил ответ от отдела разработки: Рекомендуем установить признак «Внешнее соединение». Исправление будет в следующем релизе. |
|
Андрей Заглянувший Сообщений: 509 |
Большое спасибо за исправления. После последнего обновления, все заработало как надо! |
в 22 релизе модуля опять появилась данная проблема. Скажите что подправить или если возможно, то внесите корректировку в новые релизы. |
|
Людмила Шишкина Заглянувший Сообщений: 177 |
#6
23.06.2021 18:21:45 Добрый день! Проблема передана в отдел разработки. При получении ответа он будет предоставлен в этой ветке форума. |
1C 8 Произошла исключительная ситуация (V83.COMConnector.1): Внешнее соединение не разрешено для указанного пользователя 1С:Предприятия
Описание ошибки:
В ранее работавшем обмене из базы УТ в БП при выполнении выгрзки стала возникать ошибка:
Ошибка при установке подключения ко второй информационной базе: Не удалось подключится к другой программе: {ОбщийМодуль.ОбщегоНазначения.Модуль(9234)}: Ошибка при вызове метода контекста (Connect)
Результат.Соединение = COMConnector.Connect(СтрокаСоединения);
по причине:
Произошла исключительная ситуация (V83.COMConnector.1): Внешнее соединение не разрешено для указанного пользователя 1С:Предприятия
Найденные решения:
Нажатие на изображении увеличит его
Рис. 1. Пример возникновения ошибки при работе обмена между базами 1С УТ 10.3 и БП 3.0
Так же перестал работать настроенный и работавший ранее односторонний обмен из базы конфигурации 1С: Зарплата и управление персоналом, ред. 3.0 в 1С: Бухгалтерия предприятия, ред. 3.0. В журнале регистрации ошибок обмена так же содержалась похожая формулировку от исходной ошибки:
Не удалось подключиться к другой программе: Произошла исключительная ситуация (V83.COMConnector.1): Внешнее соединение не разрешено для указанного пользователя 1С:Предприятия
по причине:
Произошла исключительная ситуация (V83.COMConnector.1): Внешнее соединение не разрешено для указанного пользователя 1С:Предприятия
Нажатие на изображении увеличит его
Рис. 2. Пример ошибки при работе выгрузки данных из базы 1С ЗУП 3.0 в БП 3.0
Итак, попробуем разобраться, в чем причина, почему возникает ошибка, проблема «Произошла исключительная ситуация (V83.COMConnector.1): Внешнее соединение не разрешено для указанного пользователя 1С:Предприятия» и как ее исправить?
В тексте ошибки явно находим подсказку на то, что нужно в первую очередь проверить права пользователя в базе, к которой происходит подключение для обмена справочниками и документами в рамках настроенной выгрузки. Формулировка «Внешнее соединение не разрешено для указанного пользователя» указывает, что дело в первую очередь в пользователе «Обмен», как видно на Рис.1. Удивительным было то, что ранее у пользователя, под которым выполнялось com-подключение к базе-приемнику, все было настроено для работы обмена и работало продолжительное время.
Поэтому в базе Бухгалтерия переходим в раздел «Администрирование» — ссылка списка настроек «Настройки пользователей и прав» — ссылка «Пользователи».
Нажатие на изображении увеличит его
Рис. 3. Переход к списку пользователей в базе конфигурации 1С: Бухгалтерия 3.0
Откроется форма списка пользователей базы. Находим в списке пользователя «Обмен» — в Вашем случае это будет пользователь, под которым выполняется выгрузка, если используется прямое подключение к базе. Нажимаем на надпись-ссылку «Права доступа».
Нажатие на изображении увеличит его
Рис. 4. Вид формы настроек пользователя базы 1С: Бухгалтерия предприятия, редакция 3.0
Как оказалось, в моем случае, ошибка «Не удалось подключиться к другой программе: Произошла исключительная ситуация (V83.COMConnector.1): Внешнее соединение не разрешено для указанного пользователя 1С:Предприятия по причине» возникла с некоторого времени из-за того, что у пользователя отключены все права доступа в списке «Профили пользователя». Разбираться — почему так было бы долго. Это мог быть кто-нибудь из пользователей базы, или что крайне маловероятно, но все-таки возможно — результат обновления базы (крайне редко, но удивительные веди после обновлений могут возникать). В общем проще было установить снова права пользователю. Для возможности выполнения обмена в принципе достаточно профиля «Администратор», но, на всякий случай рекомендуется еще и установить профиль «Синхронизация данных с другими программами».
Нажатие на изображении увеличит его
Рис. 5. Состав прав доступа пользователя для возможности выполнения синхронизации (обмена данных)
После проделанных операций работоспособность синхронизации между базами 1С 8 была восстановлена.
Оцените, помогло ли Вам предоставленное описание решения ошибки?
© www.azhur-c.ru 2014-2020. Все права защищены. Использование текстов и изображений с данной страницы без письменного разрешения владельца запрещено. При использовании материалов с данной страницы обязательно указание ссылки на данную страницу.
20-07-2022
Журавлев А.С.
(Сайт www.azhur-c.ru)
30.10.14 — 11:11
Столкнулась с очередной проблемой при работе с COM. Моя обработка подключается из розницы к УТ 11 и в УТ я создаю перемещение и пытаюсь его провести. Перемещение без проблем создается, без проблем записывается. Но при проведении документа возникает ошибка.
«Ошибка при вызове метода контекста (Write): Произошла исключительная ситуация (1C:Enterprise 8.3.4.408): Нарушение прав доступа! »
Сразу скажу, что с правами пользователя это не связано. У пользователя права администратора. Если я захожу в ут и провожу там эти перемещения под тем же пользователем, то все без проблем проводится. Документ проводится как из формы так и из списка документов (то есть заполнение каких-то реквизитов при открытии формы тоже отпадает). На другом форуме обсуждалась такая же проблема. При том там опытным путем выяснили, что такое происходит именно на скл-ных базах, в файловых таких проблем не возникает. Вот часть кода.
БазаУТ.SetPrivilegedMode(True);
Пока ОбходПоОрганизации.Следующий() Цикл
ОбходПоСкладам = ОбходПоОрганизации.Select(БазаУТ.QueryResultIteration.ByGroups);
Пока ОбходПоСкладам.Следующий() Цикл
ДетальныеЗаписи = ОбходПоСкладам.Select();
НовоеПеремещение = БазаУТ.Документы.ПеремещениеТоваров.CreateDocument();
НовоеПеремещение.СкладОтправитель = ОбходПоСкладам.Склад;
НовоеПеремещение.Дата = ТекущаяДата();
НовоеПеремещение.Организация = ОбходПоСкладам.Организация;
НовоеПеремещение.СкладПолучатель = БазаУТ.Справочники.Склады.НайтиПоНаименованию(«Магазин СЦ Люмис»);
НовоеПеремещение.Ответственный = БазаУТ.Справочники.Пользователи.НайтиПоНаименованию(Строка(ПараметрыСеанса.ТекущийПользователь.Наименование));
Пока ДетальныеЗаписи.Следующий() Цикл
СтрокаПеремещения = НовоеПеремещение.Товары.Add();
СтрокаПеремещения.Номенклатура = ДетальныеЗаписи.Номенклатура;
СтрокаПеремещения.Количество = ДетальныеЗаписи.Количество;
СтрокаПеремещения.КоличествоУпаковок = ДетальныеЗаписи.Количество;
КонецЦикла;
НовоеПеремещение.Write();
Попытка
//НовоеПеремещение.ОбменДанными.Загрузка = Истина;
НовоеПеремещение.Write(БазаУТ.DocumentWriteMode.Posting);
Исключение
//НовоеПеремещение.Write();
//Сообщить(«Не удалось провести перемещение № » + Строка(НовоеПеремещение.Номер) + Строка(ОписаниеОшибки()));
КонецПопытки;
КонецЦикла;
КонецЦикла;
БазаУТ.SetPrivilegedMode(false);
1 — 30.10.14 — 11:14
(0) У тебя при проведении документа идет обращение к куче общих модулей. И, возможно, у кого-то из этих модулей нет галочки «Внешнее соединение»…
2 — 30.10.14 — 11:15
(1) Хотя не, в таком случае была бы ошибка «Процедура с указанным именем не обнаружена»….
3 — 30.10.14 — 11:17
А ОписаниеОшибки() не содержит ничего интересного?
4 — 30.10.14 — 11:28
Описание ошибки содержит Ошибка при вызове метода контекста (Write): Произошла исключительная ситуация (1C:Enterprise 8.3.4.408): Нарушение прав доступа!
Но это наверно идет из розницы описание ошибки, я пыталась получить описание ошибки из торговли, написав вот так
//Сообщить(«Не удалось провести перемещение № » + Строка(НовоеПеремещение.Номер) + Строка(БазаУТ.ОписаниеОшибки()));
Но не вышло. Сейчас попробую ОписаниеОшибки() заменить на англоязычный код.
5 — 30.10.14 — 11:32
А что написано в ЖР? На какой конкретно объект нет прав?
6 — 30.10.14 — 11:33
(5), В ЖР Отмена происходит при записи в независимый регистр сведений «Состояние отгрузки»
7 — 30.10.14 — 11:49
(4) А Перемещение твое в УТ, случайно, не обработано напильником? Ну, там, движения по нетиповому регистру может добавлены в подписке на событие?…
8 — 30.10.14 — 11:54
Само перемещение не доработано. Но в базе есть внешний журнал регистрации, который на данные момент отключен. Поэтому есть подписка на событие, где источником являются все документы объекты.
9 — 30.10.14 — 12:09
(8) Попробуй в этой подписке в источник поставить какой-нибудь левый документ (один документ, а не все документы). Базу сохрани, обнови и проверь проведение.
10 — 30.10.14 — 16:02
(9), Попробовала. Тоже не помогло.
11 — 30.10.14 — 16:43
(0) «Сразу скажу, что с правами пользователя это не связано» — скажи это громко, четко, 2 раза в порт сетевой карты сервера.
12 — 30.10.14 — 16:49
(0) Прав доступа не хватает.
13 — 30.10.14 — 17:07
Я имела в виду права пользователя 1с на регистры и прочие объекты конфигурации, возможно, я что-то путаю. Скажите как решить эту проблему? Где какие права можно посмотреть или настроить?
14 — 30.10.14 — 17:08
(13) Как всегда: позвать программиста
15 — 30.10.14 — 17:09
Попробуйте не через коннектор, а через приложение.
16 — 30.10.14 — 17:18
(14) я им и являюсь
17 — 30.10.14 — 17:20
(16) Спасибо, давно так не смеялся
18 — 30.10.14 — 17:31
19 — 30.10.14 — 17:32
(18), да
20 — 30.10.14 — 17:36
(13) Ну судя по контексту сообщения в (11), человек имеет ввиду какие-то другие права, но, видимо, делиться своими познаниями с широким кругом лиц он не намерен.
Поддержу ТС, тоже сталкивался с такой проблемой, хотелось бы найти какое-либо адекватное решение. Хотя бы направление, в котором нужно копать
21 — 30.10.14 — 19:21
в файловом варианте не испытывал, но у меня была такая же проблема когда я обмена, когда я проводил документ с подпиской через COM универсальной обработкой. как только подписку убирал — все хорошо. и когда грузил обработкой сам тоже хорошо — но в регл. задании была ошибка.
я так понял что в файловом режиме все хорошо потому что нет «сервера».
в итоге решил отказаться от подписки.
22 — 30.10.14 — 19:25
но ошибка была другая, не права. я бы на вашем месте попробовал записывать с полными правами, для проверки что это права.
23 — 30.10.14 — 20:15
(22) была подобная ситуация с подпиской на событие. Использовал в ней конструкцию типа Вопрос() — все работало нормально, пока не начал настраивать обмен РИБ по расписанию. Во внешнем соединении данная конструкция недоступна — что выдавало ошибку.
Обошел проблему с помощью #Если Клиент Тогда
24 — 31.10.14 — 05:29
(10) Тогда в таких ситуациях я делаю так:
1). Закомментирую всю процедуру ОбработкаПроведения() у этого документа.
2.1). Если ошибка ушла, то начинаю раскомментировать блоками. Нахожу проблемный участок, и понимаю причину.
2.2). Если ошибка не ушла, то удаляю все подписки на события, т.к. дело в них. И проблема проходит. Затем по одной начинаю восстанавливать подписки и ищу проблемную подписку.
25 — 31.10.14 — 08:58
(24) достаточно
Проверь модуль, модули с флажком Внешнее соединение
Сервис/Параметры/Проверка галочка внешнее соединение.
26 — 31.10.14 — 11:55
27 — 03.11.14 — 00:22
Спасибо. Попробую тогда еще на другой платформе это дело произвести.
28 — 05.11.14 — 09:26
Проблема решилась. Воспользовалась советом (24). Оказалось, что проблема действительно в правах. Не было права на изменение на Последовательность Партии товаров организации. Почему этого права не требуется при проведении из Предприятия, я так и не поняла.
Cube
29 — 05.11.14 — 09:36
(28) Удачное фото неизбежно приводит к качественным ответам =))
Ошибка при вызове метода контекста (Connect): Произошла исключительная ситуация (V83.COMConnector.1): Версия компоненты ‘comcntr’ отличается от версии корневого модуля ‘core83’
Часто бывает, что при настроенной синхронизации после обновления платформы появляется ошибка «Произошла исключительная ситуация (V83.COMConnector.1): Версия компоненты ‘comcntr’ отличается от версии корневого модуля ‘core83’». Так происходит потому, что автоматически не зарегистрировалась компонента comcntr.dll из-за проблем с правами пользователя на компьютере.
Решить данную проблему можно двумя способами.
Способ №1.
Переустановить платформу под правами Администратора или под пользователем, у которого есть такие права.
Способ №2.
Если не получилось как в способе №1, то можно вручную зарегистрировать самому эту компоненту.
Перед этим нам необходимо изменить Параметры контроль учетной записи.
Для Windows 7 нам необходимо зайти в Пуск затем в Панель управления.
Для Windows 10 нам необходимо в левом нижнем углу панели задач в строке поиска набрать Панель управления и перейти по открывшейся ссылке.
В правом верхнем углу Панели управления выбрать Просмотр-Мелкие значки и затем в списке перейти в Учетные записи пользователей.
Там выбрать Изменить параметры контроля учетных записей.
Затем поставить ползунок в самом нижнем положении.
И перезапустить компьютер.
После перезагрузки необходимо:
Для Windows 7 надо перейти в Пуск, затем в строке поиска ввести cmd.exe,нам покажет что найдена Командная строка и, щелкнув по ней правой клавишей мыши, выбрать «Запуск от имени администратора».
Для Windows 10 нам необходимо в левом нижнем углу панели задач в строке поиска набрать Командная панель или cmd.exe и, щелкнув по ней правой клавишей мыши, выбрать «Запуск от имени администратора».
У нас откроется Командная строка, где нам необходимо ввести команду:
1.Для платформы x86
Regsvr32 «C:Program Files (х86)1cv8номер версии вашей платформыbincomcntr.dll» (regsvr32пробел»C:Program Files (х86)1cv8номер версии вашей платформыbincomcntr.dll»).
2.Для платформы х64
Regsvr32 «C:Program Files1cv8номер версии вашей платформыbincomcntr.dll» (regsvr32пробел»C:Program Files1cv8номер версии вашей платформыbincomcntr.dll»).
Затем нажать клавишу Enter.
Если все сделали правильно, то увидите вот такое окно.
После этого необходимо перезагрузить компьютер. Как включится, пробуйте снова сделать синхронизацию.
В платформе 1С сообщения об ошибках бывают достаточно запутаны, и без должных навыков разобраться в причинах достаточно сложно. Вот и сообщение об ошибке при вызове контекста может ввести в ступор начинающего разработчика. Однако в подавляющем большинстве случаев мы видим подобное сообщение, если разработчик допустил ошибку в своем коде. Причем речь зачастую идет не об орфографических ошибках, а о логических.
Исправляем ситуацию
Чтобы избавиться от этого неприятного сообщения об ошибке при вызове метода контекста, следует понимать, что контекстом называют методы платформы 1С. Значит в определенной строке кода воспользовались методом с неверными параметрами или вызвали его не от того владельца. Всегда внимательно и полностью читайте сообщения об ошибках – часто в них содержится указание на строку и метод, вызвавший ошибку. Это поможет сэкономить время на отладку и поиск проблемного места в коде.
Рассмотрим действия разработчика на примере со специально допущенной ошибкой. Мы запускаем на исполнение нижеприведенный кусок кода с запросом, в котором забыли дописать условие отбора. Компилятор 1С пропускает такую процедуру, так как орфографических ошибок в написании команд мы не допустили. Однако в режиме предприятия нас ждет такое сообщение об ошибке:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Номенклатура.Ссылка КАК Ссылка,
| Номенклатура.ВерсияДанных КАК ВерсияДанных,
| Номенклатура.ПометкаУдаления КАК ПометкаУдаления,
| Номенклатура.Родитель КАК Родитель,
| Номенклатура.ЭтоГруппа КАК ЭтоГруппа,
| Номенклатура.Код КАК Код,
| Номенклатура.Наименование КАК Наименование,
| Номенклатура.Артикул КАК Артикул,
| Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
| Номенклатура.ТипНоменклатуры КАК ТипНоменклатуры,
| Номенклатура.Предопределенный КАК Предопределенный,
| Номенклатура.ИмяПредопределенныхДанных КАК ИмяПредопределенныхДанных
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| ";
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
КонецЦикла;
Приведенный текст ошибки программисту 1С скажет, что в модуле формы обработки «ЧтениеЗаписьXML на 152 строчке кода не может выполниться запрос. Причина в том, что на 17 строчке запроса нет чего-то, что ждал компилятор. Таким образом, чтобы убрать подобное сообщение, необходимо выяснить, что там должно быть и написать недостающий код.
Увидев вышеприведенный кусок кода, разработчик заметит, что в запросе есть служебное слово «ГДЕ», дающее сигнал 1С, что дальше будет условие. Но мы забыли дописать его и, естественно, система с помощью сообщения об ошибке спрашивает нас – «а где условие?». Чтобы исправить эту ситуацию необходимо либо убрать оператор «ГДЕ» из запроса, либо добавить условие.
Но ошибки могут быть не только в текстах запросов. Допустим, мы хотим выбрать всю номенклатуру и узнать, входит ли она в определенную группу. Проверка происходит с помощью метода «ПринадлежитЭлементу» и его параметра, который должен быть типа СправочникСсылка. Мы опять допускаем ошибку и вместо ссылки в параметр метода помещаем строку, содержащую имя переменной.
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Номенклатура.Ссылка КАК Ссылка,
| Номенклатура.ВерсияДанных КАК ВерсияДанных,
| Номенклатура.ПометкаУдаления КАК ПометкаУдаления,
| Номенклатура.Родитель КАК Родитель,
| Номенклатура.ЭтоГруппа КАК ЭтоГруппа,
| Номенклатура.Код КАК Код,
| Номенклатура.Наименование КАК Наименование,
| Номенклатура.Артикул КАК Артикул,
| Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
| Номенклатура.ТипНоменклатуры КАК ТипНоменклатуры,
| Номенклатура.Предопределенный КАК Предопределенный,
| Номенклатура.ИмяПредопределенныхДанных КАК ИмяПредопределенныхДанных
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| НЕ Номенклатура.ЭтоГруппа ";
НужнаяГруппаЭлементов = Справочники.Номенклатура.НайтиПоНаименованию("Мебель");
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Сообщить(ВыборкаДетальныеЗаписи.Ссылка.ПринадлежитЭлементу("НужнаяГруппаЭлементов"));
КонецЦикла;
1С выдает настолько же информативное сообщение, из которого мы понимаем, что на 158 строке у 1 параметра неправильный тип. Но что же делать, если мы не знаем, какой тип должен быть? В этом нам поможет Синтакс-помощник, встроенный в платформу 1С.
В конфигураторе находим строку и метод, на который указывало сообщение об ошибке, и нажимаем на него правой кнопкой мыши. Выбираем пункт «Поиск в синтакс-помощнике» и платформа самостоятельно ищет справочную информацию по выделенному методу. В справке мы видим не только подробное описание параметров и самого метода, но и пример. Сверив пример с нашим кодом, приходит понимание, что кавычки не нужны и без них все работает.
Чаще всего причиной подобных ошибок выступают следующие факторы:
- Невнимательность;
- Отсутствие опыта или знаний;
- Несогласованность действий разработчиков друг с другом;
- Изменения в методах контекста в новых версиях платформы.
Но ошибки при разработке ПО случаются постоянно, поскольку иногда ошибаются даже специалисты с многолетним опытом. Самое главное – уметь исправлять их и учиться на них. Постепенно вы будете видеть сообщения об ошибках все реже и научитесь замечать подобные «опечатки» еще до запуска 1С.