Ошибка инициализации модуля модуль внешнего соединения

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

2020-12-17T15:30:51+00:00

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

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

При наличии этой ошибки ничего не остаётся кроме как зайти в свойства проблемной базы и установить галку «Для этой базы используется базовая платформа»: ссылка.

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

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

С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).

Владимир Милькин

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

Нажмите одну из кнопок, чтобы поделиться:

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

2020-12-17T15:30:51+00:00

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

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

При наличии этой ошибки ничего не остаётся кроме как зайти в свойства проблемной базы и установить галку «Для этой базы используется базовая платформа»: ссылка.

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

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

С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).

Владимир Милькин

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

Нажмите одну из кнопок, чтобы поделиться:

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

Добрый день!

Есть код в одном модуле менеджера одного документа:

#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда

Процедура ЗаполнитьРасходныйДокумент(Источник, ДанныеЗаполнения, СтандартнаяОбработка) Экспорт

    

    ДанныеШапки = ДанныеШапкиДокумента( ДанныеЗаполнения.Ссылка );

    РезультатыВыбора = ДанныеЗаполнения.РезультатыВыбора;

    

    ЗаполняемыеРеквизиты = «Организация, Контрагент, Договор» + ?(

        РезультатыВыбора.ВидДокумента = «РасходныйКассовыйОрдер», «», «, НазначениеПлатежа»

        );

    

    Источник.ФП_ДокументОснование    = ДанныеЗаполнения.Ссылка;

    ЗаполнитьЗначенияСвойств(Источник, РезультатыВыбора,         «ИФО»);  

    ЗаполнитьЗначенияСвойств(Источник, ДанныеШапки, ЗаполняемыеРеквизиты);  

    Если ЗначениеЗаполнено(Источник.Контрагент) И РезультатыВыбора.ВидДокумента <> «РасходныйКассовыйОрдер» Тогда

        Источник.СчетКонтрагента = Справочники.БанковскиеИКазначейскиеСчета.ПолучитьСчетПоУмолчанию(Источник.Контрагент, «Документ.» + РезультатыВыбора.ВидДокумента);

        Если РезультатыВыбора.ВидДокумента = «ЗаявкаНаКассовыйРасходСокращенная» ИЛИ РезультатыВыбора.ВидДокумента = «ЗаявкаНаКассовыйРасход» Тогда

            Документы[ РезультатыВыбора.ВидДокумента ].ЗаполнитьРеквизитыПолучателя(Источник);

        Иначе

            СозданиеНаОсновании_ПолучательПриИзмененииНаСервере(Источник);

        КонецЕсли;

    КонецЕсли;

    

    СтруктураПоиска = Новый Структура;

    Для каждого ключЗначение ИЗ РезультатыВыбора Цикл

        

        Если КлючЗначение.Ключ = «ВидДокумента» ИЛИ КлючЗначение.Ключ = «РеквизитыЛицевогоСчета» тогда

            Продолжить;

        КонецЕсли;

        
        СтруктураПоиска.Вставить( КлючЗначение.Ключ, КлючЗначение.Значение );

        
    КонецЦикла;

    

    ИсточникРасшифрокиПлатежа = ПолучитьИзВременногоХранилища( ДанныеЗаполнения.НесопоставленныеОстаткиАдрес );

    ВыбранныеСтроки = ИсточникРасшифрокиПлатежа.НайтиСтроки( СтруктураПоиска );

    ТаблицаДляЗаполнения = ИсточникРасшифрокиПлатежа.Скопировать(ВыбранныеСтроки);

    ТаблицаДляЗаполнения.Свернуть(«КФО,КПС,КЭК,КодЦели,Мероприятие,ДопКлассификация»,»Сумма»);

    ТаблицаДляЗаполнения.Сортировать(«КПС,КЭК»);

            
    Источник.СуммаДокумента        = ТаблицаДляЗаполнения.Итог(«Сумма»);

        

    Если РезультатыВыбора.ВидДокумента <> «РасходныйКассовыйОрдер» Тогда

        Источник.ЛицевойСчет = РезультатыВыбора.РеквизитыЛицевогоСчета.Владелец;

        Если РезультатыВыбора.ВидДокумента <> «КассовоеВыбытие» Тогда

            Источник.РеквизитыЛицевогоСчета = РезультатыВыбора.РеквизитыЛицевогоСчета;

            СозданиеНаОсновании_ПриИзмененииЛицевогоСчетаНаСервере(Источник, РезультатыВыбора.ВидДокумента);

            Если РезультатыВыбора.ВидДокумента <> «ПлатежноеПоручение» Тогда

                Источник.ОрганКазначейства        = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Источник.РеквизитыЛицевогоСчета, «КассовыйОрган»);

            КонецЕсли;

        КонецЕсли;

    КонецЕсли;

    
    Если РезультатыВыбора.ВидДокумента = «ЗаявкаНаКассовыйРасходСокращенная» Тогда

        

        Источник.КФО                    = РезультатыВыбора.КФО;

        Источник.КБКНазначениеПлатежа    = РезультатыВыбора.КПС;

        Источник.КОСГУНазначениеПлатежа    = РезультатыВыбора.КЭК;

        Источник.КодЦели                = РезультатыВыбора.КодЦели;

        Источник.КодМероприятия            = РезультатыВыбора.Мероприятие;

        Источник.ДопКлассификация        = РезультатыВыбора.ДопКлассификация;

        

        ДопустимыеИсточникиСредств = ПлатежноРасчетныеДокументыПовтИсп.ДопустимыеИсточникиСредств(Источник.ЛицевойСчет,Источник.КФО);

        Если ДопустимыеИсточникиСредств.Количество() > 0 Тогда

            Источник.ИсточникСредств = ДопустимыеИсточникиСредств[0];

        КонецЕсли;

    
    Иначе

        ЗаполнятьВалюту = ( РезультатыВыбора.ВидДокумента = «ЗаявкаНаКассовыйРасход» ИЛИ РезультатыВыбора.ВидДокумента = «КассовоеВыбытие» );

        Если ЗаполнятьВалюту Тогда

            ВалютаДокумента         = Константы.ВалютаРегламентированногоУчета.Получить();

            КурсКратность            = РаботаСКурсамиВалют.ПолучитьКурсВалюты(ВалютаДокумента, ДанныеШапки.Дата);

        

            Источник.ВалютаДокумента        = ВалютаДокумента;

            Источник.Курс                    = КурсКратность.Курс;

            Источник.Кратность                = КурсКратность.Кратность;

            Источник.СуммаДокументаВВалюте    = Источник.СуммаДокумента;

        КонецЕсли;

        
        Источник.РасшифровкаПлатежа.Очистить();

        

        Для Каждого СтрокаОснования Из ТаблицаДляЗаполнения Цикл

            СтрРасшифровка = Источник.РасшифровкаПлатежа.Добавить();

            СтрРасшифровка.КФО                        = СтрокаОснования.КФО;

            Если РезультатыВыбора.ВидДокумента = «РасходныйКассовыйОрдер» Тогда

                СтрРасшифровка.КПС    = СтрокаОснования.КПС;

                СтрРасшифровка.КЭК    = СтрокаОснования.КЭК;

            Иначе    

                СтрРасшифровка.КБКНазначениеПлатежа        = СтрокаОснования.КПС;

                СтрРасшифровка.КОСГУНазначениеПлатежа    = СтрокаОснования.КЭК;

                

                ДопустимыеИсточникиСредств = ПлатежноРасчетныеДокументыПовтИсп.ДопустимыеИсточникиСредств(Источник.ЛицевойСчет, СтрРасшифровка.КФО);

                Если ДопустимыеИсточникиСредств.Количество() > 0 Тогда

                    СтрРасшифровка.ИсточникСредств = ДопустимыеИсточникиСредств[0];

                КонецЕсли;

    

            КонецЕсли;

            СтрРасшифровка.КодЦели                    = СтрокаОснования.КодЦели;

            СтрРасшифровка.КодМероприятия            = СтрокаОснования.Мероприятие;

            СтрРасшифровка.ДопКлассификация            = СтрокаОснования.ДопКлассификация;

            Если ЗаполнятьВалюту Тогда

                СтрРасшифровка.СуммаВал                    = СтрокаОснования.Сумма;

            КонецЕсли;

            СтрРасшифровка.Сумма                    = СтрокаОснования.Сумма;

        КонецЦикла;

        
    КонецЕсли;

    
КонецПроцедуры

//Заполняет реквизиты получателя

&НаСервере

Процедура СозданиеНаОсновании_ПолучательПриИзмененииНаСервере(Объект)

    

    РеквизитыПолучателя = Новый Структура(«КонтрагентИНН, КонтрагентКПП, КонтрагентНаименование, КонтрагентБанковскийСчет, КонтрагентНаименованиеБанка, КонтрагентБИКБанка, КонтрагентКорСчетБанка»,

    «ИНН», «КПП», «Корреспондент», «СчетНомер», «Банк», «БИК», «КоррСчет»);

                                                                                                                                        
    ПлатежноРасчетныеДокументы.ПолучитьПлатежныеРеквизитыПоТребованиюБанка(Объект.СчетКонтрагента, Объект.СчетКонтрагента, РеквизитыПолучателя);

    

    СтруктураРеквизитов = Новый Структура(«ТипЛицевогоСчета, Код»);

    СтруктураРеквизитов = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Объект.СчетКонтрагента, СтруктураРеквизитов);

    

    Если СтруктураРеквизитов.ТипЛицевогоСчета = Перечисления.ТипыЛицевыхСчетов.Казначейский Тогда

        РеквизитыПолучателя.Вставить(«КонтрагентЛицевойСчет»,СтруктураРеквизитов.Код);

    Иначе

        РеквизитыПолучателя.Вставить(«КонтрагентЛицевойСчет»,»»);

    КонецЕсли;    

    
    ЗаполнитьЗначенияСвойств(Объект, РеквизитыПолучателя);

    
КонецПроцедуры

#КонецЕсли

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

При проверке конфигурации через Конфигурация — Проверка конфигурации с включенной галкой Внешнее соединение (клиент-сервер) выдается ошибка компиляции, якобы не найдена эта процедура (СозданиеНаОсновании_ПолучательПриИзмененииНаСервере)

Ведь весь модуль обернут в инструкцию предпроцессора «#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда»

Что может быть не так?

Содержание:

1.       Диагностика ошибки инициализации модуля

2.       Устранение ошибки инициализации модуля

В данной статье будет описано, как устранять ошибку в системе «1С:Предприятие», когда при обновлении типовой конфигурации появляется объявление вида «Ошибка инициализации модуля:EF_00_00ХХХХХ». Будет проведён анализ данной неполадки и приведены способы по её устранению.   


1.    Диагностика ошибки инициализации модуля

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

Окно ошибки инициализации модуля

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

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

2.    Устранение ошибки инициализации модуля

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

Для удаления патча вручную существует два метода:

1.     Через режим «1С:Предприятие» в системе. Откроем вкладку в меню «Администрирование», после чего кликнем на «Обслуживание», перейдём на раздел «Обновление программы» и избираем «Установленные исправления(патчи)», как демонстрируется на скриншоте с примером ниже:

Установленные исправления в режиме 1С Предприятия в системе

Перед пользователем появится список патчей с правками, как показано далее:

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

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

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

Управление расширениями конфигурации

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

Удаление расширения в 1С 8 Конфигуратор

Оба способа являются рабочими и возобновляют корректную работу системы 1С, избавляя ошибки после установки обновления.

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

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

Айдар Фархутдинов

4 / 4 / 0

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

Сообщений: 1,228

1

1C 8.x

Работать с двумя базами

18.07.2016, 12:18. Показов 5365. Ответов 24


Добрый день! Можете подсказать реально реализовать работу одновременно с двумя базами? Есть основная база №1, пользователь с помощью обработки заносит данные, сохраняет и создается новый документ в базе №2. Так сказать при помощи обработки (которая находится в базе №1) мы подключаемся ко второй базе и работает с ней. Если такое реально можете показать пример.

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь

0

Эксперт 1С

3051 / 1998 / 524

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

Сообщений: 6,964

18.07.2016, 14:28

2

Ermak27, что за базы? какие конфигурации?
Может обмен данными настроить?

0

4 / 4 / 0

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

Сообщений: 1,228

18.07.2016, 14:49

 [ТС]

3

GreenkA,
-) конфигурация 8.2
-) самаписная
-) Нет, обмен я могу сделать. Мне интересно можно ли сделать как я написал выше.
Через код подключаться к базе 1с и создавать там документ.

0

Эксперт 1С

434 / 305 / 92

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

Сообщений: 1,247

18.07.2016, 15:15

4

Ermak27, ну если только через com-соединение

1

Модератор

Эксперт 1С

3697 / 2897 / 569

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

Сообщений: 11,398

Записей в блоге: 1

18.07.2016, 15:15

5

Лучший ответ Сообщение было отмечено Ermak27 как решение

Решение

Цитата
Сообщение от Ermak27
Посмотреть сообщение

Мне интересно можно ли сделать как я написал выше.

Можно

http://programmist1s.ru/podkly… -2-po-com/

1

Ermak27

4 / 4 / 0

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

Сообщений: 1,228

19.07.2016, 10:46

 [ТС]

6

