Ошибка при вызове метода контекста внешнее соединение

 

Андрей

Заглянувший

Сообщений: 509
Авторитет:

20

Регистрация: 25.10.2010

#1



0


17.01.2020 22:12:27

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

http://ipro.etm.ru/ipro2/solutions/1c_ipro

При попытке создания документа, получаем такую ошибку:

Код
Описание='Ошибка при вызове метода контекста (Записать)'
ИмяМодуля='ОбщийМодуль.БИТ_ОбщийМодуль.Модуль'
НомерСтроки=3 054
ИсходнаяСтрока='            НоменклатураОбъектCOM.Записать();'
Ошибка Н5{ОбщийМодуль.БИТ_ОбщийМодуль.Модуль(3054)}: Ошибка при вызове метода контекста (Записать): Произошла исключительная ситуация (1C:Enterprise 8.3.16.1063): Ошибка при выполнении обработчика - 'ПередЗаписью'
Попытка передачи с клиента на сервер мутабельного значения 1-го параметра метода CRM_СинхронизацияiCRMРегистрацияПередЗаписью ()., ИнформацияОбОшибке
Структура
Завершено!

У нас Объединенное решение: Модуль 1С:CRM 3 (3.0.17.29) + 1С:Комплексная автоматизация 2  (2.4.11.46)
На чистой КА работает без проблем. Начилось это все релизов 5 назад.

Разработчики данного решения говорят вот что:

Цитата
не установлены признаки «Внешнее соединение» в общих модулях, в которых размещены процедуры подписок на события записи документов и справочников. В связи с этим при подключении к БД по COM соединению, возникает ошибка.

Во время тестирования изменены настройки общих модулей:

CRM_КлиентыСервер
Ошибка при вызове процедуры подписки на событие ПередЗаписьюОбъектаОбщегоЖурнала

CRM_СинхронизацияСiCRMНовый
Ошибка при вызове процедуры подписки на событие CRM_СинхронизацияiCRMРегистрацияДокументы

CRM_ОбработкиЗаполненияЗаписиКопированияОбъектов
Ошибка при вызове процедуры подписки на событие СправочникПередЗаписью

CRM_Модуль_МетодыМодулейОбъектовСправочников
Ошибка при вызове процедуры подписки на событие СправочникиПередЗаписью

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

Внимание вопрос!))
Можно это поправить?

 

Добрый день!

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

 

Добрый день!

Поступил ответ от отдела разработки:

Рекомендуем установить признак «Внешнее соединение». Исправление будет в следующем релизе.

 

Андрей

Заглянувший

Сообщений: 509
Авторитет:

20

Регистрация: 25.10.2010

Большое спасибо за исправления. После последнего обновления, все заработало как надо!

 

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

 

Людмила Шишкина

Заглянувший

Сообщений: 177
Авторитет:

5

Регистрация: 04.07.2019

#6



0


23.06.2021 18:21:45

Добрый день!

Проблема передана в отдел разработки. При получении ответа он будет предоставлен в этой ветке форума.

1C 8 Произошла исключительная ситуация (V83.COMConnector.1): Внешнее соединение не разрешено для указанного пользователя 1С:Предприятия

Описание ошибки:
В ранее работавшем обмене из базы УТ в БП при выполнении выгрзки стала возникать ошибка:
Ошибка при установке подключения ко второй информационной базе: Не удалось подключится к другой программе: {ОбщийМодуль.ОбщегоНазначения.Модуль(9234)}: Ошибка при вызове метода контекста (Connect)
Результат.Соединение = COMConnector.Connect(СтрокаСоединения);

по причине:
Произошла исключительная ситуация (V83.COMConnector.1): Внешнее соединение не разрешено для указанного пользователя 1С:Предприятия

Найденные решения:

Нажатие на изображении увеличит его
1C 8 что сделать, чтобы убрать, исправить ошибку V83.COMConnector.1 Внешнее соединение не разрешено для указанного пользователя 1С
Рис. 1. Пример возникновения ошибки при работе обмена между базами 1С УТ 10.3 и БП 3.0

Так же перестал работать настроенный и работавший ранее односторонний обмен из базы конфигурации 1С: Зарплата и управление персоналом, ред. 3.0 в 1С: Бухгалтерия предприятия, ред. 3.0. В журнале регистрации ошибок обмена так же содержалась похожая формулировку от исходной ошибки:

Не удалось подключиться к другой программе: Произошла исключительная ситуация (V83.COMConnector.1): Внешнее соединение не разрешено для указанного пользователя 1С:Предприятия
по причине:
Произошла исключительная ситуация (V83.COMConnector.1): Внешнее соединение не разрешено для указанного пользователя 1С:Предприятия

