Экспорт журнала регистрации. Набор инструментов (приложения + исходный код)

Публикация № 1240376

Администрирование - Администрирование данных 1С - Журнал регистрации

журнал регистрации экспорт ClickHouse ElasticSearch SQLServer PostgreSQL. MySQL логи

Набор инструментов для экспорта данных журнала регистрации во внешние хранилища для Windows и Linux (SQL Server, PostgreSQL, MySQL). Готовые приложения и исходный код.

Что в коробке

В прошлой статье "Работа с журналом регистрации. Выходим за границы платформы" были представлены библиотеки на базе .NET Core для чтения файлов данных журнала регистрации, а также экспорта их во внешние хранилища (на текущий момент это базы SQL Server, PostgreSQL, MySQL, ClickHouse, индексы ElasticSearch). Основными причинами для экспорта данных могут быть:

  • Низкая производительность стандартного журнала регистрации для Ваших задач: мониторинга работы системы, рассылок по ошибкам, различного рода отчеты и многое другое. Сценариев использования журнала регистрации может быть великое множество.
  • Необходимость хранить и бэкапировать журнал регистрации в удобном, единообразном виде с возможностью бэкапирования и быстрого развертывания.
  • Влияние на стабильность работы использование стандартного журнала регистрации, вплоть до зависания рабочих процессов или менеджера кластера 1С.
  • Другие причины. Если их перечислять, то вся публикация будет об этом.

Если в прошлый раз были представлены библиотеки, которые Вы можете использовать в своих разработках на платформе .NET Core, то сейчас будут выложены готовые приложения. Их Вы можете скачать и использовать на свое усмотрение, и под свои задачи. Доступны как подготовленные для использования сборки, так и весь проект исходных кодов. Все приложения также базируются на свободных библиотеках:

Поехали дальше!

Перед началом

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

  • Добавление поддержки экспорта в MongoDB
  • Добавление поддержки экспорта в CosmosDB (да, есть такая, если кто не знал)
  • Создание LINQ-провайдера для файлов данных журнала регистрации
  • Библиотека для диагностики процесса реструктуризации и динамического обновления
  • И многие, многие другие идеи.

Кроме этого Вы можете поддержать разработку отправкой pull-request'ов, создание подробных Issue в репозиториях открытых библиотек и любой другой посильно и полезной, на Ваш взгляд, помощью. Не стесняйтесь писать в личные сообщения или на электронную почту.

А теперь к делу.

Требования

Для работы приложений требуется установленный .NET Core 3.1.

Работа библиотек тестировалась со старым текстовым форматом (*.LGF) и новым SQLite (*.LGD) для платформ от версии 8.3.5 до 8.3.16 включительно).

Под Windows и Linux (в основном Ubuntu последний версий и CentOS).

Сценарии использования

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

GUI-приложение

Решение будет привычным для тех, кто не любит консоль :). Классическое приложение для экспорта данных журнала регистрации. Работа с ним проста:

  • В поле "Каталог журнала" указываем путь к файлу журнала регистрации, который необходимо выгрузить в базу данных.
  • Настраиваем информационную систему:
    • Указываем имя. Будет создана запись для указанной информационной системы и все записи журнале будут загружены от ее имени. Таким образом, в базе можно хранить журналы регистрации разных информационных баз, разделяя их по системам.
    • Указываем описание. Это справочная информация об информационной системе.
  • Выбираем тип хранилища, куда будут выгружаться данные. Пока доступны только SQL Server и PostgreSQL.
  • Указываем размер порции данных для выгрузки. По умолчанию это 10000 записей. Именно столько за одну итерацию будет выгружено из журнала в хранилище. Можно подобрать его под свои ресурсы, учитывая правило: чем больше порция, тем больше требуется аппаратных ресурсов приложению, но при этом скорость выгрузки может быть значительно ускорена. Если порция слишком маленькая, то время на получение каждой этой порции может занимать основную часть времени экспорта данных, снижая производительность. Но при этом и аппаратных ресурсов приложение будет использовать меньше. Везде нужен баланс.
  • Поддерживается все возможности библиотеки, кроме экспорта в ElasticSearch.

Выглядит это вот так.

При открытии / закрытии приложения настройки сохраняются, поэтому не рекомендую хранить логины и пароли в строке подключения. Будьте бдительны :). NTLM наше все.

При первом подключении приложение попытается создать базу данных для хранения записей журнала. База содержит все основные таблицы для хранения данных журнала, а также таблицу информационных систем и историю обработанных файлов данных. Базы схожи как для SQL Server, так и для PostgreSQL.

 
 База данных для хранения данных журналов регистрации (SQL Server)

Приложение только для Windows и требует установки .NET Core 3.1. Может использоваться для ручной выгрузки данных из файлов журнала регистрации. Например, если Вы их ранее бэкапировали, а теперь желаете перевести в другие хранилище. Для регулярной выгрузки использовать крайне неудобно.

Консоль наше все

Консольное приложение - это более универсальное решение, которое можно использовать как для ручного экспорта данных, так и для автоматического режима запуска по расписанию. Принцип работы такой же как и у приложения выше, за исключением некоторых доп. параметров. Для запуска приложения необходимо создать файл конфигурации, путь к которому будет передан в качестве параметра запуска. Также можно создать файл "appsettings.json" в каталоге приложения. В последнем случае приложение найдет его автоматически. Вот пример файла конфигурации.

