ВИДы на жительство. Использование внешних источников данных в прикладных задачах

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

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

На Infostart Meetup Novosibirsk выступил ведущий разработчик МКК «Ваш Инвестор» Вадим Фоминых. Он на практических примерах показал коллегам, как его команда использует внешние источники данных в прикладных задачах, призвал не отказываться от этого инструмента и объяснил – почему.

Есть такой фильм – «Вид на жительство». В нем Жерар Депардье играет французского мигранта, который всяческими уловками пытается обосноваться в Америке и получить там вид на жительство. Он даже женится на коренной американке, но что-то все время идет не так. В итоге все заканчивается хорошо, но остается осадочек.

Такой же осадочек у меня вызывает ситуация с внешними источниками данных в платформе 1С.

 

 

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

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

  • Внешние источники данных существуют только на управляемых формах.

  • И серьезный апдейт этого механизма был в последний раз на релизе платформы 8.3.8.

Все это вызывает вопрос: а инструмент-то вообще живой? Может, им и не пользоваться, считывать таблицы с помощью ADO?

 

 

Давайте посмотрим на облако тегов сайта Зазеркалья. Оно строится по частоте запросов пользователей. Там нет ни слова про ВИДы, и это печально.

Но с другой стороны, не все так плохо. Этот инструмент особо не нужен малому и среднему бизнесу, но очень хорошо зарекомендовал себя в Enterprise и КОРП-сегменте. И действительно там есть задачи, которые можно решать с помощью него.

В докладе я не буду пересказывать все, что есть на сайте ИТС и в синтаксис-помощнике – это вы можете посмотреть сами и сделать какие-либо выводы.

И я не буду рассказывать про историю появления внешних источников и как это работает.

Но я хочу:

  • показать вам практические кейсы и примеры, как мы это применяем в работе;

  • натолкнуть вас на определенные мысли – подкинуть идей, как вы можете применять это у себя;

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

 

Области применения

 

 

Я вижу три области применения внешних источников

  • Работа с файловыми источниками

  • Работа с СУБД

  • Работа с аналитическими кубами – OLAP

OLAP у нас особо не взлетел. Ближе к концу доклада расскажу – почему. Но другие области мы используем, особенно работу с СУБД.

 

Работа с файловыми источниками

 

 

Давайте начнем с файловых источников.

Какой профит от считывания таблиц Excel с помощью ВИДов? Есть два жирных плюса, которые перекрывают все остальные минусы.

  • Первый момент – это скорость. Какой бы инструмент вы не использовали: нативное чтение через XML, табличный документ или чтение через COM-объект Excel – вы не добьетесь такой скорости как при использовании внешних источников данных.

  • Второй момент – мы можем обращаться к таблицам Excel с помощью языка запросов 1С. Этот симбиоз дает положительный опыт.

Давайте покажу на примере, как это работает.

 

 

У нас есть обезличенный файлик с данными о просрочке за три года. Здесь, конечно, не реальные данные. В этом файле 60 тысяч строчек. Чтение через COM-объект займет более 40 минут, для нас это вообще не вариант.

 

 

Небольшая демонстрационная конфигурация. Открываем динамический список с данными просрочки, которые выводятся из таблицы внешнего источника, связанного с Excel – все считывается за секунду.

Фишка в динамическом списке, который умеет порционно подгружать данные из таблиц, которые ему подают на вход. Не все, но в части Excel он это умеет делать – по 45-60 строк в порции он подгружает, и мы можем пролистывать список без задержек. Другое дело, что нет смысла выводить в динамические списки 60 тысяч строк – я просто показал скорость работы.

 

 

Ложка дёгтя в том, что мы не можем в рамках одного запроса объединить данные внешних источников и таблиц 1С. Открываем консоль запросов – здесь есть простенький запрос, где мы считываем данные из Excel-таблицы и пытаемся их объединить со списком документов. Этот запрос не выполнится вообще никогда, что бы вы ни сделали – даже конструктор не откроется.

Почему так происходит? Когда запрос выполняется – он транслируется на СУБД. А дальше механизмы СУБД подбирают оптимальный план выполнения этого запроса и производят определенные выборки.

Но в случае внешнего источника данных СУБД при построении плана запроса не может заранее понять, что ей надо прочесть Excel или обратиться к таблицам PostgreSQL, сделать какие-то соединения, выгодные для СУБД, и потом это транслировать на пользователя. Поэтому на уровне платформы это залочено – об этом нужно помнить. Это такой маленький подводный камень.

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

 

 

В схеме компоновки данных мы можем спокойно использовать несколько наборов:

  • в первом наборе считывать таблицу Excel;

  • а в следующем – обратиться к документам 1С.

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

 

 

В итоге получим вариант отчета, сформированный за пару секунд: например, анализ по просрочке за последние три года в разрезе регионов. Считывание 60 тыс.строк заняло 1-2 секунды.

Фича крутая, ее можно применять как один из способов реализации, если вам приходится считывать данные из Excel, консолидировать их с данными из базы, потом это презентовать руководству.

 

 

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

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

  • Второе ограничение – внешний источник требователен к типу данных «Дата» . Если у вас одна из колонок содержит все значения типа «Дата», но одно из них задано, например, строкой, у вас файл целиком не прочитается, возникнет ошибка, и вся ваша отчетность встанет колом.

Поэтому мы пошли по другому пути: отказались от Excel и все делаем в 1С. Это правильно и хорошо.

Зачем же тогда я вам все это показываю, если говорю, что мы в работе отказались от Excel? На самом деле, мы используем чтение из Excel с помощью внешних источников, но для других целей:

  • Мы загружаем с сайта Центробанка различную статистику в файлах Excel, считываем ее с помощью внешних источников и в дальнейшем используем ее для определенных прогнозов по регионам – строим некую модель выхода на рынки.

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

Несколько идей, как применять ВИДы у себя:

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

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

  • Мне больше по душе область взаимодействия внешних источников данных с различными СУБД. Здесь вы можете считывать данные, записывать данные в таблицы СУБД, использовать хранимые процедуры, функции и все, что душа пожелает.

 

Работа с СУБД

 

 

Мы используем несколько направлений взаимодействия с СУБД через внешние источники – они представлены на слайде. Сейчас расскажу о каждом из них подробнее

 

Организация базы логов

 

 

Первое направление, которое мы используем – организация базы логов.

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

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

На наш взгляд, правильный подход – использовать для логов какую-то отдельную базу. Мы называем это «база рядышком», куда мы можем складывать все логи, добавлять к ним метрики, ставить временной штамп. Если возникает потребность – мы можем с помощью небольших запросов сопоставить связи по метрикам и понять, при каких входных параметрах, в какой точке входа началась проблема, и к чему она привела.

 

База телефонии

 

 

Другое направление – база телефонии.

Здесь у нас тоже используется «база рядышком», где хранятся нормализованные данные, которые получены из основной базы.

В качестве мастер-системы для телефонии у нас используется Oktell. Напрашивается вопрос – зачем использовать внешние источники, если Oktell может напрямую считывать данные 1С, обращаясь к таблицам СУБД или делать кастомные запросы через COM-объекты?

  • На мой взгляд, архитектура типового решения 1С и структура таблиц базы заточена под бизнес-задачи именно прикладного решения 1С, но не заточена под потребности внешнего продукта – 1С не знает, что там Oktell пытается получить из нее какие-то данные.

  • Поэтому мы реализовали рядышком нормализованную базу и складируем туда с какой-то периодичностью либо по событиям какие-то данные. А Oktell их спокойно забирает.

 

 

Покажу, как у нас примерно выглядит структура этой нормализованной базы по телефонии. Все вы, возможно, сталкивались с ER-диаграммами. Вот небольшая диаграмма нашей базы – здесь основные таблицы, все нормализовано и понятно.

Но если мы построим ER-диаграмму любого типового решения 1С, она будет строиться час и более, а во-вторых, этот процесс напоминает процесс призыва сатаны. Либо не построится, либо построится, но воспользоваться ей будет нельзя.

 

 

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

Поскольку основной потребитель телефонии – колл-центр, а это не всегда люди-операторы, чаще всего это роботы, механизмы автоинформирования, то представьте ситуацию. Заемщик час назад погасил кредит, он перед нами чист, но в нормализованной базе данных информация несвежая, обновления нет – робот начинает человека долбить, что он должник. У нас в стране люди и так микрофинансовые организации не очень любят, зачем подливать масла в огонь.

