image_pdfimage_print

MD5 в 1С

Оригинал

MD5 в 1С

MD5ХешФайл(ИмяФайла) доступен только в 8.3 если у Вас 8.2 Вам приходится писать код:

Работа с Excel в фоновом задании

Доброго времени суток!

http://infostart.ru/public/196323/

Прямо решение из жизни:

При работе с COM объектом экземляр Excel успешно создавался, но открыть файл не получалось

ExcelApp = Новый COMОбъект(«Excel.Application»);
ФайлExcel = ExcelApp.Workbooks.Open(ИмяФайла); // ОШИБКА!
выводилось сообщение об ошибке

Произошла исключительная ситуация (Microsoft Excel): Приложению Microsoft Excel не удается получить доступ к файлу «C:\xls_test\test.xls». Это может быть вызвано одной из следующих причин.

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

Поиски в просторах сети были продолжены и решение таки было найдено:

Необходимо создать папку

для Windows Server x64

C:\Windows\SysWOW64\config\systemprofile\Desktop

для Windows Server x86

C:\Windows\System32\config\systemprofile\Desktop
Данное расположение папок указано для Office 2007. Для Office 2010 не зависимо от разрядности платформы необходимо создавать папку C:\Windows\System32\config\systemprofile\Desktop (данный факт так же потратил не мало моего времени). В общем, если создали папку, а ошибки не исчезли, создайте вторую. Так же необходимо дать права на созданную папку пользователю USR1CV82. Практика показала, что достаточно прав, выдаваемых системой по умолчанию.

Жизнь на Марсе и ActiveX в тонком клиенте Windows 1C 8.3.6

Доброго времени суток!

Есть ли жизнь на Марсе, это пусть исследуют ученые, а мы займемся земными вещами и попытаемся ответить на вопрос: Если ActiveX в тонком клиенте Windows?

Ортодоксы 1С сразу приведут ссылку на ITS: http://its.1c.ru/db/metod81#content:3266:1 и будут неправы.

Мы люди недоверчивые, словам не верим. Внутреннее устройство платформы 1С это тайна за семью печатями. Которой получается только пользоваться, но не изучать. Поэтому возьмем ПолеHTML и посмортим есть ли там ActiveX. В Windows это поле основано на технологиях Microsoft IE. И внутри 1С это поле показывает версию IE 7, значит ActiveX есть.

Сейчас глядеть в старые версии IE, уже не модно и не нужно, но историю надо знать. В IE7 мир ActiveX хотели сделать более безопасными и поэтому ввели два понятия:
— «Безопасные ActiveX» — очень безопасные, от известных производителей (см. ниже) работают везде.
— KillBit — установлен для убийственно небезопасных ActiveX (пример — ADODB.Stream). Отключаем по умолчанию.
И в сам движок IE добавили безопасный режим выполнения — http://msdn.microsoft.com/en-us/library/bb250462%28v=vs.85%29.aspx#wpm_fliwl

Вот первый тип ActiveX перешел и работает в тонком клиенте Windows 1С! А вы ожидали webkit или blink. Я вместе с вами.

Приведем список самых популярных безопасных ActiveX:

  • MS Media player 9 — 6BF52A52-394A-11d3-B153-00C04F79FAA6
  • MS Media player 6.4 — 22D6f312-B0F6-11D0-94AB-0080C74C7E95
  • Adobe Player — D27CDB6E-AE6D-11cf-96B8-444553540000
  • Adobe PDF — CA*A9780-280D-11CF-A24D-444553540000

Они у вас включены по умолчанию. Не доверяйте — поверьте.

Если вы не доверяете ActiveX  на своем компьютере, можно их временно отключить http://support.microsoft.com/kb/240797/ru или удалить http://support.microsoft.com/kb/154850/ru

 

Р.S.

1С последнее время упорно лезет в интернет.  Уже предлагая использовать только своего тонкого клиента 1С. А если она такая популярная, то сразу возникает вопрос с безопасностью такой работы. С другой стороны все мы привыкли считать Windows не безопасной системой. А антивирус и другая защита у нас входит в обязательный комплект установки после покупки компьютера. И хотя в плане безопасности Microsoft сделала правильные шаги, но осадочек остался.

Думайте сами и тестируйте безопасность ваших решений!
Для ленивых обработки 1С на infostart.ru http://infostart.ru/public/235751/

COM соединения в 1С

Если вы установили установили новую версию платформы 1С и получили ошибку типа «Версия компоненты ‘comcntr’ (8.2.18.102) отличается от версии корневого модуля ‘core82’ (8.2.19.83)». Значит Вам необходимо перерегистрировать сервер 1С в COM.

Для клиента регистрация 1С в качестве сервера COM под администратором запустить следующую строку:

cd C:\\Program Files (x86)\\1cv8\\8.3.6.2152\\bin

regsvr32 comcntr.dll

 

На сервере для ComConnector необходимо выполнить дополнительные действия:

Запуск x32 COM-объектов из x64 приложения. (создание «COM+ обертки»)

Нужно, например для вызова V82.ComConnector на стороне 64-битного сервера 1С.

Это происходит потому, что 64 битные приложения не могут запускать 32 битные DLL которые активируются при запуске 32 битного COM объекта 1С. Для решения проблемы нужно воспользоваться оберткой COM+ которая являясь 64 битным приложением может взаимодействовать с 32 битными библиотеками.

Для это необходимо выполнить следующие шаги (пошаговая инструкция):

Запускаем консоль «Службы компонентов» (например:

Пуск -> Администрирование -> Службы компонентов)

В ветке Приложения COM+ добавляем новое приложение:

Создать -> Приложение

На вопрос «Установка или создание нового приложения» — выбираем «Создать новое приложение».

Имя нового приложения лучше написать чтобы было понятно о чем речь: V8_ComConnector, способ активации — «серверное приложение».
Учетная запись для запуска приложения: выбираем учетку под которой стартует сервер 1С.

В ветке созданного приложения переходим на ветку «Роли» открываем роль «CreatorOwner» и далее в разделе «Пользователи» создаем пользователя — учетную запись под которой работает сервер 1С.
В ветке созданного приложения переходим на ветку «Компоненты» и создаем компонент:

Создать -> Компонент

Выбираем «Установка новых компонентов», и в диалоге выбираем нужную DLL-ку (в данном примере: comcntr.dll)
Открываем свойства только что созданного компонента, идем на вкладку «Безопасность», проверяем в списке «Явно установленные для выделенных объектов роли» стоит ли «птичка» напротив роль CreatorOwner — если нет, тогда устанавливаем эту «птичку».

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

Сссылка на исходник: http://kb.mista.ru/article.php?id=870

 

В оригинале статьи:

«Вызов осуществляется по имени созданного COM+ компонента. В данном примере надо создавать COM-объект с ProgID = «V8_ComConnector». Объект = новый COMОбъект(«V82_ComConnector»);»

Проверил — работает на Server 2008 SR2

Объект = новый COMОбъект(«V82.ComConnector»);  и Объект = новый COMОбъект(«V82.ComConnector.1»);

не работает Объект = новый COMОбъект(«V82_ComConnector»);»

Новое на infosart: http://infostart.ru/public/195820/ 

 

И возможно у Вас строка вызова зависает на неопределенное время. Тогда Вам срочно нужно проверить лицензии. И возможно установить нет в свойствах базы «Разрешить выдачу лицензии сервером 1С:Предприятия».