Пример реализации хранения файлов и изображений во внешней СУБД MS SQL

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

Разработка - Системная интеграция - Внешние источники данных

75
Данная конфигурация создана на основе стандартного механизма 1С - ХранилищеДополнительнойИнформации, с той лишь разницей, что бинарные данные хранятся не в самом элементе справочника, а во внешней базе на MS SQL сервере.

Преамбула

До сего момента в нашей организации в самописной конфе использовался стандартный механизм из типовой торговли - ХранилищеДополнительнойИнформации, но когда объем базы достиг 48 Гб (размер прикрепленных файлов - 35 Гб) база стала ощутимо тормозить.

Была проведена ревизия хранимых файлов: конечно выяснилось, что пользователи крепили информацию чуть ли не в BMP формате с глубиной цвета в 24 бит, но сути это не меняло - основная масса документов была в нормальном виде и их размер был обусловлен большим количеством отсканированых листов. Анализ SQL Profiler показал, что никаких ощутимо тяжелых запросов на базу не идет, тем не менее счетчики производительности дисковых массивов показывали 70% очередь в обычном режиме и 97-100% при работе регламентных заданий. Была выявлена закономерность, что когда работал обмен с головной организацией с которым приходило большое количество сканированных файлов то у пользователей наблюдалось зависание 1С. Что и натолкнуло на мысль разнести хранимые в системе файлы и сканы документов с данными конфигурации.

Действо

Сначала был рассмотрен вариант разнесения данных конфигурации и хранимых файлов по разным файловым группам внутри той же базы, что позволило бы вынести таблицу ХранилищаДополнительнойИнформации на отдельный дисковый массив. Это увеличило бы производительность базы, но не решило бы проблему быстро растущей базы, которая за последние 3 месяца прибавила 15Гб. Такую базу сложнее обслуживать и поддерживать тестовые базы, которых у нас 6 шт.

В итоге было принято решение вынести непосредственно хранимые файлы в отдельную базу с доступом к ней через интерфейс ADO, минуя сервер приложений, чтобы дополнительно разгрузить и его. В справочник ХранилищеДополнительнойИнформации было добавлено два реквизита для хранения размера файла и для хранения UID, который бы использовался для поиска данных во внешней базе.

На MS SQL была создана база состоящая из 1 таблицы:

FileTable

  • FileID - char(36), по данному полю желательно создать индекс.
  • Object -varbinary

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

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

Плюсы данного решения в следующем:

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

Эпилог

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

В самой конфе вам придется кое-что подправить ручками, эти строки отмечены комментариями вида "//РУЧНЫЕ ИЗМЕНЕНИЯ". Настроить нужно будет параметры подключения к внешней базе и строку подключения к базе 1С, которая будет нужна для защиты хранилища данных, на случай доступа к нему из тестовых баз.

На текущий момент база находится в рабочем режиме под полной нагрузкой: 200-250 пользователей онлайн, 2 обмена с БП, 1 обмен с УТ и 1 обмен с головной. Зависания 1С пропали, очередь на дисках приобрела нормальные показатели в 50% и до 90% в пике. При пиковых нагрузках зависаний 1с больше не наблюдается.

Добавление: 20/09/10 добавлено регламентное задание по очистке SQL базы от ссылок которых больше нет в справочнике ХранилищеДополнительнойИнформации.

Добавлено 03/07/17: данная публикация сделана в обычном приложении в неуправляемом интерфейсе. Есть развитие данного функционала для управляемого приложения и интерфейса Такси, которое реализует хранение файлов в базах MS SQL, Postgre SQL и MongoDB - //infostart.ru/public/624829/

75

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

Наименование Файл Версия Размер
Конфигурация с примером реализации описанного функционала
.dt 86,37Kb
03.07.17
469
.dt 86,37Kb 469 Скачать
Обработка по переносу данных
.epf 6,26Kb
03.07.17
165
.epf 6,26Kb 165 Скачать

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

Комментарии
Избранное Подписка Сортировка: Древо
1. Gilev.Vyacheslav 29.08.10 16:29 Сейчас в теме
минус за введение в заблуждение 1Сков
надо было перенести часть данных в отдельную файловую группу на отдельные диски
Трактор; +1 Ответить
8. Diversus 2011 29.08.10 23:48 Сейчас в теме
(1) При такой реализации с самой базой будет трудно работать программеру, ну ка представь сколько нужно разворачивать тестовую базу?
(7) Помимо обращения к файлам, скорее всего есть еще работа с другими данными, с которыми данные пользователи работают. Это подсистема встроена во что-то более глобальное... Я так полагаю это либо БП либо УПП + сканы договоров с контрагентами, или что-то в этом духе? (0) поправь меня если ошибаюсь.


(0) Данное решение мне кажется имеет место быть.

Хотя можно было бы действительно разнести так:
1 сервер) база 1С + SQL хранится информация о файлах и GUID самих файлов
2 сервер) база 1С + SQL в которой содержался бы один справочник, в котором хранились бы сами файлы в ХранилищеЗначений без сжатия.

сервер 1. делал бы коннект при необходимости через внешнее соединение ко серверу 2. и возвращал бы нужный файл.

+ если используется 8.2, то можно использовать вызовы на стороне сервера, тогда вообще не важно что стоит у клиента, сервак 1 сам все будет доставать с сервака 2 и возвращать клиенту.
+ нет никаких заморочек с ADO, все штатно, надо посмотреть что за файлы открой базу 2 сервера, систематизируй, анализируй удаляй не нужные и смотри сколько влезет. При необходимости можно дополнить реквизитами типа Дата создания, организация, пользователь, контрагент и т.д.
+ на сервере 2 можно было бы использовать фоновые задания, которые чистили бы к примеру старье.
+ при записи в 1С можно было бы предусмотреть ситуацию, когда конфа переданную картинку на 2 серваке анализировала и обрабатывала соответсвующим образом сжимала ее программно, например все переводилось бы в jpeg к одиннаковым ширина и высота (если файл большой). При этом сервер 1. не страдал бы вообще.
- скорее всего работа через ADO непосредственно с SQL Server будет побыстрее, т.к. минует сервер 1С:Предприятия, но кто его знает ;) .

Думаю минусовать не за что... Человек предложил свой метод реализации, в чем то он хорош, в чем то плох...

help1Ckr; +1 Ответить
2. Evg-Lylyk 2678 29.08.10 19:30 Сейчас в теме
Не понял
зачем это нужно :?:
"Размер базы 1с уменьшился в 4 раза" разве не появилась база SQL размером 3/4
Появилось лишнее звено
3. Silenser 509 29.08.10 19:32 Сейчас в теме
2 Гилев. Мне показалось лишним включать в передачу этих данных сервер приложений, да и тестовая база будет разворачиваться гораздо быстрее, т.к. восстановить нужно будет только данные, которых существенно меньше.
2 Evg-Lylyk. На самом деле 2я база стала даже больше, т.к. не использовался механизм встроенного сжатия. Размер тут как раз не важен, важна скорость получения данных. А она в моем случае сильно страдала из-за большого объема файла базы данных.
Olenevod; DMSDeveloper; +2 Ответить
5. Evg-Lylyk 2678 29.08.10 19:56 Сейчас в теме
(3) Непонятно какой прирост это дает в каких случаях (и дает ли вообще)
При помещении в реквизит хранилище можно не сжимать.
Мне кажется задачу можно и нужно было решать в рамках 1С8
4. tsd 148 29.08.10 19:56 Сейчас в теме
В ходе анализа выяснилось, что при 200 пользователях онлайн и таких объемах базы и хранимых там файлов дисковая подсистема вполне себе неплохого хьюлитовского блейда просто умирала: очередь диска была не меньше 70%, а во время любого регламентного задания, связанного с доступом к сканам не опускалась меньше 95-100%.

насколько я понимаю из описания сканы хранились непосредственно в базе, а второй способ (сканы хранятся на дисках, а в 1С хранятся пути к ним) пробовали? Если, да то хотелось бы увидеть комментарий по этому поводу.

При обменных процессах, когда шло обращение к хранимым данным наблюдалось дикое торможение, т.к. из головной организации нам шла куча сканов по 2-3 Мб. Видимо такие большие объемы в купе со встроенным сжатием наводили систему на размышление об отдыхе.


я так понимаю, что после установки новой базы Вам и схему обмена с головой пришлось менять. Или тащите старым способом, а потом в базу хранилище сканы отправляете?


В итоге, было принято решение разнести хранимые файлы и данные. На MS SQL была создана база состоящая из 1 таблицы:

почему для файлохранилища выбрана скулевская база, а не что-то из 1С? На мой взгляд, при необходимости 1Совскую базу легче корректировать.
6. Silenser 509 29.08.10 21:18 Сейчас в теме
2 tsd
1. У нас 150 тыс элементов, для файлового хранилища не самый лучший вариант на мой взгляд.
2. Схему обмена с головой поменяли незначительно, но тем не менее - да, поменяли.
3. При таких объемах данные нужно хранить в какой-либо СУБД, первоначально я посматривал в сторону документо-ориентированных СУБД, но понял что моей квалификации на их обслуживание явно не хватит. В итоге выбрал то, что знакомо больше и уже проверено.
4. А зачем? Идея была именно разнести обращение к данным 1С и прикрепленным файлам, вообще убрать их из 1С структуры, т.к. скорость их получения не критична, в отличие от тех же отчетов.
2 Evg-Lylyk Прирост дает, обратите внимание на первое сообщение Гилева, это по сути тоже самое, только подразумевает хранение файлов в той же базе 1С, но в другой файловой группе в рамках той же базы SQL. Мы с админом данный вариант обсуждали, но поскольку за 3 месяца мы прибавили 15 Гб файлов, то приняли решение убирать их вообще в отдельную базу. Проще и тестовые базы поднимать и обслуживание производить. Файлы же по сути не являются критичными для бизнеса данными, в отличие от документов.
7. Evg-Lylyk 2678 29.08.10 22:30 Сейчас в теме
(6) Это все на одном сервере? если да, то можно база на 1С и работа через COM.
В итоге, было принято решение разнести хранимые файлы и данные

что значит разнести!? если просто разнести по базам на одном компе одном диске это ничего не даст.
Мы с админом данный вариант обсуждали, но поскольку за 3 месяца мы прибавили 15 Гб файлов, то приняли решение убирать их вообще в отдельную базу. Проще и тестовые базы поднимать и обслуживание производить.

здесь одни сложности относительно изначального варианта

Описание запутывает, если бы его не было, тогда проще придумать объективные причины сделать так. А так как есть много вопросов почему пользователи обращаются так часто к этим файлам (200 юзверов 3 обращ./сек к файлам по 2 Мб итого 6 Мб/с для RAID ерунда).
9. Silenser 509 30.08.10 08:49 Сейчас в теме
(7)
что значит разнести!? если просто разнести по базам на одном компе одном диске это ничего не даст.
Базы разнесены на разные дисковые массивы, и таки выигрыш производительности все же достигнут.

Вполне возможно что описание запутывает, мой косяк - в ближайшее время переделаю.
(8) Это вообще самописная конфигурация, имеющая обмены с 1 УТ, 2 БП и 1 с самописной системой в голове.
1 сервер) база 1С + SQL хранится информация о файлах и GUID самих файлов
2 сервер) база 1С + SQL в которой содержался бы один справочник, в котором хранились бы сами файлы в ХранилищеЗначений без сжатия.

Да, но тогда бы пришлось создавать COM не ADO, а 1С для доступа ко второй базе, ИМХО такое решение бы скоростью не отличалось точно. А так каждый пользователь напрямую запрашивает данные в SQL сервере, не трогая сервер приложений. Сегодня база будет под полной нагрузкой, опишу результат.
10. Gilev.Vyacheslav 30.08.10 10:32 Сейчас в теме
подвожу итог
фразы вроде "Мы с админом данный вариант обсуждали" означают, что обоснованности нет, есть только самоуговаривания как лучше
реальных тестов - нет

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

вцелом я допускаю такую реализацию, даже закроем глаза на пресловутое ЛС,
НО не надо это подавать как ПРАВИЛЬНОЕ решение

это Ваш частный случай

инетерсно что будет, когда кто-нибудь пойдет по вашему способу, но например оставит базу на том же сервере...

или еще где накосячит

минус не за то, что у вас работает, а что этому учите всех налево и направо
без обид
ily.fomin; Maximysis; GentleMax; +3 Ответить
12. Silenser 509 30.08.10 11:23 Сейчас в теме
Описание обновил, надеюсь так будет чуть понятнее, если что - поправите плиз.
(10)
реальных тестов - нет
Я и админ ориентировались на счетчики производительности системы, к сожалению, скриншотов нет, т.к. задача была не теоретической, и решение принимать нужно было быстро да и разворачивать тестовую базу с новым решением попросту негде.

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

вцелом я допускаю такую реализацию, даже закроем глаза на пресловутое ЛС,
НО не надо это подавать как ПРАВИЛЬНОЕ решение

это Ваш частный случай

инетерсно что будет, когда кто-нибудь пойдет по вашему способу, но например оставит базу на том же сервере...

Стало лучше - да, задействовали новое железо - тоже да. Но тем не менее база находится на том же сервере только на другом дисковом массиве. Более того, в ближайшее время админы будут пересобирать рейдмассив и все временно переедет на один диск, будет интересно глянуть на результат этого кошмара.
По поводу ЛС - давайте все же не будем закрывать глаза и разберемся, что же тут не так. Есть база самописная 1С доступ к которой осуществляется целиком и полностью только через сервер приложений 1С и есть внешняя база SQL доступ к которой осуществляется по ADO. Если бы вторая база была бы 1Ская, я бы понял праведный гнев.
И на последок - не бывает ПРАВИЛЬНЫХ решений, есть лишь оптимальные с точки зрения доступных средств и финансов на определенный момент времени. И накосячивший программист способен накосячить не только через ADO, но и внутри 1С так, что потом несколько нормальных спецов потребуется.
14. Gilev.Vyacheslav 30.08.10 11:55 Сейчас в теме
(12) нет времени, негде тестировать - это все частности
объективных тестов не было!

еще раз, мне не нравиться ваше "учить жизни" 1сков нештатными средствами, как следует не оттестировав штатные

это мое личное мнение, а придумать почему так сложилось можно все что угодно, вплоть до религии,
некоторые на инфостарте вообще всюду предлгаюат юзать нетфреймворк, бог им в помощь
16. Silenser 509 30.08.10 14:09 Сейчас в теме
(14) Есть проблема. Есть вариант решения проблемы. Причины по которым штатные средства не подходят описаны. Причинно следственная связь прослеживается. Включаться же в спор между вами и ярлыком который на меня был повешен считаю излишним.