Поэтому мы выбрали два пути, как поставлять информацию в нормализованную базу с помощью внешних источников данных.

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

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

    • Выгрузка изменений у нас реализована с помощью Hash-сумм, которые формируются из совокупности значений на стороне 1С – все значения контактной информации в сумме склеиваются и получается Hash.

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

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

 

База бюро кредитных историй

 

 

Третья «база рядышком» – база бюро кредитных историй.

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

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

  • Другое требование регулятора – мы должны эту информацию хранить у себя и при необходимости предоставлять в виде определенных отчетов.

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

Если мы будем это все хранить внутри базы 1С, мы получим необслуживаемую, 10Тб базу.

Другой момент – эти данные хоть и запрашиваются, но редко. Хранение ради хранения – спорный момент.

Поэтому мы тоже организовали «базу рядышком», но столкнулись с несколькими подводными камнями.

 

Подводные камни «базы рядышком»

 

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

Мы столкнулись с тем, что платформа 1С ограничивает количество строк в наборе записей, который можно записать на СУБД с помощью внешнего источника данных. В старых версиях платформы до 8.3.15 это ограничение – 50 тысяч строк. В 8.3.15 его увеличили до 200 тысяч. В 8.3.17, по слухам, это ограничение убрали, но момент существенный.

С чем было связано такое ограничение со стороны платформы? При небольшом количестве записей (до тысячи) идут простые insert’ы в таблицу. Если записей больше тысячи, сначала на стороне СУБД формируется временная таблица, и потом начинается insert с этой временной таблицы. Это вызывает потери во времени и излишнюю нагрузку на СУБД. Я так думаю, что ограничение на количество записей связано с этим.

 

 

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

Мы пошли по другому пути – применили отложенное проведение во внешней базе.

В основной базе данные у нас проводятся, формируют свое движение, исходя из бизнес-логики. А в нашу «базу рядышком» информация попадает с помощью рег. заданий, которые выбирают необходимые данные порциями, формируют пул фоновых заданий и все это спокойно записывают.

Но здесь мы столкнулись со вторым подводным камнем – блокировки.

 

 

Блокировки – это маленький подводный камень, но неприятный.

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

В палитре свойств есть «Поля блокировки данных» – здесь мы устанавливаем, по каким полям у нас возможны блокировки для набора записей. Но эта штука не работает.

Неважно, что мы напишем в объекте Новый БлокировкаДанных, какие мы установим значения полей блокировок. Мы можем поставить управляемую блокировку и добавить туда все, что угодно, но это никак не будет коррелировать с тем, что добавлено в «Поля блокировки данных». Проверяли на 8.3.17 – такая же история.

 

 

Если вы оставите «Уровень изоляции транзакций» – «Авто», это чревато.

Здесь все зависит от СУБД – какой режим изоляции будет в СУБД, таким он будет и для изоляции управляемых блокировок. Это логично, но не всегда очевидно, на ИТС этой информации нет.

На MS SQL по умолчанию уровень изоляции – READ COMMITTED, и все работает, только не забудьте включить READ COMMITTED SNAPSHOT.

В PostgreSQL тоже все нормально, но в случае с другими СУБД нужно индивидуально смотреть.

Вариант «Упорядоченность» – то же самое, что и режим автоматических блокировок, SERIALIZABLE.

 

 

Третий камушек был болезненным, угодил в живот.

На первый взгляд, безобидная конструкция, но если на этапе проектирования «базы рядышком» не было сформировано никаких индексов, а мы поставим управляемую блокировку и попытаемся одновременно провести два документа в разных сеансах, то столкнемся с проблемой.

 

 

Параметр «Время ожидания блокировки данных» нас не спасет, потому что на СУБД не будет отправлено значение параметра SET LOCK_TIMEOUT, а значит, будет использоваться значение по умолчанию (-1). В результате второй сеанс будет бесконечно ждать, пока не освободится ресурс первого сеанса.

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

 

 

Поэтому, если делаете «базу рядышком»:

  • используйте инструменты СУБД – помощники создания индексов, database-диаграммы;

  • обязательно включайте READ COMMITTED SNAPSHOT (режим изоляции снимков);

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

 

