Подключение OLE в регламентном задании на 64-битном сервере или подключение 1С 8 к 1С 7.7

09.04.24

База данных - Инструменты администратора БД

У вас давно работает новая база на платформе 8.2 или даже 8.3, но бухгалтерия до сих пор сидит на платформе 7.7. Что делать? Переводить пока не планируем, а обмен нужен в реальном времени? Так мало того, у нас новый 64-битный сервер! Не беда, есть решение!

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Дополнительные файлы
.rar 781,51Kb
42
42 Скачать (1 SM) Купить за 1 850 руб.

Справка

OLE (англ. Object Linking and Embedding) — технология связывания и внедрения объектов в другие документы и объекты, разработанная корпорацией Майкрософт.

В 1996 году Microsoft переименовала технологию в ActiveX.

Более подробно пишет Википедия: https://ru.wikipedia.org/wiki/Object_Linking_and_Embedding

Вступление

Сейчас у вас есть база на платформе 1С 8.Х, а также база на платформе 1С 7.7. И вам нужно их подружить.

В интернете есть информация по взаимодействию, но вся она разбросана. И мало того никто не учитывает, что сейчас сервера идут 64-битные, а клиенты 32-битные.

Итак давайте знакомить платформу 8 с 7. Для этого нам нужно использовать OLE Automation сервер.

По этому вопросу уже есть готовая публикация, привожу для примера: OLE в 1С-Предприятии.

Подготовка технической части

Будем рассматривать пример на базе Windows Server 2012 R2, где уставновлена платформа 1С 8.Х для сервера 64-битная, для клиента 32-битная. Также нужно установить последний релиз платформы 1С 7.7 у нас 7.70.027.

Рабочая база 1С 7.7 расположена на другом сервере, вариант установки SQL.

Поэтому на нашем сервере также выбираем вариант установки SQL.

Установка 1С 7.7:

Устанавливаем под администратором: Запуск от имени администратора

Перезагружаемся.

Далее чтобы 1С 7.7 прописалась в реестре важно запустить ее также под администратором, создать пустую базу и зайти в нее.

Перезагружаемся.

Так же скорее всего вам понадобится подменить в папке (BIN) "BkEnd.dll" и добавить туда пустой файл "OrdNoChk.prm" (файлы внизу публикации).

Далее важно, чтобы у вас в реестре появились записи:

V77.GeneralPropPage

V77.Application

V77S.Application и прочие.

А также как минимум DCOM (нужно проверить, за давностью установки, не уверен в надобности).

Пуск - Выполнить - DCOMCNFG. 

Там разворачиваем "Службы компонентов" - "Компьютеры" - "Мой компьютер" - "Настройка DCOM":

V77.GeneralPropPage

Если их нет, значит у вас что-то с доступом. Настраиваем и начинаем заново установку.

Настройка Windows Server 2012 R2

Для открытия 1С 7.7 по OLE на сервере потребует больше, чем по умолчанию, памяти для запуска приложений в "не интерактивном" режиме (т.е. в регламентном задании) для этого в реестре нужно изменить/добавить запись:

HKEY_LOCAL_MACHINE>SYSTEM>CurrentControlSet>Control>Session Manager>SubSystems 
Меняем значение Windows, было: 
%SystemRoot%\system32\csrss.exe ObjectDirectory=\Windows SharedSection=1024,3072,512 
  Windows=On SubSystemType=Windows ServerDll=basesrv,1 ServerDll=winsrv:UserServerDllInitialization,3 
  ServerDll=winsrv:ConServerDllInitialization,2 ProfileControl=Off MaxRequestThreads=16 

SharedSection=1024,3072,512

Вот здесь редактируем 3 значение, мы поставили 5 мб (было 512 кб). Важно чтобы 2 и 3 значение не превысило 48 мб. 

Этот параметр отвечает в Windows за "кучу" для неинтерактивного сеанса.

Про изменение "кучи" подробно написали в статье: http://www.techarp.com/showarticle.aspx?artno=238&pgno=1 

Первый нюанс с "кучей" решили, теперь осталось разобраться с правами у пользователя, который запускает службу "Агент сервера 1С:Предприятия 8.Х (x86-64)"

Служба

Если у вас служба настроена в таком режиме, то потребуется прописать в реестре путь до базы 1С 7.7:

KEY_USERS\S-1-5-18\Software\1C\1Cv7\7.7\Titles 

Для каждой новой базы, нужно создать новую запись(New->String value или Создать->Строковый параметр):
Name: Путь_и_Имя_базы
Type: REG_SZ 
Data: Ваше_название_для_базы 

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

Но в этом случае сеть не доступна (нам такой вариант не подходит).

В таком случае нужно выбрать конкретного пользователя и проверить чтобы у него был доступ на сеть!

Так же у этого пользователя должна быть прописана база в реестре или вы можете зайти интерактивно под этим пользователем и добавить в список нужную сетевую базу 1С 7.7.

Делаем регламентное задание

Систему к работе мы подготовили теперь дело за малым написать код!

Создаем регламентное задание и определяем процедуру в которой записан код:

Попытка 
	v7=Новый COMОбъект("V77.Application"); 
Исключение 
	v7=Новый COMОбъект("V1CEnterprise.Application");  
КонецПопытки;	
КаталогБазыОЛе = "\\ВашСервер\D$\КаталогНаДискеДВашейБазы\";//пример сетевого каталог на диске D
ПользовательОле = "Пользователь1С8СозданныйВ1С7";
ПарольОле = "ПарольПользователяОле";
МонопольныйРежимOLE = "";
//МонопольныйРежимOLE = " /m"; 
//для немонопольного запуска указать пустую строку! 
ЗапускБезЗаставки = 1; 
// для появления заставки поставьте "0"            
РезультатПодключения = v7.Initialize (v7.RMTrade,"/d"+Сокрлп(КаталогБазыОле)+" /n"+Сокрлп(ПользовательОле)+" /p"+Сокрлп(ПарольОле)+МонопольныйРежимOLE, ?(ЗапускБезЗаставки=1,"NO_SPLASH_SHOW",""));
Если РезультатПодключения=1 Тогда
	Сообщить("Соединение установлено");
Иначе
	Сообщить(""+КаталогБазыОле);
	Сообщить("Соединение не установлено");
КонецЕсли;

Все, подключение работает!

Теперь можете написать код в 1С 7.7 при старте системы или опишите на языке 1С 7.7 нужный алгоритм прямо в 1С 8.Х.

Успешной работы!

OLE подключение из 1С8 в 1С7

См. также

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы. Может выполнять свертку сразу нескольких баз данных и выполнять их автоматически без непосредственного участия пользователя. Решение в Реестре отечественного ПО

8400 руб.

20.08.2024    14364    109    46    

108

Инструменты администратора БД Инструментарий разработчика Роли и права Программист Платформа 1С v8.3 1C:Бухгалтерия Россия Платные (руб)

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

15000 руб.

10.11.2023    11913    45    27    

67

Инструменты администратора БД Роли и права Системный администратор Программист Пользователь 8.3.14 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Документооборот 1С:Зарплата и кадры государственного учреждения 3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Роли… Вы тратите много времени и сил на подбор ролей среди около 2400 в ERP или 1500 в Рознице 2, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 18.09.2024, версия 1.2

18000 руб.

06.12.2023    10690    47    8    

78

SALE! %

Инструментарий разработчика Инструменты администратора БД Системный администратор Программист Платформа 1С v8.3 Управляемые формы 1C:Бухгалтерия Россия Платные (руб)

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

4800 3840 руб.

14.01.2013    191276    1152    0    

920

Закрытие периода Инструменты администратора БД Корректировка данных Бухгалтер Пользователь Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Расширение «Оперативное проведение» в 4 раза уменьшает время проведения документов и закрытия месяца. Является комплексным решением проблем 62 и 60 счетов. Оптимизирует проведение при включенной функциональной опции «Раздельный учет НДС». Используется в более 10 организациях уже 2 года. Совместимо с конфигурацией Бухгалтерия 3.0 (+КОРП).

14400 руб.

29.04.2020    33846    108    152    

75

Инструменты администратора БД Системный администратор Программист Платформа 1С v8.3 1C:Бухгалтерия Платные (руб)

Брандмауэр для сервера 1С включает в себя управление возможностью начала и возобновления сеансов пользователей по различным условиям, ограничение общего числа возможных сеансов для работы с информационной базой, резервирование возможности работы с информационной базой определенных польззователей, запрет запуска нескольких сеансов для пользователя, журнализация событий начала (возобновления) и завершения (гибернации) сеансов, ведение списка активных сеансов для информационных баз кластера серверов

3600 руб.

06.02.2017    32626    145    18    

51

Архивирование (backup) Инструменты администратора БД Платформа 1С v8.3 Управляемые формы 1C:Бухгалтерия 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Данная разработка позволит решить вопрос с резервным копированием Ваших баз в автоматическом режиме, расположенных на сервере 1С. Система умеет ставить блокировки на вход, блокировать фоновые задания, принудительно отключать сеансы пользователей. И все это система делает в автоматически при создании бэкапа (или через команду). Выгрузка происходит в родной формат 1С - .dt. Так же система умеет архивировать данные выгрузки с установкой пароля. Умеет менять расширение файла zip или dt на любое указанное вами, что позволит сохранить выгрузки от шифровальщика. Может удалять старые копии выгрузок, оставляя указанное количество резервных копий, начиная с самой поздней. Только для WINDOWS!

6000 руб.

06.11.2012    73748    629    45    

88

Инструменты администратора БД Пользователь Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Платные (руб)

Многие сталкиваются с проблемой когда изображения, находящиеся в базе разные по объему и размерам. Менеджеры могут добавить файлы в очень высоком разрешении, объемом свыше 20 Мегабайт. База данных становится слишком большой, выгрузка на сайт идёт медленно и требуется много место на хостинге. Как сжать картинки и уменьшить размер базы 1С? Это можно сделать с помощью данной обработки. Существует возможность выбрать различные варианты для того чтобы уменьшить картинки: в разы, в процентах от первоначального объема, а также сделать картинки одинаковой ширины. В результате размер базы 1С значительно сократится (в зависимости от количества и размера картинок), а изображения станут небольшого объема, равными по ширине, почти без потери качества. Работает на управляемых формах для УТ 11, КА, ERP.

