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

image_pdfimage_print

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

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. Практика показала, что достаточно прав, выдаваемых системой по умолчанию.

Какая боль, какая боль Linux 1C — понять и простить

image_pdfimage_print

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

Установка 1С на Linux не так проста как кажется
http://infostart.ru/public/142601/

Но это не все с чем Вы можете столкнуться

1. Ошибка загрузки библиотеки libWand.so по причине:Библиотека не обнаружена.
Может появиться на 64 битной версии клиента Linux. Оказалось, что для 32 битной платформы, библиотеки нужны тоже 32 битные(что вроде бы логично, но было упущено из виду)
Решение: установить 32 битный пакет imagemagick командой:
apt-get install imagemagick:i386

Если это не работает:  Лечится это запуском 1С с параметром окружения «LD_PRELOAD=libgomp.so.1»

2. Установка свободных шрифтов может и не понадобиться…
sudo apt-get install msttcorefonts
И директории sudo /opt/1C/v8.3/i386/utils/ в 8.3.8 уже нет.

3. Есть проблемы с выделением текста в конфигураторе. Замена драйверов видео иногда помогает решить эту проблему.
http://www.forum.mista.ru/topic.php?id=769153

Без расширения работы с файлами…

image_pdfimage_print

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

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

Вот код из «Библиотека стандартных подсистем»:

То есть БСП не работает в браузере без установки «Расширение для работы с файлами».

 

На самом деле загрузить файл возможно и без расширения.

Все работает с нормальным диалогом выбора файла.

А с сохранением все немного сложнее.
Красивый и правильный код на 8.3.7.1759 и выше требует расширения

Любой вызов ДиалогВыбораФайла требует установку «Расширение для работы с файлами» в 1С.

 

А если хочется работать в Chrome без расширения — то придется обновиться и попробовать написать так:

Код нормально работает.

Но в Internet Explorer диалог сохранения выглядит так

СохранениеIEбезМодальности

А в Firefox он будет выглядеть как

СохранениеFFбезМодальности

К докладу «Создание виджетов(widgets) в 1С» на Event 2015

image_pdfimage_print

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

Идея виджетов, добавления своих маленьких элементов отображения в интерфейс популярна в информационных системах как никогда. Всегда хочется дополнить интерфейс системы небольшими добавлениями, которые наиболее выразительно покажут информацию, покажут, занимая немного места, но именно так, как хочется. Можно для этого использовать <поле картинки> или графическую схему. Но сейчас я опишу наиболее универсальный и богатый способ создания.

1-. Самое интересное поле, которое можно вставлять в интерфейс 1С, — это поле HTML документа.

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

2-. Поле это работает пока в старом режиме совместимости. А любой web-дизайнер Вам расскажет кучу страшных историй о совместимости верстки под ie7, ie8 и стандарты современных браузеров. Но проблема не только в показе контекста, большая проблема в том, что старый режим совместимости не может отработать новые функции и свойства современных технологий. И самое плохое, что могут выскакивать ошибки. А для пользователя это совсем неприемлемо.

  • CSS 3 да и CSS 2 отобразится не так, как хотелось бы.
  • <canvas> или ускоритель двухмерной графики — забудьте (http://www.w3schools.com/canvas/default.asp)
  • <svg> не работает
  • остальные примочки HTML5 за бортом

Многие могут возразить, что мы можем добавить чудо-строку в HTML для изменения уровня совместимости  <meta http-equiv=»X-UA-Compatible» content=»IE=edge» />. Но и здесь все не радостно. Стилевое оформление начинает работать, но основной контекст все равно будет при старом режиме.

И продолжая негатив Ж:)

3-.  В 1С в управляемых формах остался один интерактивный метод взаимодействия с полем <ПриНажатии>. <ПриИзменении> и <ДокументСформирован> реагируют уже на изменение контекта, а при событии ПриНажатии, если его не прерывать, доходит до владельца в 1С.

 

В общем, все плохо и руки опускаются, что-либо делать. И теперь будем подниматься вверх, используя опыт и различные наработки.

1+. Поле НТМL работает во всех клиентах  и версиях 1С.

2+. Конечно, приходится использовать библиотеки, совместимые с ie7 или позволяющие подправить код для режима совместимости.

