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

12.05.20

База данных - Журнал регистрации

Работа с журналом регистрации нестандартными средствами. А также немного про использование платформы .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С? :)

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

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

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

 

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

См. также

Журнал регистрации Мониторинг Системный администратор Программист Бизнес-аналитик Руководитель проекта Платформа 1С v8.3 Платные (руб)

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

9000 руб.

28.08.2019    33950    22    21    

74

Журнал регистрации Системный администратор Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Конфигурация LogiCH эффективно решает проблему хранения и анализа записей журналов регистрации. Разработка использует столбцовую СУБД ClickHouse, одну из самых быстрых Big Data OLAP СУБД. Любой анализ журнала можно выполнить в одном отчете, в котором доступны все возможности СКД с учетом ограничений RLS. Количество подключаемых баз не ограничено и не влияет на скорость построения анализа.

5000 руб.

28.11.2018    20747    17    6    

42

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

В материале рассматривается сравнение двух инструментов для работы с журналом регистрации 1С: утилиты ibcmd и платформы Vector. Описаны их функциональные возможности, тестирование производительности и практическое применение для преобразования логов в формат JSON.

20.11.2024    692    user1913000    7    

17

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

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

21.10.2024    2816    leemuar    8    

22

Инструменты администратора БД Журнал регистрации Системный администратор Платформа 1С v8.3 1С:Управление торговлей 11 Абонемент ($m)

Внешняя обработка для регламентного сокращения журнала регистрации для конфигураций на базе БСП и платформы 8.3.20+

1 стартмани

29.12.2023    2165    31    dima_gsv    3    

13

Журнал регистрации Мониторинг Системный администратор Программист Абонемент ($m)

Как легко и быстро с помощью специализированных решений собирать, парсить и передавать логи и метрики.

1 стартмани

19.11.2023    1442    5    AlexSTAL    0    

8

Мониторинг Журнал регистрации Технологический журнал Системный администратор Программист Абонемент ($m)

Как легко и быстро с помощью специализированных решений собирать, парсить и передавать логи и метрики.

1 стартмани

13.11.2023    4738    9    AlexSTAL    0    

47

Журнал регистрации Инструменты администратора БД Мониторинг Мессенджеры и боты Системный администратор Программист Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление холдингом 1С:Комплексная автоматизация 2.х Абонемент ($m)

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

3 стартмани

26.09.2023    2830    19    doom2good    16    

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

Илия ошибаюсь?
22. overloader 188 18.05.20 09:20 Сейчас в теме
(21) Да решение под 1С, универсальное под любые конфигурации на БСП
23. пользователь 18.05.20 09:42
(22) значит к теме .NET оно не относится.
В список его добавлять не могу :(
24. DonAlPatino 178 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. пользователь 24.11.20 15:02
(26) Все что нужно - это написать в открытые репозитории, которые в виде OpenSource доступны всем жалающим.

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

Приветствуется не только информация техническая, но и примеры файлов, Pull-request'ы с вашей стороны (то есть доработки).
28. METAL 299 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, в прикрепленных картинках сама статья. Сами файлы и видео больше не доступны, возможно ли как-то их скачать откуда-нибудь, очень надо)
Прикрепленные файлы:
30. FreeArcher 162 26.03.22 05:21 Сейчас в теме
Юрий здравствуйте. У меня к вам вопрос: почему именно c#? Сам интересуюсь смежными языками. Недавно сделал парсер тех.журнала с выгрузкой в разве СУБД на python. Но вижу, что в среде 1С популярен именно c#. Хотелось бы понять почему?
31. Froloid 66 16.03.23 19:07 Сейчас в теме
Почему Юрий теперь инфобот?
32. ImHunter 327 17.03.23 06:08 Сейчас в теме
(31) Потому что много и вдумчиво копался под капотом 1С. Забанили, с полгода назад. Ну хоть его статьи все-таки оставили.
Оставьте свое сообщение