Обход группировок в СКД

image_pdfimage_print

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

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

Смотрим классический код запуска СКД:

Последняя строка нам автоматически выводит все данные в наш табличный документ. А нам надо вмешаться в этот процесс. Поэтому заменяем последнюю строку классическим кодом формирования:

И теперь как настоящие маньяки готовим скальпель. У ЭлементРезультатаКомпоновкиДанных есть массив ЗначенияПараметров с характерными названиями П1, П2, П3.. (первое поле в выводе и т.д.). Через одну правда проскакивают идентификаторы СКД, но мы их рассматривать не будем. Так как же мы может выбрать все группировки верхнего уровня?

При выводе проверяет тип выводимого поля и если он совпадает с заданным в группировке, значит это нужная группировка:

Если группировок несколько, то их выбираем также

 

 

 

 

 

 

 

Что нам стоит код 1С раскрасить?

image_pdfimage_print

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

Открыв окно в конвертации 3.0 на алгоритм 1С, был страшно разочарован. Сколько лет управляемых приложениям в 1С, а подветки кода до сих пор нет. Печалька. В своих разработках (http://widget.sikuda.ru) тоже очень сильно не хватает подсветки кода. А между тем в интернете много хорошо развитых и поддерживаемых открытых проектов не только для выделения синтаксиса, но и полноценные редакторы текста. почему бы нам не взять один из них и написать для языка 1С?

На infostart был найден подобный проект (выделение синтаксиса запросов 1С) и реализация его очень понравилась: http://infostart.ru/public/515572/. Спасибо Василию.

Приступаем: Рассмотрим проект CodeMirror(https://codemirror.net/index.html) поподробнее. А именно пока только его ту часть, что отвечает за раскраску кода. Она сделана в проекте для отдельного языка в виде ‘languge mode’. Специфики разбора выражения конкретного языка. А конкретные цвета для ключевых выражений, переменных и проч. задается в ‘CSS theming system’ . Очень гибко и красиво. Просто идеально, чтобы добавить язык 1С.

Тестирование реализации можно сделать здесь: http://sikuda.ru/1c/CodeMirror/

Пишите все Ваши замечания и предложения и особенно неточности подсветки по сравнению с конфигуратором. Детские ошибки преодолены. Всем заранее спасибо.

Обработку для 1С можно скачать http://infostart.ru/public/569016/

 

MD5 в 1С

image_pdfimage_print

Оригинал

MD5 в 1С

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

Устанавливаем 1С с помощью групповых политик

image_pdfimage_print

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

Оригинал http://infostart.ru/public/296227/

Открываем редактор GP. Создаем новую политику. Открываем её для редактирования. Переходим в раздел «Конфигурация компьютера» — «Установка программ».

Создаем новый пакет. Выбираем файл 1CEnterprise 8.2.msi, путь до файла необходимо указывать через сетевое окружение \\SRV\…..\1CEnterprise 8.msi, метод развертывания выбираем — особый, для того чтобы можно было внести модификации.

После создания пакета откроется окно свойств пакета.
Необходимо перейти на закладку «Модификации»  и добавить файл трансформации для русского языка называется 1049.mst и файл трансформации Client.mst.

Управляемое приложение. Внешняя обработка. Заполнение объекта

image_pdfimage_print

Источник доработок http://infostart.ru/public/84119/

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

Код в модуле обработки:

И пустой форме одна экспортная функция:

И если Вы заполняете не стандартный документ или справочник, не забудьте выбрать его в Общее — Определяемые типы — ОбъектСДополнительнымиКомандами

Работа с 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 диалог сохранения выглядит так

Сохранение файла в Internet Explorer

 

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

SaveFFnoModal

 

К докладу «Создание виджетов(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С и в современных браузерах: