Работа с журналом регистрации. Выходим за границы платформы

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

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

журнал регистрации платформа библиотеки нестандартные возможности .NET

Работа с журналом регистрации нестандартными средствами. А также немного про использование платформы .NET в экосистеме 1С.

Начнем

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

Работать с журналом регистрации можно как встроенными в платформу инструментами, так и с помощью обработок из подсистем БСП. Также можно использовать нестандартные инструменты, например отчет "Просмотр и анализ журнала регистрации (отчет на СКД)".

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

Есть несколько путей решения этих проблем:

  1. Не использовать его. Это не наш путь, но если он Вам не нужен - тогда это идеальное решение. При этом встречался со случаями, когда вместо него создавали регистры сведений и записывали нужные данные туда. Не будем касаться этой темы, у нее есть свои плюсы и минусы.
  2. Выгружать данные журнала в отдельную базу средствами платформы 1С. Создаем регламентное задание (а может и не одно) для выгрузки данных в какую-либо внешнюю базу. Решение рабочее и может функционировать весьма эффективно. Главными недостатками являются: недостаточная производительность при большом объеме данных, влияние на рабочий сервер 1С (иногда значительное), а также потенциально большой лаг по времени выгрузки.
  3. Использовать регулярные выражения для поиска данных. Для этого переводим формат журнала в текстовый и парсим его с помощью регулярных выражений. Производительность на высоте, но вот сопровождение такого решения требует значительных трудозатрат. К тому же отдать такое в использование рядовым пользователям тоже не просто.

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

Не первое решение

Еще в далеком 2013 году (уже 7 лет прошло!) Алексей Бочков предложил решение для сообщества в виде приложения "EventLogLoader" на Visual Basic, которое напрямую парсит файлы (для старого формата журнала регистрации) или получает данные из SQLite-базы журнала (для нового формата) После отправляет в одно из возможных хранилищ данных (база SQL Server, MySQL или индекс ElasticSearch).

В статье "Периодическая загрузка событий из журналов регистрации в базу MS SQL Server (с исходниками)" дано описание работы инструмента и, судя по статистике, он пользуется некоторой востребованностью.

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

Пройдемте в библиотеку

Чем же отличается предлагаемое решение от того, что было сделано столько лет назад? Главными особенностями будут следующие:

  • Это библиотеки с открытым исходным кодом (лицензия MIT), поставляемые в виде Nuget-пакетов. Но никто не мешает взять их в виде исходного кода из репозиториев на GitHub. Подчеркиваю, это библиотеки, а не готовое приложение. Конечно, в репозитории есть примеры консольных приложений, но вряд ли они могут подойти всем и потребуют адаптации, но использовать их никто не запрещает.
  • Реализованы на базе платформе .NET Core с использованием языка C#.
  • Чтение и выгрузка данных реализованы в отдельных библиотеках, что позволяет использовать их отдельно в зависимости от задач.
  • Возможность расширять стандартные возможности библиотеки экспорта, добавляя новые хранилища.
  • Изначально готов функционал выгрузки в базы данных SQL Server и PostgreSQL.

Далее пройдемся по каждой библиотеке. И сейчас будет неожиданное - листинги кода C#!

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

Библиотека "YY.EventLogReaderAssistant" позволяет читать данные файлов журнала регистрации как старого текстового формата (*.lgf, *.lgp), так и нового формата SQLite-базы (*.lgd). На следующем листинге продемонстрирован простой пример ее использования в виде консольного приложения.

private static int _eventNumber = 0;

static void Main(string[] args)
{
    if (args.Length == 0)
        return;

    // Каталог хранения файлов журнала регистрации.
    // Может быть указан конкретный файл журнала (*.lgd / *.lgf)
    string dataDirectoryPath = args[0];
    Console.WriteLine($"{DateTime.Now}: Инициализация чтения логов \"{dataDirectoryPath}\"...");

    // Инициализация объекта чтения логов
    using (EventLogReader reader = EventLogReader.CreateReader(dataDirectoryPath))
    {
        // Устанавливаем обработчики событий
        reader.AfterReadEvent += Reader_AfterReadEvent;
        reader.AfterReadFile += Reader_AfterReadFile;
        reader.BeforeReadEvent += Reader_BeforeReadEvent;
        reader.BeforeReadFile += Reader_BeforeReadFile;
        reader.OnErrorEvent += Reader_OnErrorEvent;

        // Выводим общее количество событий
        Console.WriteLine($"{DateTime.Now}: Всего событий к обработке: ({reader.Count()})...");
        Console.WriteLine();
        Console.WriteLine();
        
        // Последовательно читаем все события журнала
        while (reader.Read())
        {
            // reader.CurrentRow - данные текущего события
            _eventNumber += 1;
        }
    }

    Console.WriteLine($"{DateTime.Now}: Для выхода нажмите любую клавишу...");
    Console.ReadKey();
}

Тут все просто. Создаем экземпляр класса "EventLogReader", передав путь к каталогу с файлами данных журнала регистрации. Далее подписываемся на события:

  • После чтения файла (AfterReadFile)
  • После чтения события (AfterReadEvent)
  • Перед чтением события (BeforeReadEvent)
  • Перед чтением файла (BeforeReadFile)
  • При ошибке (OnErrorEvent)
 
 Примеры обработчиков событий 

С их помощью можно обрабатывать прочитанные данные из журнала и привязать любую другую логику. Непосредственно чтение данных выполняется в потоке, что позволяет экономить память и начать чтение данных с определенной позиции. То есть можно прочитать половину файла, а через некоторое время продолжить чтение с последнего прочитанного события. Для этого используются методы "GetCurrentPosition" и "SetCurrentPosition", но подробнее на этом останавливаться не будем. Код в репозитории ответит на все вопросы.

Непосредственно получить данные события можно из свойства "CurrentRow", которое содержит:

 
 Поля события

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

Что делать со считанными данными - решать Вам. А пока перейдем к библиотекам экспорта данных.

Помощник экспорта журнала регистрации

Библиотека "YY.EventLogExportAssistant", а точнее набор библиотек, созданных для возможности экспорта данных журнала регистрации. Использует библиотеку чтения данных журнала, о которой шла речь выше. Решение содержит следующие части:

  • YY.EventLogExportAssistant.Core - базовый пакет. В нем реализована основная логика по чтению и передаче данных в указанное хранилище.
  • YY.EventLogExportAssistant.SQLServer - пакет для экспорта данных журнала регистрации в базу данных SQL Server. Зависит от базовой библиотеки.
  • YY.EventLogExportAssistant.PostgreSQL - пакет для экспорта данных журнала регистрации в базу данных PostgreSQL. Зависит от базовой библиотеки.

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

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

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

// 3.2. Инициализируем назначение экспорта данных. Для каждого назначения - свой класс, наследуемый от класса
// "EventLogOnTarget" и устанавливаем в нем информационную систему для выгрузки.
// Для SQL Server - "EventLogOnSQLServer"
// Для PostgreSQL - "EventLogOnPostgreSQL"
// Можно создать собственный класс для выгрузки в произвольное хранилище.
EventLogOnSQLServer target = new EventLogOnSQLServer(optionsBuilder.Options, portion);
// 4. Устанавливаем назначение экспорта
exporter.SetTarget(target);

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

public interface IEventLogOnTarget
{
    EventLogPosition GetLastPosition();
    void SaveLogPosition(FileInfo logFileInfo, EventLogPosition position);
    int GetPortionSize();
    void SetInformationSystem(InformationSystemsBase system);
    void Save(RowData rowData);
    void Save(IList<RowData> rowsData);
    void UpdateReferences(ReferencesData data);
}

Для SQL Server - это класс "EventLogOnSQLServer", для PostgreSQL - "EventLogOnPostgreSQL". Никто не мешает Вам создать собственную реализацию интерфейса и выгружать данные журнала регистрации в том виде и в то хранилище, которое нужно именно Вам.

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

Зачем это все

Это лишь библиотеки на .NET Core, которые Вы можете использовать в своих разработках и приложениях. Со временем они будут развиваться и дальше как в части производительности, так и в части функциональности. В репозитории будут появляться более развернутые инструкции и описание работы. И создавалось все это для удобства расширения возможностей работы с платформой 1С и решением проблем производительности журнала регистрации. Ну и для "just for fun" тоже.

На практике удается достичь выгрузку записей журнала на уровне 35 тысяч записей в минуту вне зависимости от хранилища (PostgreSQL или SQL Server). В описании репозитория есть информация о скорости работы библиотеки и используемых ресурсов для ее работы. В принципе ничто не мешает сделать на ее основе приложение для передачи записей журнала регистрации во внешнее хранилище почти в онлайн режиме.

Недооцененная тема

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

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

Но это не все, что я бы хотел сказать. Пример работы с журналом регистрации не 1С'ными средствами - это не единственное, что можно реализовать таким путем. Платформа .NET предлагает обширные возможности, которые мы можем использовать для решения повседневных задач. И это не только работа с журналом регистрации:

  • Работа с технологическим журналом
  • Метаданными конфигурации
  • Оптимизация работы базы данных
  • Микросервисы для выноса части функционала из конфигураций.
  • Построение фронт офиса для учетной системы.
  • И многое другое.

Скорее всего, ничего нового в этом списке я не написал, но тему считаю недооцененной. Уже прошло большое количество времени, в сообществе появляются различные "не1Сные" разработки, но большим спросом и интересом могут похвастаться не многие. В репозитории "YellowYard.NET" составлен некоторый список таких решений, на полноту которого я не претендую. Некоторые из них распространяются в виде Nuget-пакетов. Обратите внимание на разработки Евгения Акпаева. Приведу некоторую часть здесь.

 
 Список разработок на .NET для 1С