{
  "StorageType": "SQLServer",
  "ConnectionStrings": {
    "EventLogDatabase": "Data Source=<ВашСервер>;Initial Catalog=<ИмяБазыДанных>;Integrated Security=True"
  },
  "InformationSystem": {
    "Name": "Бухгалтерия 3.0",
    "Description": "Информационная база для бухгалтерского учета."
  },
  "EventLog": {
    "SourcePath": "C:\\Program Files\\1cv8\\srvinfo\\reg_1541\\0c00509b-1c70-4e5c-8bd4-fe01221561a4\\1Cv8Log\\1Cv8.lgd",
    "UseWatchMode": true,
    "DelayMs": 60000,
    "Portion": 10000,
    "TimeZone": "" // Часовой пояс. Если пустой - то локальный часовой пояс
  }
}

Для ElasticSearch настройки несколько отличаются

 
 Для ElasticSearch
{
  "StorageType": "SQLServer",
  "ConnectionStrings": {
    "EventLogDatabase": "<Строка подключения>"
  },
  "ElasticSearch": {
    "Node": "<Адрес для ElasticSearch>",
    "IndexName": "<Имя индекса>",
    "MaximumRetries": 2,
    "MaxRetryTimeout": 60,
    "IndexSeparationPeriod": "Hour"
  },
  "InformationSystem": {
    "Name": "Имя информационной системы",
    "Description": "Произвольное описание"
  },
  "EventLog": {
    "SourcePath": "Путь к каталогу журнала регистрации",
    "UseWatchMode": false,
    "DelayMs": 100,
    "Portion": 80000,
    "TimeZone": "Часовой пояс. Если пустой - то локальный часовой пояс"
  }
}

 

Подробнее о каждой настройке:

  • StorageType - тип хранилища для экспорта данных. Доступные значения: SQLServer, PostgreSQL и MySQL, ElasticSearch, ClickHouse.
  • ConnectionStrings - раздел с настройками подключения к хранилищу.
    • EventLogDatabase - строка подключения к базе данных для экспорта.
  • InformationSystem - настройки информационной системы, журнал регистрации которой будет выгружаться.
    • Name - имя информационной системы.
    • Description - описание информационной системы.
  • EventLog - настройки обработки данных журнала регистрации.
    • SourcePath - путь к каталогу с файлами данных журнала регистрации. Может быть указан как каталог, так и конкретный файл журнала (LGF или LGD).
    • UseWatchMode - булево. False - означает, что при запуске приложение выгрузит все данные, которые удастся получить и после завершит работу. True - выгрузка данных будет выполняться порциями и с некоторой периодичностью. После выгрузки всех данных приложение не завершит работу, а будет ожидать появления новых данных в журнале регистрации.
    • DelayMs - время в миллисекундах, с которым приложение будет проверять наличие новых данных для экспорта. Используется, если параметр UseWatchMode  установлен в True.
    • Portion - максимальное количество событий, которое выгружается за одну итерацию обработки данных журнала регистрации.
    • TimeZone - часовой пояс читаемых логов для корректных проверок и сравнения дат.
  • ElasticSearch - раздел с настройками для ElasticSearch
    • Node - адрес узла
    • MaximumRetries - количество попыток отправки запроса
    • MaxRetryTimeout - количество попыток повторного подключения при таймауте.
    • IndexSeparationPeriod - принцип разделения индексов по периоду
    • IndexName - имя индекса

Кроме этого, консольное приложение может использоваться как для Windows, так и для Linux. Оно полностью переносимое. Вот так выглядит работа приложения.

Это был запуск без явного указания файла конфигурации, т.к. "appsettings.json" находился в каталоге самого приложения. Вот то же самое под Linux (в этом конкретном случае под Ubuntu 20.04 с установленным .NET Core 3.1).

Скорость экспорта ниже в последнем случае только потому, что Ubuntu запущена на виртуальной машине с весьма ограниченными ресурсами. Стоит отметить, что приложение позволяет и под Linux выполнять экспорт во все доступные хранилища (как SQL Server, так и PostgreSQL). На анимации выше как-раз процесс выгрузки данных в базу SQL Server из-под Ubuntu. Как уже говорилось ранее, база данных на PostgreSQL почти такая же по структуре как и для SQL Server. Файл конфигурации экспорта данных также очень похож на то, что делается для экспорта в базу SQL Server.

 
 База данных для хранения данных журналов регистрации (PostgreSQL)
 
 Пример файла конфигурации для экспорта в PostgreSQL

Таким образом, можно с помощью приложения запускать экспорт данных журнала регистрации вручную, так и автоматизировано скриптами. Не важно Linux это или Windows, главное корректно создать файл конфигурации и указать приложению на его использование. Если нужно запускать приложение с разными файлами конфигурации, то просто передавайте путь к ним первым параметром.

E:\YY.EventLogManager\YY.EventLogManager.ConsoleApplication.exe -config "C:\Configs\appsettings-buh3.json"
E:\YY.EventLogManager\YY.EventLogManager.ConsoleApplication.exe -config "C:\Configs\appsettings-ut11.json"