Мониторинг – T-SQL, dmv

 

 

Проблемы расследуем с помощью тех. журнала, мониторим события:

  • TTIMEOUT

  • TLOCK

  • TDEADLOCK

  • и обязательно событие EDS для внешних источников – любая проблема с управляемыми блокировками коррелирует с событиями EDS, это очень важно.

В качестве инструментария используем:

  • для MS SQL – представления DMV

  • для PostgreSQL – pg_stat_statements, pg_locks.

 

Взаимодействие с другими базами 1С

 

 

С точки зрения чтения – никогда не считывайте данные из других баз 1С с помощью внешних источников данных. Для этого есть нормальные инструменты: EnterpriseData, «Конвертация данных», HTTP-сервисы, OData, на крайний случай COM-чтение.

 

 

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

 

OLAP-интеграция

 

 

Третья сфера применения внешних источников данных – OLAP-интеграция.

Здесь я расскажу немного о нашей компании.

  • Мы 7 лет на рынке и представлены в 14 регионах. У нас не займы до зарплаты, а займы под ПТС, поэтому средний чек гораздо выше.

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

  • Другой момент в том, что мы агрегируем данные из других систем: ЯндексМетрика, Google Analytics. В этом плане от внешних источников мы отказались. Тем не менее, вы можете их попробовать, они неплохо работают с сервисами аналитики MS SQL.

 

 

Здесь для аналитических отчетов у нас есть своя разработка на Python и свой разработчик.

 

 

Но мы очень ждем релиза 1С:Аналитики. Там тоже есть внешние источники, которые используются для агрегации данных со всяких метрик, нас это впечатлило, и мы будем это использовать.

 

Краткие итоги

 

 

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

  • Удобно использовать «базы рядышком», чтобы не захламлять и не загружать свои базы 1С.

  • При проектировании этой архитектуры вы получите мощный скилл – это плюс семь шагов к 1С:Эксперту.

  • Скорость записи и считывания из Excel сделана хорошо.

 

 

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

Не бойтесь внешних источников, инструмент интересный, не дайте этому инструменту умереть.

 

Вопросы:

 

Вы показывали в консоли запросов, что нельзя объединить данные базы с данными внешнего источника данных, а можно ли поместить во временную таблицу и там соединить?

Нет, так не получится. Временная таблица в рамках одного запроса формирует временную таблицу на СУБД. А так как мы считываем из Excel, там никакой временной таблицы нет. Здесь лучший выход – это формирование выборки и выгрузка ее в таблицу значений. А потом эту таблицу значений можно передать на вход другого запроса.

Мы использовали внешние источники данных для хранения прайса – миллионы строк в базе MS SQL. Но столкнулись с тем, что работа через внешние источники оказалась значительно медленнее, чем через COM-объекты. Это была платформа 8.3.12. Изменилось ли что-нибудь в последних версиях?

Есть значительное ускорение. Тем более, если вы храните данные внутри СУБД – все зависит от режима работы СУБД, включен ли у вас READ COMMITTED SNAPSHOT, были ли параллельно записи какие-то. Надо смотреть.

Вы отслеживаете изменения с помощью Hash. Но Hash – это же набор данных. Если Hash поменялся, вы передаете весь объект на обмен?

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

У вас Hash считается по пяти полям. Если одно поле поменялось, нужно гнать в обмен весь объект, все пять полей?

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

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

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

Чтение в 3 секунды – это весь файл Excel в 65 тысяч строк прочитался или это 45 строк динамического списка?

Это чтение всего файла.

Вы говорили, что используете Google Analitytics, Яндекс.Метрику, но это все плохо сочетается с внешними источниками.

Да, именно поэтому мы используем собственную разработку на Python. А после полноценного выхода 1С:Аналитики мы планируем перейти на нее.

Но в 1С:Аналитике же тоже чудес не будет?

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

Но в 1С:Аналитике же сейчас нет готовой функциональности, которая заменит ваш скрипт?

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

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

Да.

 

*************

Данная статья написана по итогам доклада (видео), прочитанного на INFOSTART MEETUP Новосибирск. Больше статей можно прочитать здесь.