На Инфостарт Сергей Смирнов, автор компоненты NetObjectToIDispatch, создал серию интересных публикаций по использованию .NET при разработке на платформе 1С:Предприятие. То же относится и к разработке Elisy .Net Bridge от Сергея Карташева. Вот этот шикарный список.

 
 Статьи по использованию .NET в разработке на 1С

При всем этом только одна разработка на .NET стала пользоваться спросом в среде разработчиков 1С - это OneScript. Секрет, наверное, кроется в том, что эта разработка не требует знаний (почти) чего-то выходящего за рамки платформы и позволяет разрабатывать в привычном виде не привязываясь к платформе 1С.

Хотелось бы узнать мнение сообщества на тему использования платформы .NET в разработке, приходиться ли Вам в работе иметь с ней дело и какие задачи приходиться решать. Если Вам есть что сказать - пишите в комментарии! 

А если есть опыт использования NetObjectToIDispatch или Elisy .Net Bridge, то жду с нетерпением :)

Всем здоровья

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

Если хотите поддержать проект, чтобы он развивался далее, то поддержите плюсом на Инфостарт и/или на GitHub.

А Вы готовы выйти за пределы экосистемы 1С? :)

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

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

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

 

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. VKislitsin 12.05.20 14:02 Сейчас в теме
Юрий, очередной плюс доставлен, конечно.

Возможно, Вы пропустили, совсем недавно была публикация на эту же тему Журнал регистрации в эластике с использованием службы без использования 1С - служба на .Net, отправляющая данные в Эластик. К сожалению автор не стал приводить ссылку на свой проект в GitHub.

У меня вопрос по Вашему механизму: чтение и отправка данных ЖР осуществляется при вызове приложения (к примеру EventLogExportToSQLServer) или оно работает фоново и отправляет данные в реальном времени?
2. YPermitin 10834 12.05.20 14:11 Сейчас в теме
(1) это библиотеки и тут нет готового приложения.

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

Приложение, если будет интерес, я создам отдельно.

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

Вообщем, публикация для разработчиков. Готового решения тут нет.
3. pashamak 186 13.05.20 07:36 Сейчас в теме
(2)
По поводу другой публикации. Там я так понял готовое приложение и оно не предназначено для использования другими разработчиками.
Больше ничего сказать не могу, не смотрел.


Это продукт для конечного пользователя.
Его суть в легкой установке и применении.
Для разработчиков отдельное api не делал.
YPermitin; +1 Ответить
4. YPermitin 10834 13.05.20 08:33 Сейчас в теме
6. YPermitin 10834 13.05.20 12:06 Сейчас в теме
(3) добавил ссылку на репозиторий в список ПО на .NET:
https://github.com/YPermitin/YellowYard.NET
5. Yashazz 3794 13.05.20 11:16 Сейчас в теме
Всё бы хорошо, но выход "за пределы экосистемы" - верный путь нарваться на неожиданные грабли. Начиная от внезапного внутреннего изменения какой-нибудь ерундовины в очередном релизе, из-за которой все эти внешние утилиты можно выкинуть на помойку, продолжая, допустим, поломкой некой утилиты из-за переезда на другой сервер или софт, и заканчивая нарушением лицензии, где сказано, что работать с файлами 1С средствами "не 1С" низя-низя. Мне этих граблей хватило с избытком. Кому ещё нет - флаг в руки.

Имхо, идеальное решение - отдельная база для разборов ЖР рабочих баз. Нечто подобное 1С недавно сподобилась сделать, вынеся отчётность в отдельную служебную базу.
7. YPermitin 10834 13.05.20 12:06 Сейчас в теме
(5) молодец, так держать :)
8. akpaevj 160 13.05.20 14:26 Сейчас в теме
(5) У 1С есть один большой недостаток в части работы с большими данными - она, мягко говоря, очень медленная. Имеются ввиду задачи обработки больших массивов данных, не хранения.
9. zhichkin 956 13.05.20 17:37 Сейчас в теме
Прошу добавить мой проект в Ваш каталог проектов .NET для 1С
https://github.com/zhichkin/one-c-sharp-sql
YPermitin; +1 Ответить
11. YPermitin 10834 13.05.20 18:52 Сейчас в теме
(9) обязательно добавлю!

Все никак не успевал ознакомиться с ним.
Добавлю в раздел инструментов для разработчиков.
12. YPermitin 10834 13.05.20 20:16 Сейчас в теме
(9) информацию добавил.

Вы можете изменить описание или предложить другие ссылки отправил pull-request в репозиторий.
zhichkin; +1 Ответить
13. zhichkin 956 13.05.20 20:25 Сейчас в теме
10. zhichkin 956 13.05.20 17:58 Сейчас в теме
А Вы готовы выйти за пределы экосистемы 1С ?

Речь скорее о том, чтобы сделать нашу любимую 1С лучше.
Однако, она не хочет, чтобы этим занимались "кул хацкеры".
Хочет всё сделать сама, а чтобы никто не мешал ей в этом благородном стремлении, зафиксировала это желание в известном пункте лицензионного соглашения.
Очень ценим и всемерно благодарны 1С за её заботу о нас любимых !
"Ибо не ведаем, что творим ..."

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

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

Аргумент слабый. Фобия какая-то. Нормальный софт имеет покрытие тестами, доказывающими его работоспособность.

Кроме этого "неожиданных граблей" со стороны 1С тоже хватает выше крыши ... Ничего, живём как-то, держимся там ...

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

Вот читаю так как-будто бы это про 1С написано =) Однако нет =)

Приобретая софт, имеющий техническую поддержку, этого боятся не стоит. Вендор доработает всё как надо. Если используете софт без поддержки, то значит берёте эту самую поддержку на себя. Нужно трезво оценивать свои силы при этом.
TreeDogNight; DrAku1a; VKislitsin; YPermitin; +4 Ответить
14. aspirator23 456 14.05.20 10:54 Сейчас в теме
В 8.3.17, если не путаю, добавилось индексирование журналов. Не спасет ли оно журнал регистрации?
YPermitin; +1 Ответить
15. YPermitin 10834 14.05.20 11:44 Сейчас в теме
(14) пока не щупал. Скорость поиска должна будет значительно уменьшиться.
Но решит ли это основные проблемы? Вряд ли. Но можно будет потестировать :)
cleaner_it; +1 Ответить
19. cleaner_it 221 17.05.20 08:18 Сейчас в теме
(15) Скорость должна увеличиться) А вот задержка должна уменьшиться
20. YPermitin 10834 17.05.20 13:27 Сейчас в теме
(19) скорость поиска да, а скорость записи в журнал. Ну и проблемы с подвисанием сервера.
В общем, протестирую как-нибудь :)
16. Free1CforAll 14.05.20 12:12 Сейчас в теме
(0) а еще будут статьи про .NET? :)
17. YPermitin 10834 14.05.20 12:50 Сейчас в теме
18. overloader 82 16.05.20 11:08 Сейчас в теме
21. YPermitin 10834 17.05.20 13:29 Сейчас в теме
(18) разработка хорошая, но она никак не относится к платформе .NET.
Это же чисто 1Сная разработка.

Илия ошибаюсь?
22. overloader 82 18.05.20 09:20 Сейчас в теме
(21) Да решение под 1С, универсальное под любые конфигурации на БСП
23. YPermitin 10834 18.05.20 09:42 Сейчас в теме
(22) значит к теме .NET оно не относится.
В список его добавлять не могу :(
24. DonAlPatino 154 24.05.20 17:10 Сейчас в теме
Вот тут: https://infostart.ru/public/1128327/ я рассказывал, как мы переписали EventLogApp Алексея Бочкова на C# и выкачали журнал в конечном счете в ELK. Исходники переписанного на C# EventLogApp на github. Я уже оттуда уволился, на проект без меня забили, так что если есть желающие развивать - welcome
25. dimonb123 24.11.20 11:00 Сейчас в теме
Идея интересная, особенно круто, что можно после выгрузки во внешнюю базу подключить ее в качестве внешнего источника и далее написать отчет на СКД, который позволит быстро и в разных разрезах получать данные из журнала регистрации.

Но я что-то не понимаю, или Ваша компонента глючит. Во всяком случае. если установить в настройках журнала регистрации разделение по периодам, то дата записи записывается неверно (не учитывается смещение +3 часа). И что-то не то со статусами транзакций.

Если разделение журнала не устанавливать, то все норм.
26. dimonb123 24.11.20 14:59 Сейчас в теме
(25)

и еще таблица Events заполняется только в первый раз. Если появляются какие-то виды событий после создания БД, то они в эту таблицу не добавляются.
27. YPermitin 10834 24.11.20 15:02 Сейчас в теме
(26) Все что нужно - это написать в открытые репозитории, которые в виде OpenSource доступны всем жалающим.

Библиотека чтения: https://github.com/YPermitin/YY.EventLogReaderAssistant
Библиотека экспорта: https://github.com/YPermitin/YY.EventLogExportAssistant

Приветствуется не только информация техническая, но и примеры файлов, Pull-request'ы с вашей стороны (то есть доработки).
28. METAL 123 17.02.21 11:31 Сейчас в теме
Коллеги, подскажите пожалуйста, стоит задача: найти какие документы (и записи регистров) датой/периодом до 01.01.2021 менялись в промежутке с 07.02.2021 до 14.02.2021 ?
Формат файлов ЖР текстовый, разделяется "по дням", журнал за день 500МБ, иногда до 1ГБ
Как лучше подойти к решению данной задачи?
29. user1140274 19.04.21 21:47 Сейчас в теме
Юрий, здравствуйте! Сообщение не в тему публикации. У вас раньше был блог с описанием архитектуры 1С и многое другое, была замечательная статья как через веб-сервисы интегрировать 1С и .NET, в прикрепленных картинках сама статья. Сами файлы и видео больше не доступны, возможно ли как-то их скачать откуда-нибудь, очень надо)
Прикрепленные файлы:
Оставьте свое сообщение

