История изменений объектов информационной базы во внешнем хранилище ElasticSearch

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

Разработка - Инструментарий разработчика

версионирование быстрый поиск JSON Elastic журнал изменений

ElasticSearch - это opensource решение для очень быстрого поиска данных в больших массивах информации.
Как один из примеров эффективного решения технологической задачи для 1С - использовать ElasticSearch для хранения истории изменений объектов информационной базы.

ElasticSearch разрабатывается крайне успешным стартапом в Калифорнии с 2012 года - https://www.elastic.co/.

Позволяет загрузить в единое хранилище данных разнородную информацию в JSON-формате, а затем производить выборки детальной и агрегированной информации.

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

Основные преимущества для пользователей 1С при хранении истории изменений объектов в ElasticSearch:
1) Не требуется сложного конфигурирования и установки ElasticSearch. Только скачать и распаковать архив, а затем запустить bat-файл (работает поверх JAVA).

2) Вся информация хранится во внешнем, по отношению к информационным базам 1С, хранилище данных. Основная база данных не перегружается "балластом".

3) ElasticSearch индексирует ВСЮ загружаемую информацию. Практически любая небольшая выборка данных с любыми условиями будет выполняться за миллисекунды.

4) При изменении структуры метаданных в 1С не требуется проводить реструктуризацию в ElasticSearch. Удаленные поля будут доступны в предыдущей информации, новые - в новой.

Особенности, которые важно учитывать:
Например:
1) все поступающие строковые поля ElasticSearch автоматически разбивает на слова и индексирует отдельно. т.е. теоретически можно искать информацию по всему массиву разнородных объектов просто указав ключевое слово. На практике это выливается в некоторые проблемы, например, с GUID. Переданные для поиска GUID система разбивает на части по символу "-" и выдает совсем нерелевантный результат. Чтобы этого не происходило нужно отключить "анализ" поля перед записью первых объектов отправив команду на типизацию таких полей для данного вида объектов.
В данном примере мне этого делать не хотелось, поэтому для ключевых полей, по которым происходит выборка версий, из GUID'а удалены тире, что сделало его монолитным "словом". Это решает задачу выборки данных для отчета по версиям. Если нужны иные варианты выборок, то нужно предусмотреть эту особенность.


2) Если объект сериализовать в XML, то платформа в атрибутах указывает тип значения для каждого ссылочного реквизита, в итоге обратная десериализация проблем не вызывает. Аналогичный механизм для JSON появится только в платформе 8.3.7 - http://v8.1c.ru/o7/201501json/index.htm.
В итоге для однозначной идентификации значения в реквизитах объектов мне показалось удачным использовать функцию ЗначениеВСтрокуВнутр.


3) ElasticSearch не поддерживает версии объектов. Поэтому каждую версию нужно хранить как уникальный объект, а логически наборы версий объединять по дополнительному полю.

Отмечу, что выложенный пример конфигурации не является полноценным решением, а лишь демонстрирует способ применения механизма, хотя и вполне применим для продуктивной системы.
Разработано и протестировано на 8.2 и 8.3.
Для сериализации\десериализации в JSON используется разработка Александра Переверзева //develop.iservice.ru/public/119601/

Принципиальная схема работы:
1) В подписке на событие "ПриЗаписи" выполняется сериализация объекта в JSON.

2) Добавляется служебная информация типа даты изменения и автора версии.

3) Данные синхронно записываются в ElasticSearch до окончания транзакции. Т.е. при отмене транзакции версия останется. Это можно решить, переделав механизм на асинхронный: при изменении объекта фиксировать сам факт, а в отдельном фоновом задании выполнять сериализацию в JSON и отправку данных. У обоих вариантов свои плюсы и минусы.

4) В отчете по версиям система выбирает 10 последних версий объекта и отображает их реквизиты. Каждый результат поиска также возвращает общее количество найденных объектов, поэтому всегда можно получить программно все объекты.

Для запуска механизма на своей базе необходимо:
1) Установить на целевой машине JAVA и прописать переменную JAVA_HOME.

2) Скачать и запустить ElasticSearch.

