Работа с 1CD средствами Python

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

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

python 1cd

Библиотека работы с 1CD средствами Python. Opensource / Cross platform / Python.

Структура данных файлов 1CD уже давно ни для кого не является секретом. Благодарим за это awa. Без его статьи этой библиотеки не было бы.

В остальном история разработки крайне простая: возникло желание изучить Python. А какой лучший способ изучения языка программирования? Конечно же, написать на нем небольшой проект. В голову пришла идея написать извлекатель паролей (точнее их хэшей) из файловой базы 1С. Поначалу думал сделать простую обертку над tool_1cd, но потом решил, что это как-то не спортивно. Из готовых аналогов нашел только проприетарные библиотеки / приложения и реализацию средствами 1С (медленно, только под Windows, но все равно круто). В итоге решил написать библиотеку для Python. А потом уже и экстрактор на ней сделать.

Что из этого получилось, можно увидеть во вложении.

Как работатать:

1. Ставим модуль через pip:

pip install onec_dtools

2.  Импортируем библиотеку в приложение и смотрим, что она может.

import onec_dtools

with open('1Cv8.1CD', 'rb') as f:
    db = onec_dtools.DatabaseReader(f)
    print("База данных 1С (вер. {}/{})".format(db.version, db.locale))
    print("Всего таблиц: {}".format(len(db.description)))
    if row.is_empty:
            continue
    for row in db.tables['V8USERS']:
        print(row.as_list(True))

В db у нас будет класс для взаимодействия файловой базой. Инициализация класса, пожалуй, самая длительная операция, т.к. она считывает всю структуру БД. После инициализации нам сразу доступна информации о версии формата файла (тестировалось все только с базами формата 8.2.14 - этого должно быть достаточно для работы со всеми актуальными версиями платформы), языка БД и описание таблиц.

Чтение таблиц БД возвращает генератор. Таким образом данные считываются и загружаются в память построчно, а не всей таблицей сразу. Этот же механизм используется при работе с полями неограниченной длины: при считывании строки они возвращают не целиковое значение, а его длину и генератор для чтения.

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

27.12.2015

С момент публикации этой статьи модуль был "причесан" и теперь вполне может считаться production ready.

Из основных изменений:

  • Добавлена возможность работы с контейнерами по аналогии с v8unpack. Об этом даже есть отдельная статья.
  • Добавлены тесты, которые не смотря на свою простоту обеспечивают 98% покрытие кода проекта.
  • Появилась документация.

Если среди вас есть те, кто желает присоединиться к разработке, то добро пожаловать на Github. Что хотелось бы реализовать:

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

13.02.2016

Большое обновление.

  • Рефакторинг механизмов чтения формата 1CD
  • Новый API работы с файловой базой
  • Значительно улучшена документация
  • Исправлена ошибка преобразования значений типа Numeric
  • Исправлена ошибка чтения значений полей, допускающих NULL
  • Ускорено чтение информации о страницах размещения объектов БД
  • Ускорен разбор описаний таблиц БД
  • Ускорено преобразование полей типа DateTime
  • Преобразование значение в полях таблиц теперь происходит в момент обращения к ним, а не в момент чтения строк

05.09.2016

  • Добавлена поддержка 8.3.8

24.02.2017

  • Добавлена возможность распаковки EFD файлов (файлы поставки конфигурации)

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

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

.zip 18,95Kb
05.09.16
17
.zip 0.0.5 18,95Kb 17 Скачать

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

Комментарии
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
2. pumbaE 634 28.10.15 13:04 Сейчас в теме
Спасибо через pip найдем, я бы советовал убрать из начала названия "1C" и заменить на что-нибудь другое, ато могут придраться.
4. Infactum 288 28.10.15 14:02 Сейчас в теме
(2) pumbaE, (3) MishaHD,
От греха подальше переименую 1С в onec пожалуй.
Нарушений лицензии я тут никаких не вижу, тем более аналогичных решений достаточно и существуют они давно.
3. MishaHD 29 28.10.15 13:48 Сейчас в теме
Автор молодец, только ради спортивного интереса можно покопаться в структуре файловой базы. Но надо бы убрать из названия 1с, а то могут быть проблемы. Да и вообще наверняка программа нарушает лицензионное соглашение.
5. cool.vlad4 45 28.10.15 14:10 Сейчас в теме
(3) MishaHD,
Да и вообще наверняка программа нарушает лицензионное соглашение.

совсем не наверняка и не очевидно, что нарушает.
(2) pumbaE, на гитхабе ищется в две секунды https://github.com/Infactum/1C-dtools
6. Жолтокнижниг 250 28.10.15 19:47 Сейчас в теме
Сам хотел такое написать на питоне, с удовольствем посмотрю ваше творение.
11. doctorov_s 39 29.10.15 13:44 Сейчас в теме
Ну так ссылку то ты дашь на свое творение??
12. Infactum 288 29.10.15 13:50 Сейчас в теме
(11) doctorov_s, стоит быть внимательнее немного.
Или вам мало того, что пакет опубликован в PiPy, и есть исходники во вложении к статье / ссылка на гитхаб в комментариях?
13. quick 575 29.10.15 15:44 Сейчас в теме
Я тут недавно для 7-ки задел подобное
https://github.com/WorldException/v7py
jaroslav.h; zarius; +2 Ответить
17. Asis 04.11.15 12:18 Сейчас в теме
(0)
В python 2 не работает:
>>> import onec_dtools
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python27\lib\site-packages\onec_dtools\__init__.py", line 1, in <module>
    from onec_dtools.db import Database
  File "C:\Python27\lib\site-packages\onec_dtools\db.py", line 5, in <module>
    from onec_dtools.db_row import Row
  File "C:\Python27\lib\site-packages\onec_dtools\db_row.py", line 3, in <module>
    from _datetime import datetime
ImportError: No module named _datetime
Показать

18. Infactum 288 04.11.15 12:45 Сейчас в теме
(17) Asis, на данный момент заявлена поддержка python 3.4 и 3.5.
Возможно заработает и на более ранних версиях 3.х - не тестировал.
Я в курсе, что Python 2.x по прежнему очень популярен, но в моим планах обеспечить его поддержку пока нет. Если желаете помочь в этом - добро пожаловать на гитхаб.
P.S. Указанная ошибка должна устраниться просто переименованием _datetime в datetime. Но я не думаю, что это будет единственная причина несовместимости с python 3
19. enwony 1 09.12.15 21:37 Сейчас в теме
Это же github! Дорабатывайте, делайте свою ветку или делайте pull request автору. У меня на python 2.7.8 немного не завелась - поправил, работает (на более ранних версиях может не работать).
Кстати, автору большое спасибо - отличное начинание и хороший код.
20. Cujoko 6 30.12.15 12:38 Сейчас в теме
А зачем совместимость с Python 2.7? Люди обычно думают, как бы сделать совместимость с 3.х. Вообще проблемы поставить несколько версий интерпретатора под разные нужды быть не должно.
21. Infactum 288 30.12.15 14:00 Сейчас в теме
(20) Cujoko, на самом деле полно людей, которые принципиально до сих пор предпочитают python 2.x.
Я сам ничего бэкпортировать не буду, но если найдется желающий - почему бы и нет? Это ж опенсорс.
Меня больше работа с DT интересует.
22. Infactum 288 13.02.16 22:56 Сейчас в теме
Обновлено. Теперь в части чтения 1CD работает намного быстрее и читать строки можно не только итеративно, но и по индексу. Так же исправлено много разных ошибок.
23. Infactum 288 05.09.16 08:10 Сейчас в теме
Добавил поддержку 8.3.8, благодаря описанию из этой статьи. Вроде бы сейчас onec_dtools единственная open source библиотека, которая работает с этим форматом.
24. kote 516 05.03.17 00:00 Сейчас в теме
.. так бы и ставил лайки после каждого обновления :) спасибо, что не забрасываете это неблагодарное дело!
25. sss999 48 09.03.17 12:24 Сейчас в теме
по строению dt файла есть инфа?
26. Infactum 288 09.03.17 12:48 Сейчас в теме
(25) Нету.
Если бы было готовое описание формата, то я бы уже добавил его в библиотеку.
А так надо за хекс редактор садиться. В планах есть, но пока не до этого.
27. sss999 48 09.03.17 13:13 Сейчас в теме
28. Infactum 288 09.03.17 14:38 Сейчас в теме
(27) Описания формата DT нет в открытом доступе насколько мне известно. Это вовсе не означает, что никто в нем не разобрался.
Про сабж по ссылке мне известно, но это коммерческий продукт. Очевидно, что его автор помогать мне не будет.
Собственно по распаковке EFD я тоже к нему обращался, т.к. у него был плагин для Total Commander, и он готов был предоставить исходники, но сказал, что они были утеряны. Поэтому пришлось самому разбираться. Видимо DT ждет та же судьба.
30. Brawler 468 28.01.18 01:03 Сейчас в теме
В бою не пробовал, но дело вы делаете правидное однозначно!
31. kote 516 03.09.18 15:06 Сейчас в теме
(0) Отправил Вам pull request на githab в библиотеку - добавил многопоточности при распаковке.

На сильно допиленной ERP2 результат довольно обнадеживающий - порядка 3х минут против 12ти в исходном варианте.
Но на маленьких базах результат, наоборот, ухудшится наверное..

(но там и дельта по времени будет совсем незначительна с другой стороны)
32. kote 516 07.09.18 17:06 Сейчас в теме
(31)
Версия с многопоточностью доступна тут:
https://github.com/pruidzeko/onec_dtools
33. Infactum 288 15.09.18 13:08 Сейчас в теме
(31) Дошли наконец руки нормально посмотреть..
Как я понимаю основной задачей у вас было добиться ускорения распаковки. Вижу, что успех есть, но к коду довольно много претензий.

Во-первых вы используете многопоточность, которая в силу GIL в Python толком не работает. Исключение, на сколько я помню, операции ввода/вывода. Но т.к. в скрипте идет работа с файловой системой, то мы все равно ограничены отсутствием параллельность операций работы с диском (если конечно у вас не NVMe SSD). Единственное, что тут реально можно выполнить параллельно - это разархивация файлов верхнего уровня. Поэтому накидал свой пример тут.

Как работает:
- Поднимаем с данные всех внутренних файлов контейнера. Если конфигурация большая, то нужен будет python x64
- Отдаем эту информацию пулу субпроцессов на обработку. Количество процессов берется по числу ядер системы, поэтому тут мы легко получим 100% CPU
- Если распакованный файл не является контейнером, то отдаем данные пишущему процессу. Иначе разбираем его на субфайлы (они уже не будут упакованы).

В целом это должно давать хороший прирост производительности. Хотя Python и скорость работы это вещи слабо совместимые.

P.S. Как-то очень долго у вас ERP распаковывается. Типовая конфигурация (~650МБ) у меня разбирается за ~35 секунд даже в стоковом режиме. Проблема в основном в диске, на самом деле.
34. kote 516 16.09.18 11:59 Сейчас в теме
О, спасибо!

(33)
Типовая конфигурация (~650МБ) у меня разбирается за ~35 секунд даже в стоковом режиме.


Удивили.. у меня на работе, SSD Samsung 970EVO 250Gb на шине PCIe, c NVMe
i5-6400 3.1 ГГц, 8 Гб ОЗУ

Python 3.7 / x64 использовался..

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

===

А поделитесь, пожалуйста, Вашей конфигурацией компьютера. Если не сложно, поподробнее.. и используется ли антивирус и какой.
35. Infactum 288 16.09.18 14:14 Сейчас в теме
(34) Тестировалось все на относительно старом компе.
i7-3770 @ 3.8 GHz
16 Gb @ 1866 Mhz
SSD Samsung 860 @ SATA3

Какой-то Касперский с дефолтными настройками стоит.
Вот пример распаковки измененной ERP ~1.2ГБ
1 285 402 831 config.cf
1 файлов  1 285 402 831 байт

(onec_dtools) E:\demo_unpack>powershell Measure-Command { onec_dtools\examples\v8unpack_mt.py -U E:\demo_unpack\config.cf E:\demo_unpack\result }


Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 51
Milliseconds      : 445
Ticks             : 514456366
TotalDays         : 0,000595435608796296
TotalHours        : 0,0142904546111111
TotalMinutes      : 0,857427276666667
TotalSeconds      : 51,4456366
TotalMilliseconds : 51445,6366
Показать
36. Amunrah 1 16.09.18 20:49 Сейчас в теме
А можно-ли с помощью этой библиотеки тип и версию конфигурации посмотреть? ) Как сформировать запрос чтобы на выходе получить нечто вроде - Бухгалтерия предприятия - 3.0.64.54?..

И еще, не по теме вопроса ) в примере кода из описания у вас написано:

   
if row.is_empty:
    continue
for row in db.tables['V8USERS']:
    print(row.as_list(True))


Не должно-ли быть как-то так?:

   
for row in db.tables['V8USERS']:
    if row.is_empty:
        continue
    print(row.as_list(True))
37. Infactum 288 16.09.18 21:39 Сейчас в теме
(36) Извлечь версию конфигурации из контейнера конфигурации можно прочитав внутренний файл root. В нем будет идентификатор файла с нужной вам информацией.
Если надо прямо из конфигурации базы данных информацию получить, то наверное надо ее предварительно прочитать. Полагаю, она где-то в таблице v8config. В общем нужно смотреть и пробовать - это не сложно.
Другое дело что библиотека просто дает базовый функционал работы с контейнерами и прочими файлами платформы. Остальное - это примеры использования. Такого примера, что вас интересует, у меня нет.

А насчет примера в описании: да, в статье ошибка. На github пример содержит корректный код.
38. Amunrah 1 16.09.18 22:54 Сейчас в теме
(37) Библиотека замечательная и похоже действительно уникальная ) буду вникать по возможности, но пока я не знаком с ней на столько тонко, прошу разъяснить некоторые моменты хотя-бы в общих чертах... Процесс чтения таблицы CONFIG оказался весьма продолжительным, вероятно предпочтительней считывать техническую информацию из root-файла (это один из способов, если я вас правильно понял) и вот вопрос как это сделать или в каком направлении копать?.. )
Запрос - db.tables['CONFIG'][40957].as_list(True)
Выдает следующее - ['root', datetime.datetime(2018, 7, 11, 12, 0, 38), datetime.datetime(2018, 7, 11, 12, 0, 38), 0, 46, b'{\xbf{\x7f\xb5\x91N\xaa\x81\x99\x99YJ\x92\x91\xae\x89i\x8a\x99\xae\x89e\x92\x89n\xa2\x91\x81\x81\xae\x81\x99a\xb2YR\xa2y\x8a\xa9\x99\xa5N-\x00', 0]
Запрос - db.tables['CONFIG'][40958].as_list(True)
Выдает примерно тоже самое - ['version', datetime.datetime(2018, 7, 11, 12, 0, 38),..
Вероятно это дата создания. дата модификации, еще параметры, и какая-то бинарная строка данных...
39. Amunrah 1 16.09.18 23:57 Сейчас в теме
(38) А хотя нет, все в порядке ) нашел. действительно не сложно. Спасибо - библиотека отличная.
40. Infactum 288 17.09.18 00:00 Сейчас в теме
(38) Бинарные данные просто упакованы zlib. Разбирается так:
data = row['BINARYDATA'].value
value = zlib.decompressobj(-15).decompress(data).decode('utf-8-sig')

Дальше думаю без проблем разберетесь.
41. Amunrah 1 17.09.18 01:00 Сейчас в теме
(40) Да разобрался. большое спасибо и огромный респект за такой основательный труд. )
Оставьте свое сообщение

См. также

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

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

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

2 стартмани

06.10.2014    145025    1949    ekaruk    164    

Консоль запросов 9000

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

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

1 стартмани

24.02.2020    8652    188    kuza2000    119    

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

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

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

2 стартмани

24.01.2020    6411    22    YPermitin    25    

Инструменты оптимизации для 1С на MS SQL Server

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

Набор базовых инструментов для поиска узких мест в работе 1С на MS SQL Server.

1 стартмани

15.12.2019    14531    191    berezdetsky    23    

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

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

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

3 стартмани

28.10.2018    29173    274    ROL32    67    

CF & SQL : конструктор прямых запросов к БД 1С

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

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

1 стартмани

02.10.2019    15676    185    dmitrydemenew    44    

Конвейер проверки качества кода

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

Jenkinsfile для выполнения проверки качества кода. Собирает информацию с АПК, EDT и BSL-LS. Сопоставляет ошибки с гит-репозиторием, выгруженным ГитКонвертором. Отправляет в Сонар.

3 стартмани

04.09.2019    20693    21    Stepa86    44    

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

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

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

5 стартмани

24.07.2019    18345    157    YPermitin    27    

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

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

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

1 стартмани

17.08.2015    44764    155    ekaruk    31    

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

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

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

1 стартмани

30.06.2019    10770    0    vadim1980    5    

Переводим рутину ручного тестирования 1C на рельсы Jenkins-а и ADD

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

Вы все еще тестируете свои конфигурации 1С вручную? Да вы просто тратите жизнь впустую! В данном туториале попробуем скрестить ADD и jenkins для автоматического запуска тестов.

1 стартмани

03.06.2019    20727    5    ripreal1    89    

Универсальный HTTP-сервис на платформе 1С, аля HTTP-сервер с примером

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

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

1 стартмани

13.05.2019    26520    119    Diversus    42    

Faster - многофункциональный ускоритель работы программиста 1С Промо

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

Программа Faster 8.7 позволяет ускорить процесс работы программиста 1С (и не только 1C). Программа Faster позволяет делится кодом с другими программистами в два клика или передать ссылку через QR Код. Исправление введенных фраз двойным Shift (с помощью speller.yandex) Полезная утилита для тех, кто печатает много однотипного текста, кодирует в среде Windows на разных языках программирования. Через некоторое время работы с программой у вас соберется своя база часто используемых словосочетаний и кусков кода. Полностью переделан механизм перехвата клавиш, теперь не зависает при обработке скриптов.

1 стартмани

24.05.2012    75397    207    moolex    145    

Групповая проверка доработок

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

Обработка для массовой проверки доработок конфигурации: Открытие форм, Печать, Формирование отчетов, Проведение документов, Запись справочников, ПВХ, ПВР. Выдает список обнаруженных ошибок. Рекомендуется применять для тестирования обновленной конфигурации, перед установкой пользователям. В коде используются универсальные методы поэтому подходит для большинства конфигураций, построенных на базе библиотеки стандартных подсистем. Проверялась на Зарплата и управление персоналом КОРП 3.1.8.216, Управление торговлей 11, 1С:ERP Управление предприятием 2.4.7.141, Бухгалтерия предприятия КОРП 3.0.68.66.

2 стартмани

05.05.2019    13024    94    sapervodichka    23    

Расширение "Быстрая проверка кода" для конфигурации 1С:Автоматизированная проверка конфигураций

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

Расширение для конфигурации "1С:Автоматизированная проверка конфигураций", позволяющее проверять произвольный код.

1 стартмани

26.03.2019    16852    55    Bazil    25    

Настройка отладки на сервере 1С

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

