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

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

Разработка - Практика программирования

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

Предисловие

Решали ли Вы задачи интеграции на платформе 1С:Предприятие? Если да, то Вам наверняка приходилось настраивать обмен данными между информационными базами 1С:Предприятия или с другими информационными системами через COM-соединение. С ростом интенсивности использования подобного обмена начинает вставить вопрос оптимизации - сокращение времени на выполнение обмена или даже создания обмена в реальном времени. 

В подобных условиях использовать COM-объект соединения становится проблематичным, ведь при каждом подключении к другой базе он полностью загружает конфигурацию. А если в качестве конфигурации выступает, скажем, "Управление производственным предприятием", где размер конфигурации давно превысил 200 МБ? Тогда время на инициализацию соединения будет значительным. А использовать COM-соединение для обмена по "тонким" каналам связи будет вообще не возможно!

В статье рассмотрим три способа кэширования COM-объекта соединения с целью оптимизации скорости подключения и обмена.

 

Подробнее

Для наглядного представления путей решения подобной задачи обратимся к следующей схеме:

Три способа кэширования COM-соединения

Самым простым, но наименее универсальным является способ кэширования объекта соединения в глобальной переменной модуля формы. Такой способ подойдет, если COM-соединение используется редко в какой-либо обработке или другом объекте конфигурации. Для постоянного использования соединения этот способ вряд ли подойдет, ведь при открытии формы будет необходимо вновть инициализировать соединение, что займет значительное время из-за загрузки конфигурации подключаемой базы. Практический пример использования такого способа Вы можете посмотреть в статье "Поддержка COM-соединения. Часть №1".

 

В противовес первому способу по сложности предлагается кэшировать COM-соединение на отдельной машине, веб-сервере. Например, можно создать веб-сервис, который будет инициализировать соединение через COM-объект при первом обращении. Далее подключаемые к веб-сервису клиенты смогут работать с кэшированным соединением, выполняя все необходимые методы объекта. С точки зрения производительности и экономии лицензий сервера 1С:Предприятия это идеальный вариант, но его выбор обоснован только в том случае, если в дальнейшем работа с этим соединением будет интенсивным. Иначе получится, что мы поставим купим и настроим отдельную машину с веб-сервером, который будет кэшировать соединение для нескольких пользователей. А это не рационально. Статью о практической реализации такого способа кэширования COM-соединения Вы можете посмотреть здесь: "Поддержка COM-соединения. Часть №2".

 

Но что, если использоваться COM-соединение будет часто, но не настолько, чтобы тратиться на реализации последнего предложенного варианта, при этому использовать глобальные переменные модуля формы также не вариант - соединение должно кэшироваться не для одной формы, а для нескольких объектов (обработка, отчет, документ). Тогда более правильнее было бы использовать вариант "золотой середины" - кэшировать соединение во временном хранилище в рамках каждого отдельного сеанса, которому это соединение необходимо. Этот вариант действительно подходит для большинства возникающих подобных задач. Небольшой пример его использования продемонстрирован в статье "Поддержка COM-соединения. Часть №3. Золотая середина".

 

Заключение

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

Надеюсь, что статья поможет Вам найти решение по оптимизации работы COM-соединения и совершенствовании интеграции на Вашем предприятии.

 

53

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

Комментарии
Избранное Подписка Сортировка: Дата
34. YPermitin 5093 17.12.18 23:30 Сейчас в теме
33. GreenDragon 17.12.18 09:42 Сейчас в теме
(32) *Стыдливо удаляюсь в кусты, пытаясь оттереть со лба печать "некропостер"*
32. YPermitin 5093 17.12.18 07:41 Сейчас в теме
(31) посмотрите на даты публикации. Уже сколько времени прошло, были ли тогда нормальные HTTP-сервисы :)
GreenDragon; +1 Ответить 1
31. GreenDragon 16.12.18 15:02 Сейчас в теме
(20) Используйте http-сервисы. Лицензия используется только на время соединения. Как правило, это время при адекватной передаче данных, меньше секунды. По-факту, время необходимое от получения пакета данных вэб-сервером до отправки ответа отправителю. Обрабатывать полученные данные вы можете дальше на сервере без потребления какой-либо клиентской лицензии.
Ваш метод:
1. Не кросплатформенный.
2. Отдельное шаманство в случае нескольких установленных платформ - к примеру, несколько версий 8.3
3. Ресурсоёмкость - по факту запускается полный экземпляр приложения.
4. Нестабильность com - на своём опыте познали прелесть подвисающих com-подключений
5. Лицензия потребляется на время жизни com-объекта.

Да и зачем вот это всё, если у вас же публикация: https://infostart.ru/public/427026/ ?
30. intehof 23.06.17 23:22 Сейчас в теме
(29) Если возможно, поделитесь исходниками пожалуйста...
29. =Kollega= 1 16.06.17 16:52 Сейчас в теме
В свое время решал подобную задачу. Проблема была в том, что пользователям время от времени приходилось соединяться с одной базой, для поиска инфы. Кеширования на стороне клиента с одной стороны хорошо, но со стороны лицензий плохо - постоянно не хватало. С другой стороны web-сервера собственного тоже не было, пришлось копать в другую сторону. На Delphi написал собственный простой com-сервер и зарегистрировал его на сервере, где сама 1с-ка крутится. При первом обращении к нему, система его автоматически запускала и он инициировал соединение с удаленной базой. В дальнейшем он просто крутился в памяти сервера, поддерживая com-соединение с базой.
По сути получалось, что ждет только 1-й пользователь, пока установится соединение, остальные получали уже готовое соединение.
GKG; acanta; +2 Ответить 1
28. Serginio 797 09.02.16 14:09 Сейчас в теме
Еще один вариант это использование статического поля класса .Net. Так как после загрузки Dll она не выгружается, то и статические поля будут содержать значения пока не выгрузится рабочий процесс
27. gaglo 09.12.13 11:40 Сейчас в теме
26. YanTsys 12 09.12.13 09:52 Сейчас в теме
(15) gaglo, это тот где "- я не понял ты чей друг, мой друг, или медведя друг?"
24. YPermitin 5093 06.08.13 21:08 Сейчас в теме
(22) ZLENKO.PRO, можно, но только способом, где COM-объект кэшируется на веб-сервере. Тогда его использовать можно из любого сеанса.
23. galich 148 06.08.13 19:56 Сейчас в теме
К сожалению, нет. Разные запуски регламентных заданий в разных сессиях запускаются.
Кроме того, регламентные задания запускаются на стороне сервера, а не клиента.
22. ZLENKO 06.08.13 13:20 Сейчас в теме
(21) galich, для регламентного задания такой способ подойдет ? В смысле для хранения COM объекта в интервалах между выполнением регламентного задания на сервере ?
21. galich 148 28.05.13 10:02 Сейчас в теме
Самый примитивный вариант хранения созданного COM-объекта:
Создаем общий клиентский модуль, устанавливаем Повторное использование возвращаемых значений "На время сеанса", создаем функцию, типа этой:

Функция ПолучитьСоединениеСБД(СтрокаПодключения) Экспорт
COM = Новый COMОбъект("V82c.Application");
COM.Connect(СтрокаПодключения);
COM.Visible = Ложь;
Возврат COM;
КонецФункции

И каждый раз, когда нужен COM, обращаемся к ней. Если нужно убить COM - делаем ОбновитьПовторноИспользуемыеЗначения(). Не забываем вызвать эту функцию перед завершением работы системы, а то отладка не будет отпускать сервер. ПРОФИТ :)
Chernik; dgolovanov; Nuuq; tehas; Aleksey.Bochkov; YPermitin; +6 Ответить 1
20. YPermitin 5093 22.04.13 05:39 Сейчас в теме
(19) bulpi, веб-сервис, "наваяеный" в 1С будет использовать клиентские лицензии для каждого подключенного сеанса. Если же мы будем кэшировать COM-соединение на веб-сервере и обращаться через него, то лицензия всегда будет использоваться одна. В этом главное отличие.
19. bulpi 157 19.04.13 19:33 Сейчас в теме
"Например, можно создать веб-сервис, который будет инициализировать соединение через COM-объект при первом обращении."

Автор, уж извините за неграмотность, но если Вы уже используете веб-сервер, зачем Вам вообще com-соединение? Ну наваяйте в 1с свой веб-сервис с нужными методами и разом избавитесь от всех проблем с com-соединением.
18. aspirator23 401 19.04.13 07:27 Сейчас в теме
Любопытные варианты. Сам использую, но пока только вариант номер 2.
17. gaglo 14.04.13 16:55 Сейчас в теме
(16)
200 пользователей, из них у части скорость в локальной сети не блещет стабильностью

...имеет смысл задумываться о построении сети, а не пытаться исправить чужие огрехи???
Да, для меня это анекдот... У нас 120 пользователей одновременно. Три больших здания. Сеть проводная плюс WiFi-сегмент. Скорость стабильна. Две работающих системы. COM-соединения присутствуют. Кэшируются в переменной модуля приложения. Пока работает стабильно.
Я же сказал "Вашу позицию я понял". Спасибо!
16. YPermitin 5093 14.04.13 16:24 Сейчас в теме
(15) gaglo, может для Вас это и анекдот, но когда сталкиваешься с этим на практике, то становится не до шуток.

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

А если в локалке 10 юзеров, то смысла кэшировать соединение вообще нету)
15. gaglo 14.04.13 15:51 Сейчас в теме
(12)
качество локальной сети тоже бывает разной

да простят меня за оффтопик, но это заявление уже напоминает бородатый анекдот:
в сокращении:
- Гиви, вот представь, пошел ты в лес, а навстречу тебе медведь. Что будешь делать?
...
- Ну на дерево залезу.
- А нету дерева.
- Как нету дерева?? Это ведь лес!!
- Ну вот такой лес!!
...
За ответы спасибо. Вашу позицию я понял.
14. YPermitin 5093 14.04.13 15:32 Сейчас в теме
(13) petrov_al, они могут использоваться только для чтения данных. Для модификации, увы, не получится использовать в отличии от предложенного варианта.
13. petrov_al 10 14.04.13 12:21 Сейчас в теме
А почему не используете внешние источники данных?
12. YPermitin 5093 14.04.13 08:46 Сейчас в теме
(11) gaglo, качество локальной сети тоже бывает разной.

В третьем способе нет очевидности =) К кэшированному соединению на веб-сервере можно обращаться как с клиентской, так и с серверной стороны. Все зависит от прав доступа.
11. gaglo 14.04.13 08:27 Сейчас в теме
(4) Ну во-первых, не совсем "то же самое", а именно в рамках сеанса, а не на время жизни открытой формы; во-вторых, если все происходит в локальной сети предприятия, то на клиенте или на сервере хранить - безразлично, в-третьих, приходится еще раз пожалеть, что в рубрикации на сайте нет разделений вроде "управляемые / обычные формы / WEB-приложения" (но это не к автору ;-])
Кстати, для меня не явилось очевидным, что по третьему способу и регистрация COM-соединения проходит на стороне сервера...
10. YPermitin 5093 13.04.13 11:44 Сейчас в теме
(9) seermak, странный баг.

А зачем использовали каталог с русскими буквами для этого?
9. seermak 660 13.04.13 10:46 Сейчас в теме
Да и еще - если платформа установлена в каталог с русскими буквами - соединения по СОМ невозможны (Проверено на себе (с)seermak)
8. YPermitin 5093 12.04.13 22:41 Сейчас в теме
(7) seermak, интересная информация.

Вообще, согласно документации, во временное хранилище можно помещать только те значения, которые серилизуются. COM-объект соединения (да и вообще любой COM-объект) серилизовать нельзя.

В платформе 8.2 не смотря на это можно было сохранить соединение во временное хранилище. Так сказать, недокументированные возможности платформы.

Ну а в версии 8.3 видимо это дело прикрыли.
7. seermak 660 12.04.13 21:18 Сейчас в теме
Все хорошо, но: на платформе 8.3 (хоть в совместимости хоть нет) в процедуре СохранитьСоединение(Соединение) в строке ПараметрыСеанса.АдресCOMСоединения = ПоместитьВоВременноеХранилище(Соединение, Новый УникальныйИдентификатор); = рушится с ошибкой "Переданное значение не может быть помещено во временное хранилище". Можно это как-то пояснить или подсказать (если кто знает)
PS в 8.2 проблем нет
coollerinc; jills2001; +2 Ответить 1
6. YPermitin 5093 12.04.13 18:06 Сейчас в теме
(5) a.p.soft, немного не по теме вопрос. В статье идет речь о кэширования COM-объекта соединения, который используется для связи между собой разных баз или для связи с базой 1С:Предприятия из других программ.
Вот подробнее: http://v8.1c.ru/overview/IntegrationCOM.htm

Вы же говорите о кэшировании любого COM-объекта, в частотности для чтения XLS. В принципе описанный подход тоже подойдет, проблем с этим не вижу. Обратите внимание на первые два способа. Думаю последний с веб-сервером будет излишним, чтобы прочитать файл XLS =)
5. a.p.soft 54 12.04.13 15:47 Сейчас в теме
Уважаемые, скажите пожалуйста, а предваряющее обработку чтение всего XLS-файла (точнее всех нужных ячеек, во всех строках) - может считаться кешированием COM-соединения, о котором идет речь в статье? В принципе, учитывая возможные практические проблемы я пришел именно к такому способу работы с COM объектами. Реально, это ускоряет скорость работы обработки в несколько раз. Т.е сначала одним циклом всё считывается в массив, а уже потом обработка "пережёвывает" все данные.
4. YPermitin 5093 12.04.13 11:53 Сейчас в теме
(3) gaglo, фактически это будет тоже самое, что и хранить в переменной модуля формы.
Да, в рамках сеанса, но на стороне клиента. А последнее отрицательно влияет на стабильность. Мало ли какая у клиента линия связи, а COM-соединение такого ой как не любит =)

К тому же тогда необходимо регистрировать COM-объект соединения на клиентской машине.

А временное хранилище сохранит его на стороне сервера.
3. gaglo 12.04.13 11:49 Сейчас в теме
Разве нельзя вместо временного хранилища использовать переменную в модуле приложения? Как раз и получится сохранение в рамках отдельного сеанса.
2. YPermitin 5093 12.04.13 05:36 Сейчас в теме
(1) Sergoninfostarru, возможно Вы правы.

При решении реальной задачи с помощь COM-соединение передаю двоичные данные. Работает быстро. Единственным узким местом была скорость установки соединения. Вот ее и решили.

А почему для документов скорость медленная?
1. Sergoninfostarru 2 11.04.13 23:47 Сейчас в теме
COM-соединение хорошо использовать при пакетных задачах : перетяжка справочников, документов, остатков и т.д., когда за ОДНО соединение вытягивается максимум информации. В случае постоянного "дёргания" данных из другой БД, скорость значительно снижается. В примерах показан простой вариант, а когда дело доходит до документов, то скорость резко падает.
Оставьте свое сообщение

См. также

Самый примитивный HTTP-сервис в мире 163

Статья Программист Нет файла v8 Бесплатно (free) WEB

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

12.09.2019    5980    YPermitin    25       

Агрегатные функции СКД, о которых мало кто знает 315

Статья Программист Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования

Пользуетесь ли Вы всеми возможными агрегатными функциями, которые предоставляет система компоновки данных? Если Вы используете только: СУММА, КОЛИЧЕСТВО, МИНИМУМ, МАКСИМУМ, СРЕДНЕЕ, то эта статья для Вас.

05.09.2019    9698    ids79    42       

Отслеживание выполнения фонового задания 133

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования Универсальные функции Разработка

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

17.08.2019    8049    ids79    14       

Функции СКД: ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив 241

Статья Программист Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования

Подробное описание и использование внутренних функций системы компоновки данных: Вычислить, ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив, ВычислитьВыражениеСГруппировкойТаблицаЗначений.

08.08.2019    10099    ids79    24       

