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

УПП — Больничные — ФСС (Ошибка импорта схемы)

Я
   serg999

11.01.22 — 15:22

Добрый день. При заполнении больничного выдает ошибку (УПП: 1.3.173.1)

Временные проблемы в ФСС или кардинально поменяли принцип работы с больничными?

{(1)}: Ошибка при вызове конструктора (WSОпределения)

WSОпределения = Новый WSОпределения(ФайлОписанияВебСервиса,,, ИнтернетПрокси,, СоединениеSSL)

по причине:

Ошибка импорта схемы

по причине:

Ошибка доступа к файлу ‘https://eln.fss.ru/ws-insurer-crypto-v20/FileOperationsLnService?xsd=../../xsd/v01/sedo/Sedo.xsd’

по причине:

Ошибка работы с Интернет:  Не могу установить соединение

   RomaH

1 — 11.01.22 — 15:24

   RomaH

2 — 11.01.22 — 15:25

<soap:Envelope>

<soap:Body>

<soap:Fault>

<faultcode>soap:Server</faultcode>

<faultstring>Could not find xsd ../../xsd/v01/sedo/Sedo.xsd'</faultstring>

</soap:Fault>

</soap:Body>

</soap:Envelope>

   RomaH

3 — 11.01.22 — 15:29

но вроде все доступно — что то я там Sedo не нахожу внутри

   serg999

4 — 11.01.22 — 15:36

Похоже проблема на стороне ФСС … из 10 попыток, может 1 раз заполнить.

Интересно, что ошибки разные  выдает ..

   RomaH

5 — 12.01.22 — 07:15

   NorthWind

6 — 12.01.22 — 07:17

(5) а если обновятся? ФСС об этом не всегда докладает когда что-то у себя делает :)

   RomaH

7 — 12.01.22 — 07:21

(6) если обновятся — то вывалится ошибка валидации — либо вы прочитать не сможете сообщение от ФСС, либо ФСС от вас

   serg999

8 — 12.01.22 — 10:52

Вечером проверял более менее работает, а днем вообще никак .. расчетчики воют :(

(5) Не могу понять, как схемы можно локально выложить, они же в запросе указаны ?

   RomaH

9 — 12.01.22 — 11:24

(8) к схемам идет обращение через «точку входа» — это общий макет в кофиге — поищи в макетах «FileOperationsLnService»

1С первую и вторую схему вроде как адаптировали под локальное использование — то что в общем макете, но вот остальные оставили снаружи

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

2022-01-12-11h23-45

   NorthWind

10 — 12.01.22 — 22:34

ох, бида-бида. Поанализировал фиддлером запросы на получение данных больничного по номеру и увидел, что 1С дергает WSDL и XSD в количестве 11 штук аж 4 раза подряд одни и те же. Это ж в несколько раз увеличивает вероятность сбоя. И если так делает весь 1Совский софт по всей России… так ведь что угодно положить можно.

   RomaH

11 — 13.01.22 — 07:23

ну как бы … это «решение» от ФСС — они так описание сервиса сделали — нет что бы все в одном

   NorthWind

12 — 13.01.22 — 07:30

(11) не, тут дело не в ФСС. Вот мы по номеру выкачиваем больничный в УПП. Там дергается 9 штук XSD-схем и 2 WSDL-я.

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

И сбои происходят каждый раз в разных местах. Если бы вытаскивалось это все один раз — работа бы шла в четыре раза стабильнее.

   RomaH

13 — 13.01.22 — 08:02

ну как бы — создать запрос

потом прочитать то, что получили

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

Определения = Новый WSОпределения(ИмяФайлаWSDL,…

   NorthWind

14 — 13.01.22 — 09:31

(13) Три файлика с самыми длинными именами вы по каким ссылкам качали? Фиддлер мне их не показал…

Остальные схемки получилось вытянуть.

   NorthWind

15 — 13.01.22 — 09:53

раскопал. Осталась только *LnMo.xsd

   RomaH

16 — 13.01.22 — 12:29

(15) не понял — не такого — у нас и МО и работодатель — весь список файлов на картинке выше

   RomaH

17 — 13.01.22 — 12:29

+(16) вижу — по серединке

   RomaH

18 — 13.01.22 — 12:30

(14) у нас мед организация — нам надо больше

   NorthWind

19 — 13.01.22 — 12:39

   Kigo_Kigo

20 — 13.01.22 — 14:45

(19) А что надо сделать что бы он заработал?

   NorthWind

21 — 13.01.22 — 15:11

(20) нужен веб-сервер. Я использовал IIS от Windows 2008 R2. Можно и апач, это кому как удобнее.

Для публикации документов у IIS по умолчанию используется папка c:inetpubwwwroot. Там создается папка LnService. Этот батник с помошью утилиты wget (http://gnuwin32.sourceforge.net/packages/wget.htm) выкачивает в нее все необходимые схемки. Но перед тем, как их использовать, нужно их немного подредактировать, потому что в них есть ссылки друг на друга, но при этом искать их предполагается на fss.ru.

Выглядит это примерно вот так

<xs:import namespace=»http://www.fss.ru/integration/types/dic/fault/v01″ schemaLocation=»https://eln.fss.ru/ws-insurer-crypto-v20/FileOperationsLnService?xsd=../../xsd/v01/dic/FaultCode.xsd»/>

Нам надо такие вещи поправить на локальные в текущей папке, то есть сделать

<xs:import namespace=»http://www.fss.ru/integration/types/dic/fault/v01″ schemaLocation=»FaultCode.xsd»/>

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

Я нашел вот такую https://nhutils.ru/blog/nhrt/. Ну или другую подобную, их много, может, в винде даже штатные способы есть, не знаю. Использовал эту утилиту для замен, это вторая часть батника.

А дальнейшее зависит от вашей конфигурации 1С. В УПП необходимые ссылки находятся в общем макете ОбменДаннымиФССЭЛНОписаниеВебСервиса. Его нужно снять с замка и в секциях import поменять ссылки так, чтобы они ссылались на ваш локальные схемы. У меня это выглядит примерно так

<xs:import namespace=»http://www.fss.ru/integration/types/organization/v01″ schemaLocation=»http://srv-02/LnService/Organization.xsd»/>

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

   NorthWind

22 — 13.01.22 — 15:25

Сегодня, кстати, ФСС отживел, по-моему. Более-менее вытаскивается все, и достаточно быстро.

   Demetri__

23 — 17.01.22 — 13:46

Не работает с пятницы, так же разные ошибки при запросе заполнить БЛ. Сертификат поставили новый от 15.12.2021

Конфа УПП последний релиз

У кого как?

   NorthWind

24 — 17.01.22 — 13:57

(23) норм. Сегодня проверял со своими изменениями от (19)-(21) — супер, шустренько. Серты свежие с лк.фсс.ру, второй от 17, нижний от 15.12.2021.

   NorthWind

25 — 17.01.22 — 13:59

И да, RomaH, спасибо за плодотворную идею. По-хорошему, это можно было бы оформить как публикациб на ИС.

   RomaH

26 — 20.01.22 — 07:13

к стати — вопрос к «работодателям» на ЗУП и прочих УПП

какая длина у вас на должности врачей?

тут поймали в «1С:Больничных» ограничение в конфе сначала на 100 символов потом в 150 (в разных местах)

фишка в том, что «строка» в схеме ЭЛН не ограничена — и поймали внешний больничный с должностью на 151 символ

соответственно после добавления «наших» данных в больничный, подписания и отправки ФСС ругается — что наш ЭЛН не соответствует тому что у них.

так что — это еще одна мина замедленного действия от 1С

   NorthWind

27 — 20.01.22 — 07:58

(26) Ну не сказать чтоб не ограничена — 300 символов.

    <xs:simpleType name=»doctorRole»>

        <xs:annotation>

            <xs:documentation>

                Должность врача

            </xs:documentation>

        </xs:annotation>

        <xs:restriction base=»xs:string»>

            <xs:maxLength value=»300″/>

        </xs:restriction>

    </xs:simpleType>

   RomaH

28 — 20.01.22 — 07:59

   NorthWind

29 — 20.01.22 — 08:12

В ЗУП не знаю. В УПП встречается в доке НачислениеПоБольничномуЛисту, ТЧ ОсвобождениеОтРаботыВЛисткеНетрудоспособности, атр ДолжностьВрача — там 300. Затем: РеестрСведенийВФССОПособияхПоНетрудоспособности, ТЧ РаботникиОрганизации. Там аж 6 атрибутов с должностями врачей. Все по 300 символов. Речь про последнюю УПП 173.2.

   serggld

30 — 28.01.22 — 11:48

Я сделал почти как тут описано и вроде как больничные стали загружаться. Только вместо поднятия веб-сервера я расшарил сетевую папку на доступ и скачал в неё все файлы (список см. выше) в них соотвественно заменил ссылки на локальные (в notepad++), а именно например с начиная с макета: <wsdl:import location=»file:////192.168.0.122/fss/Faults.wsdl»… вместо <wsdl:import location=»https://eln.fss.ru/ws-insurer-crypto-v20/FileOperationsLnService?wsdl=../Faults.wsdl»…

Мне кажется с папкой проще чем с веб-сервером.

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

   Kigo_Kigo

31 — 28.01.22 — 11:55

(30) Не облегчайте жизнь ФСС, то бишь — делаем запрос ФСС — ошибка, тогда лезем у себе )))

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

   NorthWind