В частности, используем Raphaeljs (http://raphaeljs.com/), которая позволяет рисовать как старыми методами ie, так и и для вэб-клиетов средствами svg

3+. Любые события в HTML можно эмулировать событием ПриНажатии. Конечно, это не волшебная палочка, и проблему быстродействия взаимодействия это не решит, но нормальную работу это обеспечит. И один из интересных методов, заключается в обработке событий ПриНажатии для невидимых элементов. В отличие от 1С невидимые элементы присутствуют в интерфейсе и могут использоваться для взаимодействия с пользователем.

Ну, я надеюсь, у Вас появилась надежда на что-то работающее.

 

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

Обработки на Инфостарте: http://infostart.ru/public/370984/

 

Сравниваем скорость работы динамики внутри 1С и в современных браузерах:

О сколько нам ошибок чудных готовят…

image_pdfimage_print

«Никому про наш секрет не говори,
А стекляшек разноцветных набери.
Ты зажмурься и три раза повернись,
А теперь глаза открой и удивись!»
— из детской песни.

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

 

1. Осторожно переход на 8.3.7. Конфигурация на 8.3.7 в режиме совместимости 8.2 никогда не вернется на старые версии!

ВыгрузкаЗагрузка1С

 

2. Опять мне пришлось столкнуться с проблемами идентицикации сервисов 1С. Благодаря 1С 8.3 у нас появились http сервисы, а методы работы для них остались такие же как для web-сервисов.

Также было замечано, что http сервисы возращают ошибку 403, а web-сервис ошибку 500. Ошибка исправлется переустановкой всех прав для пользователя 1С под которым они должны работать. И дальнейшем убирание ненужных, типа

Права1С-Сервисы“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — 
Сама 1С рекомендовала замену версии 8.3.6 (8.3.6.2237 и ниже) на версию 8.3.6.2299 платформы «1С:Предприятие 8» http://www.1c.ru/news/info.jsp?id=20420

Хорошая статья по авторизации http://www.bizkit.ru/2013/05/24/1722/

И пример на инфостарте http://infostart.ru/public/302876/

И моя старая статья http://sikuda.ru/archives/376

 

3. И немного позитива для 8.3.6 (при запуске программы из директории common)

1С не обнаружена
Это для тех кто забыл подправить ярлыки 1С.

 

4. Немного тестирования на 8.3.7

Вход в 1С
Это вообще одиночный фантом.

 

5. Медитации тестовых новых версий….

1c84down

1c84fulldown

HTML-поле в 1С 8.3 и Windows 10

image_pdfimage_print

Доброе сремя суток!

После того как IE11 встал в список поддерживаемых браузеров 1С http://v8.1c.ru/requirements/, время не строит на месте и пришло время проверить работоспособность1 1С на Windows 10

Зафиксированные проблемы 1С 8 на windows 10:
1)      Ошибки при работе с .html (заработало с 2237)
2)      Проблема вылетов (решается отключением DEP)
3)      Проблема вылетов из-за драйверов видеокарты (решается обновлением драйверов)
4)      Ошибки служб, например ragent.exe (связано с созданием темп-файлов)
5)      Ошибка установки платформ «Не найден файл Data1.cab» (решается копированием установочных файлов в иную директорию жёсткого диска)

Источник форумы или например: http://1cnik.by/1c_windows10.html

Вот проблемы html-поля нас и заинтересуют в первую очередь. Как писалось ранее html поле в 1С является activex компонентой htmlfile, но в Windows 10 решили прикрыть все activex как небезопасные.

На сайте Microsoft уже распрощались с ActiveX и другими старыми технологиями http://blogs.windows.com/msedgedev/2015/05/06/a-break-from-the-past-part-2-saying-goodbye-to-activex-vbscript-attachevent/

Но при более внимательном рассмотрении IE11 остался в системе:

ie11inWindows10

И можно его открыть из нового браузера

OpenIE11

Но пока при открытии HTML поля в 1С программа падает! И делает это достаточно стабильно. Но с версии 2237 начало работать, обновляемся!
Как по-человечески открыть веб-страничку внутри окна со справкой

http://www.forum.mista.ru/topic.php?id=761496#8

Голосуем за доклады на конференции Инфостарт 2015

image_pdfimage_print

Страница голосований:

http://event.infostart.ru/2015/agenda/agenda.php#item373054

 

Инфостарт:

Начиная с 2012 года мы успешно провели четыре конференции, на каждой из которых собиралось более 500 участников. Пройдя сложный путь экспериментов, мы нашли, с нашей точки зрения, идеальный формат для мероприятия, передачи новых знаний, последующей дискуссии и обмена опытом. Но нет предела совершенству! Мы поняли, что главное для нас — объединять людей. Мы должны способствовать установлению связей между участниками конференции, чтобы люди не теряли контакт, объединялись в команды, создавали новые проекты, продолжали общаться и обмениваться опытом после мероприятия. Поэтому наша конференция приобрела новую концепцию, которая отразилась в названии — INFOSTART EVENT 2015 CONNECTION.

 

 

Мероприятие:

http://event.infostart.ru/2015/

Один из способов вызвать функцию 1С из JavaScript для обычных и управляемых форм

image_pdfimage_print

Оригинал статьи:
http://x1c.ru/kak_visvat_1c_is_js/

Это статья для Специалистов по 1С.

Иногда к нам обращаются с вопросом по поводу того, как из JavaScript’а в ПолеHTMLДокумента вызвать функцию 1С.

В этой статье мы приведем сразу 2 примера:

  • вызов функции JavaScript в ПолеHTMLДокумента из 1С
  • вызов функции 1С из JavaScript в ПолеHTMLДокумента

В первом случае функция вызывается достаточно просто:

ЭтаФорма.Элементы.хНТМЛ.Документ.parentWindow.MyFunction ();

Второй случай чуть сложнее. Суть его реализации заключается в следующем:

  1. Объявить экспортную функцию в форме (с ключевым словом Экспорт).
  2. Передать ссылку на форму (обычную или управляемую) в переменную JavaScript.
  3. В нужный момент вызвать из JavaScript нашу экспортную функцию как обычный метод формы.

Дальше приведен код для управляемой формы, а для обычной формы код выглядит аналогично.

 

Формат 1C v8msg

image_pdfimage_print

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

Если Вы встретили в 1С формат v8msg

знайте это формат данных распределенных данных 1С.

Чтение таких данных осуществляется так:

Запись может осуществляться так:

При чем ПланамиОбмена можно пользоваться совместно и отдельно от выгрузки и загрузки.
При чтение: ПланыОбмена.УдалитьРегистрациюИзменений(ЧтениеСообщения.Отправитель, ЧтениеСообщения.НомерПринятого);

Раскрасить ТабличнуюЧасть в 1С

image_pdfimage_print

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

В простых формах мы перехватывали событие ПриПолученииДанных и изменяли оформление:

 

В Управляемых формах есть свойство формы УсловноеОформление. Можно его правильно настроить
http://infostart.ru/public/181336/

или использовать программно: