Организация файлового хранилища на базе MS SQL Server с доступом из 1С

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

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

FileStream хранение файлов внешняя компонента

Пример реализации хранения файлов в базе MS SQL Server с использованием различных технологий. Подробно рассмотрен потоковый доступ к файлам с использованием технологии FileStream.

На текущий момент в конфигурациях 1С наиболее распространены два способа хранения прикрепленных файлов:

  1. Непосредственно в базе 1С
  2. В файловом хранилище.

О достоинствах и недостатках этих способов рассказано весьма подробно.

Существует и третий способ - хранение файлов во внешней базе, к примеру, MS SQL Server. До версии MS SQL Server 2008 данный способ не особо отличался от первого способа, т.е. хранения непосредственно в базе данных. Но начиная с MS SQL Server 2008 разработчикам была предложена новая технология хранения неструктурированных данных FileStream.

Если вкратце - технология FileStream предоставляет особый способ хранения и доступа к файлам:

  • На уровне СУБД файл помещается в определенное поле таблицы, но хранится при этом в особой файловой группе.
  • Каждой записи соответсвует физический файл на диске.
  • Доступ к файлам обеспечивает MS SQL Server, т.е. поддерживается транзакционное чтение/запись и ограничение доступа на основе прав доступа пользователя СУБД, а не Windows.
  • Файлы хранятся в специальной файловой группе, поэтому возможно расположение их на отдельном физическом диске.
  • Файловую группу FileStream возможно включать в бэкап базы.
  • Доступ к файлам возможен как через T-SQL-запросы, так и посредством потокового доступа (API файловой системы win32).
  • При потоковом доступе не используется память MS SQL Server, отсутствует высокая нагрузка на сервер, для кэширования файлов используется системный кэш Windows.

Приятным дополнением является полноценная поддержка FileStream бесплатным SQL Express, при этом отсутствуют какие-либо ограничения на размер файловой группы FileStream.

Существуют и ряд недостатков технологии FileStream:

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

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

База MS SQL состоит из трех таблиц:

1) innerStorage для хранения файлов непосредственно в базе, 

2) outerStorage для внешнего хранения файлов FileStream,

3) locationStorage - для определения в какой таблице хранится файл.

Скрипт для создания базы со всеми таблицами и хранимыми процедурами приложен в архиве.

В качестве идентификатора файла выступает ГУИД, в MS SQL он преобразуется в тип uniqueidentifier. Для передачи параметра между системами используется преобразование к строке.

В базе 1С указывается пограничный размер файла: если помещаемый файл меньше указанного размера, то файл помещается в таблицу innerStorage, больше - outerStorage. Одновременно делается  запись в таблицу locationStorage о расположении файла.

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

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

Запись файлов непосредственно в базу данных довольно тривиальная задача. Описаний решений существует великое множество, к примеру, //catalog.mista.ru/public/283336/ Описанные методы кодирования/декодирования из двоичных данных в Base64 успешно работают. Для небольших файлов скорость работы вполне удовлетворительная.

Из особенностей моей реализации данной подсистемы можно отметить:

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

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

//добавление файла
ПараметрыСоединения = Новый ПараметрыСоединенияВнешнегоИсточникаДанных;
ПараметрыСоединения.СтрокаСоединения = "DRIVER={SQL Server};" + СтрокаПодключения;
ХранилищеВнешнихФайлов = ВнешниеИсточникиДанных.ХранилищеВнешнихФайлов;
ХранилищеВнешнихФайлов.УстановитьОбщиеПараметрыСоединения(ПараметрыСоединения);
ХранилищеВнешнихФайлов.УстановитьСоединение();

ХранилищеВнешнихФайлов.ДобавитьФайл(ИдФайла, Base64Строка(ДанныеФайла));

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

В случае Transact-SQL-запросов решение было бы практически идентично первому способу - изменения только на внутреннем уровне хранения файлов. При этом на MS SQL Server легла бы высокая и не свойственная ему нагрузка по извлечению, кодированию/декодированию больших файлов. 

Для потокового доступа к файлам на уровне клиентских приложений существует dotNet класс SqlFileStream. Примеры его использования на различных языках присутствуют в избытке.

Только одна проблема - 1С не умеет работать напрямую с dotNet классами. Поэтому пришлось реализовать COM-объект для работы с классом SqlFileStream из 1С.  В архив приложены 32-х разрядная версия внешней компоненты SqlStreamAccess.dll и 64-х разрядная SqlStreamAccess64.dll. Регистрация Com-объекта производится путем вызова regasm.exe нужной разрядности под полными правами.

Реализованный COM-объект имеет одно свойство ConnString и два метода: InsertFile и  SelectFile, которые позволяют добавлять, обновлять и получать файлы.

Пример работы с  COM-объектом SqlStreamAccess:

// добавление нового файла
ТипДобавления = 1; //создание новой записи
ФайлПоток = Новый COMОбъект("SqlStreamAccess.SqlFile");
ФайлПоток.ConnString = СтрокаПодключения;
ФайлПоток.InsertFile(ИдФайла, ИмяФайла, ТипДобавления);
ФайлПоток = Неопределено;
	
// получение файла
ФайлПоток = Новый COMОбъект("SqlStreamAccess.SqlFile");
ФайлПоток.ConnString = СтрокаПодключения;
ФайлПоток.SelectFile(ИдФайла, ИмяФайла);
ФайлПоток = Неопределено;

В качестве идентификатора файла  также выступает ГУИД, приведенный к строке. В качестве имени файла указывается полный путь к файлу, который должен быть помещен/получен из базы. Естественно, пользователь Windows, под которым запущен сервис 1С, должен иметь полный доступ к этому файлу. Также данный пользователь должен иметь права для доступа к базе MS SQL посредством Windows-аутентификации.

Отдельного объяснения требует третий параметр метода "InsertFile". Он имеет целочисленый тип данных и может принимать три значения:

1 - проиcходит добавление файла

2 - происходит обновление файла без смены типа хранилища

3 - происходит обновление файла со сменой типа хранилища (удаляется из innerStorage, добавляет в OuterStorage).

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

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

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

.zip 17,00Kb
28.07.16
43
.zip 17,00Kb 43 Скачать

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

Организация файлового хранилища на базе MS SQL Server с доступом из 1С

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Makushimo 155 28.07.16 11:38 Сейчас в теме
Не понятно, чего мы получаем от использования этой технологии.
Будет быстрее? Что будет быстрее?
Будет удобнее? как и в чем удобство?
наглядный примерчик бы.

ради чего все эти пляски?
Dragonim; +1 Ответить
23. pfilyk 29.11.17 10:54 Сейчас в теме
(1) например у вас есть несколько баз, между которыми происходит обмен некоторыми документами, к документам необходимо прикрепить файлы (скан документа, чертеж и т.д.), чтобы в каждой базе не дублировать прикрепленные файлы, можно передавать только идентификатор файла в внешней базе. и в приемнике по запросу загружать из внешней базы.
в данной реализации есть один момент который автор упустил, com объект коннектится к mssql серверу используя аутентификацию операционной системы, под логином и паролем сервиса 1с, и это хорошо работает если сервер 1с и mssql сервер находятся на одной машине. если на разных то залогиниться используя аутентификацию ОС не получится. разве что сервера будут находится в домене, но этот вариант протестировать нет возможности.
2. tohandr 79 28.07.16 14:13 Сейчас в теме
Преимущество чего над чем?
- Хранение файлов в базе по сравнению с файлами на диске - повышается надежность.
- Хранение во внешней базе, а не в 1С - поможет существенно сэкономить в размерах базы 1С и снизить нагрузку на сервер 1С и СУБД. Также возможен доступ из других систем.

Основные преимущества технологии FileStream по сравнению с хранением в базе достигаются при хранении больших файлов (более 1 Мб). Файл не загружается в память SQL Server, фактически, считывание и запись файла производится порциями, указанного размера, используя АПИ файловой системы. Непосредственно в таблице хранится только ссылка на файл.
Скорость доступа также увеличивается, если файлы более 1 Мб - http://www.codeproject.com/Articles/32216/How-to-store-and-fetch-binary-data-into-a-file-str
Кроме того, файловую группу FileStream можно вынести на отдельный диск. Также можно включать файловую группу в бэкап или не включать.

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


5. Makushimo 155 29.07.16 05:57 Сейчас в теме
(2)
то есть по простому если сказать, то
Когда мы имеем базу учебных материалов с короткими видео и тяжелыми презентациями (более 1мб), к которой одновременно ломятся более 100 пользователей, тогда
- в случае хранения этих файлов средствами 1С (на диске или в базе) пользователи будут ждать по часу каждый видос
- в случае хранения этих файлов вашим способом пользователи мгновенно будут открывать смотреть читать писать эти файлы одинаково быстро не зависимо от количества пользователей (хоть 100 хоть 1000).

верно?
6. tohandr 79 29.07.16 10:45 Сейчас в теме
(5) Makushimo,
Не совсем...
Если говорить только про скорость доступа, то наиболее быстрый способ для больших файлов - хранение файлов на диске. Минимум посредников, наиболее низкоуровневный из доступных из 1С способ доступа. Используется апи файловой системы
При потоковом доступе FileStream скорость доступа снижается, т.к. появляется посредник в виде MS SQL, увеличиваются накладные расходы, но непосредственно запись и чтение файлов на диск также осуществляются, фактически, теми же апи файловой системы, используется системный кэш Windows. При этом повышается надежность хранения - файл записывается в транзакции, никто не имеет непосредственного доступа к файлам.
При хранении больших файлов непосредственно в базе, скорость будет наиболее низкой - накладные расходы наиболее высокими. Файлы будут полностью помещаться в память MS SQL Server и 1С Предприятия, т.е. если одновременно 100 пользователей запросят файлы по 10 Мб, то в памяти окажется 1 Гб абсолютно ненужного для работы MS SQL Server и 1С Предприятия мусора, что в итоге может сказаться на быстродействии всей системы.
8. Makushimo 155 29.07.16 11:19 Сейчас в теме
(6)
Ясно,
значит все дело в защите файлов от внешнего доступа.
А сама ОС разве не регулирует доступ к папкам разными там политиками безопасности?
9. tohandr 79 29.07.16 11:58 Сейчас в теме
(8) Makushimo,
Защита от несанкционированного доступа - это не единственное преимущество.
Доступ к файлам правами доступа ОС можно настроить какой угодно. Но полный доступ в любом случае будет у пользователя сервера 1С и админов.
И тут уже вмешивается человеческий фактор: у админа рука дрогнет и случайно удалит какую-нибудь папку или горе-программист напишет УдалитьФайлы() без указания конкретного файла. Случаев может быть множество, они весьма редки, но если в один прекрасный день пользователь не может найти очень важного файла, т.к. он физически отсутствует на диске - отношение к этим случайностям резко меняется. Самое плохое, что при хранении файла на диске, в случае его "случайного" удаления - понять, как это произошло и кто виноват, чаще всего, невозможно.
При хранении файлов в базе риск "случайного" удаления резко снижается.

Есть и другие достоинства:
- транзакционный доступ к файлам,
- бэкап средствами MS SQL Server.

Если описать кратко - существенно повышается надежность хранения.
10. Makushimo 155 29.07.16 12:21 Сейчас в теме
(9)
ну вот теперь все более менее понятно.
Спасибо.
16. Dragonim 125 03.08.16 08:16 Сейчас в теме
(9)

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

В общем решение может подходить если вы точно знаете почему делаете именно так, а не иначе, и какие плюшки получите в итоге. Тесты тут обязательны, как доказательство жизнеспособности.
17. aspirator23 426 06.08.16 14:33 Сейчас в теме
(6) Полезная статья, давно прицеливался к Filestream. Есть проект, в котором хотелось бы проверить этот способ. Хотя в комментарии и сказано, но можно провести тестовое испытание записи/чтения непосредственно в файл на диске и используя Filestream?
Хранить нужно чаще большие файлы (0,1-2ГБ), поэтому хотелось представлять насколько быстро они записываются/читаются этими двумя способами.
3. panvartan 28.07.16 18:14 Сейчас в теме
Вы это делали от любви к искусству или задача какая была, проиллюстрируйте решение если можно.
4. tohandr 79 28.07.16 19:17 Сейчас в теме
Задача была вполне конкретная - сделать файловое хранилище во внешней базе. Хранение файлов на диске или в базе 1С заказчика не устраивало.
Размер файлов от нескольких килобайт до десятков мегабайт.
7. Infactum 283 29.07.16 11:09 Сейчас в теме
Явно не хватает сравнения плюсов/минусов с типовым функционалом БСП по хранению файлов в томах на диске.
Makushimo; +1 Ответить
11. marat_n 111 29.07.16 12:54 Сейчас в теме
Есть небольшой нюанс в плане чистоты лицензий, если SQL сервер покупается вместе с 1С, то там, насколько я помню, использование сервера ограничено исключительно базами 1С.
13. Silenser 525 29.07.16 16:18 Сейчас в теме
(11) marat_n, Автор упомянул про вариант с бесплатным SQL express.
15. tohandr 79 29.07.16 22:06 Сейчас в теме
(11) marat_n,
1) Между 1С и MS хитрое соглашение, но на внешние базы MS SQL оно, на мой взгляд, не распространяется. В точки зрения MS с базой взаимодействует один пользователь.
2) Возможно создать нужные таблицы непосредственно в базе 1С. Могу ошибаться, но вроде непосредственно работа с таблицами 1С считается нарушением лиц. соглашения 1С, создание отдельных таблиц и работа с ними - нет. На работе это никак не сказывается.
3) Как уже говорили, возможен бесплатный SQL Express.
12. Silenser 525 29.07.16 16:14 Сейчас в теме
Делал и выкладывал тут в свое время аналогичную разработку, когда принималось решение о типе хранения данных, наталкивался на опыт людей о том, что при большом количестве файлов в каталоге файловой системы, файловая система начинает подтормаживать. Людьми делалось предположение, что это вызвано тем, что при большом количестве файлов системе нужно большее время на поиск адреса размещения файла на физическом диске, т.к. увеличивается размер таблицы FAT. Сам не проверял. Но в итоге сделал таблицу с varbinary(max).
Так же не совсем понятно из описания технологии Filestream, насколько система будет устойчива при одновременном доступе к одному и тому же файлу. Не будет ли каких-либо подводных камней.
14. tohandr 79 29.07.16 22:00 Сейчас в теме
(12) Silenser,
Хранение файлов в одной папке - это недостаток FileStream. Где-то на msdn встречал цифру в 300 000 файлов, после которой начинаются подтормаживания. Собственно Microsoft и дает несколько рекомендаций при использовании томов хранилища FileStream, чтоб минимизировать эти подтормаживания https://msdn.microsoft.com/ru-ru/library/cc645923.aspx

Отключите короткие имена файлов на компьютерах с FILESTREAM. Короткие имена файлов создаются гораздо дольше. Отключить короткие имена файлов можно с помощью программы Windows fsutil.
Регулярно выполняйте дефрагментацию на компьютерах с FILESTREAM.
Используйте файловую систему NTFS с кластерами по 64 килобайт. На сжатых томах должна быть файловая система NTFS с кластерами по 4 килобайта.
Отключите индексирование на томах FILESTREAM и установите параметр disablelastaccess. Для этого воспользуйтесь программой fsutil Windows.
Отключите антивирусное сканирование на томах FILESTREAM, если оно не является необходимым. Если антивирусное сканирование необходимо, не настраивайте политики автоматического удаления зараженных файлов.


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

К сожалению, полнофункциональное нагрузочное тестирование провести пока не удалось.
В описании сказано, что возможны две одновременных транзакции на чтение https://msdn.microsoft.com/ru-ru/library/gg471497(v=sql.110).aspx#dual
18. rubezh 08.06.17 11:21 Сейчас в теме
Библиотеку зарегистрировал, но при выполнении Поместить файл ошибка:

{Обработка.РаботаСВнешнимХранилищемФайлов.МодульОбъекта(116)}: Ошибка при вызове конструктора (COMОбъект)
ФайлПоток = Новый COMОбъект("SqlStreamAccess.SqlFile");
по причине:
-2147024894(0x80070002): Не удается найти указанный файл.

что не так?
19. rubezh 08.06.17 12:16 Сейчас в теме
(18) решено регистрацией с параметром /codebase
31. Gaster 11.12.19 18:36 Сейчас в теме
(19)
сможете код выложить? У меня тоже такая ошибка. Спасибо
32. rubezh 17.12.19 17:53 Сейчас в теме
(31) Какой код? При регистрации компоненты с помощью regasm.exe использовался параметр /codebase
https://docs.microsoft.com/ru-ru/dotnet/framework/tools/regasm-exe-assembly-registration-tool
И после этого всё заработало, как описано
20. rubezh 08.06.17 17:58 Сейчас в теме
При удалении из базы файла, который хранился не внутри, а в каталоге FileStream - из таблиц базы соответствующие строки удаляются, но файлы в каталоге так и остаются! Это так и задумывалось? И как сделать чтобы они всё таки удалялись
21. Natgrey 09.06.17 14:46 Сейчас в теме
(20) файлы удалятся после усечения журнала транзакций
34. Gaster 17.12.19 18:09 Сейчас в теме
(21)
файлы удалятся после усечения журнала транзакций
что означает "усечение транзакции"?
33. Gaster 17.12.19 18:08 Сейчас в теме
(20) получилось решить вопрос с удалением файлов из каталога?
35. rubezh 19.12.19 11:26 Сейчас в теме
(33) да, выполнили усечение журнала транзакций, как было сказано, и они ушли
https://docs.microsoft.com/ru-ru/sql/relational-databases/logs/the-transaction-log-sql-server?view=sql-server-ver15
22. etyshkovskiy 28.11.17 11:51 Сейчас в теме
Здравствуйте. А можно получить код com объекта?
24. EvgeniyNP 11.10.19 10:57 Сейчас в теме
Здравствуйте!
Есть несколько вопросов:
1) что в скачиваемом файле?
2) Что нужно будет поменять в 1с чтобы работало с FileStream?
25. tohandr 79 11.10.19 16:49 Сейчас в теме
(24)
1) В файле внешняя компонента для работы с FileStream и внешняя обработка 1С, в которой реализованы методы для работы с FileStream.
2) Добавить внешнюю обработку в конфигурацию и реализовать вызов методов данной обработки для помещения/получения файлов.
26. EvgeniyNP 15.10.19 15:57 Сейчас в теме
(25) еще вопрос. у нас используется интеграция с Документооборотом. Получится реализовать в ней передачу ссылки? в ней используются методы xdto
27. tohandr 79 18.10.19 15:03 Сейчас в теме
(26) Что подразумевается под ссылкой?
Можно ли получить файлы, присоединенные в одной ИБ, в другой ИБ?
Да, можно. Надо получить от базы-источника Ид файла и по нему уже стандартным методом получить файл.
36. EvgeniyNP 20.01.20 14:48 Сейчас в теме
(27) В прикрепленном файле есть Внешние источники данных - ХранилищеВнешнихФайлов. Его и обработку нужно добавить в базу. В общую команду, которая вызывает стандартную обработку по прикреплению, внести изменения, чтобы вызывала новую обработку. Ну и есть частные моменты по прикреплению. так направление мысли верное? и в ХранилищеВнешнихФайлов нужно будет что-то добавлять или вносить?
28. Yran 22.10.19 10:21 Сейчас в теме
Вы писали:
COM-объект имеет одно свойство ConnString и два метода: InsertFile и SelectFile
в эти методы передаётся два параметра, как добавить ещё параметры? придется переписывать com-объект?
29. tohandr 79 22.10.19 13:38 Сейчас в теме
(28)
щё параметры? придется переписывать com-объект?