Нажатие на изображении увеличит его
1C 8 ошибка выгрузки, синхронизации, что сделать, как исправить, Ошибка при установке подключения ко второй информационной базе: Не удалось подключится к другой программе
Рис. 2. Пример ошибки при работе выгрузки данных из базы 1С ЗУП 3.0 в БП 3.0 

Итак, попробуем разобраться, в чем причина, почему возникает ошибка, проблема «Произошла исключительная ситуация (V83.COMConnector.1): Внешнее соединение не разрешено для указанного пользователя 1С:Предприятия» и как ее исправить?

В тексте ошибки явно находим подсказку на то, что нужно в первую очередь проверить права пользователя в базе, к которой происходит подключение для обмена справочниками и документами в рамках настроенной выгрузки. Формулировка «Внешнее соединение не разрешено для указанного пользователя» указывает, что дело в первую очередь в пользователе «Обмен», как видно на Рис.1. Удивительным было то, что ранее у пользователя, под которым выполнялось com-подключение к базе-приемнику, все было настроено для работы обмена и работало продолжительное время.

Поэтому в базе Бухгалтерия переходим в раздел «Администрирование» — ссылка списка настроек «Настройки пользователей и прав» — ссылка «Пользователи».

Нажатие на изображении увеличит его
1C 8 как открыть список пользователей базы в БП, бухгалтерия, 3.0
Рис. 3. Переход к списку пользователей в базе конфигурации 1С: Бухгалтерия 3.0

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

Нажатие на изображении увеличит его
форма настройки пользователя в базе 1с 8 бухгалтерия 3
Рис. 4. Вид формы настроек пользователя базы 1С: Бухгалтерия предприятия, редакция 3.0

Как оказалось, в моем случае, ошибка «Не удалось подключиться к другой программе: Произошла исключительная ситуация (V83.COMConnector.1): Внешнее соединение не разрешено для указанного  пользователя 1С:Предприятия по причине» возникла с некоторого времени из-за того, что у пользователя отключены все права доступа в списке «Профили пользователя». Разбираться — почему так было бы долго. Это мог быть кто-нибудь из пользователей базы, или что крайне маловероятно, но все-таки возможно — результат обновления базы (крайне редко, но удивительные веди после обновлений могут возникать). В общем проще было установить снова права пользователю. Для возможности выполнения обмена в принципе достаточно профиля «Администратор», но, на всякий случай рекомендуется еще и установить профиль «Синхронизация данных с другими программами».

Нажатие на изображении увеличит его
1С 8 какие нужны права пользователю для работы обмена, выгрузки
Рис. 5. Состав прав доступа пользователя для возможности выполнения синхронизации (обмена данных)

После проделанных операций работоспособность синхронизации между базами 1С 8 была восстановлена.

Оцените, помогло ли Вам предоставленное описание решения ошибки?




© www.azhur-c.ru 2014-2020. Все права защищены. Использование текстов и изображений с данной страницы без письменного разрешения владельца запрещено. При использовании материалов с данной страницы обязательно указание ссылки на данную страницу.

20-07-2022

Журавлев А.С.
(Сайт www.azhur-c.ru)

   rosveta

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);

   Cube

1 — 30.10.14 — 11:14

(0) У тебя при проведении документа идет обращение к куче общих модулей. И, возможно, у кого-то из этих модулей нет галочки «Внешнее соединение»…

   Cube

2 — 30.10.14 — 11:15

(1) Хотя не, в таком случае была бы ошибка «Процедура с указанным именем не обнаружена»….

   Cube

3 — 30.10.14 — 11:17

А ОписаниеОшибки() не содержит ничего интересного?

   rosveta

4 — 30.10.14 — 11:28

Описание ошибки содержит Ошибка при вызове метода контекста (Write): Произошла исключительная ситуация (1C:Enterprise 8.3.4.408): Нарушение прав доступа!

Но это наверно идет из розницы описание ошибки, я пыталась получить описание ошибки из торговли, написав вот так

//Сообщить(«Не удалось провести перемещение № » + Строка(НовоеПеремещение.Номер) + Строка(БазаУТ.ОписаниеОшибки()));

Но не вышло. Сейчас попробую ОписаниеОшибки() заменить на англоязычный код.

   Fish

5 — 30.10.14 — 11:32

А что написано в ЖР? На какой конкретно объект нет прав?

   rosveta

6 — 30.10.14 — 11:33

(5), В ЖР Отмена происходит при записи в независимый регистр сведений «Состояние отгрузки»

   Cube

7 — 30.10.14 — 11:49

(4) А Перемещение твое в УТ, случайно, не обработано напильником? Ну, там, движения по нетиповому регистру может добавлены в подписке на событие?…

   rosveta