32 — 28.01.22 — 13:54

(30) а зачем?

   NorthWind

33 — 28.01.22 — 13:56

(31) >> делаем запрос ФСС — ошибка, тогда лезем у себе

это очень долго, даже с шустрым инетом. Я как сделал локальные схемы — офигел насколько шустро этот запрос больничных стал летать. Небо и земля. Ну его нафиг этот ФСС, чем меньше туда лазишь тем лучше

   RomaH

34 — 31.01.22 — 07:21

(30) «Теперь вот нужно придумывать костыли по предварительной проверке этих файлов перед загрузкой больничного на предмет изменения.»

зачем? — насколько я понимаю это … «правила» создания и чтения xml — если «правила» поменяются, то …

   La4esis

35 — 01.02.22 — 10:50

Ошибка на релизе 1.3.173.3 повторяется?

   NorthWind

36 — 01.02.22 — 11:27

(35) она от релиза не зависит. Отлуп выдают серверы ФСС, скорее всего, по чрезмерному количеству запросов. А может еще по какой причине.

   NorthWind

37 — 01.02.22 — 11:45

Рабочий способ решения описан в этой ветке. Ну или ждать изменений API или улучшения ФССом своих серваков.

   La4esis

38 — 02.02.22 — 13:17

Ребят, обновление 1.3.173.3 решило проблему

   Egor4864

39 — 02.02.22 — 13:17

версия 1.3.173.3 решила данную проблему

   NorthWind

40 — 02.02.22 — 14:51

я бы на это сильно не рассчитывал, ребят. Обмен ЭДО с ФСС в 173.3 не поменялся по сравнению со 173.2, во всяком случае мой измененный модуль так и остался измененным. А серверы ФСС и раньше иногда работали стабильно (см. (22)), а иногда начинали вести себя странно. Скорее всего, сейчас опять период стабильной работы. Дай Бог, чтобы он продлился долго.

   serggld

41 — 04.02.22 — 15:59

(40) в УПП173.3 полностью переработали Макет со правилами обмена с ФСС — убрали из него импорт. И теперь он совсем не работает. При попытке загрузить схему обмена выдает ошибку «Неверный формат». Пришлось на макет из 173.2 откатывать (с модификациями конечно). Другого решения пока нет.

   NorthWind

42 — 04.02.22 — 19:09

(41) ну если они пихнули все схемы в один макет — то это наоборот хорошо. Значит, колхозинг из (19) больше не нужен

   NorthWind

43 — 06.02.22 — 16:28

Действительно, в 173.3 1С запихнула все схемы локально в один макет. Я изначально проверил только модуль ОбменСведениямиОПособияхСФСС, который не изменился, но не посмотрел в сам загружаемый макет — а зря, потому что изменился как раз он. Ну что имею сказать… это ж очень хорошо, наши мучения с ФСС в существенной мере закончились.

   RomaH

44 — 07.02.22 — 15:02

(43) а что с «неверным форматом» из (41)

ну как? сегодня смотрю вообще затык — ФСС даже честно признался. что у них внутрення ошибка сервера

   NorthWind

45 — 07.02.22 — 15:36

(44) вчера гонял — все норм было, во всяком случае, больнюковые данные по номеру получало. Да и до этого — 173.3 у меня с конца января, и если бы были косяки, то пожаловались бы. По-видимому, работало все.

   NorthWind

46 — 07.02.22 — 15:39

попробовал прямо сейчас, в 15:38 по Москве — тягает данные больничного со штатным макетом и кодом 173.3.

   serggld

47 — 07.02.22 — 15:43

(46) А у меня не тянет. Вываливается в ошибку и хоть ты тресни. Может в платформе дело? У меня 8.3.18.1433

   serggld

48 — 07.02.22 — 15:44

Вот текст ошибки:

{<Неизвестный модуль>(1)}: Ошибка при вызове конструктора (WSОпределения)

WSОпределения = Новый WSОпределения(ФайлОписанияВебСервиса,,, ИнтернетПрокси,, СоединениеSSL)

по причине:

Неверный формат.

по причине:

message.DecryptException

    part.decryptFault

Элемент не найден

  namespace: http://www.fss.ru/integration/types/fault/v01

  localName: decryptFault

message.InternalException

    part.internalFault

Элемент не найден

  namespace: http://www.fss.ru/integration/types/fault/v01

  localName: internalFault

message.DigitalSignException

    part.digitalSignFault

Элемент не найден

  namespace: http://www.fss.ru/integration/types/fault/v01

  localName: digitalSignFault

portType.FileOperationsLnService

    abstractOperation.PrParseReestrFile

        abstractOperationFault.internalException

Сообщение не найдено

  namespace: http://www.fss.ru/integration/ws/fault/v01

  localName: InternalException

portType.FileOperationsLnService

    abstractOperation.GetPrivateLNData

        abstractOperationFault.internalException

Сообщение не найдено

  namespace: http://www.fss.ru/integration/ws/fault/v01

  localName: InternalException

   NorthWind

49 — 07.02.22 — 15:45

(47) Ну да, у меня постарше. 1С:Предприятие 8.3 (8.3.16.1876)

   NorthWind

50 — 07.02.22 — 15:46

кто-нибудь еще тестил на всяких платформах? (44), у вас как?

   RomaH