Да, потребуется модификация
30. Yran 22.10.19 14:32 Сейчас в теме
(29) Подскажите пожалуйста каким образом это сделать? хотелось бы по проще т.к. не имел дела с компонентами COM.
37. rusly 16.04.20 12:32 Сейчас в теме
Добрый день! Вместо MS SQL Server можно использовать PostgreSQL?
Оставьте свое сообщение

См. также

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

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

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

1 стартмани

08.04.2019    15765    14    slozhenikin_com    37    

Диагностика контекста выполнения (внешняя компонента)

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

Небольшая экспериментальная внешняя компонента для получения дополнительной информации о контексте выполнения.

1 стартмани

24.07.2020    2626    2    YPermitin    13    

Создание *.dt файла из рабочей базы на сервере 1С без завершения работы пользователей

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

Предлагаемая обработка создает *.dt файл (выгрузку ИБ) из рабочей базы на сервере 1С:Предприятие 8.3 без завершения работы пользователей.

1 стартмани

19.01.2020    9638    64    Sedaiko    15    

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

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

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

2 стартмани

15.11.2019    10577    22    YPermitin    41    

Внешняя компонента для работы по Web-socket протоколу Промо

Разработка внешних компонент WEB v8 Абонемент ($m)

Кто когда-нибудь сталкивался с обменом данными по Web-Socket (wss) протоколу из 1С, тому известно, что в платформе отсутствуют данные механизмы (не путать с HTTP запросами и WebServices). Предлагается использовать внешнюю компоненту, написанную по технологии NativeAPI, для подключения и обмена с серверами из 1С-Предприятия, работающими по протоколу Web-Socket.

5 стартмани

30.03.2018    24227    33    Ditron    68    

Native внешняя компонента для оповещения по UDP или TCP

Разработка внешних компонент v8 Абонемент ($m)

Native внешняя компонента для оповещения по UDP или TCP, которая реализует возможность в 1С передавать сообщения с сервера на клиента. Исходный код компоненты также представлен.

1 стартмани

06.10.2019    7934    13    vdv2701    28    

Закрытие незавершенных сеансов

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

Как удалять потерянные сеансы пользователей, чтобы они не мешали работе. Обработка протестирована на платформе версии 8.3.13.1644.

1 стартмани

20.09.2019    11139    49    AnatolPopov    8    

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

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

Обработка позволяет, в графической форме, производить мониторинг потребляемых ресурсов базами данных кластера сервера 1с для платформ 8.3, 8.2. Обработка работает на платформе не ниже 8.3.6

2 стартмани

17.07.2019    7417    29    IVC_goal    34    

Очистка кэша 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    35147    365    Eugen-S    34    

Bash-скрипт для установки 1С:Предприятие 8.3 и СУБД PostgreSQL на сервер CentOS 7

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

Данный скрипт позволяет полностью установить сервер 1С и СУБД PostgreSQL на одном хосте. Потом это же скрипт можно использовать для обновление платформы и дистрибутивов установки

1 стартмани

07.04.2019    13843    35    Sedaiko    29    

Утилита для регистрации ComConnector и консоли администрирования сервером по установленным версиям платформы

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

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

1 стартмани

20.03.2019    8049    28    vardeg    10    

LicDataDecoder - расшифровка файла программной лицензии 1С

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

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

1 стартмани

10.02.2019    27143    252    GeraltSnow    60    

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

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

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

5 стартмани

05.12.2018    14372    16    RomikR    9    

Удобная консоль регламентных и фоновых заданий

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

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

1 стартмани

06.02.2019    13255    150    Alxby    20    

Универсальный монитор лицензий 1С

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

Хотите узнать, какие программные лицензии установлены на сервере и все их технические подробности? А может быть, вам нужна информация по использованию всех видов лицензий кластера? Нет ничего проще, читай далее, чтобы быть в курсе!

3 стартмани

03.01.2019    25873    214    Xershi    68    

Чистка кэша 1С (теперь в .exe)

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

Попробуйте поискать в интернете "Очистить кэш 1С". Практически везде вы наткнетесь на всякие батники, ps-скрипты, рекомендации зайти и удалить вручную, поставить /ClearCache для баз на УФ и т.д. В подавляющем большинстве случаев предлагается бездумно удалить все содержимое \Roaming\1C\1cv8\ и \Local\1C\1cv8\, но это как переустановить Windows, чтобы почистить Temp.

1 стартмани

18.11.2018    14728    92    riposte    42    

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

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

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

1 стартмани

19.09.2018    15907    18    TSSV    18    

Внешняя компонента для выполнения регулярных выражений

Разработка внешних компонент v8 Абонемент ($m)

Внешняя Native API компонента для выполнения регулярных выражений на платформе 1С:Предприятие 8. Написана на C++. Используется движок boost::regex (v 1.69, v 1.68 - для Android). Версия синтаксиса Perl Compatible Regular Expressions.

1 стартмани

12.11.2018    11235    28    KAV2    62    

Обнаружено нарушение целостности системы

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

Ошибка «Обнаружено нарушение целостности системы», причины и варианты устранения ошибки.

1 стартмани

03.10.2018    104101    505    Palmer1976    48    

1C + Arduino + сканер отпечатков пальцев + RFID считыватель

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

Связываем 1C, Arduino, сканер отпечатков пальцев и RFID считыватель для системы учёта рабочего времени или пропускной системы.

1 стартмани

21.08.2018    22570    14    DGorgoN    39    

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

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

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

1 стартмани

28.11.2013    80357    232    Serginio    71    

Класс-обработка “Работа с картами Яндекс”

Разработка внешних компонент WEB v8 Абонемент ($m)

Как показать точку или маршрут на карте Яндекс. Как получить координаты по строке адреса (геокодирование).

1 стартмани

01.08.2018    22400    189    RSConsulting    15    

Распознавание лиц (off-line). Демонстрационная база.

Разработка внешних компонент v8 Абонемент ($m)

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

1 стартмани

17.07.2018    15048    72    nomadon    45    

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

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

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

1 стартмани

14.11.2017    20663    87    bonv    15    

Tool1CD Beta в деле Промо

Разработка внешних компонент v8 Абонемент ($m)

Пс, парень! Не хочешь немного сырых байтов?

1 стартмани

09.05.2018    24167    28    baton_pk    26    

V8 Log Scanner - утилита для быстрого парсинга логов ТЖ

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

Как можно быстро настраивать logcfg.xml и парсить логи технологического журнала с помощью самописной open-source утилиты V8LogScanner. Без необходимости погружаться в регулярные выражения.

1 стартмани

07.11.2017    18125    5    ripreal1    27    

Графическая оболочка для консольной утилиты cnvdbfl.exe

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

Графическая оболочка для консольной утилиты cnvdbfl.exe предназначенной для преобразования размера внутренней страницы файла базы 1С.

1 стартмани

25.10.2017    37332    258    frkbvfnjh    43    

Удаление данных напрямую в SQL

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

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

1 стартмани

08.07.2017    14461    96    denacid    29    

Скачиваем релизы с сайта users.v8.1c.ru Промо

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

Обработка позволяет настроить список релизов, доступных пользователю, на сайте users.v8.1c.ru, проверять - вышли ли новые обновления и, если вышли, скачивать их и раскладывать по папочкам. Требует установки curl и openssl

10 стартмани

18.08.2014    37943    24    Demonobond    31    

ОСкрипты для деплоя и копирования базы данных

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

Набор оскриптов для деплоя базы 1С через хранилище и копирование через sql-бекап одной базы в другую

1 стартмани

02.05.2017    22450    34    Stepa86    27    

Автокликер для 1С

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

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

1 стартмани

03.04.2017    29766    70    slava_1c    49    

1С+Классы. Версия-0

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

Разработано ООП-расширение языка 1С, включающее (но не ограничивающееся): Классы как абстрактные типы данных с элементами «переменная», «свойство», «функция», «процедура»; Интерфейсы как абстрактные классы без элементов состояния («переменная») и без привязки к реализации методов (свойств, процедур, функций) при определении; Имплементация (реализация) интерфейсов классами; - одиночное открытое наследование; Области видимости «внутренняя» (private), «экспорт» (public), «защищенная» (protected); Статические элементы классов (общие для всех экземпляров класса); Замещение (переопределение реализации) методов при наследовании – «виртуальные методы, свойства»; Сокрытие (затенение) обычных (не замещаемых) элементов при наследовании; Перегрузка процедур и функций по количеству и типам данных аргументов; Конструкторы класса; Деструктор класса; Слабые ссылки; Делегаты.

1 стартмани

28.10.2016    19714    1    IntelInside    68    

V8 Viewer. Открытие и сравнение внешних обработок в Проводнике + исходники Промо

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

Вы хотите получить возможность быстро посмотреть содержимое внешнего отчета или обработки? А сравнить ее с другой? И все это без запуска 1С:Предприятия, только из оболочки ОС? Тогда мы идем к вам! :) В конце заметки - ссылка на исходники.

2 стартмани

06.03.2013    64917    118    Evil Beaver    157    

"Внешнее событие" и мобильная платформа 1С

Разработка внешних компонент Мобильная разработка v8 Абонемент ($m)

Внешние компоненты в Android для Мобильной Платформы 1С или как вызвать внешнее событие, когда его нет.

1 стартмани

09.09.2016    36174    87    dewersia    52    

Внешняя компонента для сжатия/распаковки файлов, двоичных данных и строк по алгоритму Zlib, Deflate и GZip

Разработка внешних компонент v8 v8::УФ 1cv8.cf Абонемент ($m)

Внешняя компонента для сжатия/распаковки файлов, двоичных данных и строк по алгоритму Zlib, Deflate и GZip.

1 стартмани

15.03.2016    30840    129    frkbvfnjh    101    

Проект внешней компоненты для 1С:8 (сделай сам)

Разработка внешних компонент v8 Абонемент ($m)

Как их делают? Как регистрируют? С чего начать? Где взять стартовый проект? Вопросов вообще много можно задать, но лучше один раз увидеть!

10 стартмани

11.03.2016    14873    0    ture    36    

Очистка регистров накопления, сведений, расчета или бухгалтерии Промо

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

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

2 стартмани

25.12.2009    59924    256    sebe    20    

Снимок экрана для 1С

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

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

1 стартмани

08.02.2016    26743    33    linkforget    11    

Запуск сеанса RDP с заданным именем пользователя и паролем (управляемые формы)

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

Есть база данных (управляемые формы), общая для сотрудников IT-отдела, в которой ведется учет парка компьютерной техники на предприятии. Встала задача подключения по RDP прямо из окна с данными о компьютере пользователя.

1 стартмани

29.01.2016    18365    60    insurgut    16    

Связь Asterisk и 1С, внешняя компонента

Разработка внешних компонент Телефония, SIP v8 1cv8.cf Россия Абонемент ($m)

Поддержка ROM-Asterisk прекращена, на 1С: Предприятии 8.3.6 вылетает. Пишем свою.

6 стартмани

28.01.2016    45429    267    BigTaur    82    

NativeDraw: Компонента рисования для 1С [V2.6.2] Промо

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

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

1 стартмани

13.07.2015    45301    423    ПерваяСистема    147    

Внешняя компонента для хранения данных во внешней обработке/отчете

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

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

1 стартмани

14.01.2016    17560    34    frkbvfnjh    36    

Скачивание обновлений типовых конфигураций с портала 1С:ИТС

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

С помощью этой конфигурации можно скачивать обновления с портала 1С:ИТС. Отличительные особенности: 1. Скачивание только тех пакетов, которые необходимы для обновления от текущей версии до самой новой; 2. Запуск скачивания с помощью VBS-скрипта; 3. Написана на родном языке ;)

1 стартмани

06.10.2015    23374    123    Wezoowy    32    

Полезные приемы при работе с Excel из 1С (Версия 3.1)

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

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

1 стартмани

22.09.2015    184362    432    Zerocl    65    

Работа с push сервисами только средствами 1С 8.2

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

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

1 стартмани

18.08.2015    29682    43    anig99    1