(15) Файловая система как раз не дает гарантии целостности. Про FAT говорить излишне, а NTFS, насколько мне известно, гарантирует целостность только MFT, а не содержимого файлов. Но с другой стороны, если необходимо получить эти изображения где-то в web, то такой вариант несколько проще.
17. Gamm 13 30.08.10 15:04 Сейчас в теме
(16) Какой контроль целостности имеется в виду?
Я имел ввиду ссылочную целостность.
Нам ничего другого не требовалось так как присутствовал:
1. Бекап изображений
2. Бумажный оригинал

Но за 10 лет использования не пришлось прибегать ни к одному из этих вариантов.
Больше про целостность ничего сказать не могу.
18. Silenser 509 30.08.10 15:27 Сейчас в теме
(17) Имелась ввиду целостность данных, когда происходит сбой во время записи данных.
Ссылочная целостность как раз не гарантирована ни моим не вашим способом, удаляем файл или запись во внешней таблице и ссылочной целостности нет.
11. Gamm 13 30.08.10 11:19 Сейчас в теме
А объясните мне насколько выгоднее хранение изображений в SQL чем просто хранить отдельной папке?
Появляются только накладные расходы на получение информации из базы SQL и сохранение на диск во временный файл. В чем плюс?
Maximysis; +1 Ответить
13. Silenser 509 30.08.10 11:37 Сейчас в теме
(11) Тут только ИМХО, если что более опытные меня поправят. Все целиком и полностью зависит от масштаба бедствия: сколько пользователей, каков размер базы и таблицы хранилища файлов, сколько элементов в данной таблице.
Если изображений не много, то можно хранить и в самой базе.
Если их довольно большое количество как по числу файлов вообще так и по размеру, то СУБД - оптимальное решение. Я читал о разных способах решения, в т.ч. о хранении в файловой системе и на ftp. В итоге люди ушли от этого, т.к. поддерживать целостность данного массива довольно сложно и скорость доступа этого решения на больших объемах была крайне мала. Яндекс вам в помощь.
А вариантов хранения в СУБД может быть несколько, самый простой случай создать файловую группу, перенести туда вашу таблицу и вынести эту таблицу на другой физический дисковый массив.
15. Gamm 13 30.08.10 12:38 Сейчас в теме
(13) Знаком со всеми перечисленными вариантами хранения, просто непонятны плюсы от использования SQL. Моё мнение что от использования SQL получаем только дополнительные минусы о которых я уже писал:
- накладные расходы на доступ к базе SQL
- накладные расходы на сохранение файлов на диск перед любыми действиями с ними

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

(14) Штатные методы хранения изображений в базе мне не нравятся в связи со сложностями в резервном копировании и последующим восстановлении из резервных копий.
Gilev.Vyacheslav; +1 Ответить
19. totskysergey 36 31.08.10 14:47 Сейчас в теме
Думаю что такой подход имеет правона существование.
Какие вижу плюсы:
1. Скорость восстановления "рабочей" базы не обремененной хранилищем значительно выше.
2. Обращение к данным в отдельной базе возможно из нескольких конфигураций, следовательно отпадает необходимость в дублировании.
Минусы:
Скорость (получения данных из отдельного хранилища), скорее всего будет ниже.
21. Silenser 509 01.09.10 17:01 Сейчас в теме
(19) Да по идее не должно оно быть ниже, 1 звено из цепи уходит. Поднял старую базу в качестве тестовой и проверил, результаты в аттаче.
Прикрепленные файлы:
20. V.Nikonov 119 31.08.10 19:17 Сейчас в теме
А как насчёт борьбы с "потеряными" записями? Они будут постепенно образовываться в базе (хранилище) с отсутствующими ссылками на них...
22. Silenser 509 01.09.10 17:02 Сейчас в теме
(20) допишу чуть позже, работы многовато :o
25. totskysergey 36 02.09.10 10:08 Сейчас в теме
to (20) Теоретически они могут быть и в единой базе. Так что это тема "цены вопроса"? Для каждого в конкретном случае она своя.
to (24) А увеличение это не сжатые "картинки" я так понимаю...
23. Angeros 02.09.10 08:27 Сейчас в теме
Ну и каков стал размер базы картинок хранящихся в sql А не в 1с*? хочется узнать разницу.
24. Silenser 509 02.09.10 09:26 Сейчас в теме
26. afanasko 35 02.09.10 15:06 Сейчас в теме
Вполне достойное решение, имеющее право на жизнь.
Штатные механизмы и возможности -- это конечно хорошо, но иногда временные и бюджетные рамки не позволяют сделать все "идеально".
В конкретном данном случае этот вариант -- хороший выход из положения. И мотивация автора в данном случае полностью понятна.
27. CheBurator 3399 03.09.10 01:44 Сейчас в теме
ндя... радует что 8осьмерошнику идея отвязать сопросодительную "незначимую" инфу вынести з апределы базы пришла в голову только сейчас, в то время как 7-ки это делали давно... ;-)
.
не понял только одного? в чем вкусности решения?
30. Silenser 509 20.09.10 17:23 Сейчас в теме
(27) Справедливости ради, заметим, что помещать бинарные данные в 1С базу версии 7.7 нельзя, так что лирическое отступление странное. Вкусности решения, описаны выше: более быстрый бекап/восстановление тестовых баз, меньше нагрузка на RAID с базой.
(29) Через XML. Насколько я помню, там используется XDTO пакет. Точнее не скажу, не я писал.
28. Rabajaba 318 06.09.10 12:47 Сейчас в теме
Тоже способ хранения. Однако по своему опыту делаю всё на внешних файлах - BLOB как-то не по душе ... А в рамках 8.2 с файлами работать стало проще, не надо теперь шару открывать на сервере.
Для поддержания ссылочной целостности у меня крутится регламентное задание на проверку и очистку битых.
36. MiCe 8 23.01.12 07:30 Сейчас в теме
(28)при больших нагрузках sql ado stream быстрее чем file acces ИМХО....
если процы мощные (там где сжимется... если это не управляемое приложение - то на клиенте... а там ваще Г может быть)
можно сжимать (deflate).. при записи задержка.. при чтении иногда быстрее
+ но надо анализировать сжимать не сжимать ....
39. KroVladS 07.08.12 08:42 Сейчас в теме
Пытаюсь адаптировать для PostgreSQL.
Сделал табличку
CREATE TABLE "FileTable"
(
  "FileID" character(36) NOT NULL,
  "Object" bytea
)

при попытке обратиться через Recordset к полю Object вываливаеться с ошибкой
Произошла исключительная ситуация (Provider): Недостаточно памяти для завершения операции.

Может есть какие мысли?
40. Silenser 509 11.08.12 09:34 Сейчас в теме
(39) KV1s, К сожалению, с данной СУБД ни разу не сталкивался. Попробуйте задать вопрос на сайте соответствующего сообщества, наверняка есть подобное как sql.ru
41. KroVladS 14.08.12 17:53 Сейчас в теме
(40)
Вроде разобрался, правда через Ж
Использовал ADODB.Command с параметрами для добавления через AppendChunk и драйвер ODBC.
Ветка на соответствующем форуме тыц.
42. Silenser 509 15.08.12 09:02 Сейчас в теме
(41) KV1s, Почему же через Ж, ничего кривого в той ветке я не увидел.
66. Silenser 509 24.07.17 15:53 Сейчас в теме
Уточнение, на всякий случай: при отправке команд в Postgre имена полей и таблиц нужно заключать в двойные кавычки, в то время как MS SQL нормально воспринимает их и с кавычками и без. В своей библиотеке подсистем http://infostart.ru/public/624829/ использовал формат команды с кавычками, т.к. новая подсистема более универсальна, умеет работать и с MS и с Postgre.
29. natan 07.09.10 09:02 Сейчас в теме
Можно подробнее про обмен с головой? Каким образом передаются файлы?
31. CheBurator 3399 20.09.10 18:26 Сейчас в теме
Справедливости ради, заметим, что помещать бинарные данные в 1С базу версии 7.7 нельзя,

- это откуда такое мнение???
32. Silenser 509 20.09.10 23:43 Сейчас в теме
(31)Если не сложно, напомните мне, насколько я помню, кроме как финта с ушами в виде сохранения объекта в виде строки с внутренним представлением встроенной процедурой, другого способа нет. То есть напрямую загнать бинарные данные в реквизит не получится, или я не прав?
33. DeepDiver 5 28.10.10 14:04 Сейчас в теме
Тоже интересный способ...
34. lylik 23.03.11 15:00 Сейчас в теме
Коллеги, в данном примере формат сохранения в SQL базу идет 0xFFD8FF -- это живой JPEG.
А, кто знает формат хранения в SQL сервере изображения записываемого самой 1С ?
37. MiCe 8 23.01.12 07:31 Сейчас в теме
35. dmd 11.10.11 19:35 Сейчас в теме
Прекрасный пример, приспособил под собственные нужды. Спасибо автору.
38. Ku2sha 26.02.12 01:26 Сейчас в теме
Автору - спасибо! Очень помогло, в нужное время в нужном месте. =))
43. Shum23str 09.01.13 09:57 Сейчас в теме
А для управляемых форм подойдет?
44. Silenser 509 09.01.13 11:01 Сейчас в теме
(43) Shum23str, Сама конфа работать, конечно, не будет, а внутренняя часть, отвечающая за подключение к SQL базе и получение файла - да.
45. dynamite 12.01.13 10:51 Сейчас в теме
Добрый день, при попытке закрепит файл, ругается и выдает ошибку

Запись файлов в хранилище возможна только на рабочей базе
Не удалось поместить файл в хранилище через ADO соединение

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

Функция ПоместитьФайлВХранилище(СоединениеАДО, УникальныйИдентификаторФайла, ПолноеИмяФайла) Экспорт
Если (СтрЗаменить(НРег(СтрокаСоединенияИнформационнойБазы()), """", "") <> "File=""C:\\InfoBase""; Usr =""Админ"";") Тогда //РУЧНЫЕ ИЗМЕНЕНИЯ
#Если Клиент Тогда
Сообщить("Запись файлов в хранилище возможна только на рабочей базе", СтатусСообщения.Важное);
#КонецЕсли
46. Silenser 509 13.01.13 01:31 Сейчас в теме
(45) dynamite, Добрый день! На первый взгляд ошибка в указании строки соединения. Введите в табло СтрокаСоединенияИнформационнойБазы() и проверьте, не забудьте про функцию НРег в условии.
47. dynamite 13.01.13 20:09 Сейчас в теме
(46) Сможете описать в примере... если честно я не так силен в программирование...

Если (СтрЗаменить(НРег(СтрокаСоединенияИнформационнойБазы()), "File=""C:\InfoBase""; Usr =""Админ", "") <> "СтрокаСоединенияСИнформационнойБазой") Тогда //РУЧНЫЕ ИЗМЕНЕНИЯ

после чего выдает ошибку

"Запись файлов в хранилище возможна только на рабочей базе"
48. Silenser 509 13.01.13 20:44 Сейчас в теме
(47) dynamite, Если еще проще, то запустите отладчик, установите точку останова на условии
Если (СтрЗаменить(НРег(СтрокаСоединенияИнформационнойБазы()), """", "") <>
 "File=""C:\\InfoBase""; Usr =""Админ"";") Тогда

исследуйте левый операнд в условии
СтрЗаменить(НРег(СтрокаСоединенияИнформационнойБазы()), """", "")

поместите в правую часть.
Суть условия - исключить выполнение функции в тестовой базе.
49. dynamite 13.01.13 22:23 Сейчас в теме
(48)Silenser, я так понял то что я делаю не правильно да?

Если (СтрЗаменить(НРег(СтрокаСоединенияИнформационнойБазы()), "File=""C:\InfoBase""; Usr =""Админ", "") <> "СтрокаСоединенияСИнформационнойБазой") Тогда
50. TMV 14 13.01.13 22:35 Сейчас в теме
51. dynamite 13.01.13 22:38 Сейчас в теме
(50) TMV, а мне зачам издиватса, я же ясно выразилса что я не могу сделат... если можете могли бы дать просто вариант как написать...

Просто мне очень надо этот функцыанал
52. TMV 14 13.01.13 22:44 Сейчас в теме
(51) dynamite, кидайте всю процедуру - глянем
53. dynamite 13.01.13 22:48 Сейчас в теме
//помещает файл в хранилище
Функция ПоместитьФайлВХранилище(СоединениеАДО, УникальныйИдентификаторФайла, ПолноеИмяФайла) Экспорт
	Если (СтрЗаменить(НРег(СтрокаСоединенияИнформационнойБазы()), """","") <> "СтрокаСоединенияСИнформационнойБазой") Тогда //РУЧНЫЕ ИЗМЕНЕНИЯ
		#Если Клиент Тогда
			Сообщить("Запись файлов в хранилище возможна только на рабочей базе", СтатусСообщения.Важное); 
		#КонецЕсли
		//Возврат;
	КонецЕсли;
	Попытка
		//Дабы не мудртвовать лукаво, просто удалим строку с определенным ИД
		КомандаSQL = Новый COMObject("ADODB.Command");
		КомандаSQL.ActiveConnection = СоединениеАДО;
		КомандаSQL.CommandText = "DELETE FROM FileTable WHERE (FileID='" + УникальныйИдентификаторФайла + "')";
		КомандаSQL.CommandType = 1;
		КомандаSQL.Execute();

		//создаем набор записей АДО
		НаборЗаписей = Новый COMОбъект("ADODB.Recordset");
		НаборЗаписей.CursorLocation = 2;
		НаборЗаписей.Open("FileTable", СоединениеАДО, 0, 4, 2);
		НаборЗаписей.AddNew();
		НаборЗаписей.Fields("FileID").Value = УникальныйИдентификаторФайла;
		
		//создаем АДО поток для чтения файла
		Поток = Новый COMОбъект("ADODB.Stream");
		Поток.Type = 1;
		Поток.Open();
		Поток.LoadFromFile(ПолноеИмяФайла);
		НаборЗаписей.Fields("Object").Value = Поток.Read();
		//обновляем набор записей и закрываем его					
		НаборЗаписей.UpdateBatch();
		НаборЗаписей.Close();
		Возврат Истина;
	Исключение
		#Если Клиент Тогда
			Сообщить("Не удалось поместить файл в хранилище через ADO соединение", СтатусСообщения.Важное); 
		#КонецЕсли
		Возврат Ложь;
	КонецПопытки;
КонецФункции //ПоместитьФайлВХранилище
Показать
54. TMV 14 13.01.13 22:54 Сейчас в теме
Если (СтрЗаменить(НРег(СтрокаСоединенияИнформационнойБазы()), """","") <> "СтрокаСоединенияСИнформационнойБазой") Тогда //РУЧНЫЕ ИЗМЕНЕНИЯ
  #Если Клиент Тогда
  Сообщить("Запись файлов в хранилище возможна только на рабочей базе", СтатусСообщения.Важное);
  #КонецЕсли
  //Возврат;
КонецЕсли;

Попробуйте этот кусок закомментировать
57. dynamite 14.01.13 11:47 Сейчас в теме
(54) TMV, Я посмотрел... там появляется проблема №1 что нельзя указать название файла, так же мы не можем изменят или назначать имена
55. reeds 1 14.01.13 01:31 Сейчас в теме
Была похожая проблема, решил файлы хранить просто на сервере в скрытой папке, а в 1С записывалась ссылка (путь) к данному файлу, естественно имя файла менялось программно чтобы можно было хранить файлы с одинаковым именем.
62. SERJ_1CC 48 09.12.14 11:43 Сейчас в теме
(55) reeds, А по подробней не мог бы написать о таком спосабе хранения файлов, появились ли в дальнейшем проблемы и как именно реализовывал, а то все пишет только о внешних СУБД.
P.C. можно и в личку
56. dynamite 14.01.13 11:20 Сейчас в теме
Если его закомментит то проблема решает сразу... пробовал
Только вот при этом все ли нормально работает или нет, как определит?
И вообще это кусок кода за что отвечает?
58. Silenser 509 14.01.13 14:02 Сейчас в теме
(56) dynamite, Вы читаете то, что вам пишут? См. 48 коммент.
59. dynamite 14.01.13 14:51 Сейчас в теме
(58) Да да уже разобрался с этим, появился другой вопрос.

С изображениями как такого проблем нету. Все работает как по маслу. А вот при работе с файлами сохраняет без проблем ну вот при открытие выдает ошибку

{ОбщийМодуль.РаботаСФайлами.Модуль(850)}: Поле объекта не обнаружено (ИДФайла)
			Хранилище = Новый ХранилищеЗначения(ПолучитьДанныеИзХранилища(СоединениеАДО, ОбъектФайла.ИДФайла, СокрЛП(ОбъектФайла.ИмяФайла)));


а в чем тут проблема?
60. Silenser 509 14.01.13 16:31 Сейчас в теме
(59) dynamite, Скорее всего в списке нет указанного поля, нужно его добавить через настройки списка в режиме предприятия.
61. miroha 30.10.13 23:37 Сейчас в теме
Изначально файловую помойку изображений хранили на файловом сервере, сплошные проблемы прав и доступа - каменный век для большого количества файлов.
Хранить файловую помойку в загруженной базе мы посчитали не серьезным и вынесли в отдельную базу SQL.

У нас картинки и сканы документов хранятся в отдельной SQL базе, доступ на чтение через внешний источник данных, запись как в примере http://infostart.ru/public/67205/ . Все функции работы с внешней базой на сервере 1с.

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

Минусы
Размер базы 3x от размера картинок( зато нет файловых операций)
Администрировать приходиться на одну базу больше.
В случае отказа базы картинок , в основной базе их нет, но база продолжает работать.
Необходима обработка для переноса имеющихся картинок и доработка конфигураций.

Здесь есть пример отталкивался от него, полгода работает стабильно.
63. Ivon 638 20.09.16 12:36 Сейчас в теме
(61) miroha, Спасибо за использование моей статьи. Можно немного подправить код на SQL и саму обработку, следующим образом: создать на SQL хранимую процедуру, которая будет принимать Base64 и перекодировать его обратно в binary и ложить в базу уже двоичные данные, а так же вьюшку, которая будет делать обратное преобразование. Кстати, вьюшку можно прицепить, как внешний источник данных и впоследствии данные выбирать простым запросом 1С. В коде в 1С соответственно поменять вызов Insert на вызов хранимой процедуры, а вместо select использовать либо вьюшку в запросе либо вьюшку, как связанный источник данных.
А данная статья автора в чем-то похожа на другую мою статью, там уже все хранится не в Base64, а в бинарном виде. Работало отлично.
64. KAV2 09.05.17 05:23 Сейчас в теме
(61) А все таки, подскажите пожалуйста, в чем проблема с правами доступа при хранении картинок на файловом сервере? В чем сложность была дать пользователю, под которым работает 1С, права на чтение\запись файлового каталога?
65. loky12 10.07.17 09:12 Сейчас в теме
В нашей организации подобная проблема(усугубленная тем что сеанс 1с в толстом клиенте нормально не освобождает память после просмотра картинки и некоторые терминальные 1с отжирали до двух гб ОЗУ) пошли несколько иным путем. Картинки записываем на ФТП в каталог с наименованием = УИД элемента владельца, наименование картинок тоже УИД. Основное изображение текстовое поле. В папку куда записываются файлы смотрит nginx и показ изображение идет в поле html документа. Так мы избавились от жора памяти и урезали базу на 40 ГБ.
67. Fox-trot 105 22.08.17 18:36 Сейчас в теме
скачал, интегрировал код - теперь каждому клиенту нада устанавливать скульного нейтив клиента
нельзя было сказу на стороне сервера это решить?
решение кривоватое от слова совсем
68. Silenser 509 23.08.17 09:13 Сейчас в теме
(67)ODBC драйвер для MS SQL входит в поставку Windows, не нужны никакие дополнительные драйверы, все и так работает. В новой версии, которая более современная и поддерживает клиент-серверный режим работы, работа с SQL сервером ведется с сервера. Основная же идея этого решения - как раз исключить сервер из цепочки по передачи файлов, чтобы напрямую работать с MS SQL.
71. rozer 259 02.08.18 16:41 Сейчас в теме
(68) а в документе вашем тестовом вроде вместо ОбработкаВыбора


Процедура ОбработкаВыбора(ЗначениеВыбора, Источник)
	Если ТипЗнч(ЗначениеВыбора) = Тип("Строка") Тогда
		Если ЗначениеВыбора = "ИзмененСписокСправочникаХранилищеДопИнформации" Тогда
			СписокКнопокФайлов = Новый СписокЗначений;
			СписокКнопокФайлов.Добавить(ЭлементыФормы.ДействияФормы.Кнопки.Файлы);
			РаботаСФайлами.ПолучитьКартинкуКнопкиОткрытияФайлов(Ссылка, СписокКнопокФайлов);
		КонецЕсли;
	Иначе
		;
	КонецЕсли;
КонецПроцедуры

Показать


не должна быть ОбработкаОповещения ? Ведь везде оповещение а не выбор

Оповестить("ОбновитьФорму", Новый Структура("ИмяЭлемента","ИзмененСписокСправочникаХранилищеДопИнформации"),мОбъектОтбора);
73. Silenser 509 02.08.18 21:05 Сейчас в теме
(71)Не было тогда оповещений :)
75. rozer 259 02.08.18 22:27 Сейчас в теме
(73) это когда? в 8.1 уже были. Вы не подумайте чего просто Оповестить не обрабатывается ОбработкойВыбора )
77. Silenser 509 03.08.18 09:27 Сейчас в теме
(75) Это понятно, что не обрабатывается. Мне сложно отвечать на вопросы по коду, которому уже много лет, я уже просто не помню. К сожалению.
72. rozer 259 02.08.18 17:15 Сейчас в теме
(68) + еще при открытии базы вы чистите папку EXT_FILES а пишете временные файлики в папку EKIS_EXP ? Ошибка ?
74. Silenser 509 02.08.18 21:06 Сейчас в теме
(72)Скорее всего. Писать и чистить при открытии нужно одну папку, чтобы она не засорялась. Как вариант можно создавать временные файлы, они чистятся сами.
69. Fox-trot 105 23.08.17 09:17 Сейчас в теме
тогда вышли плиз 30 лицензий на подключение к msssql. адрес ты знаешь

(68) если это odbc, то можете бросить в меня камнем. не вводите людей в заблуждение

	КомандаSQL = Новый COMObject("ADODB.Command");
	КомандаSQL.ActiveConnection = СоединениеАДО;
	КомандаSQL.CommandType = 1;
	Пока (Выборка.Следующий()) Цикл
		КомандаSQL.CommandText = "DELETE FR OM FileTable WH ERE (FileID='" + Выборка.ИДSQL + "')";
		КомандаSQL.Execute();
	КонецЦикла;  
70. Silenser 509 23.08.17 13:47 Сейчас в теме
(69) Поздравляю, вы раскрыли мой заговор по введению всех в заблуждение. Пожаловаться можно тут и вот тут. Далее разрешите откланяться.
76. rozer 259 02.08.18 22:30 Сейчас в теме
(74) да и наверно еще после помещения в sql табл грохать папку с файлом... А то что даже при навигации по файлам каждый раз создается папка и наименованием уникальным и файликом не сильно тормозит клиента?
78. Silenser 509 03.08.18 09:36 Сейчас в теме
(76)Нет, и дает одно преимущество: многие просмотрщики имеют возможность открыть следующий файл в каталоге, при таком подходе файлы перемешиваться не будут. И потом, каталог же чистится.
Оставьте свое сообщение

См. также

Вебхук. Путь Телеграма 53

Статья Программист Конфигурация (md, cf) v8 Абонемент ($m) Внешние источники данных Интеграция

Долгое (на самом деле нет) и нелегкое путешествие телеграма к неведомым (из за РКН) конфигурациям 1С. Памятка себе.

1 стартмани

03.10.2019    2385    5    platonov.e    10       

Описание формата внутреннего представления данных 1С в контексте обмена данными 143

Статья Программист Внешняя обработка (ert,epf) v8 v8::УФ 1cv8.cf Абонемент ($m) Практика программирования Внешние источники данных Разработка

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

1 стартмани

06.09.2019    4272    4    Dementor    27       

Согласование задач из Outlook 50

Инструменты и обработки Программист Расширение (cfe) v8 1cv8.cf Windows Абонемент ($m) Внешние источники данных

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

1 стартмани

06.09.2019    2188    6    duhh    17       

Обмен большими данными между клиентом и сервером 65

Статья Программист Внешняя обработка (ert,epf) v8 Абонемент ($m) Внешние источники данных

В статье рассматривается вопрос передачи больших объемов данных, превышающих теоретический лимит сеансовых данных (4Гб за вызов) (они же временное хранилище) как с клиента на сервер, так и в обратном направлении.

1 стартмани

27.08.2019    3332    1    logos    17       

Телеграм 1С – почти коробка 41

Инструменты и обработки Программист Пользователь Архив с данными v8 Windows Абонемент ($m) Внешние источники данных

Почему это решение называется «почти коробка»? Потому, что это почти коробочное решение. С его помощью, просто добавив подсистему в конфигурацию, уже можно начинать взаимодействовать с мессенджером Telegram.

10 стартмани

20.08.2019    3928    15    zfilin    65       

Экспортные процедуры и функции общих модулей БП 3.0, ЗУП 3.1, УТ 11 32

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Россия Windows Абонемент ($m) Универсальные функции

Таблицы экспортных процедур и функций общих модулей конфигураций БП КОРП 3.0, ЗУП КОРП 3.1, УТ 11 + обработка по формированию такой таблицы из любой конфигурации.

14.06.2019    3442    329    SanchoD    29       

Работа с графической схемой в объектной модели DOM 40

Статья Программист Конфигурация (md, cf) v8 v8::УФ Абонемент ($m) Универсальные функции

Пример кода для работы с графической схемой в объектной модели DOM, платформа 8.3.12.

1 стартмани

04.06.2019    3409    4    botokash    19       

Программное формирование картинки в 1С:Предприятие 8.3.9 (ПотокВПамяти / ЗаписьДанных) 50

Статья Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Универсальные функции

В статье представлен код программного формирования картинки (двоичные данные) без всяких внешних компонент, без формирования строки Base64, используя лишь встроенные механизмы 1С предприятие 8.3.9 (объекты ПотокВПамяти и ЗаписьДанных). Сам по себе код формирования картинки не несёт ничего нового. Всё описано в википедии. Захотелось попробовать новые методы, но никак не доходитили руки. В приложении обработка практически с этим же кодом.

1 стартмани

16.05.2019    4254    5    yku    7       

Шаблон http-сервиса для вашего проекта 70

Инструменты и обработки Программист Архив с данными v8 v8::Mobile 1cv8.cf Абонемент ($m) Внешние источники данных WEB Мобильная разработка

Http-сервис для обмена данными в формате JSON. Обработчики этого сервиса находятся во внешней обработке, что позволяет дорабатывать его без изменения конфигурации. Также прилагаю пример мобильного приложения для работы с данным сервисом (получает номенклатуру и остатки на складе). Сервис очень быстро разворачивается и масштабируется под ваши задачи.

2 стартмани

04.05.2019    5883    46    MarkoSokolov    47       

"Мобильный ТСД" - инвентаризация и сбор штрихкодов для iOS и Android 21

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

Простой мобильный терминал сбора данных для iOS и Android, не требующий сложных настроек и установки дополнительных программ. Для выгрузки базы штрихкодов и загрузки собранных штрихкодов в документы учетной системы используется Яндекс Диск или облачный сервис и расширение конфигурации. Работает с конфигурациями Розница 2, УНФ 1.6, УТ 11, ERP, КА2.

3 стартмани

22.04.2019    9765    51    suepifanov    61       

1C + Python + Django Rest Framework + Vue.js. Опыт несложной full-stack разработки 121

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

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

1 стартмани

22.04.2019    15796    14    riposte    63       

Аутентификация на внешних сервисах посредством OAuth 80

Статья Программист Внешняя обработка (ert,epf) v8 v8::УФ 1cv8.cf Windows Абонемент ($m) Информационная безопасность Внешние источники данных

Пример подключения к сервисам Google из 1С с помощью протокола OAuth и получения данных с внешнего сервиса.

1 стартмани

03.04.2019    5967    4    binx    5       

Телеграм + 1С + Вебхуки + Апач + Самоподписанный сертификат 48

Статья Программист Архив с данными v8 Windows Абонемент ($m) Внешние источники данных

Много строк исписано про интеграцию Телеграма и 1С. Но нигде не увидел полной инструкции по установке и настройке вебхуков. Попробую её написать.

1 стартмани

26.02.2019    6496    6    alexlx    29       

Универсальное расширение 1С для Google Таблиц и Документов 95

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

Эта статья для тех, кто использует G Suite и 1С. Готовое решение для выгрузки отчетов и печатных форм из баз 1С в Google Диск в формате Google Таблиц и Google Документов. Информация по его внедрению. Описание создания и настройки проекта в GCP.

1 стартмани

31.01.2019    6808    18    Maria18    12       

Коннектор: удобный HTTP-клиент для 1С:Предприятие 8 510

Инструменты и обработки Программист Конфигурация (md, cf) v8 1cv8.cf Абонемент ($m) Практика программирования Внешние источники данных WEB Универсальные функции Инструментарий разработчика Универсальные обработки

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

1 стартмани

31.01.2019    24958    242    bonv    102       

Применение средств MS SQL R service для 1С 54

Статья Программист Нет файла v8 1cv8.cf MS SQL Абонемент ($m) Внешние источники данных

Некоторое время назад Microsoft добавила в MS SQL сервер службы машинного обучения, позволяющие выполнять программный код на языках программирования R и Python. В статье будет продемонстрирована общая схема и принцип того, как можно использовать данные службы в контексте разработки на 1С. 

1 стартмани

25.11.2018    9568    Robbi    14       

Использование подсистемы БСП "Заполнение объектов" 133

Статья Программист Расширение (cfe) v8 v8::УФ 1cv8.cf Россия Абонемент ($m) Практика программирования Универсальные функции БСП (Библиотека стандартных подсистем)

Применение механизмов БСП для добавления новых команд заполнения к формам различных объектов. Использование расширений конфигурации для доработки. Шаблоны для реализации собственных команд заполнения.

1 стартмани

23.11.2018    12929    8    ids79    14       

Интеграция WhatsApp в 1С (botcorp.io и api-messenger.com) 29

Инструменты и обработки no Конфигурация (md, cf) v8 Абонемент ($m) Внешние источники данных

Сейчас у WhatsApp более 1 млрд. пользователей во всём мире. В России мессенджер держится на верхних строчках по популярности среди всех мессенджеров. Из чего следует, что WhatsApp является самым желанным мессенджером для интеграции с 1С.

3 стартмани

22.11.2018    15641    45    17808849    47       

Загрузка чека онлайн-касс (загрузка товаров из чека) 38

Инструменты и обработки Системный администратор Программист Бухгалтер Внешняя обработка (ert,epf) v8 1cv8.cf Кассовые операции Розничная торговля Абонемент ($m) Внешние источники данных WEB

Обработка-пример, позволяет любому и из любой конфигурации загрузить информацию о товарах из чека(и не только) с сервера ФНС proverkacheka.nalog.ru

2 стартмани

08.10.2018    7101    23    echo77    32       

Мониторинг показателей систем 1С 8.3 с помощью Zabbix 162

Инструменты и обработки Системный администратор Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Внешние источники данных Zabbix

Опишу свой опыт мониторинга наших систем 1С с помощью Zabbix и ту пользу, которую можно извлечить из этого.

1 стартмани

05.10.2018    20157    36    akimych    48       

Отправка электронной почты с помощью локального почтового клиента из 1С, развернутой под удаленным рабочим столом 12

Инструменты и обработки Программист Пользователь Архив с данными v8 КА1 БП2.0 УТ10 УПП1 Windows Абонемент ($m) Печатные формы документов Универсальные функции Email

Решение для интерактивной (нажал-отредактировал) отправки электронных писем и печатных форм через почтовый клиент (Thunderbird, Outlook) находящийся на локальном компьютере, из конфигурации 1С, развернутой под удаленным рабочим столом (RDP, remote-app). Подходит также для локального развертывания 1С. Представлен пример быстрой интеграции с конфигурациями "Управление торговлей 10.3", "Управление производственным предприятием 1.3", "Комплексная автоматизация 1.1", "Бухгалтерия предприятия 2.0".

1 стартмани

21.09.2018    11023    10    stvorl    0       

Связка 1С и Telegram. Отправка стикеров 32

Статья Программист Внешняя обработка (ert,epf) v8 v8::УФ 1cv8.cf Абонемент ($m) Практика программирования Внешние источники данных

В качестве факультатива сейчас изучаю возможности связки 1С и мессенджера Telegram. И возник вопрос, как помимо сообщений, посылать в ответ на действия пользователя произвольный стикер? Решению этой мини задачи и посвящена данная статья.

1 стартмани

31.07.2018    7159    4    Skin123    4       

Опыт интеграции мессенджера Telegram c 1C 98

Статья Программист Нет файла v8 Абонемент ($m) Внешние источники данных

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

19.07.2018    11727    411    VachKirp    31       

Пропорциональное распределение в запросе 35

Статья Программист Внешний отчет (ert,erf) v8 1cv8.cf Абонемент ($m) Практика программирования Универсальные функции

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

1 стартмани

28.06.2018    7972    1    invertex    7       

RabbitMQ + 1С. Быстрый старт 78

Инструменты и обработки Программист Архив с данными v8 1cv8.cf Windows Абонемент ($m) Внешние источники данных

Внешняя компонента для отправки сообщения из 1С в кролика. Сервис прослушивания и перенаправления сообщений из кролика в http или web-сервис.

1 стартмани

10.06.2018    16523    71    Goleff74    38       

Опять про sFTP и вообще 33

Статья Программист Внешняя обработка (ert,epf) v8 1cv8.cf Windows Абонемент ($m) Внешние источники данных

Памятка для разработчика по работе с FTP, FTPs и sFTP.

1 стартмани

23.05.2018    10347    24    leongl    9       

Экономим время на ввод операций в 1С: Деньги 34

Инструменты и обработки no Конфигурация (md, cf) v8 1cv8.cf Домашние учет и финансы Банковские операции Абонемент ($m) Обработка документов Внешние источники данных

Рабочее решение автоматического создания операций в 1С: Деньги. Основано на анализе СМС.

1 стартмани

14.05.2018    6649    13    vsbronnikov    20       

Интеграция между Atlassian Jira и 1С:Предприятие 8.3 используя Jira REST API (выборка, создание и изменение запросов, чтение, создание и удаление записей о работах, чтение комментариев и другие возможности) 80

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 v8::УФ 1cv8.cf Абонемент ($m) Внешние источники данных WEB

Внешняя обработка на управляемой форме для 1С:Предприятие 8.3 по интеграции с Atlassian Jira используя Jira REST API. Ключевые функции: выборка запросов с использованием JQL; добавление и изменение запросов; добавление, изменение и удаление записей о работах; чтение комментариев к запросам; сохранение всех ключевых параметров между сеансами работы. Тестирование проводилось на платформе 1С (8.3.11.2954) совместно с JIRA Server platform (7.3.7)

1 стартмани

24.04.2018    16719    113    Ko1t    63       

Чтение и запись из таблиц гугл (google sheets) в табличный документ 1С (8.3, управляемые формы) 148

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 v8::УФ 1cv8.cf Абонемент ($m) Внешние источники данных WEB

Внешняя обработка на управляемой форме для 1С версии 8.3 для доступа к сервисам Google Sheets c использованием протокола авторизации OAuth 2.0. Выполняет получение списка листов таблицы гугл, чтение таблицы гугл в табличный документ 1С и запись из табличного документа 1С в таблицу гугл. Тестирование проводилось на платформе 1С:Предприятие 8.3 (8.3.11.2954).

1 стартмани

09.04.2018    21092    164    Ko1t    50       

Чат бот в 73 строки на 1С - ИИ наступает 29

Инструменты и обработки no Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Практика программирования Внешние источники данных

Интеграция с уже готовой системой чат-бота для различных случаев жизни. Используется API от DialogFlow Google. Обработка тестировалась на 1С:Предприятие 8.3 (8.3.10.2252) Должно работать на всех 8.3 версиях.

1 стартмани

09.04.2018    8497    24    Lapitskiy    7       

Практикум по созданию обменов данными через протокол oData «за полдня» 98

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

Про oData и 1С было довольно много написано, однако же описания работы и с чтением, и с записью данных через JSON я так и не встретил ни на этом ресурсе ни на других. Попробую раскрыть эту тему.

1 стартмани

20.03.2018    17938    11    timm00    64       

Оповещения из ЗУП и ERP в TELEGRAM 71

Инструменты и обработки Программист Бухгалтер Внешняя обработка (ert,epf) v8 ERP2 ЗУП3.x Абонемент ($m) Внешние источники данных

Начитался статей про интеграцию 1С -> Telegram, решил аккумулировать опыт и попробовать сделать какую-нибудь полезную обработку. Как результат - внешняя обработка, уведомляющая ответственных сотрудников по расписанию о необходимости оплаты отпусков, материальной помощи, премий. Данные посылаются в виде PDF файла (Отчет, созданный на основании макета). Можно использовать обработку как обучающую. Тестировалось на ERP 2.4.2.139, на ЗУП 3.X тоже должно работать.

1 стартмани

01.03.2018    9294    54    khabibullin.tu    14       

Практика доступа в базу 1С через протокол oData. Изменение данных 113

Статья Системный администратор Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Практика программирования Внешние источники данных

Продолжаем знакомство с протоколом oData и в данной статье мы рассмотрим такие вопросы, как минимально необходимый багаж теоретических знаний, необходимый для работы, способы изменения доступных данных, а также с какими ограничениями можем при этом столкнуться. Осторожно, будет много скриншотов!

1 стартмани

30.12.2017    22580    85    Dementor    26       

Расширение возможностей печати: Вывод произвольного нижнего и верхнего колонтитула 8

Отчеты и формы Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Печатные формы документов Практика программирования Универсальные функции

Расширяем функционал вывода нижнего / верхнего колонтитула. Стандартно 1С имеет достаточно ограничений по выводу и наполнению колонтитулов содержимым, взять хотя бы такие, как вывод только текста и отсутствие ограничения на номер конечной страницы. А при разработке кода сталкиваешься с тем, что свой блок с нижним колонтитулом нужно прижимать к низу страницы. Казалось бы быстро решаемый вопрос, но и в нем есть нюансы. Сейчас я расскажу о том, как решалась эта задача. UPD 15.02.2018. Добавлен вывод верхнего колонтитула; Вывод колонтитулов на первой и последней странице управляется параметрами; Научился считать страницы: Добавлено заполнение переменных аналогичных стандартным из колонтитулов; Задаются форматы даты и времени. Ограничения прежние: 1. Повторно сформировать табличный документ после смены параметров страницы интерактивно.; 2. Передавать данные для более плотной печати как можно более мелко нарезанными кусками.

1 стартмани

29.12.2017    21359    21    agent00mouse    0       

Инструкция по настройке загрузки из ФСС электронных листков нетрудоспособности ЭЛН в документ 1С Начисление по больничному листу 57

Статья Программист Бухгалтер Архив с данными v8 КА1 ЗУП2.5 УПП1 Россия БУ Зарплата ФОМС, ПФ, ФСС Абонемент ($m) Внешние источники данных

Клиент (страхователь) работает в программе "1С Зарплата и управление персоналом ред.2.5" сдает отчетность через Контур или СБИС и не собирается подключать 1С-Отчетность, при этом хочет загружать электронные больничные в программу 1С Зарплата. Подобная ситуация может быть и для других конфигураций в которых есть документ "Начисление по больничному листу", например Комплексная автоматизация 1.1, Управление производственным предприятием 1.3.

1 стартмани

28.11.2017    104071    179    rusmil    115       

Автоматическое заполнение реквизитов контрагентов по ИНН для ERP 2.2, УТ 11.4, УТ 11.3, УТ 11.2, КА 2.2 и БП 3.0 (расширение конфигурации) 32

Инструменты и обработки Бухгалтер Пользователь Архив с данными v8 v8::БУ v8::ОУ v8::УФ УПП1 ERP2 БП3.0 УТ11 КА2 Россия Абонемент ($m) Обработка справочников Внешние источники данных

Универсальное расширение конфигурации для автоматической загрузки реквизитов контрагентов (партнеров) из ОГРН для 1С:ERP Управление предприятием 2 (ERP Управление предприятием 2.2), 1С:Управление торговлей 8 (Управление торговлей, редакция 11.4), 1С:Управление торговлей 8 (Управление торговлей, редакция 11.3), 1С:Управление торговлей 8 (Управление торговлей, редакция 11.2), 1С:Комплексная автоматизация 8 (Комплексная автоматизация, редакция 2.2) и 1С:Бухгалтерия 8 (Бухгалтерия предприятия редакция 3.0)

3 стартмани

08.11.2017    21237    182    AlexeyT1978    146       

Размеры управляемой формы 100

Статья Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Практика программирования Работа с интерфейсом Универсальные функции

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

1 стартмани

08.10.2017    17587    46    json    8       

1С и MongoDB: дружба начинается с RESTHeart'а 44

Статья Программист Архив с данными v8 Windows Абонемент ($m) Внешние источники данных

Краткое описание того, как подружить MongoDB и 1С: Предприятие используя один из предлагаемых на официальном сайте RESTFul сервисов - RESTHeart.

1 стартмани

03.07.2017    35559    6    Silenser    8       

«Горыныч - то НЕ НАСТОЯЩИЙ!» … или О Конвертации Данных ред.3 (КД 3) и обменах в универсальном формате Enterprise Data… доступным русско-народным языком 58

Инструменты и обработки Программист Архив с данными v8 КД Абонемент ($m) Внешние источники данных Обмен через XML Перенос данных из 1C8 в 1C8

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

1 стартмани

13.06.2017    14055    135    Davlad_A    16       

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

Инструменты и обработки Системный администратор Программист Внешняя обработка (ert,epf) v8 v8::УФ 1cv8.cf Абонемент ($m) Инструментарий разработчика Универсальные функции

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

1 стартмани

28.05.2017    17368    140    Bassgood    10       

Многопоточность. Универсальный «Менеджер потоков» (фреймворк) с отслеживанием зависимости объектов 175

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

Восстановление партий, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

26.05.2017    38309    166    DarkAn    86       

Что такое HMAC и JWT и как это использовать в 1С 94

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

Лёгкая статья про стандарты HMAC и JWT с небольшой теорией и исходным кодом.

1 стартмани

20.04.2017    15026    74    keypax    37       

План обмена в формате "EnterpriseData" для УТ 10.3 33

Инструменты и обработки Программист Конфигурация (md, cf) v8 УТ10 Абонемент ($m) Внешние источники данных

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

1 стартмани

19.03.2017    13954    81    binex    3       

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

Инструменты и обработки Программист Конфигурация (md, cf) v8 Абонемент ($m) Внешние источники данных

У каждого разработчика возникают задачи интеграции решений. Основная масса решений призвана вывести данные из «1С:Предприятие 8» в обусловленном формате. Разработчики используют огромную часть своих драгоценных ресурсов на реализацию определенной структуры вывода и необходимого формата. А что если...

1 стартмани

14.02.2017    18522    42    pbazeliuk    27       

Выгрузка метаданных конфигурации 1С в Visio 2010/2013 (для 8.3) 71

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Россия Абонемент ($m) Внешние источники данных

Обработка выгрузки метаданных конфигурации 1С в ER-диаграмму Visio 2010/2013 (для 8.3)

2 стартмани

30.11.2016    14859    104    pfihr    14       

Работа с системой Меркурий через Ветис.API 34

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

Инструкция по первичной интеграции с 1С. Общий модуль и ряд рабочих обработок для работы с системой Меркурий через Ветис.API.

1 стартмани

11.11.2016    49721    305    anig99    29       

Отладка/доработка модуля менеджера "на лету" 89

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Инструментарий разработчика Практика программирования Универсальные функции

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

1 стартмани

23.10.2016    22689    19    json    22       

Создаем бота Telegram 29

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Практика программирования Внешние источники данных

Легко и непринужденно создаем бота, который поможет получать данные из 1С, используя API Teletram

1 стартмани

30.09.2016    16519    90    FirePyres    30       

Вывод Таблицы Значений или Дерева Значений на экран управляемой формы без объявления колонок в реквизитах формы 49

Инструменты и обработки Программист Архив с данными v8 1cv8.cf Абонемент ($m) Практика программирования Универсальные функции

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

1 стартмани

13.09.2016    28197    47    pavley2002    11