51 — 07.02.22 — 15:48

(50) у нас по старой схеме пока … мы еще и как МО работаем

   NorthWind

52 — 07.02.22 — 16:04

(48) может, у вас макет как-нибудь оказался поврежден, кодировка поменялась или еще что-то такое? Не наблюдается проблем…

   serggld

53 — 09.02.22 — 08:44

(52) Нет, меня не кодировка поменялась, у просто режим совместимости 8.3.хх включен (используюстся Расширения). Вот и «вылезло». Я, кстати, исправил шаблон, проверил загрузку больничных. Отправил шаблон в тех.поддержку 1С. Надеюсь внесут исправления в очередное обновление. К сожалению, с XML-схемами ранее работать не приходилось, поэтому гарантию дать что всё правильно поправил не могу. Проблема была в префиксах.



в раздел <wsdl:definitions добавлена строка

xmlns:tns=»http://www.fss.ru/integration/types/eln/ins/v01″



Изменено

было: <wsdl:fault message=»fs:InternalException» name=»internalException»> </wsdl:fault>

стало: <wsdl:fault message=»InternalException» name=»internalException»> </wsdl:fault>



Префикс «flt» заменен за «tns»

  <wsdl:message name=»DecryptException»>

    <wsdl:part element=»tns:decryptFault» name=»decryptFault»> </wsdl:part>

  </wsdl:message>

  <wsdl:message name=»InternalException»>

    <wsdl:part element=»tns:internalFault» name=»internalFault»> </wsdl:part>

  </wsdl:message>

  <wsdl:message name=»DigitalSignException»>

    <wsdl:part element=»tns:digitalSignFault» name=»digitalSignFault»> </wsdl:part>

  </wsdl:message>

   Anarki

54 — 16.02.22 — 11:29

Коллеги, как у вас на 1.3.174.1 грузятся больничные?

   Смотрящий от 1С

55 — 16.02.22 — 11:48

1.3.173.3

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

При выгрузке напрямую из программы поругалась, что Тензор не занес денег и его сертификат не авторизован

В файл документ можно выгрузить только построчно!  Как поступать если сотров много?

При попытке отправить напрямую через Тензор он не понял, что это за файл и отказался его принимать

   Anarki

56 — 16.02.22 — 12:19

(56) По части лицевых счетов, мы себе уже дописали, что бы вставало, это мелочи жизни. А вот то что они 1с отчетность так назойливо втюхать хотят это очень печально

   NorthWind

57 — 16.02.22 — 14:24

(56) в УПП, мне кажется, ничего уже втюхать не хотят, это труп. Но в целом использование 1С отчетности после внедрения ЭЛН и ЭТК кажется разумным — потому как слишком большой ДО стал и лазить каждый раз в несколько программ утомительно.

   Tolpinski

58 — 17.02.22 — 10:30

(55)

   Tolpinski

59 — 17.02.22 — 10:40

(55) https://infostart.ru/public/1602594/

Обработкой..мопед мой :) 4 функции и пару процедур пришлось перетянуть в обработку, отключить проверку перед выгрузкой по строке.

Переделал загрузку ЭЛН в ЗУП 2.5 по указанному рецепту, работает!

Файлы скачал руками, вгетом не качались что-то

Положил в корень c:1c_fss,

Заменил в файлах ссылки, батнику передаю C:1c_fss, со слэшем в конце:

nhrt.exe -spt:»https://eln.fss.ru/ws-insurer-crypto-v20/FileOperationsLnService?xsd=../../xsd/v01/type/» -t:»%1″  %1*.*

nhrt.exe -spt:»https://eln.fss.ru/ws-insurer-crypto-v20/FileOperationsLnService?xsd=../../xsd/v01/eln/» -t:»%1″ %1*.*

nhrt.exe -spt:»https://eln.fss.ru/ws-insurer-crypto-v20/FileOperationsLnService?xsd=../../xsd/v01/dic/» -t:»%1″  %1*.*

nhrt.exe -spt:»https://eln.fss.ru/ws-insurer-crypto-v20/FileOperationsLnService?xsd=../../xsd/v01/sedo/» -t:»%1″  %1*.*

nhrt.exe -spt:»https://eln.fss.ru/ws-insurer-crypto-v20/FileOperationsLnService?wsdl=../Faults.wsdl» -t:»%1Faults.wsdl»  %1*.*

В общем модуле ОбменСведениямиОПособияхСФСС поправил Функция WSПрокси_FileOperationsLnService(НастройкиWS), макет менять не стал, потом обновлять будет сложнее

После «ОписаниеВебСервиса = ПолучитьОбщийМакет(«ОбменДаннымиФССЭЛНОписаниеВебСервиса»).ПолучитьТекст();» добавил:

Чем = «C:1c_fss»; //папка на сервере RPRZ-SPIRIT

КаталогНаДиске = Новый Файл(Чем);

Если КаталогНаДиске.Существует() Тогда

ОписаниеВебСервиса = СтрЗаменить(ОписаниеВебСервиса,»https://eln.fss.ru/ws-insurer-crypto-v20/FileOperationsLnService?wsdl=../»,Чем);

ОписаниеВебСервиса = СтрЗаменить(ОписаниеВебСервиса,»https://eln.fss.ru/ws-insurer-crypto-v20/FileOperationsLnService?xsd=../../xsd/v01/type/»,Чем);

Иначе

ПоказатьОповещениеПользователя(«Локальный каталог «+Чем+» не обнаружен, файлы описания вебсервиса будем получать с серверов фсс»);

КонецЕсли;

Каталог должен лежать локально, даже на серверной базе!

Тут выложил готовые файлы

https://disk.yandex.ru/d/PTGMAjed-fA6LQ

  

Стрелец

60 — 21.02.22 — 12:38

(59) — Спасибо, всё получилось!

Здравствуйте! Пользователи второй день не могут загрузить элн? Что-нибудь известно по этому вопросу? Проблема на стороне ФСС?
{(1)}: Ошибка при вызове конструктора (WSОпределения)WSОпределения = Новый WSОпределения(ФайлОписанияВебСервиса,,, ИнтернетПрокси,, СоединениеSSL)по причине:Ошибка импорта схемы по причине:Ошибка доступа к файлу ‘docs.fss.ru/ws-insurer-crypto-v20/FileOp…ntityDocument.xsd’по причине:Ошибка работы с Интернет: доступ запрещен (403).HTTP Status 403 — Access to the requested resource has been denied Status report

messageAccess to the requested resource has been denied по причине:Ошибка работы с Интернет: доступ запрещен (403)

Тема закрыта.

Обновлено: 29.01.2023

Ошибка происходит при попытке загрузить из Excel в 1С, когда код обработчика выполняется не на клиенте, а на сервере и в большинстве случаев текст ошибки говорит об отсутствии прав у пользователя сервера 1С.

Особенности

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

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

Устранение:

  • на сервере убиваем excel (taskkill /im excel.exe /f)
  • открываем оснастку «Службы компонентов» (Пуск->Администрирование->Службы компонентов)
  • в ней раскрываем ветку Службы компонентов->Компьютеры->Мой компьютер->Настройка DCOM
  • справа в списке находим Microsoft Excel Application, открываем Свойства, вкладка Удостоверение, выбираем пользователя с администраторскими правами, ОК.

Может оказаться, что «Microsoft Excel Application» отсутствует в списке, в данном случае

  1. Запускаем REGEDIT
  2. Открываем ветку ComputerHKEY_CLASSES_ROOTAppIDEXCEL.EXE, если ее нет, то создаем
  3. Создаем в ней строковый параметр AppID =
  4. Выполняем команду «mmc comexp.msc /32», которая делает то же что и DCOMCONFIG, но позволяет видеть 32 битные компоненты.
  5. После этого в Component Services должен появиться «Microsoft Excel Application»

Чтобы решить эту проблему, я включил пользователя USRV82, под которым запускается сервер приложений 1С Предприятия 8.3, в группу Distributed COM Users, но ошибка сразу не ушла, потребовалась перезагрузка.

Осложняло проблему то, что ошибка плавала: периодически выходила, либо в момент создания объекта, либо уже в момент вызова методов excel-application.

Так что нельзя однозначно сказать, что же решило проблему.

Заключение

В большинстве случаев уйти от дополнительной настройки операционной системы возможно, если использовать вызова Com-Объекта на клиенте. При правильной установке объектов они работают даже при различных по битности 1с и Excel, OS.

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

Бывает такое: вы прописываете для компонента пользователя и пароль.

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

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

— Денев Катрин

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

Далее оздал обработку и привзал к событию нажтия кнопки вышеуказанную функцию.
Ввылетает ошибка:
: Ошибка при вызове метода контекста (Obmen)
РезультатОбмена = ПроксиСервер.Obmen();
по причине:
Ошибка вызова операции сервиса: :WebService:Obmen()
по причине:
Ошибка SOAP сервера: Неизвестная ошибка. : Значение не является значением объектного типа (Добавить)
по причине:
: Значение не является значением объектного типа (Добавить)

Что не хватает? Как реализовать обратный обмен из сайта в 1С?? Нужно ли создвать специальную web-обработку для этих целей на языке PHP?

(3) Manticor, проверьте отладчиком, правильно ли у вас заполняются свойства «Код» и «Номенклатура»в строке

(4) VBod, кстати не могу войти в отладчик — как будто на сервер пытаюсь зайти в серверном фарианте)), у меня на форме кнопка, на ней такая процедура

КонецПроцедуры // ()
обмен уже приводил выше. Как отладку включить?))

(7) Manticor, а обработка вызова Web-Сервиса у вас расположена в той же базе, где и сам Web-Сервис что-ли?

(9) Manticor, а что бы запустить отладчик, нужно в каталоге публикации вашего сервиса на Apache открыть файл default.vrd и перед строкой

Затем в конфигураторе, в меню «Отладка» > «Подключение» > «Автоматическое подключение» установить флажок напротив пункта «Web-Сервисы». После этого можно ставить точку останова в вашей процедуре Obmen и вызывать сервис обработкой из другой базы.
Только учтите, что редактировать файл default.vrd нужно уже после публикации Web-Сервиса, т.к. при публикации он заменяется на создаваемый Apache по умолчанию.

(11) VBod, (10) VBod, сделал все как Вы и сказали, создал чистую базу, туда перенес обработку.
Единтсвенное — убрал аутентификацию, поскольку вроде с ней не работает).
В итоге код такой:

Но зато заработал после добавлени функции отладки первоначальный код — отладчик выполняет функцию obmen, однако после вызова выводится ошибка:

(12) Manticor, как-то странно, как у вас мог заработать отладчик, если на строке получения прокси, пишет что сервис не найден?
Можете показать, что у вас в настройках публикации на веб-сервере и на закладках «Операции» и «Прочее» в настройках самого веб-сервиса?

(14) Manticor, в веб-сервисе на закладке «Прочее» в «URI пространства имен» установите значение «http://www.sample-package.org».
И в коде у вас должно быть так:

(15) VBod, попробовал сделать так. Поставил аутентификацию — также как и было.

(17) VBod, спасибо большое Вам, вроде без ошибок работает, тоесть сейчас при выполнении РезультатыИмпорта имеет такие данные(скрин приложил).
Что еще нужно сделать(добавить) для полноценной синхронизации контрагентов между 1С и сайтом и наоборот??

Сейчас на выходе у нас лишь объект XDTO.

(18) Manticor, ну теперь доделывайте передачу остальных реквизитов, которые вам нужны и делайте на сайте вызов этого веб-сервиса. Неплохо бы сделать, что бы в ответ веб-сервис возвращал данные с подтверждением удачной загрузки или ошибку в случае неудачной, что позволит в случае ошибки отправлять данные повторно. Продумайте предварительную проверку (перед загрузкой), существования контрагента, это позволит избежать дублей. Затем пишите веб-сервис на сайте, для передачи контрагентов из 1С на сайт. Плюс читайте (5) и (6).

Вот с сайта в 1С как раз лучше выгружать используя Web-Сервис созданный в 1С. Т.е. вы сейчас создаете в 1С Web-сервис, который будет не передавать контрагентов на сайт, а наоборот принимать их с сайта. Это удобнее т.к. на сайте вы можете привязать вызов этого Web-сервиса к событию создания контрагента, таким образом создание контрагента в 1С у вас будет происходить практически синхронно вместе с его созданием на сайте.

(1) Manticor, а вот на сайте уже нужно будет разработать еще один Web-Сервис на PHP, который будет создавать контрагентов. Затем при создании контрагента в 1С, нужно будет вызвать этот Web-Сервис и в параметрах передавать ему данные нового контрагента. Только не забудьте учесть, что в 1С, контрагент может быть как создан, так и удален или его данные могут быть изменены, поэтому нужно учесть возможность удаления и изменения контрагентов на сайте, если они изменяются или удаляются в 1С.

Лучше создайте пустую базу и там разместите обработку вызывающую ваш Web-Сервис. И вызывайте его лучше не через статическую WS-Ссылку, а динамически:

&НаСервере
Процедура ИмпортВебСервис()

Определения = Новый WSОпределения(«http://109.195.230.156/test/ws/WebService?wsdl»);
Прокси = Новый WSПрокси(Определения, «http://www.my.org», «WebService», «WebServiceSoap»);
РезультатыИмпорта = Прокси.Obmen();
КонецПроцедуры

При исполнении получаю:Метод объекта не обнаружен (Obmen)
На сервисе операция obmen есть

Только лучше создайте новую тему, что бы не писать здесь. А мне можете кинуть ссылку в личку. Если смогу, постараюсь помочь.


Значит дело было так. Появилась необходимость подключаться к базам по com соединению, для анализа тамошних объектов метаданных. Проблема оказалась в том, что базы могли работать на разных версиях 1С. Пошел в интернет, искал, читал, но все фигня, в оновном все предлагают держать базы на одной версии, что для меня было невозможным.

Кроме, вот этой статьи. Огромное спасибо автору (Леонид Кириенко) и zakiap

Тут уже интересней, но есть пару минусов

1) 1С должна работать от имени учетки с админскими правами.

2) «Варварское» поведение по отношению dllhost.exe :)

3) Могут возникнуть проблемы при одновременном обращении к базам на разных версиях.

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

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

Инструкция

1. Идем «Панель управления» — «Администрирование» — «Службы компонентов»

2. В оснастке служб компонентов, «Службы компонентов» — «Компьютеры» — «Мой компьютер» — «Приложения COM+»