3) Объединить целевую конфигурацию с файлом Elastic.cf (2 общих модуля, 2 константы, 2 подписки на события, 2 обработки).

4) скорректировать подписки на события - указать только те объекты, которые необходимо версионировать. Можно оставить как есть (все объекты), но в крупных базах с интенсивной работой, скорее всего, будут проблемы с быстродействием.

5) В режиме Предприятия заполнить константы.
АдресИнстанса - имя компьютера и порт с ElasticSearch (для локальной машины - localhost:9200).
ПрефиксБазы- произвольный идентификатор текущей ИБ латинскими строчными буквами\цифрами (чтобы данные нескольких баз не перемешивались), например, "buh1".

Попробовать записать любой версионируемый объект и удостовериться через обработку "ElasticSearch_ПросмотрВерсий", что данные записались в ElasticSearch и выдаются обратно.

Список версий по документу:

Статистика по версиям в базе ElasticSearch:

 

По поводу быстродействия - я не тестировал именно журнал изменений объектов на больших данных. Но анализ объемного технологического журнала показал, что скорость выборки 10-20 событий из индекса с парой тысяч записей и с 20'000'000 записей примерно одинакова.

Судя по замеру в данном примере - на выполнение 20 запросов, каждый из которых возвращает 23Кб JSON, потребовалось 0,2 секунды.

 

P.S. На подходе два аналогичных механизма для технологического журнала и журнала регистрации.

Планирую сделать на базе своих существующих разработок:

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

Загрузка файлов технологического журнала в базу MS SQL (с исходниками)

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

Наименование Файл Версия Размер
Elastic.cf

.cf 44,84Kb
25.03.15
136
.cf 44,84Kb 136 Скачать

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. AlX0id 25.03.15 10:33 Сейчас в теме
Интересно, в общем-то )

ЗЫ. Open sourCe все-таки ;)
Aleksey.Bochkov; +1 Ответить
2. Steelvan 25.03.15 10:39 Сейчас в теме
Фуууу, в Калифорнии.

Принципиально игнорирую все американское (фу-фу-фу).
18. webester 33 29.03.15 04:03 Сейчас в теме
(2)Ты комментарий то как написал? Из какой операционной системы? А если надо просмотреть офисный документ, ты что используешь? А еще ты пишешь на сайте который находится в интернете, который таки придумали американцы, развили до текущего состояния американцы и контролируют(icann) тоже представь себе американцы.
19. Steelvan 31.03.15 09:15 Сейчас в теме
(18) webester,

Поцелуй их теперь в ж.

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

И если есть выбор, то я всегда выбираю российское, или отказываюсь если американское и без этого можно обойтись.
20. pumbaE 637 31.03.15 10:12 Сейчас в теме
(18) webester, ну зачем кормить тролля...
3. pumbaE 637 25.03.15 11:05 Сейчас в теме
Производительность - управляемость, в отличии от полнотекстового поиска 1с, шардинг по нескольким серверам.

Для логов, советую kinbana или graphite использовать, для отображения данных, очень удобно.
4. pumbaE 637 25.03.15 11:06 Сейчас в теме
Если есть более или менее четкая структура, то можно настроить, что-бы не разбивал в индексе по словам, ну или в поиске по uuid обрамлять в кавычки, тогда должен искать полный uuid.
5. fzt 25.03.15 11:15 Сейчас в теме
Очень лыбопытное решение. Радует опенсорс. Думаю многие смогут проверить каково это - жить с историей версий объектов.
6. yukon 80 25.03.15 11:38 Сейчас в теме
Данные синхронно записываются в ElasticSearch до окончания транзакции

Если уж нужно делать синхронно, то есть, как минимум, обработчик ПослеЗаписи который выполняется вне транзакции.
7. minimajack 69 25.03.15 11:45 Сейчас в теме
(6) yukon, не в том контексте интерес

зы в любом случае лучше делать ассинхронно...иначе увеличивается время транзакции
8. Aleksey.Bochkov 3380 25.03.15 12:29 Сейчас в теме
(6) yukon,
Такой обработчик есть только для управляемых форм. т.е. тогда будет работать только при интерактивном изменении данных.
10. artbear 1193 25.03.15 18:47 Сейчас в теме
(8) ИМХО Нужно юзать механизм заданий, которые и будут выполняться вне текущей транзакции.
Т.е. создаешь новое задание (РС или справочник), заносишь нужную инфу и завершаешь транзакцию.
и крутится фоновое задание, которое следит за заданиями, формирует из них очередь (при необходимости), запускаю нужное количество агентов (фоновое задание-обработчик), задание выполняется на агенте и в случае успешной записи выполняет удаление ранее сделанной записи (из РС или справочника).
удобно и довольно мощно.
Мы такую систему юзаем и нам хорошо :)
AzagTot; tormozit; ret-Phoenix; +3 Ответить
12. Aleksey.Bochkov 3380 25.03.15 23:39 Сейчас в теме
(10) artbear,
Да, я согласен.
Смущает только один момент - если версионировать до окончания транзакции, то нет необходимости читать или записывать какие-либо данные. Объект уже в памяти.
При асинхронном версионировании - сначала записать факт изменения в регистр, затем прочитать эти события, прочитать объект из базы и отправить версию в Elastic, затем сделать отметку о том, что обработка данного события завершена.
Имхо, оба варианта имеют право на жизнь.
9. lustin 25.03.15 16:03 Сейчас в теме
(0) я так понимаю следующим ты попробуешь LogStash, Kibana ? И тогда добро пожаловать в наш мир.
myjob1c; shalimski; Aleksey.Bochkov; pumbaE; +4 Ответить
11. Aleksey.Bochkov 3380 25.03.15 23:35 Сейчас в теме
(9) Kibana уже попробовал. Для построения самого разного рода графиков подходит отлично. Но для более глубокого анализа данных мне показалось удобнее писать свои запросы к Elastic, пусть хоть и на 1С.
LogStash - в процессе. Может к разбору технологического журнала получится подключить..
13. minimajack 69 27.03.15 08:02 Сейчас в теме
Все же считаю использование ElasticSearch - стрельбой из пушки по воробьям. Поисковый движок для версионирования по моему слишком
16. pumbaE 637 27.03.15 10:39 Сейчас в теме
(13) minimajack, ну для логов же их используют, а там вообще простые текстовые файлы на N-гиг.
Тем более, что в данном примере elasticsearch не настраивали на игнорирование разбивку на составляющие некоторых данных (таких как uuid)
Aleksey.Bochkov; +1 Ответить
17. minimajack 69 27.03.15 10:43 Сейчас в теме
(16) pumbaE, я говорю именно про хранение версий.
Во первых поиск на 99% будет выполнятся по гуидам
Во вторых интересует именно различия - а не поиск чего то - где то
В третьих проверил подобный вариант с baseX - сериализация XML быстрее, от стандартного механизма "Версионрования" практически не отличается
14. Dach 298 27.03.15 09:01 Сейчас в теме
А можно поподробнее прокомментировать вот это: "при изменении объекта фиксировать сам факт, а в отдельном фоновом задании выполнять сериализацию в JSON и отправку данных" ?
15. minimajack 69 27.03.15 10:33 Сейчас в теме
(14) Dach, в РС записывать всю информацию, но не пересылать в ElasticSearch.
от сериализации в данном случае не уйти...но таким образом сокращаем время транзакции.
В фоновом задании просто берем пачку новых объектов и передаем в ElasticSearch...после корректной передачи - удаляем из РС запись
21. reflexcompani 15 24.04.15 09:51 Сейчас в теме
Добрый день. Возникли сложности при внедрении данного функционала, в связи с этим хочу уточнить несколько моментов:
1. Скажите, какое значение мне нужно заполнить в графе АдресИнстанса - имя компьютера и порт с ElasticSearch? Работаю по SQL.
2. Установить на целевой машине JAVA и прописать переменную JAVA_HOME. JAVA стоит на машине, а переменную где прописать. И если не затруднить, может укажите ссылку на конкретную JAVA.
22. Aleksey.Bochkov 3380 24.04.15 12:15 Сейчас в теме
(21) reflexcompani,
1) Для константы "ElasticSearch_АдресИнстанса" надо указать хост и порт на котором расположен запущенный ElasticSearch.
Например, "localhost:9200" - это если ElasticSearch установлен на той же машине, где будет исполнятся код.
Если это другая машина - должно быть указано сетевое имя или IP-адрес вместо localhost. Ну и в firewall этот порт должен быть открыт.

2) https://www.google.com/#q=%D0%BA%D0%B0%D0%BA+%D0%BF%D1%80%D0%BE%D0%BF%D0%B8%D1%81%D0­%B0%D1%82%D1%8C+java_home+%D0%B2+windows
скачать JAVA - http://www.oracle.com/technetwork/java/javase/downloads/index.html
23. tormozit 5962 22.05.15 09:21 Сейчас в теме
24. V.Nikonov 119 30.09.15 14:37 Сейчас в теме
Внешнее хранилище - интересно! Но тезис о полном восстановлении предыдущего состояния... это по моему слишком для учетной системы.
В 90% случаев требуется именно сведения об изменениях! Соответственно, только перед записью приходится анализировать различия записанного и нового объекта... Но смена порядка строк в ТЧ так же выдается за изменение большинством систем Верификации! Лично я решал проблему сверткой ТЧ "Товары" и анализировал свернутые Количества и Суммы. Выявляя добавленный и выведенный ассортимент.
Правда, в моей реализации писалось в ЖР и не зависимо от завершения транзакции. Откидывать ошибочные записи приходилось по анализу штатных записей ЖР.
Но для задач расследований, этого вполне достаточно было.
25. Elena_Q 8 13.10.15 11:58 Сейчас в теме
Добрый день! У меня выходит такое сообщение ElasticSearch_ПросмотрВерсий.ПоказатьВерсииНаСервере (IndexMissingException[[versions_BU] missing] )
26. Aleksey.Bochkov 3380 16.10.15 01:01 Сейчас в теме
(25) Elena_Q,
Судя по всему, отсутствует индекс с таким именем. Посмотрите отладчиком как отправляется запрос в ES и какой возвращается результат. Вероятно, при каждой попытке записи версии в базу возникает ошибка, поэтому индекс в ES и не создался.
Чтобы посмотреть статистику по индексам в ES - откройте вот эту ссылку http://localhost:9200/_all/_stats?pretty (только не в IE)
Прикрепленные файлы:
27. Elena_Q 8 19.10.15 12:36 Сейчас в теме
Спасибо за ответ. Посмотрю
28. Elena_Q 8 19.10.15 12:40 Сейчас в теме
Возвращает:

{
"_shards" : {
"total" : 0,
"successful" : 0,
"failed" : 0
},
"_all" : {
"primaries" : { },
"total" : { }
},
"indices" : { }
}


это значит ничего не отправляется?
29. Aleksey.Bochkov 3380 28.10.15 08:41 Сейчас в теме
(28) Elena_Q,
Да, значит в базе ES ничего нет.
Посмотрите отладчиком результат ответа при попытке отправки HTTP-запроса в ES - там должна быть видна ошибка.
30. comol 4356 29.12.15 13:02 Сейчас в теме
Искал механизм на замену стандартному... действительно в специализированную БД лучше бы сохранять XML-ки/JSON-ки

Данные синхронно записываются в ElasticSearch до окончания транзакци
... стало грустно что люди ещё так делают...

Установить на целевой машине JAVA
Собственно погрустнело ещё больше...
31. pumbaE 637 29.12.15 15:39 Сейчас в теме
(30) пиши в регистр, потом асинхроно переноси в отдельное хранилище - тут имхо проблемы нет подкорректировать.
У меня на распределенных базах так шардинг был настроек, в каждой точке свой elasticsearch, в центральном кластере все логи собираются. Плюс на машинках с java еще и logstash подключаен для журнала регистрации, который так же в elasticsearch скидывается.
32. user597674_ssharshatov 11.05.17 13:05 Сейчас в теме
{"error":{"root_cause":[{"type":"illegal_argument_exception","reason":"Fielddata is disabled on text fields by default. Set fielddata=true on [Object_Version] in order to load fielddata in memory by uninverting the inverted index. Note that this can however use significant memory."}],"type":"search_phase_execution_exception","reason":"all shards failed","phase":"query","grouped":true,"failed_shards":[{"shard":0,"index":"versions_tok","node":"1SikbqSxRE-jyaQTSIOjOQ","reason":{"type":"illegal_argument_exception","reason":"Fielddata is disabled on text fields by default. Set fielddata=true on [Object_Version] in order to load fielddata in memory by uninverting the inverted index. Note that this can however use significant memory."}}],"caused_by":{"type":"illegal_argument_exception","reason":"Fielddata is disabled on text fields by default. Set fielddata=true on [Object_Version] in order to load fielddata in memory by uninverting the inverted index. Note that this can however use significant memory."}},"status":400}
У меня вот такую ошибку выдает.
33. nicxxx 238 21.10.17 14:03 Сейчас в теме
(32) Устранить проблему поможет данный скрипт. Проще всего его выполнить в git bash, ну или установить curl отдельно, если гитом не пользуетесь.
Префикс базы у менят "w1", его поменяйте на свой. Также и адрес эластика, я оставил по-умолчанию, смените, если надо, 'localhost:9200' на свой.
Кстати, префикс не может содержать заглавных букв, запросы вылетают с ошибкой.

curl -XPUT 'localhost:9200/versions_w1/_mapping/Object_ID?update_all_types' -H 'Content-Type: application/json' -d'
{
"properties": {
"Object_ID": {
"type": "text",
"fielddata": true
}
}
}
'


curl -XPUT 'localhost:9200/versions_w1/_mapping/Object_DateTime?update_all_types' -H 'Content-Type: application/json' -d'
{
"properties": {
"Object_DateTime": {
"type": "date",
"fielddata": true
}
}
}
'

curl -XPUT 'localhost:9200/versions_w1/_mapping/Object_Name?update_all_types' -H 'Content-Type: application/json' -d'
{
"properties": {
"Object_Name": {
"type": "text",
"fielddata": true
}
}
}
'

curl -XPUT 'localhost:9200/versions_w1/_mapping/Object_User?update_all_types' -H 'Content-Type: application/json' -d'
{
"properties": {
"Object_User": {
"type": "text",
"fielddata": true
}
}
}
'

curl -XPUT 'localhost:9200/versions_w1/_mapping/Object_Version?update_all_types' -H 'Content-Type: application/json' -d'
{
"properties": {
"Object_Version": {
"type": "text",
"fielddata": true
}
}
}
'
34. nicxxx 238 21.10.17 15:26 Сейчас в теме
Мой предыдущий пост актуален для версии 5.6.3.
Похоже, за 2,5 года с момента публикации, в эластике многое изменилось концептуально, т.к. по инструкции автора не взлетает моментально.
Оставьте свое сообщение

См. также

Установка предопределенных элементов: просмотр, исправление и поиск ошибок (задвоенных и отсутствующих) Промо

Инструментарий разработчика Универсальные обработки v8 1cv8.cf Абонемент ($m)

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

2 стартмани

06.10.2014    149305    1986    ekaruk    165    

Списание (корректировка) задолженности контрагентов УНФ 1.6

Закрытие периода Дебиторская и кредиторская задолженность Обработка документов Дебиторская и кредиторская задолженность v8 УНФ Украина БУ Абонемент ($m)

Обнуление задолженности контрагентов в конфигурации "Управление небольшой (нашей) фирмой" версии 1.6 с помощью документа "Корректировка регистров".

1 стартмани

24.07.2019    21441    13    DMon    1    

Модель объекта

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

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

1 стартмани

30.06.2019    12193    0    vadim1980    5    

Регистрация документов с измененной суммой

Обработка документов v8 1cv8.cf Абонемент ($m)

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

1 стартмани

20.04.2019    18086    3    ryan    0    

StartManager 1.4 - Развитие альтернативного стартера Промо

Стартеры 1С v7.7 v8 Абонемент ($m)

Очередная редакция альтернативного стартера, являющегося продолжением StartManager 1.3. Спасибо всем, кто присылал свои замечания и пожелания, и тем, кто перечислял финансы на поддержку проекта. С учетом накопленного опыта, стартер был достаточно сильно переработан в плане архитектуры. В основном сделан упор на масштабируемость, для способности программы быстро адаптироваться к расширению предъявляемых требований (т.к. довольно часто просят добавить ту или иную хотелку). Было пересмотрено внешнее оформление, переработан существующий и добавлен новый функционал. В общем можно сказать, что стартер эволюционировал, по сравнению с предыдущей редакцией. Однако пока не всё реализовано, что планировалось, поэтому еще есть куда развиваться в плане функциональности.

1 стартмани

23.04.2014    120673    788    Alexoniq    1540    

Блин, мы забыли включить регламентные задания…

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

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

1 стартмани

08.04.2019    16863    15    slozhenikin_com    37    

Валовая прибыль для УПП 1.3, КА 1.1 в режиме РАУЗ (работа типового отчета без доработок конфигурации)

Обработка документов v8 КА1 УПП1 УУ Абонемент ($m)

Простое и мгновенное решение для использования типового отчета "Валовая прибыль" в конфигурациях "Управление производственным предприятием 1.3", "Комплексная автоматизация 1.1" (а также отраслевых решений на их базе) при включенном режиме РАУЗ (расширенная аналитика учета затрат). Не требует настройки или изменения конфигурации, либо может быть, для дополнительного удобства, интегрировано в нее с минимальными доработками.

2 стартмани

21.01.2019    18342    20    stvorl    11    

Конструктор мобильного клиента Simple WMS Client: способ создать полноценный ТСД без мобильной разработки. Теперь новая версия - Simple UI (обновлено 14.11.2019)

Инструментарий разработчика Сканер штрих-кода Терминал сбора данных Мобильная разработка Оптовая торговля Производство готовой продукции (работ, услуг) Розничная торговля Учет ОС и НМА Учет ТМЦ Оптовая торговля Производство готовой продукции (работ, услуг) Розничная торговля Учет ОС и НМА Учет ТМЦ v8 v8::Mobile БУ УУ Абонемент ($m)

Simple WMS Client – это визуальный конструктор мобильного клиента для терминала сбора данных(ТСД) или обычного телефона на Android. Приложение работает в онлайн режиме через интернет или WI-FI, постоянно общаясь с базой посредством http-запросов (вариант для 1С-клиента общается с 1С напрямую как обычный клиент). Можно создавать любые конфигурации мобильного клиента с помощью конструктора и обработчиков на языке 1С (НЕ мобильная платформа). Вся логика приложения и интеграции содержится в обработчиках на стороне 1С. Это очень простой способ создать и развернуть клиентскую часть для WMS системы или для любой другой конфигурации 1С (УТ, УПП, ERP, самописной) с минимумом программирования. Например, можно добавить в учетную систему адресное хранение, учет оборудования и любые другие задачи. Приложение умеет работать не только со штрих-кодами, но и с распознаванием голоса от Google. Это бесплатная и открытая система, не требующая обучения, с возможностью быстро получить результат.

5 стартмани

09.01.2019    43588    247    informa1555    232    

Правильные аналоги номенклатуры (кроссы запчастей) для 1С / Управляемые формы Промо

Обработка справочников Оптовая торговля Учет ТМЦ Оптовая торговля Учет ТМЦ v8 v8::УФ 1cv8.cf УУ Абонемент ($m)

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

5 стартмани

29.07.2015    33419    8    taurus__    22    

Легкое и гибкое управление списком доступных баз 1С у пользователей

Стартеры 1С Сервисные утилиты Администрирование СУБД v8 1cv8.cf Россия Абонемент ($m)

Когда в локальной сети много пользователей, а еще большое количество различных баз и при этом каждому нужны свои, то администрирование этого зоопарка превращается в АД! Этот комплекс позволяет централизованно управлять списком доступных баз в разрезе пользователей. За пару кликов можно добавить или убрать базу у всех пользователей.

7 стартмани

05.12.2018    15398    16    RomikR    9    

Многопоточная обработка данных

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

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

1 стартмани

23.11.2018    20441    59    _ASZ_    15    

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