Перейдем к следующему сценарию использованию.

Служба

Все мы знакомы со службами Windows. Было бы логично использовать службу, если экспорт журнала регистрации будет вестись на постоянной основе. Это позволит иметь во внешнем хранилище журнал регистрации, максимально приближенный по состоянию к журналу самой 1С. Сейчас рассмотрим такой сценарий. При этом создадим службу как в Windows, так и демон в Linux. Да, да. В Windows это служба, а в Linux это демон :)

Начнем со службы Windows.

На стороне Windows

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

Допустим, содержимое архива со службой было распаковано в каталог "E:\YY.EventLogManager" (это просто для примера). После этого создаем файл конфигурации экспорта аналогичный тем, что были в примерах выше.

{
  "StorageType": "SQLServer",
  "ConnectionStrings": {
    "EventLogDatabase": "Data Source=<ВашСервер>;Initial Catalog=<ИмяБазыДанных>;Integrated Security=True"
  },
  "InformationSystem": {
    "Name": "Бухгалтерия 3.0",
    "Description": "Информационная база для бухгалтерского учета."
  },
  "EventLog": {
    "SourcePath": "C:\\Program Files\\1cv8\\srvinfo\\reg_1541\\0c00509b-1c70-4e5c-8bd4-fe01221561a4\\1Cv8Log\\1Cv8.lgd",
    "UseWatchMode": true,
    "DelayMs": 60000,
    "Portion": 10000
  }
}

По этим настройкам экспорт данных журнала регистрации будет выполняться в базу данных SQL Server в режиме ожидания изменений. Каждые 60 секунд служба будет проверять наличие изменений и отправлять их по 10000 событий за раз. Поместим этот файл конфигурации в тот же каталог "E:\YY.EventLogManager".

Теперь нужно зарегистрировать службу. Тут важный момент - это необходимость при регистрации службы указать в качестве параметра запуска путь к созданному файл конфигурации. С помощью любимого PowerShell (никто не запрещает использовать старый добрый cmd.exe или, о святые угодники на мопеде, OneScript) зарегистрируем службу:

sc.exe create YY.EventLogManager.Service BinPath="E:\YY.EventLogManager\YY.EventLogManager.Service.exe --config ""E:\YY.EventLogManager\appsettings.json""" start=auto
sc.exe description YY.EventLogManager.Service "Экспорт данных журнала регистрации во внешнее хранилище (SQLServer, база БУХ 3.0)"

Проверим результат, открыв оснастку управления службами в "Панель управления - Администрирование - Службы" (примерно такой путь, но зависит от версии Windows).

Грандиозный успех! Остается только запустить службу и проверить ее работу. Т.к. пользовательского интерфейса нет, то единственный вариант диагностики - это изучение логов. Каталог с логами "Logs" создается в том же каталоге, где находится файл конфигурации. В нашем случае это "E:\YY.EventLogManager". В примере все прошло хорошо (на то он и пример) и в файле с логами можно увидеть следующее:

 
 Содержимое файла логов службы

Инициализация настроек выполнена успешна и начата процедура экспорта данных. Все ОК.

Но могут быть ситуации, когда сначала нужно будет настроить права доступа к каталогу с данными журнала регистрации, настроить доступ к базе данных, фаерволы, другие настройки безопасности, установить .NET Core 3.1 и так далее. Но это уже другая история, да и на что нам нужны еще сисадмины :).

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

На стороне Linux

Но как создать службу, или демона, в Linux? Рассмотрим пример на дистрибутиве Ubuntu 20.04 с уже установленным .NET Core 3.1. Опять же, распаковываем соответствующую сборку в каталог. Например, вот в такой:

/home/<YourUserName>/Apps/EventLogExportDaemon

Далее уже в который раз создаем файл конфигурации экспорта. Пусть в этот раз экспорт будет выполняться в базу PostgreSQL, не зря же мы в Linux пришли.

A279;{
  "StorageType": "PostgreSQL",
  "ConnectionStrings": {
    "EventLogDatabase": "Host=<СерверБазДанных>;Port=5432;Database=<ИмяБазыДляВыгрузки>;Username=<ИмяПользователя>;Password=<Пароль>"
  },
  "InformationSystem": {
    "Name": "EventLogFromLinux",
    "Description": "Тестовая выгрузка из Linux с помощью демона."
  },
  "EventLog": {
    "SourcePath": "/home/usr1cv8/.1cv8/1C/1cv8/reg_1541/231724bb-bb58-402d-ac21-9b61e7be1ae9/1Cv8Log/1Cv8.lgf",
    "UseWatchMode": true,
    "DelayMs": 30000,
    "Portion": 1
  }
}

Пусть Вас не смущает настройка выгрузки 1 события раз в 30 секунд. Это просто для теста. Файл конфигурации сохраним в тот же каталог, где находиться приложение.

Далее проверим запуск. Выполним команду (из-под sudo для упрощения примера, иначе пришлось бы настраивать права и др.):

sudo dotnet /home/<YourUserName>/Apps/EventLogExportDaemon/YY.EventLogManager.Daemon.dll

--config /home/<YourUserName>/Apps/EventLogExportDaemon/appsettings.json

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

 
 Пример логов службы в Linux

Как мы видим, ручной запуск показал, что файл конфигурации корректен и приложение работает. Пойдем дальше и зарегистрируем приложение в качестве демона в системе. Вместо того, чтобы описать каждый шаг этой процедуры я предложу отличную статью по этому поводу: "How to install a .NET Core service on linux server". В разделе "Create a systemd service" описаны пару простых шагов для регистрации демона в системе и управления им. Все просто и, думаю, Вас ничего не удивит, раз уж Вы дочитали до этой строки и зашли так далеко :).

Немного про диагностику ошибок

Экспорт журнала регистрации во внешнее хранилище требует сопровождения и это нормально. Не важно как эта выгрузка реализовано, даже если средствами платформы 1С, все равно нужен будет контроль работы.

Для всех предложенных решений реализовано ведение логов. Для консольного и GUI-приложения создается каталог "Logs" в текущем рабочем каталоге. Там сохраняется вся необходимая информация о происходящем и именно она может помочь в поиске причин ошибок или нерабочей конфигурации экспорта. Для служб (Windows и Linux) каталог с логами находится рядом с файлом конфигурации экспорта, который передается в качестве параметра запуска.

В любом случае, при возникновении проблем в работе приложений - Вы всегда можете написать мне на почту. Если же Вы нашли проблему в работе одной из свободных библиотек, то не стесняйтесь создавать Issue или Pull-request в соответствующем репозитории.

По мере возможности будут выпускаться обновления как самих библиотек, так и приложений из этой публикации.

 
 Как лучше всего присылать информацию об ошибках или пожеланиях на доработку

Немного 1С

Небольшой бонус ко всем приложениям - это отчет для 1С, который работаем с базами журнала регистрации через внешний источник данных. Вся мощь СКД в Вашем распоряжении для получения данных и их анализа. И, да. Теперь через внешний источник можно работать с журналом регистрации простой консолью запросов. Как Вам такое?

 
 Работа с журналом регистрации в отчете на СКД
 
 Работа с журналом регистрации запросами 1С

Узнаете консоль запросов? Это одно из лучших решений в своем роде и не устану его рекламировать.

Управляемая консоль запросов, отчетов 3.8.8 (расширение, внешняя обработка)

Автору консоли еще раз огромное спасибо за работу!

P.S. На анимации Вы можете видеть, как с помощью стандартного 1С'ного запроса можно получить идентификатор объекта метаданных. Круто, не правда ли? :)

 
 Внешний источник данных журнала регистрации

Отчет и внешний источник данных приложены к публикации в виде файла конфигурации. Это не готовое решение на все времена, но оно может решить большинство простых задач по работе с журналом регистрации, выгруженном во внешнюю базу данных. Подходит как для SQL Server, так и для PostgreSQL. Главное корректно настроить строку подключения.

При желании Вы можете часть функционала вывести во внешние отчеты или вообще в расширение.

Это еще не конец

Вы могли дочитать до конца и задаться вопросом: если библиотеки на GitHub бесплатные и распространяются под лицензией MIT, то зачем мне скачивать эти разработки за StartMoney? Ответ прост: для поддержки проекта. Все полученные средства будут направлены на эксперименты с платформой, на создание других библиотек, оплату мощностей в облаках и многое другое.

Приложения в этой публикации все еще не относятся к готовым решениям уровня enterprise, но могут быть полезны для решения некоторых задач. Также Вы можете самостоятельно дорабатывать предложенные решения, использовать свободные библиотеки.

Вы абсолютно не обязаны скачивать здесь что-либо за SM. Вместо этого можете создать свое решение с использованием библиотек или же вообще создать все с нуля.

В будущем будут совершенствоваться библиотеки для работы с журналом регистрации, о чем Вы можете прочитать в разделе TODO к каждой библиотеке на GitHub. Кроме этого будут выложены в общий доступ некоторые другие инструменты:

  • Библиотека для получения диагностической информации работы платформы 1С
  • Чтение и экспорт технологического журнала
  • Анализатор и диагностика реструктуризации информационной базы
  • Некоторые решения за рамками желтой платформы :)
  • И многое другое.

Как быстро это будет происходить зависит от Вас.

P.S. Подписывайтесь на канал, ставьте лайки Linux, оставляйте комментарии issues и пишите на почту или в личку.

 
 История изменений

01.12.2020 - Добавлена поддержка ClickHouse, ElasticSearch и улучшена стабильность и производительность

  • Добавлена поддержка экспорта в базу ClickHouse
  • Добавлена поддержка экспорта в ElasticSearch
  • Исправлены ошибки при чтении данных при высокой интенсивности появления событий
  • Улучшена производительность
  • Добавлена настройка часового пояса (по умолчанию используется локальный) для улучшения экспорта из журнала регистрации из других часовых поясов
  • Переход на свежие версии библиотек, используемых в приложении
  • Расширены настройки консольного приложения в части указания каталога хранения логов и интерактивного взаимодействия

