Работа с хранилищем конфигурации из режима 1С: Предприятие минуя конфигуратор

0. MaxxG 79 11.06.20 13:32 Сейчас в теме
Описание приемов работы с хранилищем конфигурации 1С из режима 1С: Предприятие минуя конфигуратор.
Статья содержит ряд примеров работы с хранилищем по протоколу HTTP, описание "внутренностей", а также демонстрационную обработку

Перейти к публикации

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

Очень интересно! Подписался.
jaroslav.h; YPermitin; +2 Ответить
2. Yashazz 3318 11.06.20 18:34 Сейчас в теме
Я вот, честно сказать, не очень понял. Лежит у меня, допустим, хранилище на некоем сервере компании, и подключаемся мы с коллегами к нему... И хранилище это, как учит нас теория, по сути пара файлов формата, близкого к файловым SDBL...И вот с чего оно вдруг будет отвечать на рест-запросы? Волшебный компонент "CAPICOM" поможет?

пы.сы. опечатку в "СоответсТвие" поправьте)
3. MaxxG 79 11.06.20 18:49 Сейчас в теме
(2)Спасибо, опечатку поправил.
Хранилище - это не только несколько файлов, но и сервер хранилища конфигураций. Если сервер опубликован по протоколу http, то конфигуратор общается с ним с помощью post запросов. Что я и описал в статье. Компонент capicom необходим лишь для получения хэша пароля.
4. Yashazz 3318 11.06.20 19:01 Сейчас в теме
(3) Вооот) Только вы это упомянуть забыли, как краеугольное условие применения) И невольно создаётся ощущение, что старые-добрые варианты хранилища тоже так тягать можно. О чём я вам аккуратно и напомнил. Пропишите в статье, пожалуйста, во избежание дезориентации читателя, что хранилище-то опубликованное должно быть.

Кстати, вопрос защищённости такого публикования и такого обращения, случайно, не копали? Он слабовато освещён.
5. borodatii 3 12.06.20 01:29 Сейчас в теме
(4) Зная 1С, думаю, всё передаётся в открытом виде, нужно только перехватить трафик между хранилищем и пользователем, чтобы узнать данные для авторизации, а дальше можно делать всё что захочется.
6. MaxxG 79 12.06.20 20:36 Сейчас в теме +5 $m
(5)Да, все передаётся в открытом виде. Именно это я и описал в статье
7. MaxxG 79 12.06.20 20:40 Сейчас в теме
(4) в начале статьи я описал, что нам потребуется сервер хранилища с доступом по http. Попробую позже более четко сформировать это требование, чтобы ни у кого не возникало вопросов. Трафик никак не защищается и не кодируется. Думаю, что при классическом доступе по tcp ситуация аналогичная, просто при доступе по http примеры более показательны
8. LexBond 12.06.20 20:41 Сейчас в теме
Отличная работа. Как с вами связаться? Мой мейл: bonduser*yandex.ru
12. malikov_pro 401 15.06.20 10:24 Сейчас в теме
(9) Если будет в виде надстройки для nginx на lua, то да, а так неудобно еще один узел разворачивать.
Сейчас на сервере развернуто 4 сервиса под каждый из вариантов клиентов (рарус, scloud, локальные установки клиентов), для каждого добавлять доп сервис неудобно.

(5) Оборачивается в HTTPS nginx-ом например или настроить VPN до сервера с хранилищем OpenVPN RA на pfSense например. При организации по HTTPS дополнительно прикрывать по allow IP.

(0) Если глубоко копали формат обмена, то после какого сообщения запись в базе хранилища сформирована и имеет смысл запускать gitsync например?
13. VKislitsin 15.06.20 12:26 Сейчас в теме
(12)
Если глубоко копали формат обмена, то после какого сообщения запись в базе хранилища сформирована и имеет смысл запускать gitsync например?

Судя по вопросу, Вы хотите выполнять синхронизацию с Git по событию помещения в хранилище.
Я у себя делал подобное с помощью PowerShell-а и планировщика заданий. Скрипт PS, запущенный как служба, при изменении каталога /data Хранилища генерировал событие Windows. А в планировщике настроена задача, срабатывающая по этому событию. Причем срабатывание ставил с задержкой на 5-10 минут, для того, чтобы комментарий к версии Хранилища уже "устаканился". Зачастую разработчики пишут комментарий не сразу при помещении в Хран, а в течение нескольких минут. Или редактируют, например номер задачи дописывают.
14. malikov_pro 401 15.06.20 12:40 Сейчас в теме
(13)
Судя по вопросу, Вы хотите выполнять синхронизацию с Git по событию помещения в хранилище.

Да, именно так. У самого развернуто на ubuntu. Активно использую nginx как обратный прокси, поэтому хотел как дополнение к нему.
Интересно именно помещение изменения, а не изменение БД, чтобы лишних срабатываний не было.

Коммент редактировать после помещения бывает нужно, при автоматике уже "никак".
15. malikov_pro 401 15.06.20 12:42 Сейчас в теме
(13) Усложняется это еще тем что при помещении даже с комментарием и при отсутствии изменения по данным отдельная версия не фиксируется в хранилище (на сколько знаю). По идее и этот вариант нужно обработать.
17. artbear 1186 17.06.20 11:38 Сейчас в теме
(13) подписка на изменение файлов\каталогов для хранилища работает неточно, т.к. хранилище довольно часто меняет свои файлы, даже если разработчик ничего не поменял (
я и многие коллеги за долгие годы используют периодический опрос хранилища и хранилище прекрасно синхронизируется с гитом.
18. VKislitsin 17.06.20 13:47 Сейчас в теме
(17)
подписка на изменение файлов\каталогов для хранилища работает неточно, т.к. хранилище довольно часто меняет свои файлы, даже если разработчик ничего не поменял (
я и многие коллеги за долгие годы используют периодический опрос хранилища и хранилище прекрасно синхронизируется с гитом

Артур, я как раз не хотел использовать периодический опрос. Мне важно было сделать с задержкой после изменения, т.к. я не хотел чтобы периодический опрос, выполнившийся через несколько секунд после помещения, забрал результат с недозаполненным комментарием. Не замечал ложных срабатываний, но даже если они и есть, GitSync тут же, получив список версий, видит что синхронизирована последняя версия и лишних телодвижений не выполняет.
Кстати, если я правильно помню, в материалах курса по инженерным практикам (и вышедшей следом книге), описывалось отслеживание изменений файла БД хранилища. Я отслеживаю не его, а каталог с данными.
10. PerlAmutor 106 14.06.20 17:43 Сейчас в теме
Если пароль преобразовать сначала в UTF-8, убрать оттуда BOM (если есть) и скормить классу "Новый ХешированиеДанных" в виде Двоичных Данных, то MD5 хэш тоже не будет совпадать?
11. MaxxG 79 15.06.20 10:19 Сейчас в теме
(10)Нет, я очень много способов перебрал, прежде чем дошел до компоненты capicom. Различий кодирования просто в MD5 и CAPICOM_HASH_ALGORITHM_MD5 я пока не нашел
16. artbear 1186 17.06.20 11:34 Сейчас в теме
Очень интересный и полезный анализ, спасибо автору!
Оставьте свое сообщение
Вопросы с вознаграждением