Универсальные обработки Чистка базы v8 v8::БУ v8::ОУ v8::УФ КА1 БП2.0 ЗУП2.5 УТ10 УПП1 УНФ БГУ ERP2 БП3.0 УТ11 УХ КА2 ЗУП3.x Россия Абонемент ($m)

Обработка позволяет обнулить остатки по регистру накопления или бухгалтерии на определенную дату. Поддерживается большинство типовых конфигураций (БП 3, БП 2, УТ 11, УТ 10, ЗУП 3, ЗУП 2, БГУ 2, БГУ 1, ERP, УПП, КА 2, КА 1, УХ 3, УХ 1, УНФ). Гибкая настройка (отборы, заполнение реквизитов и любых полей корр. счета, возможность обнулять ресурсы выборочно). Несколько режимов работы. Два интерфейса: простой и с расширенным набором настроек.

2 стартмани

19.11.2018    22350    291    morozov.sv    50    

Очистка кэша 1С 8 (8.0, 8.1, 8.2, 8.3). Грамотная чистка кэша 1С с сохранением настроек.

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

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

1 стартмани

04.11.2018    37036    377    Eugen-S    34    

Навигатор по конфигурации базы 1С 8.3 Промо

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

Универсальная внешняя обработка для просмотра метаданных конфигураций баз 1С 8.3. Отображает свойства и реквизиты объектов конфигурации, их количество, основные права доступа и т.д. Отображаемые характеристики объектов: свойства, реквизиты, стандартные рекизиты, реквизиты табличных частей, предопределенные данные, регистраторы для регистров, движения для документов, команды, чужие команды, подписки на события, подсистемы. Отображает структуру хранения объектов базы данных, для регистров доступен сервис "Управление итогами". Платформа 8.3, управляемые формы. Версия 1.1.0.69 от 09.09.2020

3 стартмани

28.10.2018    33104    293    ROL32    69    

Универсальный инструмент для переноса данных через табличный документ (УФ)

Обработка документов Универсальные обработки Обработка справочников v8 v8::УФ 1cv8.cf Абонемент ($m)

Для опытных пользователей, разработчиков, администраторов, консультантов

5 стартмани

15.10.2018    32645    121    json    40    

TextRadar - нечеткий поиск в тексте

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

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

1 стартмани

19.09.2018    16773    20    TSSV    18    

Помощник корректировки остатков ЕГАИС в небольшом магазине. Розница 2.2

Розничная торговля Обработка документов Розничная торговля v8 Розница Розничная и сетевая торговля (FMCG) Рестораны, кафе и фаст-фуд Россия УУ Абонемент ($m)

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

5 стартмани

08.09.2018    31560    82    asdfgcom    46    

Расширение резервов отпусков

Обработка документов Зарплата Зарплата v8 v8::СПР ERP2 ЗКГУ3.0 ЗУП3.x Россия БУ Абонемент ($m)

Произвольная настройка базы для расчета резервов отпусков.

2 стартмани

10.08.2018    25721    51    СергейКа    16    

[Расширение] Контроль отрицательных остатков по регистру бухгалтерии при проведении Промо

Универсальные функции Инструментарий разработчика Учет ТМЦ Учет ТМЦ v8 1cv8.cf Россия БУ Абонемент ($m)

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

1 стартмани

17.08.2015    46611    156    ekaruk    32    

Позиционирование в помещении с помощью нейросети по сигналу Wi-Fi. Интерактивная карта склада в 1С с показом позиции

Инструментарий разработчика Практика программирования v8 Абонемент ($m)

Данная публикация содержит в себе редактор и интерактивную карту склада или иного помещения, на которой в реальном времени отображается позиция устройства, координаты которого вычисляются по уровням сигнала нескольких роутеров Wi-Fi. В статье и приложенным к ней разработкам предлагаются инструменты и методика для реализации вычисления точной геопозиции внутри помещений с помощью нейронной сети. Конфигурация написана на релизе 1С:Предприятие 8.3.12.1412, клиентское приложение имеет минимальный уровень совместимости SDK -16.

5 стартмани

09.08.2018    27319    26    informa1555    26    

Очистка периодических регистров посредством T-SQL (удаление записей, кроме среза последних)

