Внимание

Сегодня 26.02.2021г. с 21:00 до 21:30 мск
на сайте будут проводиться технические работы

Организация файлового хранилища на базе 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С, сначала делается запрос о расположении файла, а затем запрос к соответствующей таблице.

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

Запись файлов непосредственно в базу данных довольно тривиальная задача. Описаний решений существует великое множество, к примеру, //infostart.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
41
.zip 17,00Kb 41 Скачать

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Makushimo 157 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 157 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 157 29.07.16 11:19 Сейчас в теме
(6)
Ясно,
значит все дело в защите файлов от внешнего доступа.
А сама ОС разве не регулирует доступ к папкам разными там политиками безопасности?
9. tohandr 79 29.07.16 11:58 Сейчас в теме
(8) Makushimo,
Защита от несанкционированного доступа - это не единственное преимущество.
Доступ к файлам правами доступа ОС можно настроить какой угодно. Но полный доступ в любом случае будет у пользователя сервера 1С и админов.
И тут уже вмешивается человеческий фактор: у админа рука дрогнет и случайно удалит какую-нибудь папку или горе-программист напишет УдалитьФайлы() без указания конкретного файла. Случаев может быть множество, они весьма редки, но если в один прекрасный день пользователь не может найти очень важного файла, т.к. он физически отсутствует на диске - отношение к этим случайностям резко меняется. Самое плохое, что при хранении файла на диске, в случае его "случайного" удаления - понять, как это произошло и кто виноват, чаще всего, невозможно.
При хранении файлов в базе риск "случайного" удаления резко снижается.

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

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

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

В общем решение может подходить если вы точно знаете почему делаете именно так, а не иначе, и какие плюшки получите в итоге. Тесты тут обязательны, как доказательство жизнеспособности.
17. aspirator23 446 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 294 29.07.16 11:09 Сейчас в теме
Явно не хватает сравнения плюсов/минусов с типовым функционалом БСП по хранению файлов в томах на диске.
Makushimo; +1 Ответить
11. marat_n 111 29.07.16 12:54 Сейчас в теме
Есть небольшой нюанс в плане чистоты лицензий, если SQL сервер покупается вместе с 1С, то там, насколько я помню, использование сервера ограничено исключительно базами 1С.
13. Silenser 532 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 532 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    19702    18    slozhenikin_com    37    

Использование встроенного сканера ТСД на Android в мобильном клиенте и мобильном приложении (драйвер сканера Android для 1С)

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

Используя данный драйвер, можно без единой строки кода, просто установив на ТСД мобильный клиент 1С, сразу начать подбирать товары в документах вашей учётной системы. А, адаптировав нужные формы под небольшой размер экрана ТСД, можно просто создать полноценное рабочее место для выполнения операций с помощью ТСД, не прибегая к стороннему софту. Если же на складе плохая связь (или её нет вовсе), то можно использовать возможности мобильного клиента в автономном режиме (потребуется доработка вашей конфигурации). Драйвер также можно использовать и для Android приложения на мобильной платформе. В результате чего можно обойтись без ненужных полей ввода и клавиатуры «на пол-экрана».

3 стартмани

09.10.2020    7436    74    ltfriend    71    

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

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

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

1 стартмани

24.07.2020    5769    2    YPermitin    14    

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

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

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

1 стартмани

19.01.2020    13986    85    Sedaiko    20    

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

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

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

1 стартмани

30.03.2018    29211    35    Ditron    86    

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

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

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

2 стартмани

15.11.2019    13539    27    YPermitin    41    

Маленькая и скромная мобильная внешняя компонента

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

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

1 стартмани

21.10.2019    10251    6    ripreal1    34    

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

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

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

1 стартмани

06.10.2019    11360    24    vdv2701    31    

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

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

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

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

1 стартмани

20.09.2019    19241    72    AnatolPopov    8    

Сканер ключей 1С

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

Определяет время отклика ключа защиты 1С.

1 стартмани

13.09.2019    7909    14    sivin-alexey    2    

Внешняя компонента Sundries: несколько полезных системных функций

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

Звук, пауза, буфер обмена, раскладки клавиатуры и т.д.

4 стартмани

30.08.2019    6652    8    sivin-alexey    12    

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

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

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

7 стартмани

05.12.2018    17575    19    RomikR    9    

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

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

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

2 стартмани

17.07.2019    9695    41    IVC_goal    34    

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

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

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

1 стартмани

07.04.2019    16953    43    Sedaiko    31    

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

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

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

1 стартмани

20.03.2019    9728    32    vardeg    10    

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

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

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

1 стартмани

19.09.2018    19228    30    TSSV    19    

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

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

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

1 стартмани

10.02.2019    38685    340    GeraltSnow    62    

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

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

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

1 стартмани

06.02.2019    16954    178    Alxby    20    

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

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

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

3 стартмани

03.01.2019    36640    335    Xershi    79    

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

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

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

1 стартмани

28.11.2013    85992    278    Serginio    74    

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

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

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

1 стартмани

18.11.2018    17852    99    riposte    42    

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

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

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

1 стартмани

12.11.2018    13851    33    KAV2    64    

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

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

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

1 стартмани

03.10.2018    172805    874    Palmer1976    67    

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

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

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

1 стартмани

09.05.2018    27287    30    baton_pk    26    

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

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

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

1 стартмани

21.08.2018    26138    15    DGorgoN    39    

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

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

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

1 стартмани

01.08.2018    27827    212    RSConsulting    17    

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

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

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

1 стартмани

17.07.2018    17337    74    nomadon    45    

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

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

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

10 стартмани

18.08.2014    41567    25    Demonobond    31    

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

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

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

1 стартмани

07.11.2017    21317    5    ripreal1    27    

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

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

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

1 стартмани

25.10.2017    41674    281    frkbvfnjh    43    

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

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

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

1 стартмани

08.07.2017    17243    117    denacid    31    

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

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

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

2 стартмани

06.03.2013    68475    706    Evil Beaver    159    

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

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

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

1 стартмани

02.05.2017    25321    34    Stepa86    27    

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

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

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

1 стартмани

03.04.2017    32750    76    slava_1c    67    

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

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

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

1 стартмани

28.10.2016    21383    7    IntelInside    68    

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

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

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

1 стартмани

14.11.2017    23544    91    bonv    15    

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

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

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

1 стартмани

09.09.2016    40131    88    dewersia    54    

Внешняя компонента Native API для построения графов (на основе GraphViz)

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

Данная публикация представляет собой внешнюю компоненту «GraphViz NAPIC», выполненную по технологии native API, предоставляющую методы библиотеки GraphViz для построения графа по его описанию в текстовом формате на языке dot. Приложена обработка с примером вызова компоненты ОФ+УФ.

1 стартмани

12.04.2016    19015    26    Synoecium    32    

QR-код 2 в 1 (обычная и управляемая форма)

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

Вам нужно интегрировать 1С и QR-коды? Нет ничего проще, будем использовать внешнюю компоненту!

1 стартмани

05.04.2016    36994    135    Xershi    40    

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

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

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

2 стартмани

25.12.2009    63965    1228    sebe    20    

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

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

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

1 стартмани

15.03.2016    34146    138    frkbvfnjh    107    

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

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

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

10 стартмани

11.03.2016    18638    0    ture    36    

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

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

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

1 стартмани

08.02.2016    29188    34    linkforget    11    

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

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

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

1 стартмани

13.07.2015    48929    461    ПерваяСистема    147