3. Создаем новое приложение, правой кнопкой по «Приложения COM+» — «Создать» — «Приложение»

4. Выбираем «Создать новое приложение», называем например «1cv8», тип выбираем «Библиотечное приложение»

должно полчуить так

5. Раскрываем «1cv8», правой кнопкой по «Компоненты» — «Создать» — «Компонент».

6. Выбираем вариант «Установка новых компонентов», находим нашу библиотеку comcntr.dll

Находится она в катлоге BIN установленной платформы, у меня например путь такой

«C:Program Files (x86)1cv88.3.10.2168bincomcntr.dll»

должны получить следующую картину

7. Правой кнопкой по «V83.COMConnector.1» — «Псевдоним. «, меняем наименование с «CopyOf.V83.COMConnector.1» на «V83.COMConnector_8.3.9.2033». Данное действие проделываем для всех нужных версий платформ.

8. Открываем «regedit» через пуск или команду «Выполнить», нажимаем F3 и указываем для поиска строку с наименованием созданой нами обертки, например «V83.COMConnector_8.3.9.2033». Или использум для поиска CLSID созданной обертки.

9. Ищем значение в ветке «HKEY_LOCAL_MACHINE» у меня путь такой HKEY_LOCAL_MACHINESOFTWAREClassesWow6432NodeCLSID выглядеть должно так

В ветке «InprocServer32» меняем значение у меня, «C:Program Files (x86)1cv88.3.10.2168bincomcntr.dll» на путь к нужной версии длл, в данном случае «C:Program Files (x86)1cv88.3.9.2033bincomcntr.dll».

Данное дейстие проделываем для всех созданных оберток.

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

В файлах утилита, которая выполнит все эти действия автоматически. Подходит для тех у кого 1С лежит в каталоге

«C:Program Files (x86)1cv8». У кого что то отличается, вот ссылка на GitHub . Запустить утилиту нужно от имени администратора. Надеюсь данный материал будет вам полезен)

Специальные предложения

Electronic Software Distribution

Интеграция 1С с системой Меркурий

Готовые переносы данных

Алкогольная декларация

54-ФЗ

Инструментарий разработчика

Маркетплейсы и 1С

Траектория обучения 1С-разработчика

Управление проектом на Инфостарте

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

Спасибо за статью. Мне она помогла, но если просто сделать как написано, возникали ошибки. Куча комментариев с разными ошибками не дали быстрого решения как именно сделать настройки. Предлагаю слегка скорректированный алгоритм. (*) — измененные шаги. В нем нет последних шагов по работе с реестром. У меня сработало на двух серверах.
Если автор посчитает возможным — можно было бы перенести в шапку.

1. Идем «Панель управления» — «Администрирование» — «Службы компонентов»
2. В оснастке служб компонентов, «Службы компонентов» — «Компьютеры» — «Мой компьютер» — «Приложения COM+»
3. Создаем новое приложение, правой кнопкой по «Приложения COM+» — «Создать» — «Приложение»
4*. Выбираем «Создать новое приложение», называем например «1cv8», тип выбираем «Серверное приложение»,
Учетная запись — Текущий пользователь, Пользователь с ролью Owner — поставил администратора компьютера (сервера).
(без этого возможна ошибка -2147024769(0x8007007F): Не найдена указанная процедура)
5*. Нажимаем правой кнопкой по ветке 1cv8 – Свойства – Безопасность:
— Снимаем галку «Принудительная проверка доступа для приложений»
— Ставим галку «Применить политику программных ограничений»
— Уровень ограничений «Неограниченный»
(без этого возможна ошибка -2147024891(0x80070005): Отказано в доступе)
6. Раскрываем «1cv8», правой кнопкой по «Компоненты» — «Создать» — «Компонент».
7. Выбираем вариант «Установка новых компонентов», находим нашу библиотеку comcntr.dll (той версии платформы, к которой надо будет подключаться)
-* Если установка платформы на сервер не требуется, то достаточно скопировать в некую папку на сервере все содержимое папки bin соответствующей платформы и указать comcntr.dll из этой папки
8. Правой кнопкой по «V83.COMConnector.1» — «Псевдоним. «, меняем наименование с «CopyOf.V83.COMConnector.1» на «V83.COMConnector_8.3.9.2033». Данное действие проделываем для всех нужных версий платформ.

Вот так вот выглядит более полный текст ошибки:

WSОпределения = Новый(Тип(«WSОпределения»), Параметры);

Ошибка работы с Интернет: Удаленный узел не прошел проверку

ОбщийМодуль.ОбщегоНазначенияПовтИсп.Модуль(198)

10060 — Ошибка соединения с сервером

по причине:
Ошибка работы с Интернет: произошел таймаут при ожидании ответа шлюзу (504)

Как решить проблему

В случае клиент-серверной версии необходимо добавить сертификат Digicert как на сервере, так и на всех клиентах. Добавлять стоит способом, описанным в пункту 1 или 3. Перегружать сервер после обновления cacert.pem не нужно.

Загрузка cacert.pem

В итоге у вас будет архив с сертификатом cacert.pem, распакуйте его. Далее, откройте вашего клиента, где вы получаете ошибку при вызове конструктора WSОпределения. И перейдите по пути:

Ошибка при вызове конструктора-02

Если вы теряетесь в своих версиях, то попробуйте произвести поиск по cacert.pem в папке C:Program Files (x86) и посмотрите, где у вас нужно подменить, этот файл. Меняете его на свежий и радуетесь жизни.

Ошибка при вызове конструктора-03

  • Второй метод, заключается в использовании обработки в 1С. Скачайте файл обработка.epf

ОБЯЗАТЕЛЬНО запустите его от имени администратора, иначе можете получить ошибку:

Ошибка записи сертификата. Возможно:
— Файл cacert.pem занят. Освободите файл от редактирования и запустите обработку заново.
— Закройте 1С: Предприятие и запустите с правами администратора операционной системы

Использование COMOбъектов в 1С это прошлый век, сейчас уже ни кто так не пишет. Раньше с его помощью реализовали печать документов. Они выгружались в OpenLibre Office и от туда уже печатались.

Появиться такая ошибка может после

1 Обновления платформы

2 Переустановки ОС и 1С

3 Обновление конфигурации

4 Проблем с офисными пакетами

Это самые распространенные.

Три способа избавиться от ошибки «Ошибка при вызове конструктора…»

И так после каких либо манипуляций с 1С у вас стала появляться ошибка.

Первый способ

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

Второй способ

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

regsvr32 «C:Program Files (x86)1cv88.3.16.18.14comcntr.dll»

Кстати данную манипуляцию нужно проводить на сервере.

Третий способ

Установить 32 битную версию клиента 1С, можно даже поверх х64. В итоге у вас появиться два ярлычка для запуска, один для х32 второй х64.

Ошибка при вызове конструктора (COMOбъект)

Версию можно указать и в ярлыке запуска 1С.

Можно еще попробовать самостоятельно создать COM + , но лично из своего опыта могу сказать это не помогает. Самый действенный вариант это установка х32 клиента. Так как компонента которая необходимо работает только с х32.

Так же проблема может быть непосредственно в самом коде.

Ошибка (COMOбъект) : 1 комментарий

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

Читайте также:

  • Конструктор 60138 city police стремительная погоня lego
  • Лего музей в лондоне
  • Правильное название деталей лего
  • Производители конструкторов типа лего
  • Lego битва капитана америка с гидрой

Обновлено: 29.01.2023

Ошибка происходит при попытке загрузить из Excel в 1С, когда код обработчика выполняется не на клиенте, а на сервере и в большинстве случаев текст ошибки говорит об отсутствии прав у пользователя сервера 1С.

Особенности

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

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

Устранение:

  • на сервере убиваем excel (taskkill /im excel.exe /f)
  • открываем оснастку «Службы компонентов» (Пуск->Администрирование->Службы компонентов)
  • в ней раскрываем ветку Службы компонентов->Компьютеры->Мой компьютер->Настройка DCOM
  • справа в списке находим Microsoft Excel Application, открываем Свойства, вкладка Удостоверение, выбираем пользователя с администраторскими правами, ОК.

Может оказаться, что «Microsoft Excel Application» отсутствует в списке, в данном случае

  1. Запускаем REGEDIT
  2. Открываем ветку ComputerHKEY_CLASSES_ROOTAppIDEXCEL.EXE, если ее нет, то создаем
  3. Создаем в ней строковый параметр AppID =
  4. Выполняем команду «mmc comexp.msc /32», которая делает то же что и DCOMCONFIG, но позволяет видеть 32 битные компоненты.
  5. После этого в Component Services должен появиться «Microsoft Excel Application»

Чтобы решить эту проблему, я включил пользователя USRV82, под которым запускается сервер приложений 1С Предприятия 8.3, в группу Distributed COM Users, но ошибка сразу не ушла, потребовалась перезагрузка.

Осложняло проблему то, что ошибка плавала: периодически выходила, либо в момент создания объекта, либо уже в момент вызова методов excel-application.

Так что нельзя однозначно сказать, что же решило проблему.

Заключение

В большинстве случаев уйти от дополнительной настройки операционной системы возможно, если использовать вызова Com-Объекта на клиенте. При правильной установке объектов они работают даже при различных по битности 1с и Excel, OS.

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

Бывает такое: вы прописываете для компонента пользователя и пароль.

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

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

— Денев Катрин

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

Далее оздал обработку и привзал к событию нажтия кнопки вышеуказанную функцию.
Ввылетает ошибка:
: Ошибка при вызове метода контекста (Obmen)
РезультатОбмена = ПроксиСервер.Obmen();
по причине:
Ошибка вызова операции сервиса: :WebService:Obmen()
по причине:
Ошибка SOAP сервера: Неизвестная ошибка. : Значение не является значением объектного типа (Добавить)
по причине:
: Значение не является значением объектного типа (Добавить)

Что не хватает? Как реализовать обратный обмен из сайта в 1С?? Нужно ли создвать специальную web-обработку для этих целей на языке PHP?

(3) Manticor, проверьте отладчиком, правильно ли у вас заполняются свойства «Код» и «Номенклатура»в строке

(4) VBod, кстати не могу войти в отладчик — как будто на сервер пытаюсь зайти в серверном фарианте)), у меня на форме кнопка, на ней такая процедура

КонецПроцедуры // ()
обмен уже приводил выше. Как отладку включить?))

(7) Manticor, а обработка вызова Web-Сервиса у вас расположена в той же базе, где и сам Web-Сервис что-ли?

(9) Manticor, а что бы запустить отладчик, нужно в каталоге публикации вашего сервиса на Apache открыть файл default.vrd и перед строкой

Затем в конфигураторе, в меню «Отладка» > «Подключение» > «Автоматическое подключение» установить флажок напротив пункта «Web-Сервисы». После этого можно ставить точку останова в вашей процедуре Obmen и вызывать сервис обработкой из другой базы.
Только учтите, что редактировать файл default.vrd нужно уже после публикации Web-Сервиса, т.к. при публикации он заменяется на создаваемый Apache по умолчанию.

(11) VBod, (10) VBod, сделал все как Вы и сказали, создал чистую базу, туда перенес обработку.
Единтсвенное — убрал аутентификацию, поскольку вроде с ней не работает).
В итоге код такой:

Но зато заработал после добавлени функции отладки первоначальный код — отладчик выполняет функцию obmen, однако после вызова выводится ошибка:

(12) Manticor, как-то странно, как у вас мог заработать отладчик, если на строке получения прокси, пишет что сервис не найден?
Можете показать, что у вас в настройках публикации на веб-сервере и на закладках «Операции» и «Прочее» в настройках самого веб-сервиса?

(14) Manticor, в веб-сервисе на закладке «Прочее» в «URI пространства имен» установите значение «http://www.sample-package.org».
И в коде у вас должно быть так:

(15) VBod, попробовал сделать так. Поставил аутентификацию — также как и было.

(17) VBod, спасибо большое Вам, вроде без ошибок работает, тоесть сейчас при выполнении РезультатыИмпорта имеет такие данные(скрин приложил).
Что еще нужно сделать(добавить) для полноценной синхронизации контрагентов между 1С и сайтом и наоборот??

Сейчас на выходе у нас лишь объект XDTO.

(18) Manticor, ну теперь доделывайте передачу остальных реквизитов, которые вам нужны и делайте на сайте вызов этого веб-сервиса. Неплохо бы сделать, что бы в ответ веб-сервис возвращал данные с подтверждением удачной загрузки или ошибку в случае неудачной, что позволит в случае ошибки отправлять данные повторно. Продумайте предварительную проверку (перед загрузкой), существования контрагента, это позволит избежать дублей. Затем пишите веб-сервис на сайте, для передачи контрагентов из 1С на сайт. Плюс читайте (5) и (6).

Вот с сайта в 1С как раз лучше выгружать используя Web-Сервис созданный в 1С. Т.е. вы сейчас создаете в 1С Web-сервис, который будет не передавать контрагентов на сайт, а наоборот принимать их с сайта. Это удобнее т.к. на сайте вы можете привязать вызов этого Web-сервиса к событию создания контрагента, таким образом создание контрагента в 1С у вас будет происходить практически синхронно вместе с его созданием на сайте.

(1) Manticor, а вот на сайте уже нужно будет разработать еще один Web-Сервис на PHP, который будет создавать контрагентов. Затем при создании контрагента в 1С, нужно будет вызвать этот Web-Сервис и в параметрах передавать ему данные нового контрагента. Только не забудьте учесть, что в 1С, контрагент может быть как создан, так и удален или его данные могут быть изменены, поэтому нужно учесть возможность удаления и изменения контрагентов на сайте, если они изменяются или удаляются в 1С.

Лучше создайте пустую базу и там разместите обработку вызывающую ваш Web-Сервис. И вызывайте его лучше не через статическую WS-Ссылку, а динамически:

&НаСервере
Процедура ИмпортВебСервис()

Определения = Новый WSОпределения(«http://109.195.230.156/test/ws/WebService?wsdl»);
Прокси = Новый WSПрокси(Определения, «http://www.my.org», «WebService», «WebServiceSoap»);
РезультатыИмпорта = Прокси.Obmen();
КонецПроцедуры

При исполнении получаю:Метод объекта не обнаружен (Obmen)
На сервисе операция obmen есть

Только лучше создайте новую тему, что бы не писать здесь. А мне можете кинуть ссылку в личку. Если смогу, постараюсь помочь.


Значит дело было так. Появилась необходимость подключаться к базам по com соединению, для анализа тамошних объектов метаданных. Проблема оказалась в том, что базы могли работать на разных версиях 1С. Пошел в интернет, искал, читал, но все фигня, в оновном все предлагают держать базы на одной версии, что для меня было невозможным.

Кроме, вот этой статьи. Огромное спасибо автору (Леонид Кириенко) и zakiap

Тут уже интересней, но есть пару минусов

1) 1С должна работать от имени учетки с админскими правами.

2) «Варварское» поведение по отношению dllhost.exe