Обработка для настройки отладки на сервере, включение отладки COM-соединений и отладки Web-сервисов.

1 стартмани

26.03.2019    22319    86    frkbvfnjh    37    

Консоль запросов + ТЗ как параметры Промо

Консоль запросов v8 1cv8.cf Украина Абонемент ($m)

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

2 стартмани

12.11.2010    32607    58    Kashemir    24    

Методика оптимизации программного кода 1С: проведение документов

Обработка документов Производительность и оптимизация (HighLoad) Инструментарий разработчика v8 v8::УФ Абонемент ($m)

Описание простого метода анализа производительности программного кода 1С, способов его оптимизации и оценки результатов в виде числовых показателей прироста производительности. Не требует сторонних программных продуктов, используются только типовые возможности платформ 1С. Методика проверена на линейке платформ начиная с 1С:Предприятие 8.2 (обычные формы, управляемые формы). Позволяет ускорить проведение проблемных документов в 3 и более раз, провести проверку корректности формирования проводок оптимизированным кодом и подтвердить результаты оптимизации реальными замерами производительности в режиме предприятия. К публикации приложены демонстрационные базы для режимов обычного и управляемого приложения на платформе 1С:Предприятие 8.3 (8.3.9.2033).

1 стартмани

19.03.2019    21752    16    dmitrydemenew    83    

Отчет по подпискам на события

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

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

1 стартмани

18.02.2019    8722    51    tomvlad    8    

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

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

Прототип дружелюбного и эффективного инструмента для написания пользовательских экспресс-инструкций. Задействована штатная утилита Windows, о существовании которой многие не знают и которая умеет делать огромную работу по логированию действий и снятию скриншотов на всех ПК с Windows (начиная с версии Win7). "Инструктор" не требует никакой установки и дополнительных библиотек! Это означает, что инструмент будет работать и на домашнем ПК и на "чужом ноутбуке" и на терминальном win-сервере у заказчика, где ваши права сильно ограничены. Вы просто подключаете легкую файловую базу 1С и получаете инструмент по снятию скриншотов с интересной функциональностью...

1 стартмани

15.02.2019    11688    42    ROM_NN    8    

[x1c.ru] 1CDBin: Работа с файлами *.1CD на низком уровне средствами языка 1С с возможностью чтения таблиц (поддерживается формат 8.3.8.0) Промо

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

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

1 стартмани

07.10.2014    49369    200    GusevNA    75    

Конструктор мобильного клиента 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    39059    245    informa1555    200    

Управление задачами в 1С - готовая подсистема с открытым кодом и широким базовым функционалом. Версия 1.0.6

Инструментарий разработчика Управление бизнес-процессами (BPM) Управление проектом v8 Абонемент ($m)

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

2 стартмани

17.12.2018    17766    93    for_sale    38    

Go. Разбор лога технологического журнала. Достойная альтернатива perl'у

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

Началось все с того, что я познакомился с перловыми скриптами для парса ТЖ которые размещены на kb.1c.ru (например в этой статье https://kb.1c.ru/articleView.jsp?id=113). По началу мне дико понравилось то, что перл разбирал гигабайты логов за считанные минуты, но позитив мой угасал обратно пропорционально с тем, насколько глубже я погружался в "кроличью нору" ....

1 стартмани

24.10.2018    18779    6    lazarenko    39    

Разбираемся со структурой правил конвертации данных Промо

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

При переносе данных между различающимися данными частенько приходится смотреть в правила. И часто, чтобы выяснить, к примеру, каким документом формируются остатки по конкретному ПВД, нужно заглядывать в него и искать, какое ПКО в нем вызывается. А может вызываться и алгоритм, в котором вызывается ПКО ;-) А если правил много? Чтобы не мучить себя утомительными поисками, предлагаю воспользоваться этой обработкой.

1 стартмани

14.10.2011    21082    29    Meta    17    

HTTP Сервисы: Путь к своему сервису. Часть 4

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

Продолжение статьи «HTTP Сервисы: Путь к своему сервису. Часть 3». В предыдущих частях мы уже о многом поговорили. В этой части поговорим про размер сообщений, о файлах, о порциях и немножко, о регламентах.

1 стартмани

28.09.2018    22215    36    dsdred    15    

Пользовательское определение языка 1С для Notepad++ и пример использования списка функций для навигации под свои нужды

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

Позволяет редактировать bsl-модули (или просто текст из буфера обмена, как на скриншоте) с традиционной для 1С подсветкой синтаксиса. Рисует список функций слева в 3-х вариантах: 1. Просто список функций 2. Список функций с группировкой по областям 3. Список вызовов 4. Язык запросов

1 стартмани

10.09.2018    10132    47    albert.goncharov    23    

Консоль Внедренца v.3.6.2

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

Идея данной обработки заключается в создании простого, функционального и универсального инструментария для внедренцев и программистов 1С, который будет работать как в толстом клиенте на обычных и на управляемых формах, так и в тонком клиенте. Интерфейс и логика работы максимально идентичны у обычных форм и управляемых. Инструментарий включает в себя: Консоль кода, Консоль запросов, Консоль отчетов (СКД), Универсальную обработку объектов, Средства для работы с таблицами базы данных 1С, Редактирование регистров сведений базы, Инструмент по работе с табличными документами - загрузка данных из табличного документа.

1 стартмани

27.08.2018    19190    326    evvakra    42    

Интерфейс сопоставления объектов для обмена (для типового регистра СоответствиеОбъектовДляОбмена) Промо

Инструментарий разработчика Универсальные обработки Перенос данных из 1C8 в 1C8 v8 КА1 БП2.0 ЗУП2.5 УТ10 УПП1 Абонемент ($m)

Вы внедряете обмен данными между двумя типовыми или основанными на типовых БД и вам необходим инструмент, чтобы сопоставить между собой справочники этих конфигураций? Вы хотите навести порядок в обмене данными, потому что вам надоело вылавливать дублирующиеся объекты? Вам очень хочется перепоручить сопоставление объектов обменивающихся баз пользователям, но нет подходящего и понятного пользователям интерфейса? Тогда вам нужна именно эта обработка!

4 стартмани

11.11.2015    37100    133    catsam    8    

HTTP Сервисы: Путь к своему сервису. Часть 3

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

Продолжение статьи «HTTP Сервисы: Путь к своему сервису. Часть 2». В предыдущих частях мы использовали только Get, в этой части поговорим о других методах и длительных операциях.

1 стартмани

27.08.2018    30536    48    dsdred    15    

HTTP Сервисы: Путь к своему сервису. Часть 2

Инструментарий разработчика Практика программирования v8 1cv8.cf ERP2 УТ11 КА2 Абонемент ($m)

Продолжение статьи «HTTP Сервисы: Путь к своему сервису. Часть 1». В этой части будет "Микс" из OData+HTTP-Сервис(Get)+СКД. Наш пример будет работать как в браузере, так и в написанной нами обработке. Работать будем с разными версиями платформ.

1 стартмани

13.08.2018    29330    33    dsdred    0    

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

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

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

5 стартмани

09.08.2018    25293    25    informa1555    26    

Exec - Выполнение кода, консоль запросов и не только! Промо

Консоль запросов v8 1cv8.cf Абонемент ($m)

Незаменимый инструмент администратора БД и программиста: Выполняйте произвольный код из режима 1С Предприятие; сохраняйте/загружайте часто используемые скрипты; выполняйте запросы с замером производительности запроса в целом и каждой из временных таблиц в частности, а также с просмотром содержимого временных таблиц; произвольным образом изменяйте любые объекты БД, редактируя даже не вынесенные на формы реквизиты и записывая изменения в режиме "ОбменДанными.Загрузка = Истина"; легко узнавайте ИД объектов БД; выполняйте прямые запросы к SQL с замером производительности и не только!

5 стартмани

10.11.2015    39128    75    catsam    11    

Консоль HTTP-запросов с генерацией кода

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

Консоль HTTP-запросов, которая не только выполняет запросы и получает результат их выполнения, но и генерирует необходимый код. Использую на 8.3.11.2899.

1 стартмани

25.05.2018    21726    255    leongl    16    

Работа со схемой запроса

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

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

1 стартмани

24.04.2018    40804    85    kalyaka    34    

Тестирование: пример создания сценарного UI теста для платформы 1С

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

В этой статье мы расскажем, как создать сценарный UI-тест. Опишем последовательность действий и покажем, как это сделать с использованием инструментария. Рассмотрим пример, максимально приближенный к боевому, покажем на примере конфигураций УТ11/ERP проверку бизнес-процесса "Продажа". Вы сможете убедиться, что создание сценарных тестов для платформы 1С на самом деле относительно быстрый и простой процесс.

1 стартмани

17.04.2018    19328    34    ivanov660    11    

КонЗап - консоль запросов с улучшенным интерфейсом и дополнительными функциями Промо

Консоль запросов v8 1cv8.cf Абонемент ($m)

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

1 стартмани

16.07.2014    13730    20    serjpsv    18    

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

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

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

10 стартмани

15.03.2018    16191    7    33lab    1    

Тестирование интерфейса в обычном приложении 8.2 при помощи SikuliX

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

Как же не хватает клиента тестирования на платформе 8.2. Не кликнешь на кнопку, не выберешь из списка, не проверишь видит ли надпись пользователь. Воспользуемся внешним инструментом SikuliX, который позволит нам протестировать функционал форм. Данный инструмент легко встраивается в линию сборки и может "дружить" с уже известным многим Open-source продуктами.

1 стартмани

03.01.2018    26987    4    kraynev-navi    41    

Универсальный конструктор отчетов СКД (Управляемые формы, тонкий клиент)

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

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

3 стартмани

20.11.2017    23208    247    Boneman    22    

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

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

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

1 стартмани

18.11.2017    28246    31    bonv    10    

Макет в СКД - пример всех возможных типовых вариантов

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

Макет СКД: наглядное представление того, что, как и куда выводится при типовых настройках.

1 стартмани

09.11.2017    20041    76    freelancer    4    

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

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

У каждого программиста за время работы накапливается полезный инструментарий, которым он привык пользоваться. Естественно и у меня он тоже имеется. И вот решено было немного поделиться с сообществом. Возможно идеи не новые. Более того, допускаю, что реализованы они не самым оптимальным образом. Но ведь для этого сообщество и существует, чтобы делиться с ним, получая обратную связь.

1 стартмани

24.09.2017    39936    15    vandalsvq    80    

Тестирование: пример из семи шагов создания Unit-теста для платформы 1С

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

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

1 стартмани

29.08.2017    27939    16    ivanov660    46    

"Исследователь" планировщика 1С

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

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

1 стартмани

10.08.2017    27951    123    new_user    33    

Трансформатор 1С - SQL

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

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

1 стартмани

28.06.2017    32960    333    Synoecium    49    

OneStyle. Улучшенное форматирование кода в конфигураторе

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

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

1 стартмани

19.06.2017    21956    22    Stepa86    45    

"Конвертация данных" + Git. Решение проблемы различий в файлах

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

Как известно, типовая конфигурация «Конвертация данных» обладает одним недостатком, мешающим работать с ней в Git-е. Если выгруженные из нее правила обмена загрузить в другую КД, а потом снова выгрузить, то полученные два файла будут очень сильно отличаться друг от друга, и при сравнении (diff) доработок будет невозможно провести код-ревью, равно как найти сами изменения, которые закоммитил разработчик.

1 стартмани

08.06.2017    23237    39    stas_ganiev    13    

Шаблон внешней обработки регламентного задания с формой настройки параметров выполнения

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

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

1 стартмани

28.05.2017    23525    169    Bassgood    10