См. также

Использование классов .Net в 1С для новичков Промо

Практика программирования Разработка внешних компонент Универсальные функции v7.7 v8 Бесплатно (free)

Руководство для новичков. Написав статью http://infostart.ru/public/238584/, я понял, что многие не понимают того, что написано. Поэтому в этой статье постараюсь более подробно остановиться на азах и без кода на вражеском языке (C#)

27.01.2016    80557    Serginio    113    

Выгрузка журнала регистрации в ElasticSearch с помощью Python

Журнал регистрации Бесплатно (free)

Данный скрипт реализован на языке python с подключаемой библиотекой ElasticSearch, что позволяет парсить и загружать файлы ЖР напрямую в ES. ВНИМАНИЕ! Данный парсер работает только со старым форматом ЖР и только, если у него периодичность день или час.

26.04.2021    537    buganov    2    

Взаимодействие 1С со сторонними продуктами посредством REST и Golang (middleware). Часть 3 - ElasticSearch

Интеграция Журнал регистрации Бесплатно (free)

Как в статье №1 этого цикла выгрузим через прослойку журнал регистрации (xml формат) в ElasticSearch. Статья будет иметь практическую направленность в минималистичном стиле

14.09.2020    1768    dmitry-irk38    4    

Сбой, отказ 1C:Предприятия 7.7, код исключения e06d7363. APPCRASH 1cv7s.exe

Администрирование СУБД Журнал регистрации v7.7 1cv7.md Бесплатно (free)

Прекращена работа программы "1CV7 starter program". Никто не может зайти в 1C 7.7. Апкреш. Что делать? Проверьте, возможно журнал регистрации информационной базы 1С: Предприятия 7.7 поврежден.

17.08.2020    1526    ksnik    3    

Использование сборок .NET в 1С 7. и 8.x. Создание внешних Компонент. Промо

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

Данная разработка создана для использования сборок .Net в 1С через преобразование объектов и классов в COM-объекты, которые можно использовать в 1С. Достигается это путем создания класса, реализующего методы интерфейса IReflect public class AutoWrap: IReflect.

1 стартмани

28.11.2013    88897    284    Serginio    74    

Быстрый способ удаления записей из журнала регистрации 1С

Журнал регистрации Чистка базы v8 Бесплатно (free)

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

06.08.2020    3516    DataReducer    6    

Как сломать работу 1С, будучи пользователем

Пользователю системы v8 Бесплатно (free)

Шуточные и не только истории, как сломать работу 1С на пустом месте. И, возможно, остановить работу компании.

14.06.2020    9009    YPermitin    52    

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

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

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

10 стартмани

26.05.2020    8739    53    YPermitin    0    

1С.Net:Предприятие - подключите .Net Framework к 1C через Elisy .Net Bridge Промо

Внешние источники данных v8 1cv8.cf Россия Платные (руб)

.Net Framework – это большой набор решений, созданных для разработки современных приложений взамен COM/OLE/ActiveX. Компонент Elisy .Net Bridge позволяет без особых усилий добавить недостающую функциональность в 1C 7.7/8.0/8.1/8.2, реализуя бесконечное количество сценариев обращения к платформе. Здесь разработчики могут ознакомиться также с бесплатной NFR-версией.

5000 руб.

18.05.2009    37029    219    79    

История работы пользователей (отчет на СКД)

Администрирование СУБД v8 v8::УФ v8::СКД 1cv8.cf Абонемент ($m)

Отчет для просмотра истории работы пользователей (СКД, просмотр для любого пользователя).

2 стартмани

14.03.2020    8772    82    YPermitin    27    

Информация о пользователях информационной базы (отчет на СКД)

Администрирование данных 1С Роли и права v8 v8::Права v8::СКД 1cv8.cf Абонемент ($m)

Два простых отчета по пользователям информационной базы и информации по ним.

1 стартмани

02.03.2020    8556    27    YPermitin    8    

Технические проверки данных регистров бухгалтерии (отчет на СКД)

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

Отчет для технических проверок данных бухгалтерских регистров.

5 стартмани

25.02.2020    7968    27    YPermitin    3    

.Net в 1С. На примере использования HTTPClient, AngleSharp. Удобный парсинг сайтов с помощью библиотеки AngleSharp, в том числе с авторизацией аля JQuery с использованием CSS селекторов. Динамическая компиляция Промо

Практика программирования WEB v7.7 v8 Бесплатно (free)