13.08.2020 - Добавлена поддержка MySQL. Исправлены некоторые ошибки и улучшена производительность

  • Добавлена поддержка экспорта в базу данных на MySQL
  • Улучшены механизмы кэширования для ускорения процесса экспорта данных
  • Улучшены структура таблиц и индексов баз данных для оптимизации производительности.
  • Для ссылочных полей добавлено новое поле "Presentation", позволяющее получить представление ссылки в более привычном виде (актуально для событий, уровня события, статуса транзакции).
  • Исправлена ошибка экспорта, если длина имени события больше 250 символов. Теперь длина имени ссылочных данных не важна.
  • Исправлена ошибка экспорта LGD-формата, когда не заполнялось поле DataUUID.
  • Множество других внутренних улучшений и изменений, с которыми можно ознакомиться в истории изменений проектов:
  • Подготовительные изменения для следующих функций (добавление поддержки ElasticSearch, фильтров выгружаемых событий и другого.

26.05.2020 - Добавлены исходные коды всех приложений и изменена цена для загрузки.

25.05.2020 - Выпущена основная публикация

Другие ссылки

Авторские разработки

 
 Другие разработки

 

Скачать файлы

Наименование Файл Версия Размер
Исходный код всех приложений. Проект Visual Studio 2019

.zip 125,56Kb
4
.zip 1.0.0.2 125,56Kb 4 Скачать
Консольное приложение для экспорта журнала регистрации (Windows, Linux)

.zip 21,91Mb
3
.zip 1.0.0.2 21,91Mb 3 Скачать
Графическое приложения для экспорта журнала регистрации (только для Windows)

.zip 21,15Mb
9
.zip 1.0.0.2 21,15Mb 9 Скачать
Служба Windows для экспорта журнала регистрации (только Windows)

.zip 21,97Mb
10
.zip 1.0.0.2 21,97Mb 10 Скачать
Демон (служба) для Linux (systemd) (только Linux)

.zip 21,92Mb
2
.zip 1.0.0.1 21,92Mb 2 Скачать
Внешний источник данных журнала регистрации + отчет

.cf 105,51Kb
10
.cf 1.0.0.0 105,51Kb 10 Скачать

Специальные предложения

Автор запретил комментарии

См. также

FormCodeGenerator Программная доработка форм. Часть 2 (Режим работы "Режим сравнения форм") на примере ERP 2.5 Промо

Практика программирования Адаптация типовых решений Прочие инструменты разработчика v8 1cv8.cf Абонемент ($m)

Данная публикация является продолжением описания функционирования обработки "FormCodeGenerator " в режиме сравнения форм и генерирования кода на основании сравнения. Подходит для перевода уже доработанных форм с интерактивной доработки на программную. Данный режим работы обработки снизит издержки при дальнейших обновлениях конфигураций.

5 стартмани

21.12.2020    2945    14    huxuxuya    11    

Универсальный "сравниватель" объектов

Прочие инструменты разработчика v8 1cv8.cf Абонемент ($m)

Сравнение реквизитов и табличных частей двух объектов 1С (справочники, документы), чтобы увидеть разницу в значениях.

1 стартмани

03.03.2021    322    0    pyrkin_vanya    5    

Вспомогательные таблицы - универсальный инструмент хранения таблиц любой структуры (константы, параметры обработок и т.д.)

Прочие инструменты разработчика v8 Россия Абонемент ($m)

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

1 стартмани

24.02.2021    407    0    xl_yaz    3    

Генератор кода схемы компоновки данных (СКД)

Прочие инструменты разработчика v8 v8::СКД 1cv8.cf Абонемент ($m)

Формирование кода для программного создания схемы компоновки данных (СКД)

1 стартмани

04.02.2021    3304    37    Sergspectr    28    

Управляемая консоль запросов, отчетов 3.8.9 (расширение, внешняя обработка) Промо

Консоль запросов v8 v8::УФ v8::Запросы v8::СКД 1cv8.cf Абонемент ($m)

Работа с запросом и СКД, Полная поддержка пакетных запросов, временных таблиц, Сравнение результатов, текстов, Разбор структуры запроса в виде дерева, Анализ плана запроса, Групповая обработка

5 стартмани

14.08.2018    104148    2657    Evg-Lylyk    710    

Пример работы с файлами odt в клиент-серверной модели работы

Прочие инструменты разработчика Практика программирования v8 1cv8.cf Абонемент ($m)

Возникла задача, реализовать печатные формы из шаблонов в формате ODT (Open Office). Особенность задачи заключалась в том, что шаблоны хранятся в виде файлов на сервере. Печать должна выполняться через веб-клиент. По выбору пользователя заполненный шаблон выводится либо в ODT либо PDF. Столкнулся с дефицитом информации по этой теме. По этой причине в самой статье опишу подход к решению задачи и особенности, связанные с работой на сервере и веб-клиенте. Прикладываю обработку, в которой все реализовано. Вам останется только отредактировать 2 функции, в которых указан список параметров шаблона. Остальной код универсальный и не зависит от конфигурации. Данная доработка выполнялась в самописной конфигурации и не требует наличия БСП. Сразу напишу, что размышления о том, что можно поместить шаблон в конфигурацию и выполнить всё на клиенте совсем не уместны. Разработка велась на платформе 8.3.16, на более ранних версиях также должна работать.

1 стартмани

01.02.2021    1036    2    biimmap    1    

Консоль текстов модулей для управляемых форм

Прочие инструменты разработчика v8 v8::УФ 1cv8.cf Абонемент ($m)

Обработка предназначена для выполнения произвольного кода в режиме 1С:Предприятие для управляемых форм. Поддерживаются: конструктор запросов, расцветка кода, синтаксические подсказки, параметры, дерево текстов и запись в файл. Минимальная версия платформы - 8.3.14.1565.

1 стартмани

26.01.2021    1148    15    Reaper_1C    2    

Сравнение функций/процедур из расширения с функциями/процедурами из конфигурации

Прочие инструменты разработчика v8::УФ 1cv8.cf Абонемент ($m)

Обработка облегчает обновление функций/процедур в расширении, которые используют аннотацию &Вместо.

1 стартмани

18.01.2021    851    1    Wilka    0    

Менеджер буфера обмена с поддержкой 1С - ClipAngel 1.94 Промо

Сервисные утилиты Прочие инструменты разработчика Абонемент ($m)

Этот помощник запоминает все, что вы копируете в буфер обмена, и позволяет легко и быстро найти в истории нужную информацию и вставить ее в любое окно.

1 стартмани

17.01.2017    36221    74    tormozit    231    

DT2CF - Экстрактор конфигурации из дампа информационной базы

Сервисные утилиты Прочие инструменты разработчика v8 Абонемент ($m)

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

10 стартмани

21.12.2020    1459    3    SerVer1C    5    

FormCodeGenerator Программная доработка форм. Часть 1 (Режим работы "Палитра")

Практика программирования Прочие инструменты разработчика v8 1cv8.cf Абонемент ($m)

Данная публикация является описанием функционирования обработки "FormCodeGenerator " в режиме генерирования кода "на лету", без особых заморочек, данный режим идеально подходит для того что бы запустить, потыкать и забыть :)