Не могу подключиться

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Функция ПолучитьПодключениеКСервернойБД()
     Сервер = "server";
     ИмяБазы = "copy_baza";
     Пользователь = "Админ";
     Пароль = "1c";
     
     Параметры = "srvr=""" + Сервер + """; ref=""" + ИмяБазы + """; usr=""" + Пользователь + """; pwd=""" + Пароль + """;";
     V8 = Новый COMОбъект("V83.COMConnector");
     Попытка
         Base1С = V8.Connect(Параметры);
     Исключение
         Предупреждение ("Ошибка подключения!");
     КонецПопытки;
     
КонецФункции

0

Эксперт 1С

841 / 604 / 211

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

Сообщений: 2,101

19.07.2016, 20:38

7

Убери попытку-исключение и посмотри какую ошибку выдает платформа.

0

Dethmontt

Модератор

Эксперт 1С

3697 / 2897 / 569

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

Сообщений: 11,398

Записей в блоге: 1

19.07.2016, 20:41

8

или хотя бы так

1C
1
2
3
4
5
Попытка
         Base1С = V8.Connect(Параметры);
     Исключение
         Сообщить(ОписаниеОшибки());
     КонецПопытки;

0

4 / 4 / 0

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

Сообщений: 1,228

20.07.2016, 10:24

 [ТС]

9

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

0

Модератор

Эксперт 1С

3697 / 2897 / 569

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

Сообщений: 11,398

Записей в блоге: 1

20.07.2016, 11:30

10

Цитата
Сообщение от Ermak27
Посмотреть сообщение

Это что значит?

Что там фигня какая то написана…
В

Цитата
Сообщение от Ermak27
Посмотреть сообщение

МодульВнешнегоСоединения

0

4 / 4 / 0

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

Сообщений: 1,228

20.07.2016, 11:35

 [ТС]

11

Dethmontt, что это за модуль? Где мне искать его? Мне не понятно. Я работаю на платформе 8.3, почему проблема

0

Модератор

Эксперт 1С

3697 / 2897 / 569

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

Сообщений: 11,398

Записей в блоге: 1

20.07.2016, 12:44

12

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

Добавлено через 13 секунд
Ermak27, там какие то ошибки

Добавлено через 49 секунд

Цитата
Сообщение от Ermak27
Посмотреть сообщение

Где мне искать его?

ПКМ по конфигурации в дереве — МодульВнешнегоСоединения

1

4 / 4 / 0

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

Сообщений: 1,228

20.07.2016, 14:55

 [ТС]

13

Dethmontt, В общих модулях такого нет.

0

Модератор

Эксперт 1С

3697 / 2897 / 569

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

Сообщений: 11,398

Записей в блоге: 1

20.07.2016, 16:52

14

Цитата
Сообщение от Ermak27
Посмотреть сообщение

В общих модулях такого нет.

А где я выше написал про Общие модули ?

0

4 / 4 / 0

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

Сообщений: 1,228

20.07.2016, 17:19

 [ТС]

15

Dethmontt, я тогда не понимаю где искать ПКМ по конфигурации в дереве — МодульВнешнегоСоединения ?

0

4 / 4 / 0

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

Сообщений: 1,228

21.07.2016, 08:55

 [ТС]

17

Dethmontt, Спасибо. А какая процедура или функция должна быть в этом модуле чтобы не выдавала ошибки? У меня самописная конфигурация.

0

Модератор

Эксперт 1С

3697 / 2897 / 569

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

Сообщений: 11,398

Записей в блоге: 1

21.07.2016, 16:00

18

Ermak27, а что там вообще есть?

Добавлено через 36 секунд
Ermak27, в базе к которой ты подключаешься!!!! (не из которой подключаешься!!!!)?

0

Ermak27

4 / 4 / 0

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

Сообщений: 1,228

22.07.2016, 10:01

 [ТС]

19

Dethmontt, То что есть в внешнем модуле

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
Перем глОбщиеЗначения Экспорт;
 
Перем глТекущийПользователь Экспорт;
 
///////////////////////////////////////////////////////////////////////////////
// ПРОЦЕДУРЫ ЗАВЕРШЕНИЯ РАБОТЫ ПОЛЬЗОВАТЕЛЕЙ И ОБРАБОТКИ ПАРАМЕТРОВ
 
// Процедура выполняется при старте системы во внешнем сосединении
//
Процедура ПриНачалеРаботыСистемы()
        
    ПользовательОпределен = Ложь;
    ОписаниеОшибкиОпределенияПользователя = "";
    Если Не ЗначениеЗаполнено(ПараметрыСеанса.ТекущийПользователь) Тогда
        Если УправлениеПользователями.ОпределитьТекущегоПользователя(ОписаниеОшибкиОпределенияПользователя) Тогда
            ПользовательОпределен = ЗначениеЗаполнено(ПараметрыСеанса.ТекущийПользователь);
        КонецЕсли;
    Иначе
        ПользовательОпределен = Истина;
    КонецЕсли;
    
    Если Не ПользовательОпределен Тогда
        Если ПустаяСтрока(ОписаниеОшибкиОпределенияПользователя) Тогда
            ОписаниеОшибкиОпределенияПользователя = "Ошибка идентификации пользователя. Обратитесь к администратору";
        КонецЕсли;
        ВызватьИсключение ОписаниеОшибкиОпределенияПользователя;
    КонецЕсли;
    
    глТекущийПользователь = ПараметрыСеанса.ТекущийПользователь;
 
КонецПроцедуры //ПриНачалеРаботыСистемы()
 
///////////////////////////////////////////////////////////////////////////////
// ПРОЦЕДУРЫ И ФУНКЦИИ ЗАПОЛНЕНИЯ ПАРАМЕТРОВ СЕАНСА
 
Функция глЗначениеПеременной(Имя) Экспорт
    
    Возврат ОбщегоНазначения.ПолучитьЗначениеПеременной(Имя, глОбщиеЗначения);
 
КонецФункции
 
// Процедура установки значения экспортных переменных модуля приложения
//
// Параметры
//  Имя - строка, содержит имя переменной целиком
//  Значение - значение переменной
//
Процедура глЗначениеПеременнойУстановить(Имя, Значение, ОбновлятьВоВсехКэшах = Ложь) Экспорт
    
    ОбщегоНазначения.УстановитьЗначениеПеременной(Имя, глОбщиеЗначения, Значение, ОбновлятьВоВсехКэшах);
    
КонецПроцедуры

0

Модератор

Эксперт 1С

3697 / 2897 / 569

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

Сообщений: 11,398

Записей в блоге: 1

27.07.2016, 14:55

20

Ermak27, У общих модулей
1. УправлениеПользователями
2. ОбщегоНазначения

стоят галки «Внешнее соединение» ?

0

IT_Exp

Эксперт

87844 / 49110 / 22898

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

Сообщений: 92,604

27.07.2016, 14:55

20

  1. Приветствую, ребята. Столкнулся с такой проблемкой. Переходим на новую конфу БП 3.0, но она специфична — БНФО. Есть еще одна база из которой пытаюсь вытянуть данные путем COM-соединения.
    Ошибка вылетает: Ошибка при вызове метода контекста (СоздатьДокумент), посмотрел по коду, отваливается на том месте, в котором происходит обращение к общему модулю (там только галка — Сервер) : Переменная не определена (КонтДвиженияПоНФО), вот как раз КонтДвиженияПоНФО — это общий модуль.
    Подскажите пожалуйста, есть ли какая фича, чтобы при создании доков через COM-соединение, не происходило обращений ко всяким общим модулям и подпискам на события ?

  2. Offline

    nbIpKuH_BaH9I
    Модераторы
    Команда форума
    Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    8.173
    Симпатии:
    554
    Баллы:
    204

    Именно в момент создания? Или в момент записи?

  3. По всей видимости в момент создания, т.к. ругается на Подключение.Документы.КонтСтраховойПолис.СоздатьДокумент();

  4. Offline

    nomad_irk
    Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    9.900
    Симпатии:
    1.035
    Баллы:
    204

    По всей видимости, должна быть какая-то экспортная процедура/функция, которая формирует документ в БД и которая доступна для COM-соединения.

  5. Т.е. если модулю поставить Внешнее соединение, по сути должен модуль отрабатывать ?

    — Объединение сообщений, 21 фев 2017

    Вот полный текст ошибки:
    Произошла исключительная ситуация (1C:Enterprise 8.3.9.1850): Ошибка инициализации модуля: Документ.КонтСтраховойПолис.МодульОбъекта
    {Документ.КонтСтраховойПолис.МодульОбъекта(1949,3)}: Переменная не определена (КонтДвиженияПоНФО)

    Последнее редактирование: 21 фев 2017

  6. Offline

    nomad_irk
    Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    9.900
    Симпатии:
    1.035
    Баллы:
    204

    В первом приближении — да, должен отработать.

Ошибка инициализации модуля: EF_00_00XXXXX

После обновления у некоторых пользователей может возникнуть ошибка при запуске базы «Ошибка инициализации модуля: EF_00_00XXXXX. < … > Процедура или функция с указанным именем уже определена».

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

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

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

Есть несколько способов, рассмотрим самые распространенные:

  • в режиме 1С:Предприятия (если информационная база все же запускается, но ошибки возникают при определенных действиях);
  • через Конфигуратор (если программа не запускается).
  1. Удаление патча в режиме 1С:Предприятие

Достаточно зайти в Администрирование выбрать пункт Обслуживание и в разделе Обновление программы перейти в Установленные исправления (патчи).

В открывшемся списке, находим нужный патч и нажимаем Удалить исправление.

  1. Отключение патча в режиме Конфигуратор

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

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

Уже более 10 000 компаний работают
в облачной 1С от 42Clouds

— Консультация по 1С Бесплатно!

— Поддержка 24/7 по техническим вопросам: в чате, по телефону, по почте

— Все типовые конфигурации онлайн, доступ через RDP, Remote App, Web

Добрый день!

Есть код в одном модуле менеджера одного документа:

#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда

Процедура ЗаполнитьРасходныйДокумент(Источник, ДанныеЗаполнения, СтандартнаяОбработка) Экспорт

    
    ДанныеШапки = ДанныеШапкиДокумента( ДанныеЗаполнения.Ссылка );

    РезультатыВыбора = ДанныеЗаполнения.РезультатыВыбора;

    
    ЗаполняемыеРеквизиты = «Организация, Контрагент, Договор» + ?(

        РезультатыВыбора.ВидДокумента = «РасходныйКассовыйОрдер», «», «, НазначениеПлатежа»

        );

    
    Источник.ФП_ДокументОснование    = ДанныеЗаполнения.Ссылка;

    ЗаполнитьЗначенияСвойств(Источник, РезультатыВыбора,         «ИФО»);  

    ЗаполнитьЗначенияСвойств(Источник, ДанныеШапки, ЗаполняемыеРеквизиты);  

    Если ЗначениеЗаполнено(Источник.Контрагент) И РезультатыВыбора.ВидДокумента <> «РасходныйКассовыйОрдер» Тогда

        Источник.СчетКонтрагента = Справочники.БанковскиеИКазначейскиеСчета.ПолучитьСчетПоУмолчанию(Источник.Контрагент, «Документ.» + РезультатыВыбора.ВидДокумента);

        Если РезультатыВыбора.ВидДокумента = «ЗаявкаНаКассовыйРасходСокращенная» ИЛИ РезультатыВыбора.ВидДокумента = «ЗаявкаНаКассовыйРасход» Тогда

            Документы[ РезультатыВыбора.ВидДокумента ].ЗаполнитьРеквизитыПолучателя(Источник);

        Иначе

            СозданиеНаОсновании_ПолучательПриИзмененииНаСервере(Источник);

        КонецЕсли;

    КонецЕсли;

    
    СтруктураПоиска = Новый Структура;

    Для каждого ключЗначение ИЗ РезультатыВыбора Цикл

        
        Если КлючЗначение.Ключ = «ВидДокумента» ИЛИ КлючЗначение.Ключ = «РеквизитыЛицевогоСчета» тогда

            Продолжить;

        КонецЕсли;

        
        СтруктураПоиска.Вставить( КлючЗначение.Ключ, КлючЗначение.Значение );

        
    КонецЦикла;

    
    ИсточникРасшифрокиПлатежа = ПолучитьИзВременногоХранилища( ДанныеЗаполнения.НесопоставленныеОстаткиАдрес );

    ВыбранныеСтроки = ИсточникРасшифрокиПлатежа.НайтиСтроки( СтруктураПоиска );

    ТаблицаДляЗаполнения = ИсточникРасшифрокиПлатежа.Скопировать(ВыбранныеСтроки);

    ТаблицаДляЗаполнения.Свернуть(«КФО,КПС,КЭК,КодЦели,Мероприятие,ДопКлассификация»,»Сумма»);

    ТаблицаДляЗаполнения.Сортировать(«КПС,КЭК»);

            
    Источник.СуммаДокумента        = ТаблицаДляЗаполнения.Итог(«Сумма»);

        
    Если РезультатыВыбора.ВидДокумента <> «РасходныйКассовыйОрдер» Тогда

        Источник.ЛицевойСчет = РезультатыВыбора.РеквизитыЛицевогоСчета.Владелец;

        Если РезультатыВыбора.ВидДокумента <> «КассовоеВыбытие» Тогда

            Источник.РеквизитыЛицевогоСчета = РезультатыВыбора.РеквизитыЛицевогоСчета;

            СозданиеНаОсновании_ПриИзмененииЛицевогоСчетаНаСервере(Источник, РезультатыВыбора.ВидДокумента);

            Если РезультатыВыбора.ВидДокумента <> «ПлатежноеПоручение» Тогда

                Источник.ОрганКазначейства        = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Источник.РеквизитыЛицевогоСчета, «КассовыйОрган»);

            КонецЕсли;

        КонецЕсли;

    КонецЕсли;

    
    Если РезультатыВыбора.ВидДокумента = «ЗаявкаНаКассовыйРасходСокращенная» Тогда

        
        Источник.КФО                    = РезультатыВыбора.КФО;

        Источник.КБКНазначениеПлатежа    = РезультатыВыбора.КПС;

        Источник.КОСГУНазначениеПлатежа    = РезультатыВыбора.КЭК;

        Источник.КодЦели                = РезультатыВыбора.КодЦели;

        Источник.КодМероприятия            = РезультатыВыбора.Мероприятие;

        Источник.ДопКлассификация        = РезультатыВыбора.ДопКлассификация;

        
        ДопустимыеИсточникиСредств = ПлатежноРасчетныеДокументыПовтИсп.ДопустимыеИсточникиСредств(Источник.ЛицевойСчет,Источник.КФО);

        Если ДопустимыеИсточникиСредств.Количество() > 0 Тогда

            Источник.ИсточникСредств = ДопустимыеИсточникиСредств[0];

        КонецЕсли;

    
    Иначе

        ЗаполнятьВалюту = ( РезультатыВыбора.ВидДокумента = «ЗаявкаНаКассовыйРасход» ИЛИ РезультатыВыбора.ВидДокумента = «КассовоеВыбытие» );

        Если ЗаполнятьВалюту Тогда

            ВалютаДокумента         = Константы.ВалютаРегламентированногоУчета.Получить();

            КурсКратность            = РаботаСКурсамиВалют.ПолучитьКурсВалюты(ВалютаДокумента, ДанныеШапки.Дата);

        
            Источник.ВалютаДокумента        = ВалютаДокумента;

            Источник.Курс                    = КурсКратность.Курс;

            Источник.Кратность                = КурсКратность.Кратность;

            Источник.СуммаДокументаВВалюте    = Источник.СуммаДокумента;

        КонецЕсли;

        
        Источник.РасшифровкаПлатежа.Очистить();

        
        Для Каждого СтрокаОснования Из ТаблицаДляЗаполнения Цикл

            СтрРасшифровка = Источник.РасшифровкаПлатежа.Добавить();

            СтрРасшифровка.КФО                        = СтрокаОснования.КФО;

            Если РезультатыВыбора.ВидДокумента = «РасходныйКассовыйОрдер» Тогда

                СтрРасшифровка.КПС    = СтрокаОснования.КПС;

                СтрРасшифровка.КЭК    = СтрокаОснования.КЭК;

            Иначе    

                СтрРасшифровка.КБКНазначениеПлатежа        = СтрокаОснования.КПС;

                СтрРасшифровка.КОСГУНазначениеПлатежа    = СтрокаОснования.КЭК;

                
                ДопустимыеИсточникиСредств = ПлатежноРасчетныеДокументыПовтИсп.ДопустимыеИсточникиСредств(Источник.ЛицевойСчет, СтрРасшифровка.КФО);

                Если ДопустимыеИсточникиСредств.Количество() > 0 Тогда

                    СтрРасшифровка.ИсточникСредств = ДопустимыеИсточникиСредств[0];

                КонецЕсли;

    
            КонецЕсли;

            СтрРасшифровка.КодЦели                    = СтрокаОснования.КодЦели;

            СтрРасшифровка.КодМероприятия            = СтрокаОснования.Мероприятие;

            СтрРасшифровка.ДопКлассификация            = СтрокаОснования.ДопКлассификация;

            Если ЗаполнятьВалюту Тогда

                СтрРасшифровка.СуммаВал                    = СтрокаОснования.Сумма;

            КонецЕсли;

            СтрРасшифровка.Сумма                    = СтрокаОснования.Сумма;

        КонецЦикла;

        
        
    КонецЕсли;

    
КонецПроцедуры

//Заполняет реквизиты получателя

&НаСервере

Процедура СозданиеНаОсновании_ПолучательПриИзмененииНаСервере(Объект)

    
    РеквизитыПолучателя = Новый Структура(«КонтрагентИНН, КонтрагентКПП, КонтрагентНаименование, КонтрагентБанковскийСчет, КонтрагентНаименованиеБанка, КонтрагентБИКБанка, КонтрагентКорСчетБанка»,

    «ИНН», «КПП», «Корреспондент», «СчетНомер», «Банк», «БИК», «КоррСчет»);

                                                                                                                                        
    ПлатежноРасчетныеДокументы.ПолучитьПлатежныеРеквизитыПоТребованиюБанка(Объект.СчетКонтрагента, Объект.СчетКонтрагента, РеквизитыПолучателя);

    
    СтруктураРеквизитов = Новый Структура(«ТипЛицевогоСчета, Код»);

    СтруктураРеквизитов = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Объект.СчетКонтрагента, СтруктураРеквизитов);

    
    Если СтруктураРеквизитов.ТипЛицевогоСчета = Перечисления.ТипыЛицевыхСчетов.Казначейский Тогда

        РеквизитыПолучателя.Вставить(«КонтрагентЛицевойСчет»,СтруктураРеквизитов.Код);

    Иначе

        РеквизитыПолучателя.Вставить(«КонтрагентЛицевойСчет»,»»);

    КонецЕсли;    

    
    ЗаполнитьЗначенияСвойств(Объект, РеквизитыПолучателя);

    
КонецПроцедуры

#КонецЕсли

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

При проверке конфигурации через Конфигурация — Проверка конфигурации с включенной галкой Внешнее соединение (клиент-сервер) выдается ошибка компиляции, якобы не найдена эта процедура (СозданиеНаОсновании_ПолучательПриИзмененииНаСервере)

Ведь весь модуль обернут в инструкцию предпроцессора «#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда»

Что может быть не так?

4 / 4 / 0

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

Сообщений: 1,228

1

1C 8.x

Работать с двумя базами

18.07.2016, 12:18. Показов 5736. Ответов 24


Студворк — интернет-сервис помощи студентам

Добрый день! Можете подсказать реально реализовать работу одновременно с двумя базами? Есть основная база №1, пользователь с помощью обработки заносит данные, сохраняет и создается новый документ в базе №2. Так сказать при помощи обработки (которая находится в базе №1) мы подключаемся ко второй базе и работает с ней. Если такое реально можете показать пример.



0



Эксперт 1С

3053 / 2000 / 524

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

Сообщений: 6,964

18.07.2016, 14:28

2

Ermak27, что за базы? какие конфигурации?
Может обмен данными настроить?



0



4 / 4 / 0

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

Сообщений: 1,228

18.07.2016, 14:49

 [ТС]

3

GreenkA,
-) конфигурация 8.2
-) самаписная
-) Нет, обмен я могу сделать. Мне интересно можно ли сделать как я написал выше.
Через код подключаться к базе 1с и создавать там документ.



0



Эксперт 1С

434 / 305 / 92

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

Сообщений: 1,247

18.07.2016, 15:15

4

Ermak27, ну если только через com-соединение



1



Модератор

Эксперт 1С

3724 / 2918 / 575

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

Сообщений: 11,491

Записей в блоге: 1

18.07.2016, 15:15

5

Лучший ответ Сообщение было отмечено Ermak27 как решение

Решение

Цитата
Сообщение от Ermak27
Посмотреть сообщение

Мне интересно можно ли сделать как я написал выше.

Можно

http://programmist1s.ru/podkly… -2-po-com/



1



Ermak27

4 / 4 / 0

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

Сообщений: 1,228

19.07.2016, 10:46

 [ТС]

6

Не могу подключиться

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Функция ПолучитьПодключениеКСервернойБД()
     Сервер = "server";
     ИмяБазы = "copy_baza";
     Пользователь = "Админ";
     Пароль = "1c";
     
     Параметры = "srvr=""" + Сервер + """; ref=""" + ИмяБазы + """; usr=""" + Пользователь + """; pwd=""" + Пароль + """;";
     V8 = Новый COMОбъект("V83.COMConnector");
     Попытка
         Base1С = V8.Connect(Параметры);
     Исключение
         Предупреждение ("Ошибка подключения!");
     КонецПопытки;
     
КонецФункции



0



Эксперт 1С

841 / 604 / 211

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

Сообщений: 2,101

19.07.2016, 20:38

7

Убери попытку-исключение и посмотри какую ошибку выдает платформа.



0



Dethmontt

Модератор

Эксперт 1С

3724 / 2918 / 575

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

Сообщений: 11,491

Записей в блоге: 1

19.07.2016, 20:41

8

или хотя бы так

1C
1
2
3
4
5
Попытка
         Base1С = V8.Connect(Параметры);
     Исключение
         Сообщить(ОписаниеОшибки());
     КонецПопытки;



0



4 / 4 / 0

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

Сообщений: 1,228

20.07.2016, 10:24

 [ТС]

9

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



0



Модератор

Эксперт 1С

3724 / 2918 / 575

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

Сообщений: 11,491

Записей в блоге: 1

20.07.2016, 11:30

10

Цитата
Сообщение от Ermak27
Посмотреть сообщение

Это что значит?

Что там фигня какая то написана…
В

Цитата
Сообщение от Ermak27
Посмотреть сообщение

МодульВнешнегоСоединения



0



4 / 4 / 0

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

Сообщений: 1,228

20.07.2016, 11:35

 [ТС]

11

Dethmontt, что это за модуль? Где мне искать его? Мне не понятно. Я работаю на платформе 8.3, почему проблема



0



Модератор

Эксперт 1С

3724 / 2918 / 575

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

Сообщений: 11,491

Записей в блоге: 1

20.07.2016, 12:44

12

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

Добавлено через 13 секунд
Ermak27, там какие то ошибки

Добавлено через 49 секунд

Цитата
Сообщение от Ermak27
Посмотреть сообщение

Где мне искать его?

ПКМ по конфигурации в дереве — МодульВнешнегоСоединения



1



4 / 4 / 0

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

Сообщений: 1,228

20.07.2016, 14:55

 [ТС]

13

Dethmontt, В общих модулях такого нет.



0



Модератор

Эксперт 1С

3724 / 2918 / 575

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

Сообщений: 11,491

Записей в блоге: 1

20.07.2016, 16:52

14

Цитата
Сообщение от Ermak27
Посмотреть сообщение

В общих модулях такого нет.

А где я выше написал про Общие модули ?



0



4 / 4 / 0

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

Сообщений: 1,228

20.07.2016, 17:19

 [ТС]

15

Dethmontt, я тогда не понимаю где искать ПКМ по конфигурации в дереве — МодульВнешнегоСоединения ?



0



4 / 4 / 0

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

Сообщений: 1,228

21.07.2016, 08:55

 [ТС]

17

Dethmontt, Спасибо. А какая процедура или функция должна быть в этом модуле чтобы не выдавала ошибки? У меня самописная конфигурация.



0



Модератор

Эксперт 1С

3724 / 2918 / 575

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

Сообщений: 11,491

Записей в блоге: 1

21.07.2016, 16:00

18

Ermak27, а что там вообще есть?

Добавлено через 36 секунд
Ermak27, в базе к которой ты подключаешься!!!! (не из которой подключаешься!!!!)?



0



Ermak27

4 / 4 / 0

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

Сообщений: 1,228

22.07.2016, 10:01

 [ТС]

19

Dethmontt, То что есть в внешнем модуле

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
Перем глОбщиеЗначения Экспорт;
 
Перем глТекущийПользователь Экспорт;
 
///////////////////////////////////////////////////////////////////////////////
// ПРОЦЕДУРЫ ЗАВЕРШЕНИЯ РАБОТЫ ПОЛЬЗОВАТЕЛЕЙ И ОБРАБОТКИ ПАРАМЕТРОВ
 
// Процедура выполняется при старте системы во внешнем сосединении
//
Процедура ПриНачалеРаботыСистемы()
        
    ПользовательОпределен = Ложь;
    ОписаниеОшибкиОпределенияПользователя = "";
    Если Не ЗначениеЗаполнено(ПараметрыСеанса.ТекущийПользователь) Тогда
        Если УправлениеПользователями.ОпределитьТекущегоПользователя(ОписаниеОшибкиОпределенияПользователя) Тогда
            ПользовательОпределен = ЗначениеЗаполнено(ПараметрыСеанса.ТекущийПользователь);
        КонецЕсли;
    Иначе
        ПользовательОпределен = Истина;
    КонецЕсли;
    
    Если Не ПользовательОпределен Тогда
        Если ПустаяСтрока(ОписаниеОшибкиОпределенияПользователя) Тогда
            ОписаниеОшибкиОпределенияПользователя = "Ошибка идентификации пользователя. Обратитесь к администратору";
        КонецЕсли;
        ВызватьИсключение ОписаниеОшибкиОпределенияПользователя;
    КонецЕсли;
    
    глТекущийПользователь = ПараметрыСеанса.ТекущийПользователь;
 
КонецПроцедуры //ПриНачалеРаботыСистемы()
 
///////////////////////////////////////////////////////////////////////////////
// ПРОЦЕДУРЫ И ФУНКЦИИ ЗАПОЛНЕНИЯ ПАРАМЕТРОВ СЕАНСА
 
Функция глЗначениеПеременной(Имя) Экспорт
    
    Возврат ОбщегоНазначения.ПолучитьЗначениеПеременной(Имя, глОбщиеЗначения);
 
КонецФункции
 
// Процедура установки значения экспортных переменных модуля приложения
//
// Параметры
//  Имя - строка, содержит имя переменной целиком
//  Значение - значение переменной
//
Процедура глЗначениеПеременнойУстановить(Имя, Значение, ОбновлятьВоВсехКэшах = Ложь) Экспорт
    
    ОбщегоНазначения.УстановитьЗначениеПеременной(Имя, глОбщиеЗначения, Значение, ОбновлятьВоВсехКэшах);
    
КонецПроцедуры



0



Модератор

Эксперт 1С

3724 / 2918 / 575

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

Сообщений: 11,491

Записей в блоге: 1

27.07.2016, 14:55

20

Ermak27, У общих модулей
1. УправлениеПользователями
2. ОбщегоНазначения

стоят галки «Внешнее соединение» ?



0



IT_Exp

Эксперт

87844 / 49110 / 22898

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

Сообщений: 92,604

27.07.2016, 14:55

20

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

2020-12-17T15:30:51+00:00

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

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

При наличии этой ошибки ничего не остаётся кроме как зайти в свойства проблемной базы и установить галку «Для этой базы используется базовая платформа»: ссылка.

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

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

С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).

Владимир Милькин

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

Нажмите одну из кнопок, чтобы поделиться:

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

2020-12-17T15:30:51+00:00

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

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

При наличии этой ошибки ничего не остаётся кроме как зайти в свойства проблемной базы и установить галку «Для этой базы используется базовая платформа»: ссылка.

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

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

С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).

Владимир Милькин

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

Нажмите одну из кнопок, чтобы поделиться:

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

Добрый день!

Есть код в одном модуле менеджера одного документа:

#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда

Процедура ЗаполнитьРасходныйДокумент(Источник, ДанныеЗаполнения, СтандартнаяОбработка) Экспорт

    

    ДанныеШапки = ДанныеШапкиДокумента( ДанныеЗаполнения.Ссылка );

    РезультатыВыбора = ДанныеЗаполнения.РезультатыВыбора;

    

    ЗаполняемыеРеквизиты = «Организация, Контрагент, Договор» + ?(

        РезультатыВыбора.ВидДокумента = «РасходныйКассовыйОрдер», «», «, НазначениеПлатежа»

        );

    

    Источник.ФП_ДокументОснование    = ДанныеЗаполнения.Ссылка;

    ЗаполнитьЗначенияСвойств(Источник, РезультатыВыбора,         «ИФО»);  

    ЗаполнитьЗначенияСвойств(Источник, ДанныеШапки, ЗаполняемыеРеквизиты);  

    Если ЗначениеЗаполнено(Источник.Контрагент) И РезультатыВыбора.ВидДокумента <> «РасходныйКассовыйОрдер» Тогда

        Источник.СчетКонтрагента = Справочники.БанковскиеИКазначейскиеСчета.ПолучитьСчетПоУмолчанию(Источник.Контрагент, «Документ.» + РезультатыВыбора.ВидДокумента);

        Если РезультатыВыбора.ВидДокумента = «ЗаявкаНаКассовыйРасходСокращенная» ИЛИ РезультатыВыбора.ВидДокумента = «ЗаявкаНаКассовыйРасход» Тогда

            Документы[ РезультатыВыбора.ВидДокумента ].ЗаполнитьРеквизитыПолучателя(Источник);

        Иначе

            СозданиеНаОсновании_ПолучательПриИзмененииНаСервере(Источник);

        КонецЕсли;

    КонецЕсли;

    

    СтруктураПоиска = Новый Структура;

    Для каждого ключЗначение ИЗ РезультатыВыбора Цикл

        

        Если КлючЗначение.Ключ = «ВидДокумента» ИЛИ КлючЗначение.Ключ = «РеквизитыЛицевогоСчета» тогда

            Продолжить;

        КонецЕсли;

        
        СтруктураПоиска.Вставить( КлючЗначение.Ключ, КлючЗначение.Значение );

        
    КонецЦикла;

    

    ИсточникРасшифрокиПлатежа = ПолучитьИзВременногоХранилища( ДанныеЗаполнения.НесопоставленныеОстаткиАдрес );

    ВыбранныеСтроки = ИсточникРасшифрокиПлатежа.НайтиСтроки( СтруктураПоиска );

    ТаблицаДляЗаполнения = ИсточникРасшифрокиПлатежа.Скопировать(ВыбранныеСтроки);

    ТаблицаДляЗаполнения.Свернуть(«КФО,КПС,КЭК,КодЦели,Мероприятие,ДопКлассификация»,»Сумма»);

    ТаблицаДляЗаполнения.Сортировать(«КПС,КЭК»);

            
    Источник.СуммаДокумента        = ТаблицаДляЗаполнения.Итог(«Сумма»);

        

    Если РезультатыВыбора.ВидДокумента <> «РасходныйКассовыйОрдер» Тогда

        Источник.ЛицевойСчет = РезультатыВыбора.РеквизитыЛицевогоСчета.Владелец;

        Если РезультатыВыбора.ВидДокумента <> «КассовоеВыбытие» Тогда

            Источник.РеквизитыЛицевогоСчета = РезультатыВыбора.РеквизитыЛицевогоСчета;

            СозданиеНаОсновании_ПриИзмененииЛицевогоСчетаНаСервере(Источник, РезультатыВыбора.ВидДокумента);

            Если РезультатыВыбора.ВидДокумента <> «ПлатежноеПоручение» Тогда

                Источник.ОрганКазначейства        = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Источник.РеквизитыЛицевогоСчета, «КассовыйОрган»);

            КонецЕсли;

        КонецЕсли;

    КонецЕсли;

    
    Если РезультатыВыбора.ВидДокумента = «ЗаявкаНаКассовыйРасходСокращенная» Тогда

        

        Источник.КФО                    = РезультатыВыбора.КФО;

        Источник.КБКНазначениеПлатежа    = РезультатыВыбора.КПС;

        Источник.КОСГУНазначениеПлатежа    = РезультатыВыбора.КЭК;

        Источник.КодЦели                = РезультатыВыбора.КодЦели;

        Источник.КодМероприятия            = РезультатыВыбора.Мероприятие;

        Источник.ДопКлассификация        = РезультатыВыбора.ДопКлассификация;

        

        ДопустимыеИсточникиСредств = ПлатежноРасчетныеДокументыПовтИсп.ДопустимыеИсточникиСредств(Источник.ЛицевойСчет,Источник.КФО);

        Если ДопустимыеИсточникиСредств.Количество() > 0 Тогда

            Источник.ИсточникСредств = ДопустимыеИсточникиСредств[0];

        КонецЕсли;

    
    Иначе

        ЗаполнятьВалюту = ( РезультатыВыбора.ВидДокумента = «ЗаявкаНаКассовыйРасход» ИЛИ РезультатыВыбора.ВидДокумента = «КассовоеВыбытие» );

        Если ЗаполнятьВалюту Тогда

            ВалютаДокумента         = Константы.ВалютаРегламентированногоУчета.Получить();

            КурсКратность            = РаботаСКурсамиВалют.ПолучитьКурсВалюты(ВалютаДокумента, ДанныеШапки.Дата);

        

            Источник.ВалютаДокумента        = ВалютаДокумента;

            Источник.Курс                    = КурсКратность.Курс;

            Источник.Кратность                = КурсКратность.Кратность;

            Источник.СуммаДокументаВВалюте    = Источник.СуммаДокумента;

        КонецЕсли;

        
        Источник.РасшифровкаПлатежа.Очистить();

        

        Для Каждого СтрокаОснования Из ТаблицаДляЗаполнения Цикл

            СтрРасшифровка = Источник.РасшифровкаПлатежа.Добавить();

            СтрРасшифровка.КФО                        = СтрокаОснования.КФО;

            Если РезультатыВыбора.ВидДокумента = «РасходныйКассовыйОрдер» Тогда

                СтрРасшифровка.КПС    = СтрокаОснования.КПС;

                СтрРасшифровка.КЭК    = СтрокаОснования.КЭК;

            Иначе    

                СтрРасшифровка.КБКНазначениеПлатежа        = СтрокаОснования.КПС;

                СтрРасшифровка.КОСГУНазначениеПлатежа    = СтрокаОснования.КЭК;

                

                ДопустимыеИсточникиСредств = ПлатежноРасчетныеДокументыПовтИсп.ДопустимыеИсточникиСредств(Источник.ЛицевойСчет, СтрРасшифровка.КФО);

                Если ДопустимыеИсточникиСредств.Количество() > 0 Тогда

                    СтрРасшифровка.ИсточникСредств = ДопустимыеИсточникиСредств[0];

                КонецЕсли;

    

            КонецЕсли;

            СтрРасшифровка.КодЦели                    = СтрокаОснования.КодЦели;

            СтрРасшифровка.КодМероприятия            = СтрокаОснования.Мероприятие;

            СтрРасшифровка.ДопКлассификация            = СтрокаОснования.ДопКлассификация;

            Если ЗаполнятьВалюту Тогда

                СтрРасшифровка.СуммаВал                    = СтрокаОснования.Сумма;

            КонецЕсли;

            СтрРасшифровка.Сумма                    = СтрокаОснования.Сумма;

        КонецЦикла;

        
    КонецЕсли;

    
КонецПроцедуры

//Заполняет реквизиты получателя

&НаСервере

Процедура СозданиеНаОсновании_ПолучательПриИзмененииНаСервере(Объект)

    

    РеквизитыПолучателя = Новый Структура(«КонтрагентИНН, КонтрагентКПП, КонтрагентНаименование, КонтрагентБанковскийСчет, КонтрагентНаименованиеБанка, КонтрагентБИКБанка, КонтрагентКорСчетБанка»,

    «ИНН», «КПП», «Корреспондент», «СчетНомер», «Банк», «БИК», «КоррСчет»);

                                                                                                                                        
    ПлатежноРасчетныеДокументы.ПолучитьПлатежныеРеквизитыПоТребованиюБанка(Объект.СчетКонтрагента, Объект.СчетКонтрагента, РеквизитыПолучателя);

    

    СтруктураРеквизитов = Новый Структура(«ТипЛицевогоСчета, Код»);

    СтруктураРеквизитов = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Объект.СчетКонтрагента, СтруктураРеквизитов);

    

    Если СтруктураРеквизитов.ТипЛицевогоСчета = Перечисления.ТипыЛицевыхСчетов.Казначейский Тогда

        РеквизитыПолучателя.Вставить(«КонтрагентЛицевойСчет»,СтруктураРеквизитов.Код);

    Иначе

        РеквизитыПолучателя.Вставить(«КонтрагентЛицевойСчет»,»»);

    КонецЕсли;    

    
    ЗаполнитьЗначенияСвойств(Объект, РеквизитыПолучателя);

    
КонецПроцедуры

#КонецЕсли

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

При проверке конфигурации через Конфигурация — Проверка конфигурации с включенной галкой Внешнее соединение (клиент-сервер) выдается ошибка компиляции, якобы не найдена эта процедура (СозданиеНаОсновании_ПолучательПриИзмененииНаСервере)

Ведь весь модуль обернут в инструкцию предпроцессора «#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда»

Что может быть не так?

Содержание:

1.       Диагностика ошибки инициализации модуля

2.       Устранение ошибки инициализации модуля

В данной статье будет описано, как устранять ошибку в системе «1С:Предприятие», когда при обновлении типовой конфигурации появляется объявление вида «Ошибка инициализации модуля:EF_00_00ХХХХХ». Будет проведён анализ данной неполадки и приведены способы по её устранению.   


1.    Диагностика ошибки инициализации модуля

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

Окно ошибки инициализации модуля

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

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

2.    Устранение ошибки инициализации модуля

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

Для удаления патча вручную существует два метода:

1.     Через режим «1С:Предприятие» в системе. Откроем вкладку в меню «Администрирование», после чего кликнем на «Обслуживание», перейдём на раздел «Обновление программы» и избираем «Установленные исправления(патчи)», как демонстрируется на скриншоте с примером ниже:

Установленные исправления в режиме 1С Предприятия в системе

Перед пользователем появится список патчей с правками, как показано далее:

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

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

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

Управление расширениями конфигурации

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

Удаление расширения в 1С 8 Конфигуратор

Оба способа являются рабочими и возобновляют корректную работу системы 1С, избавляя ошибки после установки обновления.

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

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

Айдар Фархутдинов

4 / 4 / 0

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

Сообщений: 1,228

1

1C 8.x

Работать с двумя базами

18.07.2016, 12:18. Показов 5365. Ответов 24


Добрый день! Можете подсказать реально реализовать работу одновременно с двумя базами? Есть основная база №1, пользователь с помощью обработки заносит данные, сохраняет и создается новый документ в базе №2. Так сказать при помощи обработки (которая находится в базе №1) мы подключаемся ко второй базе и работает с ней. Если такое реально можете показать пример.

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь

0

Эксперт 1С

3051 / 1998 / 524

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

Сообщений: 6,964

18.07.2016, 14:28

2

Ermak27, что за базы? какие конфигурации?
Может обмен данными настроить?

0

4 / 4 / 0

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

Сообщений: 1,228

18.07.2016, 14:49

 [ТС]

3

GreenkA,
-) конфигурация 8.2
-) самаписная
-) Нет, обмен я могу сделать. Мне интересно можно ли сделать как я написал выше.
Через код подключаться к базе 1с и создавать там документ.

0

Эксперт 1С

434 / 305 / 92

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

Сообщений: 1,247

18.07.2016, 15:15

4

Ermak27, ну если только через com-соединение

1

Модератор

Эксперт 1С

3697 / 2897 / 569

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

Сообщений: 11,398

Записей в блоге: 1

18.07.2016, 15:15

5

Лучший ответ Сообщение было отмечено Ermak27 как решение

Решение

Цитата
Сообщение от Ermak27
Посмотреть сообщение

Мне интересно можно ли сделать как я написал выше.

Можно

http://programmist1s.ru/podkly… -2-po-com/

1

Ermak27

4 / 4 / 0

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

Сообщений: 1,228

19.07.2016, 10:46

 [ТС]

6

Не могу подключиться

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Функция ПолучитьПодключениеКСервернойБД()
     Сервер = "server";
     ИмяБазы = "copy_baza";
     Пользователь = "Админ";
     Пароль = "1c";
     
     Параметры = "srvr=""" + Сервер + """; ref=""" + ИмяБазы + """; usr=""" + Пользователь + """; pwd=""" + Пароль + """;";
     V8 = Новый COMОбъект("V83.COMConnector");
     Попытка
         Base1С = V8.Connect(Параметры);
     Исключение
         Предупреждение ("Ошибка подключения!");
     КонецПопытки;
     
КонецФункции

0

Эксперт 1С

841 / 604 / 211

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

Сообщений: 2,101

19.07.2016, 20:38

7

Убери попытку-исключение и посмотри какую ошибку выдает платформа.

0

Dethmontt

Модератор

Эксперт 1С

3697 / 2897 / 569

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

Сообщений: 11,398

Записей в блоге: 1

19.07.2016, 20:41

8

или хотя бы так

1C
1
2
3
4
5
Попытка
         Base1С = V8.Connect(Параметры);
     Исключение
         Сообщить(ОписаниеОшибки());
     КонецПопытки;

0

4 / 4 / 0

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

Сообщений: 1,228

20.07.2016, 10:24

 [ТС]

9

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

0

Модератор

Эксперт 1С

3697 / 2897 / 569

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

Сообщений: 11,398

Записей в блоге: 1

20.07.2016, 11:30

10

Цитата
Сообщение от Ermak27
Посмотреть сообщение

Это что значит?

Что там фигня какая то написана…
В

Цитата
Сообщение от Ermak27
Посмотреть сообщение

МодульВнешнегоСоединения

0

4 / 4 / 0

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

Сообщений: 1,228

20.07.2016, 11:35

 [ТС]

11

Dethmontt, что это за модуль? Где мне искать его? Мне не понятно. Я работаю на платформе 8.3, почему проблема

0

Модератор

Эксперт 1С

3697 / 2897 / 569

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

Сообщений: 11,398

Записей в блоге: 1

20.07.2016, 12:44

12

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

Добавлено через 13 секунд
Ermak27, там какие то ошибки

Добавлено через 49 секунд

Цитата
Сообщение от Ermak27
Посмотреть сообщение

Где мне искать его?

ПКМ по конфигурации в дереве — МодульВнешнегоСоединения

1

4 / 4 / 0

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

Сообщений: 1,228

20.07.2016, 14:55

 [ТС]

13

Dethmontt, В общих модулях такого нет.

0

Модератор

Эксперт 1С

3697 / 2897 / 569

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

Сообщений: 11,398

Записей в блоге: 1

20.07.2016, 16:52

14

Цитата
Сообщение от Ermak27
Посмотреть сообщение

В общих модулях такого нет.

А где я выше написал про Общие модули ?

0

4 / 4 / 0

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

Сообщений: 1,228

20.07.2016, 17:19

 [ТС]

15

Dethmontt, я тогда не понимаю где искать ПКМ по конфигурации в дереве — МодульВнешнегоСоединения ?

0

4 / 4 / 0

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

Сообщений: 1,228

21.07.2016, 08:55

 [ТС]

17

Dethmontt, Спасибо. А какая процедура или функция должна быть в этом модуле чтобы не выдавала ошибки? У меня самописная конфигурация.

0

Модератор

Эксперт 1С

3697 / 2897 / 569

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

Сообщений: 11,398

Записей в блоге: 1

21.07.2016, 16:00

18

Ermak27, а что там вообще есть?

Добавлено через 36 секунд
Ermak27, в базе к которой ты подключаешься!!!! (не из которой подключаешься!!!!)?

0

Ermak27

4 / 4 / 0

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

Сообщений: 1,228

22.07.2016, 10:01

 [ТС]

19

Dethmontt, То что есть в внешнем модуле

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
Перем глОбщиеЗначения Экспорт;
 
Перем глТекущийПользователь Экспорт;
 
///////////////////////////////////////////////////////////////////////////////
// ПРОЦЕДУРЫ ЗАВЕРШЕНИЯ РАБОТЫ ПОЛЬЗОВАТЕЛЕЙ И ОБРАБОТКИ ПАРАМЕТРОВ
 
// Процедура выполняется при старте системы во внешнем сосединении
//
Процедура ПриНачалеРаботыСистемы()
        
    ПользовательОпределен = Ложь;
    ОписаниеОшибкиОпределенияПользователя = "";
    Если Не ЗначениеЗаполнено(ПараметрыСеанса.ТекущийПользователь) Тогда
        Если УправлениеПользователями.ОпределитьТекущегоПользователя(ОписаниеОшибкиОпределенияПользователя) Тогда
            ПользовательОпределен = ЗначениеЗаполнено(ПараметрыСеанса.ТекущийПользователь);
        КонецЕсли;
    Иначе
        ПользовательОпределен = Истина;
    КонецЕсли;
    
    Если Не ПользовательОпределен Тогда
        Если ПустаяСтрока(ОписаниеОшибкиОпределенияПользователя) Тогда
            ОписаниеОшибкиОпределенияПользователя = "Ошибка идентификации пользователя. Обратитесь к администратору";
        КонецЕсли;
        ВызватьИсключение ОписаниеОшибкиОпределенияПользователя;
    КонецЕсли;
    
    глТекущийПользователь = ПараметрыСеанса.ТекущийПользователь;
 
КонецПроцедуры //ПриНачалеРаботыСистемы()
 
///////////////////////////////////////////////////////////////////////////////
// ПРОЦЕДУРЫ И ФУНКЦИИ ЗАПОЛНЕНИЯ ПАРАМЕТРОВ СЕАНСА
 
Функция глЗначениеПеременной(Имя) Экспорт
    
    Возврат ОбщегоНазначения.ПолучитьЗначениеПеременной(Имя, глОбщиеЗначения);
 
КонецФункции
 
// Процедура установки значения экспортных переменных модуля приложения
//
// Параметры
//  Имя - строка, содержит имя переменной целиком
//  Значение - значение переменной
//
Процедура глЗначениеПеременнойУстановить(Имя, Значение, ОбновлятьВоВсехКэшах = Ложь) Экспорт
    
    ОбщегоНазначения.УстановитьЗначениеПеременной(Имя, глОбщиеЗначения, Значение, ОбновлятьВоВсехКэшах);
    
КонецПроцедуры

0

Модератор

Эксперт 1С

3697 / 2897 / 569

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

Сообщений: 11,398

Записей в блоге: 1

27.07.2016, 14:55

20

Ermak27, У общих модулей
1. УправлениеПользователями
2. ОбщегоНазначения

стоят галки «Внешнее соединение» ?

0

IT_Exp

Эксперт

87844 / 49110 / 22898

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

Сообщений: 92,604

27.07.2016, 14:55

20

  1. Приветствую, ребята. Столкнулся с такой проблемкой. Переходим на новую конфу БП 3.0, но она специфична — БНФО. Есть еще одна база из которой пытаюсь вытянуть данные путем COM-соединения.
    Ошибка вылетает: Ошибка при вызове метода контекста (СоздатьДокумент), посмотрел по коду, отваливается на том месте, в котором происходит обращение к общему модулю (там только галка — Сервер) : Переменная не определена (КонтДвиженияПоНФО), вот как раз КонтДвиженияПоНФО — это общий модуль.
    Подскажите пожалуйста, есть ли какая фича, чтобы при создании доков через COM-соединение, не происходило обращений ко всяким общим модулям и подпискам на события ?

  2. Offline

    nbIpKuH_BaH9I
    Модераторы
    Команда форума
    Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    8.173
    Симпатии:
    554
    Баллы:
    204

    Именно в момент создания? Или в момент записи?

  3. По всей видимости в момент создания, т.к. ругается на Подключение.Документы.КонтСтраховойПолис.СоздатьДокумент();

  4. Offline

    nomad_irk
    Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    9.900
    Симпатии:
    1.035
    Баллы:
    204

    По всей видимости, должна быть какая-то экспортная процедура/функция, которая формирует документ в БД и которая доступна для COM-соединения.

  5. Т.е. если модулю поставить Внешнее соединение, по сути должен модуль отрабатывать ?

    — Объединение сообщений, 21 фев 2017

    Вот полный текст ошибки:
    Произошла исключительная ситуация (1C:Enterprise 8.3.9.1850): Ошибка инициализации модуля: Документ.КонтСтраховойПолис.МодульОбъекта
    {Документ.КонтСтраховойПолис.МодульОбъекта(1949,3)}: Переменная не определена (КонтДвиженияПоНФО)

    Последнее редактирование: 21 фев 2017

  6. Offline

    nomad_irk
    Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    9.900
    Симпатии:
    1.035
    Баллы:
    204

    В первом приближении — да, должен отработать.

Ошибка инициализации модуля: EF_00_00XXXXX

После обновления у некоторых пользователей может возникнуть ошибка при запуске базы «Ошибка инициализации модуля: EF_00_00XXXXX. < … > Процедура или функция с указанным именем уже определена».

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

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

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

Есть несколько способов, рассмотрим самые распространенные:

  • в режиме 1С:Предприятия (если информационная база все же запускается, но ошибки возникают при определенных действиях);
  • через Конфигуратор (если программа не запускается).
  1. Удаление патча в режиме 1С:Предприятие

Достаточно зайти в Администрирование выбрать пункт Обслуживание и в разделе Обновление программы перейти в Установленные исправления (патчи).

В открывшемся списке, находим нужный патч и нажимаем Удалить исправление.

  1. Отключение патча в режиме Конфигуратор

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

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

Уже более 10 000 компаний работают
в облачной 1С от 42Clouds

— Консультация по 1С Бесплатно!

— Поддержка 24/7 по техническим вопросам: в чате, по телефону, по почте

— Все типовые конфигурации онлайн, доступ через RDP, Remote App, Web

Добрый день!

Есть код в одном модуле менеджера одного документа:

#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда

Процедура ЗаполнитьРасходныйДокумент(Источник, ДанныеЗаполнения, СтандартнаяОбработка) Экспорт

    

    ДанныеШапки = ДанныеШапкиДокумента( ДанныеЗаполнения.Ссылка );

    РезультатыВыбора = ДанныеЗаполнения.РезультатыВыбора;

    

    ЗаполняемыеРеквизиты = «Организация, Контрагент, Договор» + ?(

        РезультатыВыбора.ВидДокумента = «РасходныйКассовыйОрдер», «», «, НазначениеПлатежа»

        );

    

    Источник.ФП_ДокументОснование    = ДанныеЗаполнения.Ссылка;

    ЗаполнитьЗначенияСвойств(Источник, РезультатыВыбора,         «ИФО»);  

    ЗаполнитьЗначенияСвойств(Источник, ДанныеШапки, ЗаполняемыеРеквизиты);  

    Если ЗначениеЗаполнено(Источник.Контрагент) И РезультатыВыбора.ВидДокумента <> «РасходныйКассовыйОрдер» Тогда

        Источник.СчетКонтрагента = Справочники.БанковскиеИКазначейскиеСчета.ПолучитьСчетПоУмолчанию(Источник.Контрагент, «Документ.» + РезультатыВыбора.ВидДокумента);

        Если РезультатыВыбора.ВидДокумента = «ЗаявкаНаКассовыйРасходСокращенная» ИЛИ РезультатыВыбора.ВидДокумента = «ЗаявкаНаКассовыйРасход» Тогда

            Документы[ РезультатыВыбора.ВидДокумента ].ЗаполнитьРеквизитыПолучателя(Источник);

        Иначе

            СозданиеНаОсновании_ПолучательПриИзмененииНаСервере(Источник);

        КонецЕсли;

    КонецЕсли;

    

    СтруктураПоиска = Новый Структура;

    Для каждого ключЗначение ИЗ РезультатыВыбора Цикл

        

        Если КлючЗначение.Ключ = «ВидДокумента» ИЛИ КлючЗначение.Ключ = «РеквизитыЛицевогоСчета» тогда

            Продолжить;

        КонецЕсли;

        
        СтруктураПоиска.Вставить( КлючЗначение.Ключ, КлючЗначение.Значение );

        
    КонецЦикла;

    

    ИсточникРасшифрокиПлатежа = ПолучитьИзВременногоХранилища( ДанныеЗаполнения.НесопоставленныеОстаткиАдрес );

    ВыбранныеСтроки = ИсточникРасшифрокиПлатежа.НайтиСтроки( СтруктураПоиска );

    ТаблицаДляЗаполнения = ИсточникРасшифрокиПлатежа.Скопировать(ВыбранныеСтроки);

    ТаблицаДляЗаполнения.Свернуть(«КФО,КПС,КЭК,КодЦели,Мероприятие,ДопКлассификация»,»Сумма»);

    ТаблицаДляЗаполнения.Сортировать(«КПС,КЭК»);

            
    Источник.СуммаДокумента        = ТаблицаДляЗаполнения.Итог(«Сумма»);

        

    Если РезультатыВыбора.ВидДокумента <> «РасходныйКассовыйОрдер» Тогда

        Источник.ЛицевойСчет = РезультатыВыбора.РеквизитыЛицевогоСчета.Владелец;

        Если РезультатыВыбора.ВидДокумента <> «КассовоеВыбытие» Тогда

            Источник.РеквизитыЛицевогоСчета = РезультатыВыбора.РеквизитыЛицевогоСчета;

            СозданиеНаОсновании_ПриИзмененииЛицевогоСчетаНаСервере(Источник, РезультатыВыбора.ВидДокумента);

            Если РезультатыВыбора.ВидДокумента <> «ПлатежноеПоручение» Тогда

                Источник.ОрганКазначейства        = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Источник.РеквизитыЛицевогоСчета, «КассовыйОрган»);

            КонецЕсли;

        КонецЕсли;

    КонецЕсли;

    
    Если РезультатыВыбора.ВидДокумента = «ЗаявкаНаКассовыйРасходСокращенная» Тогда

        

        Источник.КФО                    = РезультатыВыбора.КФО;

        Источник.КБКНазначениеПлатежа    = РезультатыВыбора.КПС;

        Источник.КОСГУНазначениеПлатежа    = РезультатыВыбора.КЭК;

        Источник.КодЦели                = РезультатыВыбора.КодЦели;

        Источник.КодМероприятия            = РезультатыВыбора.Мероприятие;

        Источник.ДопКлассификация        = РезультатыВыбора.ДопКлассификация;

        

        ДопустимыеИсточникиСредств = ПлатежноРасчетныеДокументыПовтИсп.ДопустимыеИсточникиСредств(Источник.ЛицевойСчет,Источник.КФО);

        Если ДопустимыеИсточникиСредств.Количество() > 0 Тогда

            Источник.ИсточникСредств = ДопустимыеИсточникиСредств[0];

        КонецЕсли;

    
    Иначе

        ЗаполнятьВалюту = ( РезультатыВыбора.ВидДокумента = «ЗаявкаНаКассовыйРасход» ИЛИ РезультатыВыбора.ВидДокумента = «КассовоеВыбытие» );

        Если ЗаполнятьВалюту Тогда

            ВалютаДокумента         = Константы.ВалютаРегламентированногоУчета.Получить();

            КурсКратность            = РаботаСКурсамиВалют.ПолучитьКурсВалюты(ВалютаДокумента, ДанныеШапки.Дата);

        

            Источник.ВалютаДокумента        = ВалютаДокумента;

            Источник.Курс                    = КурсКратность.Курс;

            Источник.Кратность                = КурсКратность.Кратность;

            Источник.СуммаДокументаВВалюте    = Источник.СуммаДокумента;

        КонецЕсли;

        
        Источник.РасшифровкаПлатежа.Очистить();

        

        Для Каждого СтрокаОснования Из ТаблицаДляЗаполнения Цикл

            СтрРасшифровка = Источник.РасшифровкаПлатежа.Добавить();

            СтрРасшифровка.КФО                        = СтрокаОснования.КФО;

            Если РезультатыВыбора.ВидДокумента = «РасходныйКассовыйОрдер» Тогда

                СтрРасшифровка.КПС    = СтрокаОснования.КПС;

                СтрРасшифровка.КЭК    = СтрокаОснования.КЭК;

            Иначе    

                СтрРасшифровка.КБКНазначениеПлатежа        = СтрокаОснования.КПС;

                СтрРасшифровка.КОСГУНазначениеПлатежа    = СтрокаОснования.КЭК;

                

                ДопустимыеИсточникиСредств = ПлатежноРасчетныеДокументыПовтИсп.ДопустимыеИсточникиСредств(Источник.ЛицевойСчет, СтрРасшифровка.КФО);

                Если ДопустимыеИсточникиСредств.Количество() > 0 Тогда

                    СтрРасшифровка.ИсточникСредств = ДопустимыеИсточникиСредств[0];

                КонецЕсли;

    

            КонецЕсли;

            СтрРасшифровка.КодЦели                    = СтрокаОснования.КодЦели;

            СтрРасшифровка.КодМероприятия            = СтрокаОснования.Мероприятие;

            СтрРасшифровка.ДопКлассификация            = СтрокаОснования.ДопКлассификация;

            Если ЗаполнятьВалюту Тогда

                СтрРасшифровка.СуммаВал                    = СтрокаОснования.Сумма;

            КонецЕсли;

            СтрРасшифровка.Сумма                    = СтрокаОснования.Сумма;

        КонецЦикла;

        
    КонецЕсли;

    
КонецПроцедуры

//Заполняет реквизиты получателя

&НаСервере

Процедура СозданиеНаОсновании_ПолучательПриИзмененииНаСервере(Объект)

    

    РеквизитыПолучателя = Новый Структура(«КонтрагентИНН, КонтрагентКПП, КонтрагентНаименование, КонтрагентБанковскийСчет, КонтрагентНаименованиеБанка, КонтрагентБИКБанка, КонтрагентКорСчетБанка»,

    «ИНН», «КПП», «Корреспондент», «СчетНомер», «Банк», «БИК», «КоррСчет»);

                                                                                                                                        
    ПлатежноРасчетныеДокументы.ПолучитьПлатежныеРеквизитыПоТребованиюБанка(Объект.СчетКонтрагента, Объект.СчетКонтрагента, РеквизитыПолучателя);

    

    СтруктураРеквизитов = Новый Структура(«ТипЛицевогоСчета, Код»);

    СтруктураРеквизитов = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Объект.СчетКонтрагента, СтруктураРеквизитов);

    

    Если СтруктураРеквизитов.ТипЛицевогоСчета = Перечисления.ТипыЛицевыхСчетов.Казначейский Тогда

        РеквизитыПолучателя.Вставить(«КонтрагентЛицевойСчет»,СтруктураРеквизитов.Код);

    Иначе

        РеквизитыПолучателя.Вставить(«КонтрагентЛицевойСчет»,»»);

    КонецЕсли;    

    
    ЗаполнитьЗначенияСвойств(Объект, РеквизитыПолучателя);

    
КонецПроцедуры

#КонецЕсли

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

При проверке конфигурации через Конфигурация — Проверка конфигурации с включенной галкой Внешнее соединение (клиент-сервер) выдается ошибка компиляции, якобы не найдена эта процедура (СозданиеНаОсновании_ПолучательПриИзмененииНаСервере)

Ведь весь модуль обернут в инструкцию предпроцессора «#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда»

Что может быть не так?

4 / 4 / 0

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

Сообщений: 1,228

1

1C 8.x

Работать с двумя базами

18.07.2016, 12:18. Показов 5546. Ответов 24


Студворк — интернет-сервис помощи студентам

Добрый день! Можете подсказать реально реализовать работу одновременно с двумя базами? Есть основная база №1, пользователь с помощью обработки заносит данные, сохраняет и создается новый документ в базе №2. Так сказать при помощи обработки (которая находится в базе №1) мы подключаемся ко второй базе и работает с ней. Если такое реально можете показать пример.

0

Эксперт 1С

3051 / 1998 / 524

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

Сообщений: 6,964

18.07.2016, 14:28

2

Ermak27, что за базы? какие конфигурации?
Может обмен данными настроить?

0

4 / 4 / 0

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

Сообщений: 1,228

18.07.2016, 14:49

 [ТС]

3

GreenkA,
-) конфигурация 8.2
-) самаписная
-) Нет, обмен я могу сделать. Мне интересно можно ли сделать как я написал выше.
Через код подключаться к базе 1с и создавать там документ.

0

Эксперт 1С

434 / 305 / 92

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

Сообщений: 1,247

18.07.2016, 15:15

4

Ermak27, ну если только через com-соединение

1

Модератор

Эксперт 1С

3711 / 2907 / 573

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

Сообщений: 11,447

Записей в блоге: 1

18.07.2016, 15:15

5

Лучший ответ Сообщение было отмечено Ermak27 как решение

Решение

Цитата
Сообщение от Ermak27
Посмотреть сообщение

Мне интересно можно ли сделать как я написал выше.

Можно

http://programmist1s.ru/podkly… -2-po-com/

1

Ermak27

4 / 4 / 0

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

Сообщений: 1,228

19.07.2016, 10:46

 [ТС]

6

Не могу подключиться

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Функция ПолучитьПодключениеКСервернойБД()
     Сервер = "server";
     ИмяБазы = "copy_baza";
     Пользователь = "Админ";
     Пароль = "1c";
     
     Параметры = "srvr=""" + Сервер + """; ref=""" + ИмяБазы + """; usr=""" + Пользователь + """; pwd=""" + Пароль + """;";
     V8 = Новый COMОбъект("V83.COMConnector");
     Попытка
         Base1С = V8.Connect(Параметры);
     Исключение
         Предупреждение ("Ошибка подключения!");
     КонецПопытки;
     
КонецФункции

0

Эксперт 1С

841 / 604 / 211

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

Сообщений: 2,101

19.07.2016, 20:38

7

Убери попытку-исключение и посмотри какую ошибку выдает платформа.

0

Dethmontt

Модератор

Эксперт 1С

3711 / 2907 / 573

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

Сообщений: 11,447

Записей в блоге: 1

19.07.2016, 20:41

8

или хотя бы так

1C
1
2
3
4
5
Попытка
         Base1С = V8.Connect(Параметры);
     Исключение
         Сообщить(ОписаниеОшибки());
     КонецПопытки;

0

4 / 4 / 0

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

Сообщений: 1,228

20.07.2016, 10:24

 [ТС]

9

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

0

Модератор

Эксперт 1С

3711 / 2907 / 573

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

Сообщений: 11,447

Записей в блоге: 1

20.07.2016, 11:30

10

Цитата
Сообщение от Ermak27
Посмотреть сообщение

Это что значит?

Что там фигня какая то написана…
В

Цитата
Сообщение от Ermak27
Посмотреть сообщение

МодульВнешнегоСоединения

0

4 / 4 / 0

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

Сообщений: 1,228

20.07.2016, 11:35

 [ТС]

11

Dethmontt, что это за модуль? Где мне искать его? Мне не понятно. Я работаю на платформе 8.3, почему проблема

0

Модератор

Эксперт 1С

3711 / 2907 / 573

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

Сообщений: 11,447

Записей в блоге: 1

20.07.2016, 12:44

12

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

Добавлено через 13 секунд
Ermak27, там какие то ошибки

Добавлено через 49 секунд

Цитата
Сообщение от Ermak27
Посмотреть сообщение

Где мне искать его?

ПКМ по конфигурации в дереве — МодульВнешнегоСоединения

1

4 / 4 / 0

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

Сообщений: 1,228

20.07.2016, 14:55

 [ТС]

13

Dethmontt, В общих модулях такого нет.

0

Модератор

Эксперт 1С

3711 / 2907 / 573

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

Сообщений: 11,447

Записей в блоге: 1

20.07.2016, 16:52

14

Цитата
Сообщение от Ermak27
Посмотреть сообщение

В общих модулях такого нет.

А где я выше написал про Общие модули ?

0

4 / 4 / 0

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

Сообщений: 1,228

20.07.2016, 17:19

 [ТС]

15

Dethmontt, я тогда не понимаю где искать ПКМ по конфигурации в дереве — МодульВнешнегоСоединения ?

0

4 / 4 / 0

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

Сообщений: 1,228

21.07.2016, 08:55

 [ТС]

17

Dethmontt, Спасибо. А какая процедура или функция должна быть в этом модуле чтобы не выдавала ошибки? У меня самописная конфигурация.

0

Модератор

Эксперт 1С

3711 / 2907 / 573

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

Сообщений: 11,447

Записей в блоге: 1

21.07.2016, 16:00

18

Ermak27, а что там вообще есть?

Добавлено через 36 секунд
Ermak27, в базе к которой ты подключаешься!!!! (не из которой подключаешься!!!!)?

0

Ermak27

4 / 4 / 0

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

Сообщений: 1,228

22.07.2016, 10:01

 [ТС]

19

Dethmontt, То что есть в внешнем модуле

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
Перем глОбщиеЗначения Экспорт;
 
Перем глТекущийПользователь Экспорт;
 
///////////////////////////////////////////////////////////////////////////////
// ПРОЦЕДУРЫ ЗАВЕРШЕНИЯ РАБОТЫ ПОЛЬЗОВАТЕЛЕЙ И ОБРАБОТКИ ПАРАМЕТРОВ
 
// Процедура выполняется при старте системы во внешнем сосединении
//
Процедура ПриНачалеРаботыСистемы()
        
    ПользовательОпределен = Ложь;
    ОписаниеОшибкиОпределенияПользователя = "";
    Если Не ЗначениеЗаполнено(ПараметрыСеанса.ТекущийПользователь) Тогда
        Если УправлениеПользователями.ОпределитьТекущегоПользователя(ОписаниеОшибкиОпределенияПользователя) Тогда
            ПользовательОпределен = ЗначениеЗаполнено(ПараметрыСеанса.ТекущийПользователь);
        КонецЕсли;
    Иначе
        ПользовательОпределен = Истина;
    КонецЕсли;
    
    Если Не ПользовательОпределен Тогда
        Если ПустаяСтрока(ОписаниеОшибкиОпределенияПользователя) Тогда
            ОписаниеОшибкиОпределенияПользователя = "Ошибка идентификации пользователя. Обратитесь к администратору";
        КонецЕсли;
        ВызватьИсключение ОписаниеОшибкиОпределенияПользователя;
    КонецЕсли;
    
    глТекущийПользователь = ПараметрыСеанса.ТекущийПользователь;
 
КонецПроцедуры //ПриНачалеРаботыСистемы()
 
///////////////////////////////////////////////////////////////////////////////
// ПРОЦЕДУРЫ И ФУНКЦИИ ЗАПОЛНЕНИЯ ПАРАМЕТРОВ СЕАНСА
 
Функция глЗначениеПеременной(Имя) Экспорт
    
    Возврат ОбщегоНазначения.ПолучитьЗначениеПеременной(Имя, глОбщиеЗначения);
 
КонецФункции
 
// Процедура установки значения экспортных переменных модуля приложения
//
// Параметры
//  Имя - строка, содержит имя переменной целиком
//  Значение - значение переменной
//
Процедура глЗначениеПеременнойУстановить(Имя, Значение, ОбновлятьВоВсехКэшах = Ложь) Экспорт
    
    ОбщегоНазначения.УстановитьЗначениеПеременной(Имя, глОбщиеЗначения, Значение, ОбновлятьВоВсехКэшах);
    
КонецПроцедуры

0

Модератор

Эксперт 1С

3711 / 2907 / 573

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

Сообщений: 11,447

Записей в блоге: 1

27.07.2016, 14:55

20

Ermak27, У общих модулей
1. УправлениеПользователями
2. ОбщегоНазначения

стоят галки «Внешнее соединение» ?

0

IT_Exp

Эксперт

87844 / 49110 / 22898

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

Сообщений: 92,604

27.07.2016, 14:55

20

  1. Приветствую, ребята. Столкнулся с такой проблемкой. Переходим на новую конфу БП 3.0, но она специфична — БНФО. Есть еще одна база из которой пытаюсь вытянуть данные путем COM-соединения.
    Ошибка вылетает: Ошибка при вызове метода контекста (СоздатьДокумент), посмотрел по коду, отваливается на том месте, в котором происходит обращение к общему модулю (там только галка — Сервер) : Переменная не определена (КонтДвиженияПоНФО), вот как раз КонтДвиженияПоНФО — это общий модуль.
    Подскажите пожалуйста, есть ли какая фича, чтобы при создании доков через COM-соединение, не происходило обращений ко всяким общим модулям и подпискам на события ?

  2. Offline

    nbIpKuH_BaH9I
    Модераторы
    Команда форума
    Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    8.173
    Симпатии:
    554
    Баллы:
    204

    Именно в момент создания? Или в момент записи?

  3. По всей видимости в момент создания, т.к. ругается на Подключение.Документы.КонтСтраховойПолис.СоздатьДокумент();

  4. Offline

    nomad_irk
    Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    9.900
    Симпатии:
    1.035
    Баллы:
    204

    По всей видимости, должна быть какая-то экспортная процедура/функция, которая формирует документ в БД и которая доступна для COM-соединения.

  5. Т.е. если модулю поставить Внешнее соединение, по сути должен модуль отрабатывать ?

    — Объединение сообщений, 21 фев 2017

    Вот полный текст ошибки:
    Произошла исключительная ситуация (1C:Enterprise 8.3.9.1850): Ошибка инициализации модуля: Документ.КонтСтраховойПолис.МодульОбъекта
    {Документ.КонтСтраховойПолис.МодульОбъекта(1949,3)}: Переменная не определена (КонтДвиженияПоНФО)

    Последнее редактирование: 21 фев 2017

  6. Offline

    nomad_irk
    Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    9.900
    Симпатии:
    1.035
    Баллы:
    204

    В первом приближении — да, должен отработать.

Содержание:

1.       Диагностика ошибки инициализации модуля

2.       Устранение ошибки инициализации модуля

В данной статье будет описано, как устранять ошибку в системе «1С:Предприятие», когда при обновлении типовой конфигурации появляется объявление вида «Ошибка инициализации модуля:EF_00_00ХХХХХ». Будет проведён анализ данной неполадки и приведены способы по её устранению.   


1.    Диагностика ошибки инициализации модуля

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

Окно ошибки инициализации модуля

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

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

2.    Устранение ошибки инициализации модуля

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

Для удаления патча вручную существует два метода:

1.     Через режим «1С:Предприятие» в системе. Откроем вкладку в меню «Администрирование», после чего кликнем на «Обслуживание», перейдём на раздел «Обновление программы» и избираем «Установленные исправления(патчи)», как демонстрируется на скриншоте с примером ниже:

Установленные исправления в режиме 1С Предприятия в системе

Перед пользователем появится список патчей с правками, как показано далее:

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

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

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

Управление расширениями конфигурации

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

Удаление расширения в 1С 8 Конфигуратор

Оба способа являются рабочими и возобновляют корректную работу системы 1С, избавляя ошибки после установки обновления.

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

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

Айдар Фархутдинов

Последние изменения: 05.05.2022

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

У типовых продуктов «Клеверенса» («Магазин 15», «Склад 15» и др.), интегрированных с «1С: Предприятие», существует возможность онлайн-обмена документами и справочниками с данной учетной системой. В некоторых случаях могут возникать проблемы, при которых онлайн-режим работать не будет. Рассмотрим основные причины этих проблем и способы их решения подробнее.

Незарегистрированный COM-объект 1С

Данная ошибка проявляется следующим образом: при поиске номенклатуры или запросе списка документов онлайн из 1С на экране ТСД появляется сообщение об ошибке #MSE1004:

При запуске коннектора в панели управления Mobile SMARTS также будет появляться сообщение об ошибке:

Решение проблемы: необходимо зарегистрировать COM-объект.

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

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

Нехватка прав пользователя, под которым работает служба сервера Mobile SMARTS для запуска COM-соединения к базе 1С

В случае такой ошибки при поиске номенклатуры или запросе списка документов онлайн из 1С на экране ТСД появляется следующее сообщение:

Лог ошибки: System.UnauthorizedAccessException Не удалось получить фабрику класса COM для компонента с CLSID {181E893D-73A4-4722-B61D-D604B3D67D47} из-за следующей ошибки: 80070005 Отказано в доступе. (Исключение из HRESULT: 0x80070005 (E_ACCESSDENIED)).

Все логи ошибок находятся в папке по пути «C:ProgramDataCleverenceLogs».

Решение проблемы: в данном случае необходимо воспользоваться функцией «Диагностика и исправление проблем» (пункты «Разрешения для коннектора 1С» и «Регистрация COM-компоненты»).

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

  • Войдите в «Службы компонентов».

  • Откройте ветку «Настройка DCOM».

  • Найдите в списке компонент v83.ComConnector {181E893D-73A4-4722-B61D-D604B3D67D47}, выделите и правой кнопкой мыши вызовите контекстное меню.

  • В контекстном меню выберите пункт «Свойства» и на вкладке «Безопасность» выставить все на «По умолчанию».

  • На вкладке «Удостоверение» должен стоять флаг на пункте «Запускающий пользователь».

  • Нажать «Применить» и «ОК». Таким образом все настройки сбросятся до изначальных.

  • Далее необходимо снова войти в «Свойства», на вкладке «Безопасность» во всех пунктах добавить пользователя Network Service («Сетевая служба») и дать ему необходимые права.

  • Далее для нужных баз «1С: Предприятие» необходимо дать пользователю Network Service («Сетевая служба») права на доступ к папке с нужной базой 1С (только для файловых баз 1С).

Не найдена лицензия 1С при установке COM-соединения к базе 1С

В случае если не была найдена лицензия при попытке установить COM-соединение, при запуске коннектора в панели управления Mobile SMARTS будет выводиться сообщение об ошибке:

Лог ошибки:

2019-10-01 15:53:12.0460|ERROR|ConnectivityManager.InitializeConnector| Инициализация внешнего модуля ‘OneC_Connector’ (OneC_8_Connector) не удалась.

[SOURCE] Cleverence.Connectivity.ConnectivityManager
[EXCEPTION MESSAGE]
System.Runtime.InteropServices.COMException Не удалось создать соединение
TargetInvocationException Адресат вызова создал исключение.
COMException Не найдена лицензия. Не обнаружен ключ защиты программы или полученная программная лицензия!

Решение проблемы: необходимо вставить в ПК, на котором установлена «1С: Предприятие», USB Hasp ключ или использовать программную лицензию на «1С: Предприятие» (сервер 1С выдает лицензию на подключение при наличии свободных лицензий). Проверить, выполняется ли вход в базу «1С: Предприятие» на данном ПК через клиент 1С. Если через клиент 1С вход выполняется, а при запуске соединения к 1С лицензия не находится, попробовать завершить все сеансы «1С: Предприятие» с данной базой и повторить попытку запуска соединения. Возможно, используется однопользовательская лицензия 1С, которая не позволяет устанавливать дополнительные подключения. В этом случае при необходимости одновременно иметь онлайн доступ с ТСД к 1С и работать в 1С обычным пользователем следует рассмотреть приобретение дополнительной лицензии «1С: Предприятие».

  • Ошибка инициализации модуля документ заказпокупателя модульобъекта
  • Ошибка инициализации менеджера сервисов kaspersky rescue tool
  • Ошибка инициализации материнской платы как исправить
  • Ошибка инициализации криптопровайдера астрал отчет
  • Ошибка инициализации криптопровайдера rsa утм