Приглашаем всех принять участие в INFOSTART EVENT 2021 (6-8 мая, СПб).

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. kare 21 20.04.21 09:11 Сейчас в теме
2. lolipoka 12 26.04.21 16:53 Сейчас в теме
Отличная статья!
Тоже были задачи по внешним источникам данных, и связывать данные с таблицами 1С приходилось через промежуточные таблицы значений, правда, для дальнейшей записи в регистр сведений, а не для непосредственного вывода в отчёт.
Про заполнение набора данных из внешнего источника и соединение его данных с таблицами 1С в одной схеме компоновки - очень классная идея. Спасибо!

По чтению из Excel возник такой вопрос: у Вас источник настроен под конкретный набор колонок файла с данными или есть какая-то возможность настроить некий универсальный внешний источник данных, чтобы ему "скармливать" файлы с произвольным составом колонок (например, при загрузке в табличные части документов или регистры сведений)?
Хотя я предполагаю, что это, скорее, выглядело бы как набор полей Колонка1, Колонка2 ... КолонкаN с типом Строка, а дальше уже программное приведение типов.
3. Shmell 346 30.04.21 07:28 Сейчас в теме
(2) у нас есть несколько ВИДов под разную структуру xls файлов, но мы ограничиваем "фанатизм". У нас раньше использовалась предобработка разношерстных файлов чтобы привести их к единой структуре, но затем мы выработали взаимодействие с контрагентами и внутренними службами и сейчас все достаточно регламентировано в структуре предоставляемой информации.
lolipoka; +1 Ответить
4. lolipoka 12 30.04.21 15:44 Сейчас в теме
Оставьте свое сообщение

См. также

Кэширование COM-соединения. Три способа Промо

Практика программирования Перенос данных из 1С7.7 в 1C8.X Внешние источники данных WEB v8 Россия Бесплатно (free)

Статья о трех способах кэширования COM-соединения в 1С:Предприятии 8.x.

11.04.2013    42362    YPermitin    41    

Бухгалтерия 3.0. Ошибка загрузки билетов из Smartway

Внешние источники данных v8::БУ 8.3.14 БП3.0 Россия БУ Бесплатно (free)

Небольшое расследование причины, по которой часть билетов не загружается в Бухгалтерию из Smartway.

18.03.2021    219    maria_vl    1    

Правила обмена больше не нужны

Внешние источники данных Обмен через XML Перенос данных из 1C8 в 1C8 Распределенная БД (УРИБ, УРБД) WEB v8 Бесплатно (free)

Есть несколько общепринятых подходов к написанию обмена между 1С-системами, каждый из которых упирается в длительное изучение технологии, мучительную отладку правил конвертации и написание большого количества сервисного кода, в котором потом тяжело разобраться. О принципах работы универсального фреймворка liteExchange, который реализует быстрые обмены между 1С и внешними системами, и берет на себя всю техническую обвязку по стандартному преобразованию данных, на INFOSTART MEETUP Saint Petersburg.Online рассказал Николай Крылов.

17.03.2021    6842    Nikola23    35    

DaJet Exchange: обмен данными с 1С (часть 1)

Внешние источники данных v8 Бесплатно (free)

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

11.01.2021    2908    zhichkin    14    

Перенос данных из учетных программ Парус в конфигурации 1С Промо

Внешние источники данных v7.7 v8 БП2.0 ЗУП2.5 ЗКБУ БГУ 1С7:Бух 1С7:ЗиК 1С7:ББУ Россия БУ Госбюджет Бесплатно (free)

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

05.11.2012    53013    sklowsky    16    

Структура обработки загрузки номенклатуры поставщика с примерами и комментариями (часть 1)

Внешние источники данных v8 УНФ Бесплатно (free)

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

12.10.2020    922    malikov_pro    0    

Загрузка данных из Algoritm-S в конфигурацию "Бухгалтерия предприятия 3.0 (3.0.79.21) "

Розничная торговля Внешние источники данных v8 БП3.0 Розничная и сетевая торговля (FMCG) Фармацевтика, аптеки Россия Бесплатно (free)

В статье представлен шаблон обработки для загрузки некоторых данных из программы Algoritm-S в конфигурацию "Бухгалтерия предприятия 3.0 (3.0.79.21)

04.08.2020    1524    RPGrigorev    0    

Интеграции с сервером SQL. Быстро и просто

Интеграция Внешние источники данных v8 1cv8.cf Бесплатно (free)

Решаем вопросы экспорта/импорта данных в базы отличного от 1С происхождения.

06.07.2020    2988    Infector    4    

Сканируем без сканера или MXL to JPG Промо

Внешние источники данных Универсальные функции Печатные формы документов v8 1cv8.cf Бесплатно (free)

Хотите конвертировать документы в формат изображения менее чем за минуту, не имея сканера? Тогда эта статья для вас.

24.05.2012    34503    shakmaev    47    

Структура обработки загрузки цен и остатков поставщика с примерами и комментариями

Внешние источники данных WEB v8 1cv8.cf Россия Бесплатно (free)

В статье опишу структуру обработки по загрузке цен и остатков от поставщика с примерами.

27.06.2020    1965    malikov_pro    0    

Диадок. Подключаемый модуль. Отладка

Интеграция Внешние источники данных v8 1cv8.cf Бесплатно (free)

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

17.06.2020    7813    John_d    10    

Как мы загружаем данные в "Центр управления кассами Магнита"

Внешние источники данных Интеграция v8 1cv8.cf Бесплатно (free)

Статья о том, как мы делали механизм загрузки больших объемов данных в "Центр управления кассами Магнита"

08.05.2020    5483    chernenko_vv    25    

Интеграция СуперОкна7 и УНФ

Интеграция Внешние источники данных v8 УНФ Россия Бесплатно (free)

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

08.05.2020    2627    vostok1.dz    3    

Синхронизация БИТ:СКУД 8 с Parsec.Net 2.5

Интеграция Внешние источники данных v8 1cv8.cf Бесплатно (free)

Настройка синхронизации БИТ:СКУД 8 с Parsec.Net.2.5, выгрузка данных из внешней системы контроля доступа.

04.05.2020    4499    RPGrigorev    0    

Получение данных из Сигур

Внешние источники данных v8 1cv8.cf Бесплатно (free)

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

25.12.2019    5643    skaoxy    6    

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

Загрузка и выгрузка в Excel Внешние источники данных v8 УТ11 Россия Бесплатно (free)

Я так и не смог найти простой инструкции или обработки, чтобы выгрузить из 1С: Управление торговлей 11 номенклатуру вместе со штрихкодами, поэтому решил написать собственную инструкцию.

28.08.2019    20452    user1114182    4    

Вставка BLOB в таблицы ORACLE средствами 1С 8.х с использованием Microsoft OLEDB Provider

Внешние источники данных v8 1cv8.cf Россия Бесплатно (free)

Столкнулся с необходимостью выгружать картинки из 1С 8 в ORACLE-таблицу.

08.08.2019    4960    nomad_irk    0    

Выгрузка данных в таблицу MS SQL SERVER

Внешние источники данных v8 Бесплатно (free)

Процедура по выгрузке данных из 1C (таблица значений) в таблицу MS SQL SERVER через COM.

02.07.2019    10439    EvgenSav    18    

1С и компьютерное зрение: новый подход к контролю за ассортиментом магазина

Розничная торговля Внешние источники данных Розничная торговля v8 1С:Франчайзи, автоматизация бизнеса УУ Бесплатно (free)

Машинное зрение в магазинах и 1С. Как поднять эффективность торгового предприятия (магазин. кафе, шоурум и т.д.) с совершенно неожиданной стороны? Как получить реальные демографические данные покупателей и, самое главное, как это использовать в повседневной работе магазина? Как можно расширить привычные ABC и XYZ анализ, добавив в них пласт данных о трафике и демографии покупателей? Что необходимо для 1С, чтобы использовать данные видеоанализа людского трафика?

20.06.2019    9450    osipov_cvizi    16    

MS Access и 1С. Что, когда и зачем?

Практика программирования Внешние источники данных Разработка v8 Бесплатно (free)

Об использовании MS Access в связке с 1С. Можно ли использовать продукты Office на сервере. Когда Access может быть полезен. Примеры работы и другое.

09.04.2019    32684    YPermitin    46    

RabbitMQ + Конвертация Данных 3.0

Внешние источники данных Обмен через XML Интеграция Перенос данных из 1C8 в 1C8 v8 КД Бесплатно (free)

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