Часто приходится парсить сайты, в том числе с авторизацией, перескакивая со страницы на страницу по ссылкам. Тот, кто занимался вэб программированием, знает, как удобно использовать JQuery и CSS селекторы. На .Net написана очень удобная библиотека AngleSharp. Я покажу, как с её помощью можно значительно облегчить себе труд.

10.03.2016    57305    Serginio    33    

Мастер полнотекстового поиска

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

Набор инструментов для работы с полнотекстовым индексом платформы 1С. Стандартные и расширенные возможности.

2 стартмани

07.02.2020    13007    121    YPermitin    28    

Помощник работы с идентификаторами объектов

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

Инструмент для расширенного анализа идентификаторов объектов.

2 стартмани

24.01.2020    15452    54    YPermitin    32    

Транслятор запросов 1С в SQL

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

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

10 стартмани

07.01.2020    22037    177    YPermitin    89    

1C Messenger для отправки сообщений, файлов и обмена данными между пользователями 1С, вэб страницы, мобильными приложениями а ля Skype, WhatsApp Промо

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

Данная разработка позволяет пользователям 1С обмениваться сообщениями, файлами (до 3 мб). Запрашивать данные у клиента как Вэб или HTTP сервисах. Основано на технологиях ASP.Net SignaR который использует WebSockets и т.д. для двунаправленного обмена данными. Используется обертка над классами .Net

15.12.2015    62760    Serginio    5    

Выгрузка журнала регистрации в SQL

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

Ни для кого не секрет, что для эффективного использования возможностей встроенного журнала регистрации требуется приложить немало усилий. Я не спорю, что тема избита, но тем не менее... Хотел предложить для Вас мое решение. Задача: Легкий способ ежедневно анализировать журнал регистрации. Для реализации не стал я использовать Elasticsearch. Возможно, это и удобный способ, но мне не понравилось по ряду причин. Меня устраивает, когда журнал с ошибками приходит на электронную почту ответственным за поддержку и открывается в excel. А также, когда лог-базу можно открыть как внешний источник данных, например, совсем в другой базе, где таких источников, как правило, несколько.

3 стартмани

25.11.2019    5871    12    MikeLetto    0    

Командный интерпретатор для 1С

Сервисные утилиты v8 1cv8.cf Абонемент ($m)

Инструмент для выполнения команд CMD / PowerShell из 1С.

2 стартмани

15.11.2019    15523    29    YPermitin    41    

Пакетная выгрузка / загрузка внешних отчетов и обработок

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

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

2 стартмани

04.11.2019    12587    71    YPermitin    22    

Code First и Linq to EF на примере 1С версии 7.7 и 8.3 часть I Промо

Практика программирования v8 Абонемент ($m)

Данный проект является чисто исследовательским примером использования Code First и Linq to EF на примере 1С версии 7.7. Так как сам я программист 1С, то мне всегда было интересно, как можно перенести модель объектов 1С на компилируемые языки, и использовать мощь Linq to EF. С появлением Code First давно хотел прикрутить, но все как-то руки не доходили, и вот, наконец ..

1 стартмани

28.08.2015    24792    3    Serginio    2    

ELK. Время изумительных историй!

Журнал регистрации Работа с интерфейсом v8 1cv8.cf Бесплатно (free)

Всем привет! Сегодня хочу рассказать вам несколько полезных историй про то как нам помог Elastic search в связке с Kibana. Про сам Elastic рассказывать не буду, уже все давным давно описали и до меня. Все обычно говорят что это полезно, это классно. В то же время, очень мало кто рассказывает про практические ситуации: когда и как помог Elastic. Итак, начнем.

31.10.2019    9498    slozhenikin_com    28    

Обозреватель криптографии

Инструментарий разработчика Защита ПО v8 Абонемент ($m)

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

2 стартмани

21.10.2019    12927    17    YPermitin    10    

Сложнейшая загрузка журнала регистрации в ElasticSearch (или делаем настоящий ETL)

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