СКД - использование расширений языка запросов, секция ХАРАКТЕРИСТИКИ 134

Статья Программист Нет файла v8 v8::СКД Бесплатно (free) Инструментарий разработчика Практика программирования Разработка

Автоматическое и не автоматическое заполнение полей компоновки данных. Использование расширений языка запросов для СКД «{…}», секция ВЫБРАТЬ, секция ГДЕ, параметры виртуальных таблиц. Автоматизированное использование дополнительных данных в запросе: секция ХАРАКТЕРИСТИКИ.

17.07.2019    8528    ids79    24       

"Меньше копипаста!", или как Вася универсальную процедуру писал 170

Статья Программист Стажер Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования Разработка

Программист Вася разбирает подход создания универсальных методов на примере программного вывода СКД.

04.07.2019    6147    SeiOkami    48       

Создание отчетов с помощью СКД - основные понятия и элементы 190

Статья Программист Нет файла v8 v8::СКД Бесплатно (free) Практика программирования Математика и алгоритмы

Основные принципы работы СКД. Понятия схемы компоновки и макета компоновки. Описание основных элементов схемы компоновки: наборы данных, поля, вычисляемые поля, ресурсы, параметры.

25.06.2019    17188    ids79    16       

Многопоточное ускорение однопользовательских нагрузок в 1С + Microsoft SQL Server 2017 176

Статья Программист Нет файла v8 v8::Запросы Бесплатно (free) Практика программирования Разработка

Взаимодействие с Microsoft SQL Server нередко вызывает трудности у 1С-ников, а потому интересны любые моменты, связанные с его использованием. О своем опыте работы с новым SQL Server 2017 участникам конференции Infostart-2018 рассказал директор ООО «Аналитика софт» Дмитрий Дудин.

11.06.2019    11419    dmurk    134       

Регистры накопления. Структура хранения в базе данных 174

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования Разработка

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

16.05.2019    17089    YPermitin    27       

Выполнение внешней обработки в фоновом задании 147

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования Разработка

Подробное описание подхода к созданию длительной операции на основе внешней обработки. Реализация протестирована на 1С 8.3.12.1714 (x64).

11.05.2019    9699    Eret1k    22       

Выгрузка документа по условию 5

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Разработка

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

25.04.2019    4731    m-rv    2       

HTML-клиент у конфигурации 1С 137

Статья Программист Нет файла v8 Бесплатно (free) WEB

Приветствую. В этой публикации опишу свой опыт создания html-клиента для конфигурации 1С с помощью http-сервисов. HTML-клиент в этом случае - это frontend (html + css+ js), который генерирует и выдает пользователю конфигурация + backend, который тоже реализован в этой же конфигурации.

17.04.2019    10878    Smaylukk    119       

Как прикрутить ГУИД к регистру сведений 23

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Перенос данных из 1C8 в 1C8 Разработка

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

16.04.2019    7252    m-rv    16       

О расширениях замолвите слово... 192

Статья Программист Стажер Нет файла v8 Бесплатно (free) Практика программирования Разработка

О чём стоит задуматься при принятии решения о создании расширения конфигурации…

07.04.2019    16222    ellavs    122       

Git-репозитории для 1С-кода (опыт использования при небольших проектах) 200

Статья Программист Стажер Нет файла v8 Windows Бесплатно (free) Практика программирования Разработка

Инструкции по взаимодействию с Git-репозиторием, которые писались для тех наших программистов, которые вообще никогда не работали с Git (руководства в духе "Как получить код из git-репозитория?", "Как отправить код в git-репозиторий")...

28.03.2019    12609    ellavs    83       

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

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

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

21.03.2019    13673    barelpro    82       

Трюки с внешними источниками данных 164

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования Разработка

Некоторые трюки для преодоления ограничений внешних источников данных.

14.03.2019    12723    YPermitin    52       

Возможности типовых шаблонов ограничения доступа на уровне записей (RLS) 162

Статья Программист Нет файла v8 v8::Права Бесплатно (free) Практика программирования БСП (Библиотека стандартных подсистем) Роли и права