14.12.2020    3568    2    huxuxuya    9    

Метаданные и их идентификаторы

Структура метаданных БСП (Библиотека стандартных подсистем) v8 Бесплатно (free)

Идентификаторы (GUID'ы) метаданных конфигурации. Немного о том, как их получить.

05.12.2020    5046    YPermitin    23    

История формирования отчетов (расширение для типовых конфигураций) Промо

Журнал регистрации v8::УФ v8::СКД ДО ERP2 БП3.0 УТ11 ЗУП3.x Абонемент ($m)

Подсистема для хранения, использования и анализа истории формирования отчетов пользователями

5 стартмани

28.11.2017    16000    20    SeiOkami    2    

Контекст всегда важен. История проблем производительности

Производительность и оптимизация (HighLoad) Бесплатно (free)

Небольшая история о проблемах производительности из-за нехватки процессорных мощностей. А также описание основных показателей работы CPU.

26.11.2020    5252    YPermitin    18    

Шаблон расширения с функцией сохранения настроек

Прочие инструменты разработчика v8 1cv8.cf Абонемент ($m)

Удобный механизм для быстрого создания сохраняемых настроек в расширении.

1 стартмани

20.11.2020    620    0    pm74    1    

Расширение для создания собственных подсистем БСП

БСП (Библиотека стандартных подсистем) Прочие инструменты разработчика v8 1cv8.cf Россия Абонемент ($m)

В этой статье поделюсь некоторыми изысканиями о внутреннем устройстве стандартной подсистемы "Обновление версии ИБ" и расскажу, как разработать свою подсистему, в которой будет работать отчёт с описанием изменений.

1 стартмани

20.11.2020    4035    8    stas_ganiev    4    

Управление пользователями, редакция 3.0 Промо

Журнал регистрации Роли и права v8 1cv8.cf Абонемент ($m)

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

10 стартмани

16.09.2015    26890    29    cyberintegration    13    

Подготовка к 1С:Совместимо. Инструментарий в помощь программисту

Прочие инструменты разработчика v8 1cv8.cf Россия Абонемент ($m)

Инструментарий в помощь программисту для подготовки конфигурации к сертификации 1С:Совместимо.

1 стартмани

16.11.2020    1250    2    BrainAttack    0    

БСП - рабочие примеры асинхронного запуска функций и процедур

Практика программирования БСП (Библиотека стандартных подсистем) Прочие инструменты разработчика v8 1cv8.cf Абонемент ($m)

В данной публикации я привожу рабочие примеры асинхронного использования функций и процедур конфигурации на БСП

2 стартмани

02.11.2020    4829    17    quazare    2    

Работа с формулой-шаблоном

Прочие инструменты разработчика v8 1cv8.cf Абонемент ($m)

"Работа с формулой-шаблоном" - внешняя обработка, в которой для "Идентификаторы объектов метаданных"/"Идентификаторы объектов расширений" рекурсивно строится дерево реквизитов/стандартных реквизитов, дополнительных реквизитов/сведений и можно с их помощью, используя операторов и функций слева с помощью перетаскивания мышью, построить формулу, которую потом применять к элементам справочника/документа и т.д. (например - задавать шаблоны наименований, имен файлов и т.п).

3 стартмани

02.11.2020    1279    3    kn    0    

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

Информационная безопасность Журнал регистрации v8 1cv8.cf Абонемент ($m)

Включает (выключает) регистрацию событий отказа доступа в журнале регистрации.

1 стартмани

12.01.2011    36897    365    nexts    32    

Шрифт для программного кода на русском - Hack 1C

Прочие инструменты разработчика Абонемент ($m)

Случалось ли вам долго и мучительно искать, почему код работает неправильно, а оказалось, что вместо кириллической буквы "С" по ошибке была введена латинская "C"? Этот шрифт позволяет быстро отличать такие буквы и букву "О" от цифры "0".

1 стартмани

13.10.2020    4627    20    tormozit    61    

История данных (Версионирование данных). Обычные и управляемые формы. Механизм платформы 1С

Журнал регистрации Структура метаданных Расширения v8 v8::УФ 1cv8.cf Абонемент ($m)

История данных - специальный механизм платформы 1С, который позволяет хранить в базе данных данные объектов конфигурации.

1 стартмани

30.09.2020    2543    20    yuryshestakov    0    

Просмотр структуры базы в СУБД, в том числе расширений

Структура метаданных Расширения Прочие инструменты разработчика v8 1cv8.cf Абонемент ($m)

Структура таблиц базы данных с учётом расширений.

1 стартмани

29.09.2020    4517    44    Yashazz    8    

Статистика работы пользователя Промо

Журнал регистрации Управленческие Статистика базы данных Учет рабочего времени Учет рабочего времени v8 1cv8.cf Абонемент ($m)

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

3 стартмани

17.07.2011    48341    419    imozg    63    

Генератор внешних печатных форм

Инструментарий разработчика БСП (Библиотека стандартных подсистем) Консоль запросов Прочие инструменты разработчика Универсальные печатные формы v8 1cv8.cf Абонемент ($m)

Генератор печатных форм - инструмент для создания внешних печатных форм в режиме предприятия с минимальным написанием кода

3 стартмани

18.09.2020    2791    16    andy_zhav    7    

Чтение файлов с FTP

Прочие инструменты разработчика Сервисные утилиты Файловые протоколы обмена, FTP Россия Абонемент ($m)

Внешний EXE-файл, который при запуске переносит файлы из указанной папки FTP на локальный диск

1 стартмани

09.09.2020    1894    3    ah7777777    8    

Отладка расчета себестоимости в ERP - просмотр изменений временных таблиц

Практика программирования Закрытие периода Прочие инструменты разработчика v8::БУ ERP2 БУ Абонемент ($m)

Как уследить за изменениями в сотне временных таблиц на различных этапах выполнения расчета себестоимости. Тестировалось на 1С:ERP Агропромышленный комплекс 2 (2.4.12.75)

1 стартмани

09.09.2020    3424    10    doom2good    0    

Просмотр документов, измененных задним числом Промо

Журнал регистрации v8 УТ10 Россия Абонемент ($m)

Редактирование документов в 1С, проведенных задним числом, бывает необходимо для исправления ошибок в учете, но также является распространенным способом воровства в магазине. Поэтому важно максимально ограничить работу задним числом.

2 стартмани

12.08.2015    29271    53    ПерваяСистема    17    

Разбор областей и параметров печатной формы MXL и генерация кода заполнения. Обработка

Прочие инструменты разработчика v8 1cv8.cf Абонемент ($m)

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

1 стартмани

05.09.2020    2834    6    Ivon    0    

Полнотекстовый поиск в 1С. №2 Самое основное для разработчика

Поиск данных v8 1cv8.cf Бесплатно (free)

Полнотекстовый поиск в 1С и все что с этим связано. Часть №2: программное использование и некоторые нюансы при разработке.

02.09.2020    9050    YPermitin    5    

Визуальный html WYSIWYG редактор без сторонних библиотек на управляемых формах

Прочие инструменты разработчика Работа с интерфейсом v8 v8::УФ 1cv8.cf Абонемент ($m)

Простой и удобный html редактор без сторонних библиотек.

1 стартмани

31.08.2020    4791    10    ivanov660    12    

Получение запросом данных журнала регистрации хранящегося в SQLite Промо

Практика программирования Журнал регистрации v8 1cv8.cf Абонемент ($m)

В статье показано как, используя новый функционал платформы, получать данные из журнала регистрации привычным запросом.

1 стартмани

17.09.2014    68895    232    rtnm    38    

Мастер создания копии информационной базы для отчетности

Производительность и оптимизация (HighLoad) Администрирование СУБД v8 1cv8.cf Абонемент ($m)

Прототип инструмента для подготовки реплики в режиме только для чтения к использованию. Позволяет использовать "read-only" реплики как обычные информационные базы 1С.

10 стартмани

28.08.2020    6247    4    YPermitin    9    

Регистры бухгалтерии. Виртуальная таблица остатков

Механизмы бухгалтерского учета v8::БУ 1cv8.cf БУ Бесплатно (free)

Принцип работы виртуальной таблицы остатков. А также некоторые особенности.

24.08.2020    5297    YPermitin    1    

Генератор кода COM-обмена

Прочие инструменты разработчика v8 1cv8.cf Россия Абонемент ($m)

Обработка предназначена для автоматического создания кода для загрузки данных из другой базы 1С через COM-соединение.

1 стартмани

20.08.2020    2318    9    ManyakRus    4    

Монитор журнала регистрации Промо

Журнал регистрации Администрирование данных 1С WEB v8 1cv8.cf Абонемент ($m)

Позволяет в режиме реального времени отслеживать активность пользователей, накапливать и оповещать о возникновении ошибок, которые попадают в журнал регистрации

2 стартмани

29.06.2015    42022    151    andy23    49    

Описание почти всех событий технологического журнала

Технологический журнал v8 Бесплатно (free)

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

19.08.2020    14263    YPermitin    30    

Регистры бухгалтерии. Еще одна таблица оборотов ДТ / КТ

Механизмы бухгалтерского учета v8::БУ 1cv8.cf Бесплатно (free)

Виртуальная таблица оборотов ДТ / КТ регистра бухгалтерии. Особенности и применение.

12.08.2020    3999    YPermitin    1    

Проверка ведения учета (универсальная)

Анализ учета Прочие инструменты разработчика v8 v8::Запросы Россия Абонемент ($m)

Универсальная проверка ведения учета, построенная на запросах. Выполнена в виде расширения, имеет функции подключения к другим информационным базам по технологии внешних соединений и отладчик, поддерживает конструктор запросов. Предназначена для использования как информационно-техническими специалистами, так и для самостоятельного использования конечными пользователями.

2 стартмани

11.08.2020    2940    17    vozhd    2    

Автоматизация анализа файлов технологического журнала Промо

Журнал регистрации v8 Россия Абонемент ($m)

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

1 стартмани

14.02.2012    32068    75    Aleksey.Bochkov    16    

Самый простой парсинг и обработка веб-страниц в 1С

WEB Универсальные функции v8 1cv8.cf Бесплатно (free)

Рассмотрим самый простой парсинг веб-страниц средствами платформы 1С и еще некоторые полезные приемы работы с веб-страницами.

07.08.2020    6789    YPermitin    19    

Внешняя компонента на C# для парсинга страниц через Phantom JS на сервере 1С х32,х64

Прочие инструменты разработчика WEB v8 1cv8.cf Абонемент ($m)

PhantomJS - это браузер без окна, используемый для автоматизации взаимодействия с веб-страницами. PhantomJS предоставляет JavaScript API, обеспечивающий автоматическую навигацию, снимки страницы, эмуляции поведение пользователя, что делает его распространенным инструментом, используемым для запуска модульных тестов на основе браузера в автономной системе, такой как среда непрерывной интеграции . PhantomJS основан на WebKit, что делает его похожей на Safari и Google Chrome средой просмотра. Это программное обеспечение с открытым исходным кодом, выпущенное под лицензией BSD.

1 стартмани

06.08.2020    3552    2    DrZombi    7    

Как найти неиспользуемый код

Практика программирования v8 1cv8.cf Бесплатно (free)

Описание нескольких способов поиска и определения неиспользуемого кода

03.08.2020    3569    YPermitin    26    

Просмотр и анализ журнала регистрации (отчет на СКД) Промо

Журнал регистрации v8::УФ v8::СКД 1cv8.cf Абонемент ($m)

Отчет на базе системы компоновки данных (СКД) для просмотра записей журнала регистрации. В отчете можно использовать возможности СКД для вывода отчета в различных вариантах (список, таблица, диаграмма). Поддерживаются все возможности журнала регистрации (фильтры, получаемые колонки, максимальное количество записей).

5 стартмани

25.07.2013    68618    1022    YPermitin    53    

Регистры бухгалтерии. Виртуальная таблица оборотов

Механизмы бухгалтерского учета v8::БУ 1cv8.cf БУ Бесплатно (free)

Виртуальная таблица оборотов регистра бухгалтерии. Принцип работы, особенности и кое-что еще.

28.07.2020    5437    YPermitin    10    

Диагностика контекста выполнения (внешняя компонента)

Разработка внешних компонент v8 1cv8.cf Абонемент ($m)

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

1 стартмани

24.07.2020    5825    2    YPermitin    14    

Вы запускаете приложения, но делаете это без уважения

Практика программирования v8 1cv8.cf Бесплатно (free)

О запуске сторонних приложений и скриптов из кода встроенного языка платформы 1С.

21.07.2020    6214    YPermitin    30    

Подсистема: История изменений реквизитов объекта, в том числе табличных частей. 1с 8.2. Промо

Журнал регистрации Практика программирования v8 1cv8.cf Абонемент ($m)

Данная подсистема предназначена для хранения истории изменений реквизитов шапок и табличных частей документов и справочников. подсистема основана на записях изменений реквизитов в регистр сведений? с указанием автора и времени изменения.

1 стартмани

12.11.2012    41296    296    allert73    16    

Полнотекстовый поиск в 1С. №1 Грабли в динамических списках

Поиск данных v8 1cv8.cf Бесплатно (free)

Полнотекстовый поиск в 1С и все что с этим связано. Часть №1: особенности работы в динамических списках.

18.07.2020    7259    YPermitin    18    

Консоль кода для управляемых форм

Прочие инструменты разработчика v8 v8::УФ 1cv8.cf Абонемент ($m)

Консоль кода для управляемых форма с подсказками и подсветкой синтаксиса.

1 стартмани

17.07.2020    16386    263    salexdv    243    

Навигация по тексту в стиле VIM

Прочие инструменты разработчика Абонемент ($m)

Попытка сделать навигацию по тексту и редактирование в стиле VIM, что, по моему скромному мнению, немного удобнее, чем в стандартном редакторе.

16.07.2020    2657    0    pm74    5