Году в 2017ом возникло (наверное странное на тот момент) желание перегрузить журнал регистраций 1С в ELK. Чтобы журналы место на диске не съедали, 1С программисты забыв поставить фильтр сервер не подвешивали, все журналы лежали в одном месте да и можно было безопасно туда ответственных пользователей пускать, чтобы сами смотрели кто какой документ поправил.На предложение написать выгрузку сразу из 1С программисты благополучно забили ("ой на это минимум месяц", "у нас срочные бизнес-фичи" и т.д. и т.п.). Зато попалась статья от Aleksey.Bochkov (https://infostart.ru/public/182820/). Ну и решили мы все это запилить без 1С программистов. Во что влезаем я тогда еще не понимал. А вылилось почти в год допилок (хорошо хоть в фоновом режиме) в цельный ETL с использованием C#, T-SQL и прочими делами.

1 стартмани

27.09.2019    13805    6    DonAlPatino    33    

Методы для группировки данных по полю,полям в Таблице Значений на примере универсального метода списания по партиям, а также отбора строк в ТЗ по произвольному условию. Для 8.x и 7.7 Промо

Универсальные функции Практика программирования v7.7 v8 1cv8.cf 1cv7.md Абонемент ($m)

Я очень часто использую группировку данных по полю и полям, как в восьмерке, так и в семерке. Это аналог запроса Итоги, но там строится дерево, а в большинстве случаев нужны "плоские данные". Да и делать запрос в большинстве случаев более накладный процесс, чем работа с ТЗ. Все достоинства такого подхода приведены на примере метода универсального списания по париям, а так же отбора строк в ТЗ по произвольному условию. Для 7.7 еще отчеты сравнения двух ТЗ. Работая с различными базами для упрощения сравнения номенклатуры, или как аналог джойнов(join), сделал сравнение двух таблиц значений по нескольким полям. Пока группировки полей должны быть уникальны. Часто приходится искать дубли, для универсального поиска есть ДублиВТзПоПолю и пример в Тест.ert.

1 стартмани

25.06.2015    30535    4    Serginio    1    

Версионирование регистров сведений

Журнал регистрации Практика программирования v8 Бесплатно (free)

Моя реализация механизма мониторинга изменений регистра сведений.

17.09.2019    4225    KonS    10    

Анализ производительности APDEX

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

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

31.08.2019    15527    348    YPermitin    7    

Путеводитель по истории релизов

WEB v8 1cv8.cf Абонемент ($m)

Отчет по истории выпуска релизов и анализа информации по обновлениям.

5 стартмани

13.08.2019    16754    13    YPermitin    18    

Обработка для формирования классов для прямого доступа к файлам 1С через курсоры BDE. И многого другого Промо

Разработка внешних компонент v7.7 1cv7.md Абонемент ($m)

Обработка формирует классы для прямого доступа к файлам 1С через курсоры BDE. Исходник ВК, которая загружает Объект Автоматизации, поддерживающий ITypeInfo и выполняет все его свойства и методы через IlanguageExtender. Обработка для формирования диспинтерфейсов к объектам 1С (таблицаЗначений, справочники, документы, перечисления). Обработки для группировки данных Таблицы Значений в виде ТЗ, где колонками являются ключи и ТзПоГруппе вида ТЗ с детальными записями. Вывод иерархии из ТЗ элементов, поиск дублей, сравнение 2 ТЗ

1 стартмани

14.04.2015    21226    2    Serginio    1    

Просмотр и анализ структуры базы данных (отчет на СКД)

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

Отчет для просмотра и анализа структуры базы данных с поддержкой файловых баз (ограниченный режим), а также баз на SQL Server и PostgreSQL.

5 стартмани

24.07.2019    27370    251    YPermitin    27    

Переход на 64-х разрядный сервер 1С

Журнал регистрации Администрирование данных 1С v8 Бесплатно (free)

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

05.04.2019    26784    ids79    18    

Анализ 1С: Предприятие 7.7 с помощью ELK стека

Журнал регистрации Администрирование данных 1С v7.7 1cv7.md Бесплатно (free)

Рассмотрим систему на базе Elasticsearch, Logstash и Kibana (ELK Stack) для анализа логов 1С Предприятие 7.7 с целью визуализации и анализа событий 1С.

22.01.2019    9016    phsin    20    

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

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

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

5 стартмани

25.07.2013    71779    1059    YPermitin    56    

Мониторинг активности пользователя

Журнал регистрации v8 1cv8.cf Бесплатно (free)

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

11.10.2018    18734    postovalov    25    

Все, что вы хотели знать о журнале регистрации

Журнал регистрации v8 Бесплатно (free)

Исследование файла Журнала регистраций в формате lgd.

22.09.2018    27953    Fox-trot    25    

Кто запустил анализ журнала регистрации?

Журнал регистрации v8 Бесплатно (free)

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

16.09.2017    19575    metmetmet    42    

1C.Net:Предприятие – использование богатых графических возможностей .Net Framework Промо

Работа с интерфейсом v7.7 v8 1cv8.cf 1cv7.md Россия Абонемент ($m)

Windows Presentation Foundation (WPF) – презентационная система нового поколения для построения клиентских приложений Windows с ошеломляющими возможностями. Технология WPF основана на независимой от разрешения системе визуализации, построенной на векторной графике и использующей преимущества современного графического оборудования. В составWPF входят следующие средства: язык описания Extensible Application Markup Language (XAML), элементы управления, механизм привязки данных, средства разметки, 2d- и 3d-графика, анимация, стили, шаблоны, документы, медиа-элементы, текст и средства оформления текста. Презентационная система входит в состав .Net framework и доступна для использования внутри 1С:Предприятие средствами Elisy .Net Bridge, начиная с версии 3.2. Windows Presentation Framework полностью заменяет и многократно превосходит устаревающую технологию WinForms.

1 стартмани

19.05.2010    28621    281    Elisy    22    

Подробный журнал регистрации изменений

Журнал регистрации v8 Бесплатно (free)

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

24.07.2017    12652    user700035_6550355    16    

Сжатие журнала регистрации в формате SQLite (.lgd) с помощью программы "DB Browser for SQLite".

Журнал регистрации v8 Россия Бесплатно (free)

Если журнал регистрации базы 1С заметно увеличился, Вы не сможете оперативно искать в нем нужную информацию. Более того, работа с таким журналом может вызывать блокировку работы всех пользователей. Для предотвращения разрастания журнала необходимо устранять настройками запись ненужных событий и перемещать в архивы события с неактуальными датами. Избавиться от уже записанной ненужной информации можно с помощью программы DB Browser for SQLite указанным в этой статье способом.

04.06.2017    28572    DrSender    6    

Запись в журнал регистрации изменений дополнительных сведений

Журнал регистрации v8 УТ11 УУ Бесплатно (free)

Небольшая доработка программы "Управление торговлей 11" для записи информации в журнал регистрации изменений дополнительных сведений (регистр сведений) по объектам. Должна работать на всех релизах.

04.05.2017    39424    Mortiferus    5    

.Net Core, обмен с 1C по TCP/IP между различными устройствами

Разработка внешних компонент v8 Бесплатно (free)

Часто нужно обмениваться данными с клиентом 1С из различных устройств, между клиентами 1С, а также при виртуализации между разными ОС на компьютере. Это кроссплатформенная ВК, позволяющая обмениваться сообщениями по TCP/IP между различными устройствами по определенному протоколу.

28.09.2016    22047    Serginio    12    

Net Core. Динамическая компиляция класса обертки для получения событий .Net объекта в 1С

Разработка внешних компонент v8 Бесплатно (free)

Часто нужно использовать события объектов .Net. Например событие от COM порта, поступление сообщений по WhatsAp, сообщение об изменение в директории итд. Напрямую этого сделать нельзя, но можно сделать класс обертку и через него получать ВнешнееСобытие

14.09.2016    16332    Serginio    1    

.Net Core, 1C, динамическая компиляция, Scripting API

Разработка внешних компонент Практика программирования v8 Бесплатно (free)

Очень часто приходится использовать динамический код в 1С, используя Выполнить или Вычислить. Аналогичная задача и для использования скриптов на .Net. Я постарался показать, как можно скрестить ежа с ужом и получить удобный код. В этой статье много вражеского кода для чистого одноэсника, но все когда-то бывает впервые.

07.09.2016    19258    Serginio    7    

Загрузка логов журнала регистрации 1С из MS SQL в ElasticSearch

Журнал регистрации v8 Бесплатно (free)

Еще один инструмент хранения и визуализации логов журнала регистрации 1С

01.09.2016    37545    farukshin    9    

1С, Linux, Excel, Word, OpenXML, ADO, Net Core

Разработка внешних компонент v8 Бесплатно (free)

В данной статье показаны примеры кроссплатформенной работы с файлами Excel и Word (xlsx,docx) с помощью библиотеки OpenXML и Net Core

22.08.2016    22096    Serginio    15    

Асинхронное программирование в 1С через использование классов .Net из Native ВК

Разработка внешних компонент v8 Бесплатно (free)

Это продолжение статьи Кроссплатформенное использование классов .Net в 1С через Native ВК. Или замена COM на Linux II http://infostart.ru/public/541518/ В этой статье покажу, как можно асинхронно вызывать асинхронные методы и вызывать ВнешнееСобытие в 1С из сборки .Net

09.08.2016    17854    Serginio    3    

Кроссплатформенное использование классов .Net в 1С через Native ВК. Или замена COM на Linux II

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

Это продолжение статьи http://infostart.ru/public/534901/ С того времени добавил поддержку методов с параметрами по умолчанию, вызов методов расширений, вывод типов для дженерик методов, поддержка объектов реализующих IDynamicMetaObjectProvider (ExpandoObject,DynamicObject), добавление синонимов к членам типа и асинхронное программирование на 1С!

09.08.2016    14821    Serginio    1    

Кроссплатформенное использование классов .Net в 1С через Native ВК. Или замена COM на Linux

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

С выходом .Net Core CLR стало возможным использование классов .Net не только на Windows, но и других операционных системах. Это особенно важно в разрезе импортозамещения. И главное - это аналог COM под Linux. Сейчас под Linux для расширения возможностей 1С используются Web сервисы. Данная разработка позволит использовать не только сборки входящие в состав .Net Core, но и пользовательские портативные сборки.

04.07.2016    20722    Serginio    33    

Использование ТСД на WM 6 как беспроводной сканер с получением данных из 1С

Терминал сбора данных v8 1cv8.cf Абонемент ($m)

Как вариант печати этикеток на мобильный принтер, получение информации по ШК. Можно легко расширить до более сложных задач. В том числе на Xamarin под Android и IOS.

1 стартмани

18.05.2016    21531    6    Serginio    14