Краткий обзор применения типовых шаблонов ограничения доступа на уровне записей в конфигурациях, созданных на базе БСП: #ПоЗначениям, #ПоНаборамЗначений, #ПоЗначениямРасширенный, #ПоЗначениямИНаборамРасширенный

03.02.2019    15300    ids79    9       

Новый подход к обмену данными EnterpriseData 203

Статья Программист Нет файла v8 v8::УФ Россия Бесплатно (free) Практика программирования Обмен через XML

Хочу предложить Вашему вниманию цикл статей, посвященных обмену данными через универсальный формат (EnterpriseData или ED).

14.12.2018    21225    ids79    72       

Программное заполнение пользовательских параметров и отборов СКД 135

Статья Программист Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования

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

13.11.2018    19419    Unk92    18       

Автоматические и управляемые блокировки применительно к типовым конфигурациям 1С 126

Статья Программист Нет файла v8 v8::blocking 1cv8.cf Бесплатно (free) Математика и алгоритмы Практика программирования

Основные принципы работы с режимами автоматических и управляемых блокировок в 1С Предприятие 8. Теория и применение в типовых конфигурациях: БП, УТ, ЕРП

10.11.2018    20706    ids79    40       

Создание телеграм бота с гугл авторизацией, обратными вызовами и уведомлениями об обновлении через сервер-маршрутизатор 157

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) WEB

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

07.11.2018    17167    🅵🅾️🆇    40       

Вспомогательные инструкции в коде 1С 104

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования

Помогаем редактору кода 1С помогать нам писать и анализировать код.

15.10.2018    20347    tormozit    100       

Произвольный код в фоновом режиме 164

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования

Задача: реализовать выполнение произвольного кода в фоновом режиме без изменения конфигурации, т.е. во внешней обработке.

03.09.2018    14483    nikita0832    41       

Основные понятия и механизмы оптимизации клиент-серверного взаимодействия в 1C 144

Статья Программист Нет файла v8 Россия Бесплатно (free) Математика и алгоритмы Практика программирования

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

23.08.2018    21080    Rain88    42       

Повышаем эффективность разработки правил обмена 122

Статья Программист Нет файла v8 КД ОС Бесплатно (free) Практика программирования Перенос данных из 1C8 в 1C8

Как повысить скорость и качество разработки правил обмена? Как вести групповую разработку правил обмена? Как облегчить сопровождение правил обмена после передачи в эксплуатацию? Об этом и многом другом вы можете узнать из этой статьи.

25.06.2018    19208    olegtymko    43       

На что действительно способны HTTP-сервисы 170

Статья Программист Нет файла v8 Бесплатно (free) WEB

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

14.06.2018    22435    dalgaso2010    44       

Введение в механизм представлений в ЗУП ред. 3 152

Статья Программист Нет файла v8 v8::СПР ЗУП3.x Бесплатно (free) Практика программирования

В нашей организации на первом же телефонном собеседовании на должность разработчика по ЗУП ред. 3 вас обязательно спросят о том, что такое "Представления".

04.06.2018    24222    xrrg    82       

Как сделать запрос на изменение данных 75

Статья Программист Нет файла v8 v8::Запросы 1cv8.cf Бесплатно (free) Практика программирования

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

01.06.2018    21097    m-rv    21       

Строим графы средствами 1С (без GraphViz) 42

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования

Множество статей на Инфостарте описывают, как работать с компонентой GraphViz, чтобы построить ориентированный граф. Но практически нет материалов, как работать с такими графами средствами 1С. Сегодня я расскажу, как красиво строить графы с минимальным пересечением. Нам этот метод пригодился для отрисовки алгоритмов в БИТ.Финансе, т.к. типовой механизм не устраивал. Еще это может быть полезно для визуализации различных зависимостей: расчета себестоимости, графы аффилированности компаний и т.д. Надеюсь, эта статья поможет сделать мир 1С красивее и гармоничней:) Итак, поехали...

23.05.2018    16872    slozhenikin_com    19       

Распределение расходов пропорционально продажам 9