3) Могут возникнуть проблемы при одновременном обращении к базам на разных версиях.

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

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

Инструкция

1. Идем «Панель управления» — «Администрирование» — «Службы компонентов»

2. В оснастке служб компонентов, «Службы компонентов» — «Компьютеры» — «Мой компьютер» — «Приложения COM+»

3. Создаем новое приложение, правой кнопкой по «Приложения COM+» — «Создать» — «Приложение»

4. Выбираем «Создать новое приложение», называем например «1cv8», тип выбираем «Библиотечное приложение»

должно полчуить так

5. Раскрываем «1cv8», правой кнопкой по «Компоненты» — «Создать» — «Компонент».

6. Выбираем вариант «Установка новых компонентов», находим нашу библиотеку comcntr.dll

Находится она в катлоге BIN установленной платформы, у меня например путь такой

«C:Program Files (x86)1cv88.3.10.2168bincomcntr.dll»

должны получить следующую картину

7. Правой кнопкой по «V83.COMConnector.1» — «Псевдоним. «, меняем наименование с «CopyOf.V83.COMConnector.1» на «V83.COMConnector_8.3.9.2033». Данное действие проделываем для всех нужных версий платформ.

8. Открываем «regedit» через пуск или команду «Выполнить», нажимаем F3 и указываем для поиска строку с наименованием созданой нами обертки, например «V83.COMConnector_8.3.9.2033». Или использум для поиска CLSID созданной обертки.

9. Ищем значение в ветке «HKEY_LOCAL_MACHINE» у меня путь такой HKEY_LOCAL_MACHINESOFTWAREClassesWow6432NodeCLSID выглядеть должно так

В ветке «InprocServer32» меняем значение у меня, «C:Program Files (x86)1cv88.3.10.2168bincomcntr.dll» на путь к нужной версии длл, в данном случае «C:Program Files (x86)1cv88.3.9.2033bincomcntr.dll».

Данное дейстие проделываем для всех созданных оберток.

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

В файлах утилита, которая выполнит все эти действия автоматически. Подходит для тех у кого 1С лежит в каталоге

«C:Program Files (x86)1cv8». У кого что то отличается, вот ссылка на GitHub . Запустить утилиту нужно от имени администратора. Надеюсь данный материал будет вам полезен)

Специальные предложения

Electronic Software Distribution

Интеграция 1С с системой Меркурий

Готовые переносы данных

Алкогольная декларация

54-ФЗ

Инструментарий разработчика

Маркетплейсы и 1С

Траектория обучения 1С-разработчика

Управление проектом на Инфостарте

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

Спасибо за статью. Мне она помогла, но если просто сделать как написано, возникали ошибки. Куча комментариев с разными ошибками не дали быстрого решения как именно сделать настройки. Предлагаю слегка скорректированный алгоритм. (*) — измененные шаги. В нем нет последних шагов по работе с реестром. У меня сработало на двух серверах.
Если автор посчитает возможным — можно было бы перенести в шапку.

1. Идем «Панель управления» — «Администрирование» — «Службы компонентов»
2. В оснастке служб компонентов, «Службы компонентов» — «Компьютеры» — «Мой компьютер» — «Приложения COM+»
3. Создаем новое приложение, правой кнопкой по «Приложения COM+» — «Создать» — «Приложение»
4*. Выбираем «Создать новое приложение», называем например «1cv8», тип выбираем «Серверное приложение»,
Учетная запись — Текущий пользователь, Пользователь с ролью Owner — поставил администратора компьютера (сервера).
(без этого возможна ошибка -2147024769(0x8007007F): Не найдена указанная процедура)
5*. Нажимаем правой кнопкой по ветке 1cv8 – Свойства – Безопасность:
— Снимаем галку «Принудительная проверка доступа для приложений»
— Ставим галку «Применить политику программных ограничений»
— Уровень ограничений «Неограниченный»
(без этого возможна ошибка -2147024891(0x80070005): Отказано в доступе)
6. Раскрываем «1cv8», правой кнопкой по «Компоненты» — «Создать» — «Компонент».
7. Выбираем вариант «Установка новых компонентов», находим нашу библиотеку comcntr.dll (той версии платформы, к которой надо будет подключаться)
-* Если установка платформы на сервер не требуется, то достаточно скопировать в некую папку на сервере все содержимое папки bin соответствующей платформы и указать comcntr.dll из этой папки
8. Правой кнопкой по «V83.COMConnector.1» — «Псевдоним. «, меняем наименование с «CopyOf.V83.COMConnector.1» на «V83.COMConnector_8.3.9.2033». Данное действие проделываем для всех нужных версий платформ.

Вот так вот выглядит более полный текст ошибки:

WSОпределения = Новый(Тип(«WSОпределения»), Параметры);

Ошибка работы с Интернет: Удаленный узел не прошел проверку

ОбщийМодуль.ОбщегоНазначенияПовтИсп.Модуль(198)

10060 — Ошибка соединения с сервером

по причине:
Ошибка работы с Интернет: произошел таймаут при ожидании ответа шлюзу (504)

Как решить проблему

В случае клиент-серверной версии необходимо добавить сертификат Digicert как на сервере, так и на всех клиентах. Добавлять стоит способом, описанным в пункту 1 или 3. Перегружать сервер после обновления cacert.pem не нужно.

Загрузка cacert.pem

В итоге у вас будет архив с сертификатом cacert.pem, распакуйте его. Далее, откройте вашего клиента, где вы получаете ошибку при вызове конструктора WSОпределения. И перейдите по пути:

Ошибка при вызове конструктора-02

Если вы теряетесь в своих версиях, то попробуйте произвести поиск по cacert.pem в папке C:Program Files (x86) и посмотрите, где у вас нужно подменить, этот файл. Меняете его на свежий и радуетесь жизни.

Ошибка при вызове конструктора-03

  • Второй метод, заключается в использовании обработки в 1С. Скачайте файл обработка.epf

ОБЯЗАТЕЛЬНО запустите его от имени администратора, иначе можете получить ошибку:

Ошибка записи сертификата. Возможно:
— Файл cacert.pem занят. Освободите файл от редактирования и запустите обработку заново.
— Закройте 1С: Предприятие и запустите с правами администратора операционной системы

Использование COMOбъектов в 1С это прошлый век, сейчас уже ни кто так не пишет. Раньше с его помощью реализовали печать документов. Они выгружались в OpenLibre Office и от туда уже печатались.

Появиться такая ошибка может после

1 Обновления платформы

2 Переустановки ОС и 1С

3 Обновление конфигурации

4 Проблем с офисными пакетами

Это самые распространенные.

Три способа избавиться от ошибки «Ошибка при вызове конструктора…»

И так после каких либо манипуляций с 1С у вас стала появляться ошибка.

Первый способ

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

Второй способ

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

regsvr32 «C:Program Files (x86)1cv88.3.16.18.14comcntr.dll»