21.03.2019    28775    barelpro    87    

Загрузка ЭЛН (электронных листов нетрудоспособности) из файлов

Внешние источники данных Зарплата Зарплата v8 УПП1 Россия БУ ФОМС, ПФ, ФСС Бесплатно (free)

Что делать, если по каким-то причинам нет возможности разместить 1С и Крипто-Про на одном рабочем месте? Правильно - открывать конфигуратор и пилить. Благо, там не сложно. Непосредственно решение для УПП 1.3. Для ЗиК 2.5 и Комплексной автоматизации должно быть аналогично.

07.02.2019    7336    SatanClaws    5    

Работа с кассой Atol через веб-сервер ДТО-10

Внешние источники данных ККМ Фискальный регистратор Кассовые операции Кассовые операции v8 Россия НДС Бесплатно (free)

Поддержка многопользовательской печати на одном устройстве ККТ. Поддержка изменений в законодательстве (Переход на ФФД 1.05 и НДС 20%).

31.12.2018    48120    medangel    65    

RabbitMQ, Python и Windows. Step By Step

Внешние источники данных v8 Бесплатно (free)

Работа с шиной RabbitMQ, используя Python на Windows. Пошаговый быстрый старт.

13.12.2018    10524    w.r.    9    

Из 1С в IIKO: Передаем перемещения УТ в приходные накладные

Внешние источники данных Оптовая торговля Оптовая торговля v8 УТ11 Рестораны, кафе и фаст-фуд УУ Бесплатно (free)

Рассмотрение вариантов передачи документа "Перемещение товаров" из Управление торговлей 11 в документ "Приходная накладная" IIKO.

12.09.2018    9236    oyti    9    

IIKO (Айко). Обмениваемся накладными с 1С

Внешние источники данных v8 БП3.0 Рестораны, кафе и фаст-фуд БУ УУ Бесплатно (free)

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

01.06.2018    19511    oyti    23    

Юридически значимый электронный документооборот с Контур.Диадок

Внешние источники данных v8 НУ НДС Бесплатно (free)

Пример использования компоненты DiadocComApi http://diadocsdk-1c.readthedocs.io/ru/latest/

31.05.2018    13157    savostin.alex    8    

Интеграция Zimbra и 1С

Внешние источники данных Управление взаимоотношениями с клиентами (СRM) Управление взаимоотношениями с клиентами (СRM) v8 Россия УУ Бесплатно (free)

В публикации описывается способ интеграции 1С с почтовым сервером Zimbra, используя SOAP сервис. Рассматривать вопрос интеграции будем на примере бизнес задачи, из блока CRM. Реализации общей адресной книги(GAL-Global Address List) между сотрудниками. Сотрудники(компания) ведет весь учет в 1С, в том числе и элементы CRM, а Zimbra выступает лишь в роли почтового сервиса. Сделать данную публикация побудило отсутствие в интернете готовых примеров совместной работы 1С и Zimbra. Надеюсь, она поможет кому-либо сократить время на реализацию похожей задачи.

16.04.2018    12698    Гексагон    18    

Обмен сведениями о пособиях с ФСС для Зарплата и Управление персоналом 2.5.129.3

Внешние источники данных Зарплата Зарплата v8 v8::СПР ЗУП2.5 Россия БУ ФОМС, ПФ, ФСС Бесплатно (free)

Ошибка отправки файла при обмене сведениями о пособиях с ФСС. Зарплата и Управление Персоналом, редакция 2.5 (2.5.129.3).

06.03.2018    20123    Igorexa    30    

Загрузка данных из DocsVision

Внешние источники данных v8 Бесплатно (free)

Необходимо было реализовать загрузку данных из программы документооборота "DocsVision 5" в "1С:Документооборот 8". Данное описание оставляю больше для себя, чтобы не забыть, ну и, может, еще кому поможет, т.к. не нашел нигде нормального описания.

17.01.2018    9676    apxi    4    

Создание мобильного клиента 1С на Android с использованием HTTP-сервисов

Внешние источники данных Мобильная разработка v8 v8::Mobile Бесплатно (free)

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

03.11.2017    34947    cdiamond    21    

Как сделать конфигурацию «1С:Предприятие 8» приложением QuickBooks. Проходим авторизацию OAuth 1.0a+OpenID 2.0