Чистка базы v8 Абонемент ($m)

Обработка для ленивых. Составит вместо Вас запрос для SQL, который удалит все не актуальные записи (т.е все, кроме среза последних)

5 стартмани

22.06.2018    15754    19    Alexander.Shvets    9    

Автоматическое заполнение графиков в ЗУП 3.1

Зарплата Учет рабочего времени Обработка справочников Зарплата Учет рабочего времени v8 v8::СПР ЗУП3.x Россия БУ Абонемент ($m)

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

1 стартмани

05.05.2018    23376    18    notserioussam    2    

Очистка регистрации обмена Промо

Чистка базы v8 v8::ОУ УТ10 Абонемент ($m)

Данная обработка предназначена для очистки узла. Для очистки необходимо указать период,организацию.

1 стартмани

19.09.2017    16823    5    serg-lom89    0    

Добавление возможности в конфигурации ЗУП 3.1 работать с фотографиями сотрудников (Зарплата и Управление Персоналом, редакция 3.1)

Обработка справочников Управление персоналом (HRM) Управление персоналом (HRM) v8 v8::СПР ЗУП3.x БУ Абонемент ($m)

Добавление возможности в ЗУП 3.1 работать с фотографиями сотрудников (физических лиц). Расширение тестировалось на релизе ЗУП 3.1.5.129.

1 стартмани

09.04.2018    29427    69    charivnick    3    

Регистры правил [Расширение]

Инструментарий разработчика Информационная безопасность v8 v8::Права УТ11 Абонемент ($m)

Регистры правил - права доступа, запрет редактирования, автоподстановка реквизитов и т.д.

10 стартмани

15.03.2018    17476    9    33lab    1    

Корректировка остатков ЕГАИС, возврат из регистра 2, загрузка ТТН из файлов, другое для УТ10.3

Розничная торговля Обработка документов Розничная торговля v8 v8::ОУ УТ10 Россия БУ Абонемент ($m)

Набор обработок для автоматизации работы с ЕГАИС: Обработка корректировки остатков ЕГАИС для УТ 10.3, аналогичная имеющимся в УТ 11, Рознице 2.2. Автоматически формирует документы "Передача в торговый зал", "Акт постановки на баланс в торговом зале", "Акт списания в торговом зале". Обработка возврата из регистра 2 с подбором справок Б. Обработка формирования ТТН из файлов xml.

1 стартмани

24.01.2018    34367    29    biz-intel    5    

Расчет начисления зарплаты со сложной формулой, по данным из внешнего источника. ЗУП 3.1

Обработка документов Загрузка и выгрузка в Excel Зарплата Зарплата v8 v8::СПР ЗКГУ3.0 ЗУП3.x БУ Абонемент ($m)

Расчет начисления зарплаты со сложной формулой, по данным из внешнего источника по данным экономического отдела. ЗУП 3.1.

3 стартмани

20.12.2017    47486    32    mvv1975    7    

Копирование меню в Трактир Management

Обработка документов Производство готовой продукции (работ, услуг) Производство готовой продукции (работ, услуг) v8 1cv8.cf Рестораны, кафе и фаст-фуд Россия УУ Абонемент ($m)

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

1 стартмани

28.11.2017    27421    4    integrator1983    0    

Помощник по закрытию месяца для УТ 11.3

Закрытие периода Обработка документов Закрытие периода Закрытие периода v8 v8::ОУ УТ11 Россия УУ Абонемент ($m)

Помощник по закрытию месяца для УТ 11.3. Имеет две функции: обнуление товаров "К оформлению" в интеркампани и обнуление отрицательных остатков в регистре "Себестоимость товаров".

5 стартмани

10.11.2017    22997    26    Zalipaka    1    

Программное формирование форматированной строки в стиле html+inline CSS

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

Если вам приходилось работать с форматированными строками программно, то вы знаете, какая это боль. Данное решение облегчает программное формирование таких строк.

1 стартмани

18.11.2017    30982    33    bonv    10    

Быстрое удаление неиспользуемых версий 1С:Предприятие 8, кэша метаданных и информационных баз

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

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

1 стартмани

14.11.2017    21458    88    bonv    15