Кстати данную манипуляцию нужно проводить на сервере.

Третий способ

Установить 32 битную версию клиента 1С, можно даже поверх х64. В итоге у вас появиться два ярлычка для запуска, один для х32 второй х64.

Ошибка при вызове конструктора (COMOбъект)

Версию можно указать и в ярлыке запуска 1С.

Можно еще попробовать самостоятельно создать COM + , но лично из своего опыта могу сказать это не помогает. Самый действенный вариант это установка х32 клиента. Так как компонента которая необходимо работает только с х32.

Так же проблема может быть непосредственно в самом коде.

Ошибка (COMOбъект) : 1 комментарий

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

Читайте также:

  • Конструктор 60138 city police стремительная погоня lego
  • Лего музей в лондоне
  • Правильное название деталей лего
  • Производители конструкторов типа лего
  • Lego битва капитана америка с гидрой

Содержание:

1.     Что такое COM и COM объект 1С

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

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

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

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

2.     Ошибка вызова конструктора COMОбъекта в 1С

         Ошибка возникает в некоторых случаях, когда бывает, что во время установки системы 1С не регистрируется файл с названием «comcntr.dll», из-за чего работать с COM соединением сервера 1С нельзя ни при каких условиях.

         В этом случае, при решении ошибки, важно учитывать нюансы при работе с операционной системой Windows (при этом, версия Windows должна быть выше XP, т.е. будем рассматривать выход для новых версий) и с администрированием системы 1С.   

3.     Устранение ошибки при вызове конструктора COMОбъект

Ошибка при вызове конструктора COMОбъект в 1С имеет следующее отображение: «2147221164 (0х80040154): Класс не зарегистрирован» либо «Ошибка при вызове конструктора COMОбъект: Недопустимая строка с указанием класса 1С»), вид ошибки представлен на скриншоте ниже:

Выполняем такие действия:

·        Для начала, переходим в режим администратора и запускаем командную строку. Важно обратить внимание, что в командной строке должно быть написано: «C:windowssystem32» (либо 64 в конце, если это 64-х битная версия операционной системы). Получаем, что корректный путь для корневой строки должен выглядеть таким образом:

·        Следующий шаг – это написать команду «regsvr32», она будет выглядеть так: «C:Program Files1cv88.3.ХХ.ХХХХbincomcntr.dll». Стоит отметить, что нужно прописать свой точный номер релиза платформы, а путь к самой библиотеке нужно брать в кавычки, конечный итог продемонстрирован ниже:

После этих действий, ошибка полностью устранена. В скриншотах-примерах была показана версия платформы 1С под номером «8.3.11.2867 х64».

Специалист компании «Кодерлайн»

Лев Туренко

Обновлено 14.10.2020

1СДобрый день! Уважаемые читатели и гости популярного компьютерного блога pyatilistnik.org. В прошлый раз мы с вами решили ошибку » db query error please try later», и восстановили работу сайта на платформе 1С Битрикс. Сегодня я хочу поделиться небольшой заметкой, как выйти из ситуации, когда не работает кнопка «Заполнить по ИНН» в Справочнике Контрагенты при создании нового. Выдается ошибка «ОбщийМодуль.ОбщегоНазначенияПовтИсп.Модуль(198): Ошибка при вызове конструктора (WSОпределения) WSОпределения = Новый(Тип(«WSОпределения»). Давайте разбираться в чем собственно дело.

Причины ошибок с модулем 198-504

Вся проблема связана с неправильным и устаревшим сертификатом, это бывает если вы давно не обновляли свою версию 1С, а в этот момент как раз истек срок сертификата, который участвует в подключении к внешним сервисам, например, npchk.nalog.ru или api.orgregister.1c.ru.

Вот так вот выглядит более полный текст ошибки:

Не работает кнопка «Заполнить по ИНН» в Справочнике Контрагенты при создании нового.

Выдает ошибку:

{ОбщийМодуль.ОбщегоНазначенияПовтИсп.Модуль(198)}: Ошибка при вызове конструктора (WSОпределения)

WSОпределения = Новый(Тип(«WSОпределения»), Параметры);

по причине:

При вызове веб-сервиса произошла ошибка. При создании описания сервиса произошла ошибка. URL сервиса: https://api.orgregister.1c.ru/orgregister/v7?wsdl

по причине:

Ошибка работы с Интернет: Удаленный узел не прошел проверку

ОбщийМодуль.ОбщегоНазначенияПовтИсп.Модуль(198)

Комментарий: {ОбщийМодуль. ОбщегоНазначения. Модуль (5303)}: Ошибка при вызове конструктора (WSОпределения)
Определения = Новый WSОпределения (ИмяФайлаWSDL, ИмяПользователя, Пароль, ИнтернетПрокси, Таймаут);
по причине:
Ошибка импорта схемы
по причине:
Ошибка при выполнении файловой операции ‘_ttp://npchk.nalog.ru:80/FNSNDSCAWS_2?xsd=1’
по причине:
Ошибка работы с Интернет: произошел таймаут при ожидании ответа шлюзу (504).

10060 — Ошибка соединения с сервером

HOST — npchk.nalog.ru[81.177.31.8]; PORT — 80
Connection timed outTraffic Inspector HTTP/FTP/Proxy server (3.0.2.912)

по причине:
Ошибка работы с Интернет: произошел таймаут при ожидании ответа шлюзу (504)

Как решить проблему

В случае клиент-серверной версии необходимо добавить сертификат Digicert как на сервере, так и на всех клиентах. Добавлять стоит способом, описанным в пункту 1 или 3. Перегружать сервер после обновления cacert.pem не нужно.

  • Самым быстрым методом? будет замена сертификата cacert.pem, который располагается в папке с вашим клиентом. Скачать cacert.pem можно о официального сайта по ссылке:

https://its.1c.ru/db/files/1CITS/EXE/cacert/cacert.zip

Загрузка cacert.pem

В итоге у вас будет архив с сертификатом cacert.pem, распакуйте его. Далее, откройте вашего клиента, где вы получаете ошибку при вызове конструктора WSОпределения. И перейдите по пути:

C:Program Files (x86)1cv88.3.11.3034bin это в случае с версией 8.3.11.3034

Ошибка при вызове конструктора-02

Если вы теряетесь в своих версиях, то попробуйте произвести поиск по cacert.pem в папке C:Program Files (x86) и посмотрите, где у вас нужно подменить, этот файл. Меняете его на свежий и радуетесь жизни.

Ошибка при вызове конструктора-03

  • Второй метод, заключается в использовании обработки в 1С. Скачайте файл обработка.epf

https://its.1c.ru/db/files/1CITS/EXE/digicert_epf/digicert_epf.zip

ОБЯЗАТЕЛЬНО запустите его от имени администратора, иначе можете получить ошибку:

Ошибка записи сертификата. Возможно:
— Файл cacert.pem занят. Освободите файл от редактирования и запустите обработку заново.
— Закройте 1С: Предприятие и запустите с правами администратора операционной системы

  • Ну и третий метод, это редактирование текущего файла cacert.pem. Откройте его текстовым редактором и в самом конце файла вставьте содержимое файла digicert.pem, который можно скачать тут:

https://its.1c.ru/db/files/1CITS/EXE/digicert/digicert.zip

Ошибка при вызове конструктора-04

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