3000 руб.

21.07.2022    10166    10    4    

18
Вознаграждение за ответ
Показать полностью
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. almas 258 30.11.15 17:39 Сейчас в теме
2. Xershi 1561 30.11.15 18:23 Сейчас в теме
(1) almas, все получилось с первого раза? А то может пару нюансов не отразил в статье, пол года назад проект делал.
3. zombi81 8 08.12.15 22:09 Сейчас в теме
Поймал аналогичную проблему, не делал ничего из написанного. После того как установил 8.3.7.1776 проблема исчезла. Похоже, плавающий глюк в релизах платформы.
4. Xershi 1561 08.12.15 22:35 Сейчас в теме
(3) zombi81, о каком глюке идет речь?
5. Гриффин 11 01.09.16 12:45 Сейчас в теме
Делал все, как написано здесь, но проблема так и не решилась...
6. Xershi 1561 01.09.16 14:22 Сейчас в теме
(5) Гриффин, значит не все или прав нет у вас.
Конкретно что не вышло?
7. maljaev 789 11.03.17 11:44 Сейчас в теме
V77.Application (и все прочие 77) не работают на сервере для второго коннекта, виснет подключение. Это не зависит от базы или пользователя. Так что если у вас несколько регламентных заданий для синхронизации с разными базами или с разными данными, то как только очередное регламентное задание "пересечется" по времени с уже выполняющимся - будет "зависон". Можно решить очередью, когда очередное задание по синхронизации ждет, когда выполнится активное.
8. Xershi 1561 11.03.17 12:18 Сейчас в теме
(7) этот момент я не смогу продиагностировать, но у нас была 1 база 7.7 и было одно регламентное задание.
9. zhenyat 8 06.07.17 15:35 Сейчас в теме
В реестре записи про 1с появились, но в dcom - нет, переустановки и перегрузки не помогают.

При этом в обычном приложении (и в файловом и в кдиент-серверном) и в управляемом файловом com-соединение с 7.7 работает, проблемы только в управляемом клиент-серверном:(

Что делать?
10. Xershi 1561 06.07.17 16:07 Сейчас в теме
(9) обновлять конфигурацию. У вас явно ошибки в конфе. К решению задачи это не относится!
11. zhenyat 8 08.07.17 19:58 Сейчас в теме
(10) Да нет, разобралась, вылетело из головы что dcomcfg надо с ключом /32 запускать - там все настройки для 7.7 на месте...
12. Xershi 1561 08.07.17 20:12 Сейчас в теме
(11) т.е. "Пуск - Выполнить - DCOMCNFG" запускает 64-битный конфиг?
13. zhenyat 8 10.07.17 12:24 Сейчас в теме
14. Rif_md 6 21.03.18 11:30 Сейчас в теме
Странно, у меня при вызове OLE в функции с директивой НаСервере сразу выдает ошибку
V7 = New COMObject("V77.Application");
по причине:
-2147467262(0x80004002): Интерфейс не поддерживается
Хотя все тоже самое с директивой НаКлиенте отрабатывает отлично
Релиз 8.3.11.3034
15. Xershi 1561 21.03.18 11:32 Сейчас в теме
(14) вероятно на сервере нет 1С 7.7.
16. Rif_md 6 21.03.18 12:19 Сейчас в теме
(15) Клиент запускаю на сервере (в сессии удаленного рабочего стола). 1С 7.7 на сервере установлен. Функция с директивой НаКлиенте отрабатывает без вопросов, а вот таже функция с директивой НаСервере уже выдает ошибку.
17. Xershi 1561 21.03.18 14:53 Сейчас в теме
(16) тогда пишите по пунктам что сделали из статьи и чего не сделали.
Плюс все ваше окружение!
18. AlexO 136 21.03.18 16:02 Сейчас в теме
Используйте выгрузку-загрузку в файл, и не связывайтесь с этими кривыми реализациями )
19. Xershi 1561 21.03.18 16:44 Сейчас в теме
(18) так для этого и нужен этот алгоритм, чтобы запустить 1С 7.7 из 8.3 и загрузить файл КД2. Хотя мой коллега из-за не знания КД2 переписал полностью обмен на ком. Так что вы как-то не зная область комментируете!
20. Xershi 1561 13.02.24 14:11 Сейчас в теме
На днях попалась похожая задачка. ВК (работа с сетью с другим сервером приложения) успешно работает на клиенте, а на сервере падает. Агент сервера 1С был настроен под системной учетной записью.
В итоге код для системной учетной записи заработает.

Но в этом случае сеть не доступна (нам такой вариант не подходит).

Вот для чего нужно агенту давать пользователя, чтобы настроить права на сеть!
21. Xershi 1561 09.04.24 12:58 Сейчас в теме
(20) развитие вопроса как оказалось не таким очевидным:
Работа Native API компоненты RusGuardSoft на сервере.
Возможно прав было достаточно, но сделали все что можно и решили вопрос!
Оставьте свое сообщение