Статья Программист Пользователь Нет файла v8 v8::ОУ УТ10 УУ Финансовый учет и бюджетирование (FRP) Учет доходов и расходов Бесплатно (free) Практика программирования

Финансовая модель. Распределение административных расходов по подразделениям пропорционально продажам за месяц. Дополнительные реквизиты против бизнес-процессов!

13.05.2018    11260    Rustig    9       

Минимализмы 3 350

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Универсальные функции

Очередная серия "минимализмов" [http://infostart.ru/public/306536/, https://infostart.ru/public/460935/]. Также, как и в предыдущих статьях, здесь приведена подборка коротких оригинальных авторских решений некоторых задач. Ранее эти решения были разбросаны по моим комментариям к чужим публикациям.

19.02.2018    35420    ildarovich    44       

Готовим Soap для Web-сервисов. Рецепты 130

Статья Программист Нет файла v8 Россия Windows Бесплатно (free) WEB

В статье описаны различные варианты обмена данными с web-сервисами по протоколу Soap, основанные на личном опыте.

28.12.2017    28577    987ww765    27       

Этюды по программированию. Взаимодействие с Microsoft Word 108

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования

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

11.12.2017    25752    milkers    23       

Метод формирования движений в типовых регистрах нетиповыми регистраторами 31

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования

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

05.12.2017    21236    itriot11    34       

1С: Конвертация данных 3. Инструкции и примеры. EnterpriseData (универсальный формат обмена) 720

Статья Программист Нет файла v8 КД Бесплатно (free) Перенос данных из 1C8 в 1C8 Практика программирования Обмен через XML

Что такое КД3? Как начать использовать? Полезные дополнения к документации. Что нужно исправить в типовых обработках и конфигурации. Как изменить правила обмена не снимая конфигурацию с поддержки. Как отлаживать правила обмена?

19.11.2017    137074    MaxS    251       

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

Статья Программист Нет файла v8 v8::Mobile Android Бесплатно (free) Внешние источники данных Мобильная разработка

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

03.11.2017    26170    cdiamond    15       

Заполнение данных по ИНН контрагента с помощью альтернативного сервиса огрн.онлайн 131

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования

Код для заполнения данных по ИНН контрагента из ЕГРЮЛ с сайта огрн.онлайн.

01.11.2017    22590    slava_1c    49       

Программные перечисления, ч.2: приемы кэширования при разработке 66

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования

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

30.10.2017    20965    unichkin    17       

Разбираемся с настройками компоновки данных 159

Статья Программист Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования

Краткая шпаргалка по программной работе с настройками СКД

29.10.2017    23932    json    9       

Работа с Excel 287

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Загрузка и выгрузка в Excel

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

23.10.2017    24496    arakelyan    39       

Добавление команд печати в конфигурациях на БСП 2.4.3 (в частности, в самописных документах в Бухгалтерии 3.0 после релиза 3.0.52.35) 143

Статья Программист Нет файла v8 v8::БУ БП3.0 Россия Бесплатно (free) Печатные формы документов Практика программирования БСП (Библиотека стандартных подсистем)

В статье https://infostart.ru/public/237013/ пользователя nick max рассматривался список действий для подключения команд печати в Бухгалтерии 3.0, работающей на БСП 2.3.6. В новом релизе Бухгалтерии 3.0.52.35 от 15.09.2017г. стала использоваться БСП 2.4.3, из-за чего произошли изменения в процедурах общих модулей, связанных с механизмом печати, и в процедурах их вызова в формах документов и в формах списков. Рассмотрим их.

18.09.2017    46578    bugtester    43       

Отказ от работы с временными файлами при работе с двоичными данными или Потоки как простая замена ADODB.Stream и временным файлам 127

Статья Программист Нет файла v8 Россия Бесплатно (free) Практика программирования

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

12.09.2017    18138    vardeg    31       

Как сделать из &НаКлиентеНаСервереБезКонтекста почти &НаКлиентеНаСервере 125

Статья Программист Нет файла v8 1cv8.cf Россия Бесплатно (free) Практика программирования

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

10.09.2017    34118    tormozit    72