8 — 30.10.14 — 11:54

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

   Cube

9 — 30.10.14 — 12:09

(8) Попробуй в этой подписке в источник поставить какой-нибудь левый документ (один документ, а не все документы). Базу сохрани, обнови и проверь проведение.

   rosveta

10 — 30.10.14 — 16:02

(9), Попробовала. Тоже не помогло.

   Defender aka LINN

11 — 30.10.14 — 16:43

(0) «Сразу скажу, что с правами пользователя это не связано» — скажи это громко, четко, 2 раза в порт сетевой карты сервера.

   Ник второй

12 — 30.10.14 — 16:49

(0) Прав доступа не хватает.

   rosveta

13 — 30.10.14 — 17:07

Я имела в виду права пользователя 1с на регистры и прочие объекты конфигурации, возможно, я что-то путаю. Скажите как решить эту проблему? Где какие права можно посмотреть или настроить?

   Defender aka LINN

14 — 30.10.14 — 17:08

(13) Как всегда: позвать программиста

   Михаил Козлов

15 — 30.10.14 — 17:09

Попробуйте не через коннектор, а через приложение.

   rosveta

16 — 30.10.14 — 17:18

(14) я им и являюсь

   Defender aka LINN

17 — 30.10.14 — 17:20

(16) Спасибо, давно так не смеялся

   Serginio1

18 — 30.10.14 — 17:31

   rosveta

19 — 30.10.14 — 17:32

(18), да

   Alamo-10

20 — 30.10.14 — 17:36

(13) Ну судя по контексту сообщения в (11), человек имеет ввиду какие-то другие права, но, видимо, делиться своими познаниями с широким кругом лиц он не намерен.

Поддержу ТС, тоже сталкивался с такой проблемой, хотелось бы найти какое-либо адекватное решение. Хотя бы направление, в котором нужно копать

   kumena

21 — 30.10.14 — 19:21

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

я так понял что в файловом режиме все хорошо потому что нет «сервера».

в итоге решил отказаться от подписки.

   kumena

22 — 30.10.14 — 19:25

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

   slavikzzz

23 — 30.10.14 — 20:15

(22) была подобная ситуация с подпиской на событие. Использовал в ней конструкцию типа Вопрос() — все работало нормально, пока не начал настраивать обмен РИБ по расписанию. Во внешнем соединении данная конструкция недоступна — что выдавало ошибку.

Обошел проблему с помощью #Если Клиент Тогда

   Cube

24 — 31.10.14 — 05:29

(10) Тогда в таких ситуациях я делаю так:

1). Закомментирую всю процедуру ОбработкаПроведения() у этого документа.

2.1). Если ошибка ушла, то начинаю раскомментировать блоками. Нахожу проблемный участок, и понимаю причину.

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

   Serginio1

25 — 31.10.14 — 08:58

(24) достаточно

Проверь модуль, модули с флажком Внешнее соединение

Сервис/Параметры/Проверка галочка внешнее соединение.

   Serginio1

26 — 31.10.14 — 11:55

   rosveta

27 — 03.11.14 — 00:22

Спасибо. Попробую тогда еще на другой платформе это дело произвести.

   rosveta

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 нам необходимо в левом нижнем углу панели задач в строке поиска набрать Панель управления и перейти по открывшейся ссылке.

В правом верхнем углу Панели управления выбрать Просмотр-Мелкие значки и затем в списке перейти в Учетные записи пользователей.

Учетные записи пользователей

Там выбрать Изменить параметры контроля учетных записей.

Параметры контроля учетных записей

Затем поставить ползунок в самом нижнем положении.


Купон на ОЗОН за покупку программ 1С

Ползунок параметров контроля учетных записей

И перезапустить компьютер.

После перезагрузки необходимо:

Для 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»).

Команда для платформы x86

2.Для платформы х64

Regsvr32 «C:Program Files1cv8номер версии вашей платформыbincomcntr.dll» (regsvr32пробел»C:Program Files1cv8номер версии вашей платформыbincomcntr.dll»).

Команда для платформы x64

Затем нажать клавишу Enter.

Если все сделали правильно, то увидите вот такое окно.

Успешное выполнение команды

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

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