Внешние источники данных Практика программирования v8 Бесплатно (free)

Пришло время, когда интеграция со сторонними организациями и их приложениями стала необходимостью для успешного ведения бизнеса. В этой статье будет рассмотрено прохождение авторизации OAuth 1.0a+OpenID 2.0 и превращение конфигурации «1С:Предприятие 8» в приложение QuickBooks.

10.09.2017    21326    pbazeliuk    30    

Редактирование пользовательских полей в Битрикс24 через REST API

Внешние источники данных v8 1cv8.cf Россия Бесплатно (free)

Меняем значения пользовательских полей в Битрикс24 через REST API на примере редактирования контактов

06.02.2017    16571    user662672_explorer2000    4    

Нагрузочное тестирование сервера 1С при использовании WEB сервисов

Производительность и оптимизация (HighLoad) Внешние источники данных WEB v8 ИТ-компания Бесплатно (free)

Проведение нагрузочного тестирования WEB-сервисов, развернутых на платформе 1С. Целью тестирования является ознакомление с возможностями платформы 1С при работе с большим количеством запросов через опубликованные WEB сервисы на IIS 7.5

01.02.2017    28589    BraunAlex    34    

Передаем контакты из 1С в Битрикс24 через REST API

Внешние источники данных v8 УТ11 Россия Бесплатно (free)

Хочу поделиться опытом использования Битрикс24 REST API для экспорта контактов из 1С УТ 11

09.01.2017    61538    user662672_explorer2000    114    

Используем механизмы обмена данными БСП для произвольного обмена

Универсальные функции Внешние источники данных БСП (Библиотека стандартных подсистем) v8 Бесплатно (free)

Механизм БСП заточен на обмен XML по правилам обмена. Чтобы использовать его для любого другого обмена, коих в мире немало, требуются доработки. В статье описан вариант, как из положения выйти.

23.08.2016    35890    Патриот    33    

Технология проведения миграции данных в крупных проектах

Внешние источники данных Перенос данных из 1C8 в 1C8 v8 Бесплатно (free)

В статье систематизируется проектный опыт проведения миграции данных в крупных проектах, связанных с переходом Заказчиков на работу в конфигурациях «1С:Предприятие 8».

17.05.2016    36950    cinimex    26    

7 причин, почему интеграцию необходимо строить на очередях. Практика RabbitMQ. Отказ от Zato ESB и OData в 1С

Внешние источники данных v8 Бесплатно (free)

Этот набросок является продолжение предыдущей статьи "7 причин, почему интеграция стала приятной. Не упускайте ряд потрясающих возможностей". В большей части это описание боли, через которую пришлось пройти на практике, используя сервисную шину данных Zato ESB и OData протокол совместно с «1С:Предприятие 8».

18.03.2016    69311    pbazeliuk    129    

1C + ЭДО Мегафон

Практика программирования Внешние источники данных v8 1cv8.cf Бесплатно (free)

Тестируем модуль обмена 1С с ЭДО Мегафон (модуль прилагается пользователям ресурса ЭДО Мегафон бесплатно).

1 стартмани

21.12.2015    14185    JetBrain    4    

Linq to ODATA

Внешние источники данных v8 1cv8.cf Бесплатно (free)

1С сейчас совершенствует REST интерфейс приложения, автоматически генерируемый платформой, и протокол обмена ODATA версии 3. С недавнего времени появилась возможность обмениваться, используя JSON. На просторах интернета мало информации по использованию Linq для ODATA для 1С. Поэтому решил поделиться опытом. Это продолжение статей https://infostart.ru/public/402433/

29.09.2015    34024    Serginio    11    

1С Предприятие 8.2: Обмен данными между базами на основе инструментов SQL

Внешние источники данных v8 1cv8.cf Россия Бесплатно (free)

Обмен данными (сотрудники организаций) между базами (1С Предприятие 8.2: Бухгалтерия и 1С Предприятие 8.2: Зарплата и управление персоналом) на основе триггера SQL, отслеживающего изменения таблицы

06.11.2013    23113    jan27    25    

Алгоритм выгрузки из 1С в Access

Практика программирования Внешние источники данных v8 Россия Бесплатно (free)

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

31.10.2013    31278    dimens    10