4 / 4 / 0 Регистрация: 16.01.2013 Сообщений: 1,228 |
|
1 |
|
1C 8.x Работать с двумя базами18.07.2016, 12:18. Показов 5390. Ответов 24
Добрый день! Можете подсказать реально реализовать работу одновременно с двумя базами? Есть основная база №1, пользователь с помощью обработки заносит данные, сохраняет и создается новый документ в базе №2. Так сказать при помощи обработки (которая находится в базе №1) мы подключаемся ко второй базе и работает с ней. Если такое реально можете показать пример.
__________________
0 |
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,
0 |
434 / 305 / 92 Регистрация: 28.05.2014 Сообщений: 1,247 |
|
18.07.2016, 15:15 |
4 |
Ermak27, ну если только через com-соединение
1 |
Модератор 3698 / 2898 / 569 Регистрация: 10.03.2011 Сообщений: 11,411 Записей в блоге: 1 |
|
18.07.2016, 15:15 |
5 |
Решение
Мне интересно можно ли сделать как я написал выше. Можно http://programmist1s.ru/podkly… -2-po-com/
1 |
Ermak27 4 / 4 / 0 Регистрация: 16.01.2013 Сообщений: 1,228 |
||||
19.07.2016, 10:46 [ТС] |
6 |
|||
Не могу подключиться
0 |
841 / 604 / 211 Регистрация: 24.07.2013 Сообщений: 2,101 |
|
19.07.2016, 20:38 |
7 |
Убери попытку-исключение и посмотри какую ошибку выдает платформа.
0 |
Dethmontt Модератор 3698 / 2898 / 569 Регистрация: 10.03.2011 Сообщений: 11,411 Записей в блоге: 1 |
||||
19.07.2016, 20:41 |
8 |
|||
или хотя бы так
0 |
4 / 4 / 0 Регистрация: 16.01.2013 Сообщений: 1,228 |
|
20.07.2016, 10:24 [ТС] |
9 |
Dethmontt, Ошибка при вызове метода контекста (Connect): Произошла исключительная ситуация (V83.COMConnector.1): Ошибка инициализации модуля: МодульВнешнегоСоединения . Это что значит?
0 |
Модератор 3698 / 2898 / 569 Регистрация: 10.03.2011 Сообщений: 11,411 Записей в блоге: 1 |
|
20.07.2016, 11:30 |
10 |
Это что значит? Что там фигня какая то написана…
МодульВнешнегоСоединения
0 |
4 / 4 / 0 Регистрация: 16.01.2013 Сообщений: 1,228 |
|
20.07.2016, 11:35 [ТС] |
11 |
Dethmontt, что это за модуль? Где мне искать его? Мне не понятно. Я работаю на платформе 8.3, почему проблема
0 |
Модератор 3698 / 2898 / 569 Регистрация: 10.03.2011 Сообщений: 11,411 Записей в блоге: 1 |
|
20.07.2016, 12:44 |
12 |
Ermak27, в базе к которой ты подключаешься не компилируется МодульВнешнегоСоединения Добавлено через 13 секунд Добавлено через 49 секунд
Где мне искать его? ПКМ по конфигурации в дереве — МодульВнешнегоСоединения
1 |
4 / 4 / 0 Регистрация: 16.01.2013 Сообщений: 1,228 |
|
20.07.2016, 14:55 [ТС] |
13 |
Dethmontt, В общих модулях такого нет.
0 |
Модератор 3698 / 2898 / 569 Регистрация: 10.03.2011 Сообщений: 11,411 Записей в блоге: 1 |
|
20.07.2016, 16:52 |
14 |
В общих модулях такого нет. А где я выше написал про Общие модули ?
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 |
Модератор 3698 / 2898 / 569 Регистрация: 10.03.2011 Сообщений: 11,411 Записей в блоге: 1 |
|
21.07.2016, 16:00 |
18 |
Ermak27, а что там вообще есть? Добавлено через 36 секунд
0 |
Ermak27 4 / 4 / 0 Регистрация: 16.01.2013 Сообщений: 1,228 |
||||
22.07.2016, 10:01 [ТС] |
19 |
|||
Dethmontt, То что есть в внешнем модуле
0 |
Модератор 3698 / 2898 / 569 Регистрация: 10.03.2011 Сообщений: 11,411 Записей в блоге: 1 |
|
27.07.2016, 14:55 |
20 |
Ermak27, У общих модулей стоят галки «Внешнее соединение» ?
0 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
27.07.2016, 14:55 |
20 |
Ошибка инициализации библиотеки модулей
Автор ТихомировИгорь, 11 ноя 2015, 13:45
0 Пользователей и 1 гость просматривают эту тему.
Самостоятельно занимаюсь изучением 1:С Предприятие 8.3 по книге Радченко М.Г.
При изучении на девятом задании возникла проблема. Все делаю правильно, как описано в книге, но выдает следующую ошибку:
Ошибка инициализации библиотеки модулей
по причине:
{ОбщийМодуль.РаботаСоСправочниками.Модуль(3,7)}: Неопознанный оператор
Общие <<?>>модули Отбор = Новый Структура(«Номенклатура», ЭлементНоменклатуры);
Подскажите пожалуйста в ем может быть проблема.
Приведите код из вашего общего модуля РаботаСоСправочниками с 1 по 5-ую строку
Цитата: vitasw от 11 ноя 2015, 13:49
Приведите код из вашего общего модуля РаботаСоСправочниками с 1 по 5-ую строку
&НаКлиенте
Процедура ПереченьНоменклатурыНоменклатураПриИзмененииНаСервере()
// Получить текущую строку табличной части.
СтрокаТабличнойЧасти = Элементы.ПереченьНоменклатуры.ТекущиеДанные;
// Установить цену.
СтрокаТабличнойЧасти.Цена = РаботаСоСправочниками.РозничнаяЦена(
Объект.Дата, СтрокаТабличнойЧасти.Номенклатура);
// Пересчитать сумму строки
РаботаСДокументами.РассчитатьСумму(СтрокаТабличнойЧасти);
КонецПроцедуры
Это точно код из общего модуля? Покажите скрином.
Цитата: vitasw от 11 ноя 2015, 14:07
http://www.lessons1c.ru/articles/55-moduly82.html
Функция РозничнаяЦена(АктуальнаяДата, ЭлементНоменклатуры) Экспорт
// Создать вспомогательный объект «Отбор».
Общие модули Отбор = Новый Структура(«Номенклатура», ЭлементНоменклатуры);
// Получить актуальные значения ресурсов регистра.
ЗначенияРесурсов = РегистрыСведений.Цены.ПолучитьПоследнее(АктуальнаяДата, Отбор);
Возврат ЗначенияРесурсов.Цена;
КонецФункции
Прошу прошения, перепутал
Цитата: ТихомировИгорь от 11 ноя 2015, 14:25
Цитата: vitasw от 11 ноя 2015, 14:22
Цитата: ТихомировИгорь от 11 ноя 2015, 14:20Общие модули Отбор = Новый Структура(«Номенклатура», ЭлементНоменклатуры);
В этой строке вас ничего не смущает? Так в книге НЕ написано.
Смущает, но что не пойму.
Функция РозничнаяЦена(АктуальнаяДата, ЭлементНоменклатуры) Экспорт
// Создать вспомогательный объект "Отбор".
Отбор = Новый Структура("Номенклатура", ЭлементНоменклатуры);
// Получить актуальные значения ресурсов регистра.
ЗначенияРесурсов = РегистрыСведений.Цены.ПолучитьПоследнее(АктуальнаяДата, Отбор);
Возврат ЗначенияРесурсов.Цена;
КонецФункции
Вот как там написано. Где вы увидели в этом коде фразу «Общие модули»?
Теги:
- Форум 1С
-
►
Форум 1С — ПРЕДПРИЯТИЕ 8.0 8.1 8.2 8.3 8.4 -
►
Конфигурирование, программирование в 1С Предприятие 8 -
►
Ошибка инициализации библиотеки модулей
Похожие темы (5)
Поиск
Если сервер 1С стоит на Windows х64, то рано или поздно Вы столкнетесь с проблемой создания COM-соединения, если соединение инициируется на стороне сервера. На стороне клиента COM-соединение работает нормально, на стороне сервера вываливается с ошибкой.
Данная статья позволяет снять проблему. НО – до переустановки или обновления платформы!
Столкнулся с проблемой создания COM-соединения на стороне сервера. Обновили версию платформы, но после установки, компонент COM-соединения не регистрировался в системе. Предлагаемая ниже методика позволяет избавиться от описываемой проблемы.
Ниже алгоритм настройки системы, со скрином к каждому действию. Внимание скрины взяты с другого сайта, для общего понимания действий!
И так:
- Остановка сервера 1С (рекомендуется, но не обязательно)
- Регистрация компоненты comcntr.dll
- Создание обертки COM+, позволяющей 64-битному приложению взаимодействовать с 32-битном.
- Перезагрузка сервера (физического). Не обязательно, но рекомендуется
- Старт сервера 1С. (обязательно 🙂
Вызываем консоль
Регистрируем компоненту. Компонента отсутствует, если установлен только сервер 1С. Почему-то 1С публикует ее только в составе клиента.
вызвать в cmd
regsvr32 "C:Program Files1cv8[номер платформы]bincomcntr.dll"
Библиотека успешно зарегистрирована.
Теперь запускаем службу компонентов. Описывается для Windows Server 2008 R2 Standart.
Создаем приложение.
Выбираем – Создать приложение
Называем наше приложение – V83.COMConnector, ставим галочку – Серверное приложение.
На этом окне – выбираем учетную запись под которой будет запускаться наше приложение. Лучше указать “учетку” с правами Администратора. Я ставил – текущий пользователь т.к., работал под Администратором.
После того как мы создали Приложение, заходим в него, в раздел – Компоненты и создаем новый компонент.
На данном этапе нужно указать где лежит библиотека dll. Как правило библиотека лежит – “С:Program Files1cv8[номер платформы]bincomcntr.dll”
Теперь установи права на Приложение. Правой кнопкой на созданном Приложении – Свойства.
Выбираем вкладку – Безопасность и Снимаем галочку – Принудительная проверка доступа для приложений => (Ставим галочку) => Применить политику программных ограничений => Уровень ограничений => Неограниченный.
Далее переходим к самому Компоненту – Выбираем – Свойства, раздел Безопасность.
Проверяем что галка стоит на “Владельце”
На этом у меня заработало!
Ошибка при вызове метода контекста (Connect): Произошла исключительная ситуация (V83.COMConnector.1): Версия компоненты ‘comcntr’ отличается от версии корневого модуля ‘core83’
Часто бывает, что при настроенной синхронизации после обновления платформы появляется ошибка «Произошла исключительная ситуация (V83.COMConnector.1): Версия компоненты ‘comcntr’ отличается от версии корневого модуля ‘core83’». Так происходит потому, что автоматически не зарегистрировалась компонента comcntr.dll из-за проблем с правами пользователя на компьютере.
Решить данную проблему можно двумя способами.
Способ №1.
Переустановить платформу под правами Администратора или под пользователем, у которого есть такие права.
Способ №2.
Если не получилось как в способе №1, то можно вручную зарегистрировать самому эту компоненту.
Перед этим нам необходимо изменить Параметры контроль учетной записи.
Для Windows 7 нам необходимо зайти в Пуск затем в Панель управления.
Для Windows 10 нам необходимо в левом нижнем углу панели задач в строке поиска набрать Панель управления и перейти по открывшейся ссылке.
В правом верхнем углу Панели управления выбрать Просмотр-Мелкие значки и затем в списке перейти в Учетные записи пользователей.
Там выбрать Изменить параметры контроля учетных записей.
Затем поставить ползунок в самом нижнем положении.
И перезапустить компьютер.
После перезагрузки необходимо:
Для Windows 7 надо перейти в Пуск, затем в строке поиска ввести cmd.exe,нам покажет что найдена Командная строка и, щелкнув по ней правой клавишей мыши, выбрать «Запуск от имени администратора».
Для Windows 10 нам необходимо в левом нижнем углу панели задач в строке поиска набрать Командная панель или cmd.exe и, щелкнув по ней правой клавишей мыши, выбрать «Запуск от имени администратора».
У нас откроется Командная строка, где нам необходимо ввести команду:
1.Для платформы x86
Regsvr32 «C:Program Files (х86)1cv8номер версии вашей платформыbincomcntr.dll» (regsvr32пробел»C:Program Files (х86)1cv8номер версии вашей платформыbincomcntr.dll»).
2.Для платформы х64
Regsvr32 «C:Program Files1cv8номер версии вашей платформыbincomcntr.dll» (regsvr32пробел»C:Program Files1cv8номер версии вашей платформыbincomcntr.dll»).
Затем нажать клавишу Enter.
Если все сделали правильно, то увидите вот такое окно.
После этого необходимо перезагрузить компьютер. Как включится, пробуйте снова сделать синхронизацию.
Оглавление
- Как понять, что у нас проблемы с COM
- Да, судя по тесту, у нас проблемы с COM
- Шаг №0
- Шаг №1
- Шаг №2
- Шаг №3
- Шаг №4
- Шаг №5
- Шаг №6
- Шаг №7
Обновлятор-1с в своей работе использует com-библиотеку от 1с для внешнего подключения к базам.
В большинстве случаев никаких проблем с этой библиотекой не наблюдается — обновлятор сам автоматически регистрирует и использует библиотеку нужной версии 1с, но изредка возникают случаи (в основном на серверных ОС), когда требуются «пляски с бубном».
Как понять, что у нас проблемы с COM
Для этого нажимаем кнопку «Проверить настройки» удерживая клавишу «Shift» на клавиатуре:
При нормальной работе COM отчёт будет примерно таким:
При проблемах же с COM возникнет вот такая или похожая ошибка:
Ещё может писать, что -то типа «Не удалось создать программное подключение к 1С«.
Да, судя по тесту, у нас проблемы с COM
Прежде всего, о какой именно библиотеке идёт речь? Эта библиотека comcntr.dll, которая находится в папке bin конкретной платформы 1с:
Эта библиотека устанавливается и автоматически регистрируется в системе при установке платформы.
Кроме того, обновлятор перед тем как подключаться к базе через внешнее соединение сам дополнительно регистрирует в системе библиотеку из нужной версии платформы при помощи команды:
regsvr32.exe "путь к папке bincomcntr.dll"
Итак, что мы можем предпринять?
Шаг №0
Обратите внимание на утилиту для отображения и регистрации библиотек RegDllView. При помощи неё вы как минимум сможете контролировать результат работы следующих шагов.
Шаг №1
Прежде всего убеждаемся, что у нас действительно проф-версия платформы, потому что для базовой версии платформы внешнее подключение к базам работать и не должно (это ограничение платформы).
Чтобы понять какая у нас платформа (базовая или проф) выполним вот этот пункт.
Если лицензия на платформу у нас всё же не проф, а базовая, то все остальные шаги не имеют смысла. Внешнее подключение к базам у нас работать не будет (из-за ограничений платформы). Ничего не остаётся, кроме как настроить базы вот так.
Шаг №2
Далее пробуем запустить обновлятор с правами администратора.
Если у вас включён UAC, то добиться этого можно, нажав на ярлыке обновлятора правой кнопкой, и выбрав вариант «Запуск от имени администратора».
Далее выбираем базу и нажимаем кнопку «Проверить настройки». Если ошибка пропала и больше не воспроизводится даже при обычном запуске обновлятора (без прав администратора) — поздравляю, проблема решена. Если нет — идём дальше.
Шаг №3
В 32-битной версии ОС пробуем выполнить команду
regsvr32 "путь к папке bincomcntr.dll"
В 64-битной версии ОС команда будет такой:
— для регистрации 64-битной платформы 1С:
regsvr32 "путь к папке bincomcntr.dll"
— для регистрации 32-битной платформы 1С:
C:WindowsSysWOW64regsvr32 "путь к папке bincomcntr.dll"
Эти команды запускаем от имени пользователя с правами администратора. А при включённом UAC, запускаем cmd через «Запуск от имени администратора», либо через такой же запуск написанного батника.
Если команда регистрации не помогла, то нужно предварительно удалить регистрацию библиотеки comcntr.dll, запустив ту же команду вызова regsvr32 с ключом /u
Если и это не помогло, попробуйте переустановить платформу 1С в режиме Исправить, а затем зарегистрируйте библиотеку, как написано выше.
Если этот шаг не помог — идём дальше.
Шаг №4
Похоже, что у обновлятора не получается зарегистрировать COM компоненту из-за настроек безопасности на вашем сервере.
В этом случае:
- Заходим в Панель управления — Администрирование — Службы компонентов.
- Переходим к ветке Компьютеры — Мой компьютер — Приложения COM+.
- В контекстном меню выбираем Создать — Приложение. Откроется Мастер установки приложений COM+.
- Нажимаем «Далее».
- Выбираем «Создать новое приложение».
- Вводим имя «V83COMConnector». Устанавливаем переключатель «Серверное приложение». Нажимаем «Далее».
- На следующем шаге устанавливаем «Текущий пользователь». Нажимаем «Далее».
- Нажимаем «Готово».
- В появившейся ветке V83COMConnector переходим к подветке Компоненты.
- В контекстном меню выбираем Создать — Компонент. Откроется Мастер установки компонентов COM+.
- Нажимаем «Далее».
- Выбираем «Установка новых компонентов».
- Выбираем файл <каталог 1С>bincomcntr.dll.
- Нажимаем «Далее» — «Готово».
- Переходим к ветке V83COMConnector.
- В контекстном меню выбираем «Свойства». В открывшемся окне переходим на вкладку «Безопасность».
- Снимаем галку «Принудительная проверка доступа для приложений». Ставим галку «Применить политику программных ограничений». Устанавливаем Уровень ограничений — «Неограниченный».
- Нажимаем «ОК».
После этого обновлятор должен смочь самостоятельно регистрировать компоненты всех версий платформ, а не только той, которую мы прописали в компоненте.
Шаг №5
Бывает так, что помогает только повторная переустановка платформы (при этом происходит корректная регистрация компоненты).
Шаг №6
Если проблема начала возникать сразу после обновления платформы 1с, то вероятнее всего новой версии платформы 1с не хватает какого-нибудь сервиспака или обновления для вашей операционной системы. Поэтому если есть возможность — ставим их все, если нет — действуем выборочно согласно этой ссылке.
Шаг №7
Бывает так, что всё работает при обычном запуске обновлятора, но не работает при запуске с повышением привилегий до администратора, когда вы запускаете обновлятор через пункт меню «Запустить от имени администратора» или из программы (типа TotalCommander), которая сама запущена с повышенными привилегиями.
Наверняка есть и другие экзотические случаи о которых я пока не знаю — пожалуйста, пишите о них мне на почту helpme1c.box@gmail.com, чтобы я смог дополнить эту статью.
Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.