Исправляем ситуацию

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

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


	 Запрос = Новый Запрос;
	 Запрос.Текст =
	         "ВЫБРАТЬ
	          |        Номенклатура.Ссылка КАК Ссылка,
	          |        Номенклатура.ВерсияДанных КАК ВерсияДанных,
	          |        Номенклатура.ПометкаУдаления КАК ПометкаУдаления,
	          |        Номенклатура.Родитель КАК Родитель,
	          |        Номенклатура.ЭтоГруппа КАК ЭтоГруппа,
	          |        Номенклатура.Код КАК Код,
	          |        Номенклатура.Наименование КАК Наименование,
	          |        Номенклатура.Артикул КАК Артикул,
	          |        Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
	          |        Номенклатура.ТипНоменклатуры КАК ТипНоменклатуры,
	          |        Номенклатура.Предопределенный КАК Предопределенный,
	          |        Номенклатура.ИмяПредопределенныхДанных КАК ИмяПредопределенныхДанных
	          |ИЗ
	          |        Справочник.Номенклатура КАК Номенклатура
	          |ГДЕ
	          |         ";
	 РезультатЗапроса = Запрос.Выполнить();
	 ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	 Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
	 КонецЦикла;
Рис.1 Запускаем на исполнение нижеприведенный кусок кода с запросом, в котором забыли дописать условие отбора
Рис.1 Запускаем на исполнение нижеприведенный кусок кода с запросом, в котором забыли дописать условие отбора

Приведенный текст ошибки программисту 1С скажет, что в модуле формы обработки «ЧтениеЗаписьXML на 152 строчке кода не может выполниться запрос. Причина в том, что на 17 строчке запроса нет чего-то, что ждал компилятор. Таким образом, чтобы убрать подобное сообщение, необходимо выяснить, что там должно быть и написать недостающий код.

Увидев вышеприведенный кусок кода, разработчик заметит, что в запросе есть служебное слово «ГДЕ», дающее сигнал 1С, что дальше будет условие. Но мы забыли дописать его и, естественно, система с помощью сообщения об ошибке спрашивает нас – «а где условие?». Чтобы исправить эту ситуацию необходимо либо убрать оператор «ГДЕ» из запроса, либо добавить условие.

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


	 Запрос = Новый Запрос;
	            Запрос.Текст =
	                       "ВЫБРАТЬ
	                        |          Номенклатура.Ссылка КАК Ссылка,
	                        |          Номенклатура.ВерсияДанных КАК ВерсияДанных,
	                        |          Номенклатура.ПометкаУдаления КАК ПометкаУдаления,
	                        |          Номенклатура.Родитель КАК Родитель,
	                        |          Номенклатура.ЭтоГруппа КАК ЭтоГруппа,
	                        |          Номенклатура.Код КАК Код,
	                        |          Номенклатура.Наименование КАК Наименование,
	                        |          Номенклатура.Артикул КАК Артикул,
	                        |          Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
	                        |          Номенклатура.ТипНоменклатуры КАК ТипНоменклатуры,
	                        |          Номенклатура.Предопределенный КАК Предопределенный,
	                        |          Номенклатура.ИмяПредопределенныхДанных КАК ИмяПредопределенныхДанных
	                        |ИЗ
	                        |          Справочник.Номенклатура КАК Номенклатура
	                        |ГДЕ
	                        |          НЕ Номенклатура.ЭтоГруппа ";
	 НужнаяГруппаЭлементов = Справочники.Номенклатура.НайтиПоНаименованию("Мебель");
	 РезультатЗапроса = Запрос.Выполнить();
	 ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	 Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
	 Сообщить(ВыборкаДетальныеЗаписи.Ссылка.ПринадлежитЭлементу("НужнаяГруппаЭлементов"));
	 КонецЦикла;
Рис.2 Мы опять допускаем ошибку и вместо ссылки в параметр метода помещаем строку, содержащую имя переменной
Рис.2 Мы опять допускаем ошибку и вместо ссылки в параметр метода помещаем строку, содержащую имя переменной

1С выдает настолько же информативное сообщение, из которого мы понимаем, что на 158 строке у 1 параметра неправильный тип. Но что же делать, если мы не знаем, какой тип должен быть? В этом нам поможет Синтакс-помощник, встроенный в платформу 1С.

Рис.3 Синтакс-помощник
Рис.3 Синтакс-помощник

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

Рис.4 Сверив пример с нашим кодом, приходит понимание, что кавычки не нужны и без них все работает
Рис.4 Сверив пример с нашим кодом, приходит понимание, что кавычки не нужны и без них все работает

Чаще всего причиной подобных ошибок выступают следующие факторы:

  1. Невнимательность;
  2. Отсутствие опыта или знаний;
  3. Несогласованность действий разработчиков друг с другом;
  4. Изменения в методах контекста в новых версиях платформы.

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

Понравилась статья? Поделить с друзьями:
  • Ошибка при вызове метода контекста в 1с при печати
  • Ошибка при вызове метода контекста выполнить зуп
  • Ошибка при вызове метода контекста в 1с как исправить
  • Ошибка при вызове метода контекста выпол
  • Ошибка при вызове метода контекста wsпрокси