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

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

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

Обмен данными через универсальный формат обмен XDTO EnterpriseData ED

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

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

Остальные статьи из цикла:

EnterpriseData – часть 2. Процесс выгрузки данных

Часть 3. Процесс загрузки данных, Идентификация объектов

Сокращения, которые будут присутствовать в статье:

  • ED – универсальный формат обмена (EnterpriseData)
  • КД 2.0 – конвертация данных 2.x
  • КД 3.0 – конвертация данных 3.0

Содержание

  1. Введение
  2. Новый формат обмена данными
  1. Технология XTDO
  1. Компоненты, предоставляемые БСП
  2. Правила конвертации данными
  3. Процесс выгрузки данных
  1. Процесс загрузки данных
  2. Следующие статьи

 

Введение

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

Сразу замечу, не все специалисты принимают обмен через ED «на ура». Существует довольно много скептиков, и их возражения весьма оправданы. В общем, ED вызывает много дискуссий между сторонниками и противниками. Я же постараюсь быть объективным, рассказать как есть, плюсы и минусы.

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

Сейчас кто-то наверно набросится на меня, и скажет: «Да нет же, обмен с использованием правил КД 2.0 будет существовать и дальше!»

И…  Будет прав.

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

 

Новый формат обмена данными

Ну что же, давайте перейдем, к сути вопроса. В чем же основные отличия обмена через ED от старого, проверенного годами, универсального обмена данными в формате XML, по правилам КД 2.0?

Фундаментальных отличия, на мой взгляд два:

  1. Обмен происходит не между двумя конфигурациями, как мы все привыкли, а между конфигурациями и универсальным форматом. 
  2. Для реализации обмена данными применяется технология XDTO.

 

Что такое универсальный формат?

Говоря понятным языком, универсальный формат – это четко заданная структура данных, которые могут быть выгружены в файл обмена. Другими словами, это описание типов бизнес - объектов, которыми нам требуется обмениваться с другими системами. Описание формата разработано компанией 1С для реализации обменов между своими типовыми решениями, и выполнено оно в текстовом виде, а точнее, в виде XML схемы. В дереве конфигурации описание формата содержится в ветке «XDTO пакеты». XDTO пакеты, по своей сути и являются схемами XML, правда с некоторыми оговорками.

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

Пример наименования формата: EnterpriseData_1_6_2    

1 и 6 – это значимые цифры версии формата.

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

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

 Универсальный формат обмена данными

Если быть точнее:

  • При выгрузке происходит преобразование объектов базы-источника к типам, описанным в формате.
  • При загрузке происходит обратная операция – преобразование данных в формате ED к типам объектов базы–приемника.

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

 

Преимущества обмена через универсальный формат

  1. Нам не требуется знать НИЧЕГО о структуре данных принимающий стороны для формирования файла с данными. В общем случае, это может быть даже не 1С, а любая другая система, поддерживающая структуру универсального формата.
  2. Корректировку алгоритма выгрузки или загрузки данных необходимо делать только в случае прекращения поддержки используемой версии формата у второго участника обмена.
  3. Не требуется включать правила конвертации объектов в файл с данными.
  4. Новый подход ведет к стандартизации бизнес – объектов, используемых для реализации учетной системы.

 

Недостатки обмена через универсальный формат 

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

 

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

 Реализация обмена данными через ED

 

Технология XTDO

Примечание: В некоторых источниках я даже встречал названия обмена данными через универсальный формат – обмен XDTO.

Вообще, что такое XDTO и его реализация в 1С лучше всего описано в серии статей Андрея Овсянкина.

 

XDTO пакеты

Как было написано выше, XDTO пакеты необходимы для хранения описания формата. Собственно, без их использования нельзя будет называть обмен - обменом через ED.

Не вдаваясь в подробности, «XDTO пакеты» это преобразованные схемы XML, они являются описанием типов бизнес – объектов, используемых при обмене данными. Преобразованные потому, что не все способы представления данных в XML могут быть представлены напрямую в XDTO.

Например, представление данных в виде текста между тегами «<Message>Текст сообщения</ Message>», нельзя представить в виде объектной модели XDTO, и она будет сымитирована. При загрузке в XDTO пакет будет добавлено дополнительное свойство, имитирующее текст сообщения. Подробнее об этом во второй статье Андрея Овсянкина тут.

Информация из пакетов XDTO используются объектами фабрики XDTO для типизации данных и их быстрого преобразования в XML и обратно.

Для XDTO пакета обязательно указывается пространство имен (принято использовать произвольный url адрес), которое является уникальным идентификатором каждого конкретного пакета. Пример описание XDTO пакета:

Описание универсального формата

 

Фабрика XDTO

«Фабрика XDTO» – это объект платформы 1С. Также «Фабрика XDTO» - это глобальная переменная системы с типом «Фабрика XDTO», к которой можно обращаться для создания новых объектов фабрики. Объекты фабрики XDTO, это привычные нам объекты, обладающие свойствами, доступными через точку. Свойства эти описаны в пакете XDTO, на основании которого каждый такой объект создан.

Однако, важно понимать, что объекты фабрики XDTO не имеют абсолютно ни какой связи с объектами ИБ, не смотря на внешнюю схожесть. Фабрика XDTO имеет представление только об XML типах, описанных в пакетах XDTO.

Пример:

ТипОбъектаТовар = ФабрикаXDTO.Тип(“http://my_url_adres/”, “Товар”);
Товар = ФабрикаXDTO.Создать(ТипОбъектаТовар );     

«http://my_url_adres/» - это пространство имен XDTO пакета, в котором существует описание для объекта «Товар». Далее, можно заполнять свойства объекта «Товар», как обычного объекта системы.

Удобством использования фабрики XDTO является то, что ее объекты очень легко преобразуются в  XML для последующей выгрузки в файл обмена.

Пример:

XMLДокумент = Новый ЗаписьXML;
ФабрикаXDTO.Записать(XMLДокумент , Товар); 

Примечание: Механизмы, реализованные в БСП не требуют от разработчика непосредственной работы с объектами фабрики XDTO. Но, для понимания общей картины происходящего, я думаю, будет не лишним иметь об этом представление.

Ну что же, давайте рассмотрим основной функционал БСП, реализующий механизмы обмена данными.

 

Компоненты, предоставляемые БСП

Под термином «компоненты», я подразумеваю набор объектов, которые необходимы для реализации механизмов обмена данными через ED. Строго говоря, можно выполнять обмен данными и не используя их. Но тогда, все процедуры по преобразованию данных, выполнению обработчиков, работе с фабрикой XDTO, регистрации объектов к выгрузке - придется реализовывать самостоятельно.  

Подсистема БСП предлагает следующие объекты для реализации механизмов обмена:

  1. План обмена – необходим для формирования списка объектов к выгрузке. Принципиальным отличием от обмена по правилам КД 2.0 является то, что при обмене через ED нет необходимости создавать отдельный план обмена для каждого типа конфигураций – корреспондентов. Планов обмена необходимо ровно столько, сколько используется различных версий формата. Также, в модуле менеджера плана обмена указываются некоторые необходимые настройки: версия формата, ограничения для выгрузки данных, значения «по умолчанию».
  2. Обработка «Конвертация объектов XDTO» - точка входя. Обработка, с помощью которой выполняются настройки обменов, выгружаются и загружаются данные.
  3. Общий модуль «ОбменДаннымиXDTOСервер» - модуль, в котором реализованы основные процессы выгрузки и загрузки данным.
  4. Общий модуль «ОбменДаннымиПредопределяемый» - модуль, в котором можно переопределить стандартное поведение системы. Например, добавить дополнительный план обмена или переопределить менеджер обмена данными.
  5. Общий модуль «ОбменДаннымиСобытия» - модуль, в котором реализованы алгоритмы регистрации объектов к выгрузке.
  6. Подписки на события – регистрация объектов к выгрузке при их добавлении, изменении, удалении.
  7. Общие команды – команды для выполнения настройки обменов данными и их непосредственного выполнения.

 

Правила конвертации данными

Так же как и в старой технологии, в новой необходимы правила конвертации. Только, правила теперь находятся в общем модуля каждой конфигурации, которая участвует в процессе обмена. Общий модуль имеет стандартное наименование «МенеджерОбменаЧерезУниверсальныйФормат». Название, в принципе, может быть любым.

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

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

Для создания и корректировки правил конвертации применяется отдельная конфигурация – КД 3.0. В данной конфигурации можно настроить соответствия между объектами информационных баз и объектами используемой версии формата. Также, можно написать программный код для обработки ряда событий. Например, можно переопределить или указать дополнительные данные перед их преобразованием в XDTO объекты в процессе выгрузки. Выполнить какие-либо действия с данными перед их записью в объекты ИБ в процессе загрузки. Более подробно все основные события выгрузки и загрузки данных, будут рассмотрены в следующих статьях.

 

Процесс выгрузки данных

Рассмотрим, каким образом происходит выгрузка данных.

Обход выборки и подбор правил конвертации объектов

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

Для каждого найденного объекта подбираются и начинают выполняться правила обработки данных, которые определены в общем модуле «МенеджерОбменаЧерезУниверсальныйФормат». Основное назначение правил обработки данных – это подбор правила конвертации для каждого объекта. В общем случае, правил конвертации может быть несколько для одного типа объектов.

 

Конвертация объекта и всех его свойств в набор вложенных структур 

Выполняются выбранные правила конвертации объекта, которые состоят из правил конвертации отдельных свойств объекта и его предопределенных данных. На этом этапе формируется структура данных. Как было описано выше, есть возможность вмешаться в этот процесс и выполнить дополнительные действия с данными. Итогом процесса конвертации являются подготовленные структуры с описанием передаваемых данных. Это еще не объекты фабрики XDTO, это просто вложенные друг в друга структуры, с конечными данными простых типов (число, строка, дата).

 

Сериализация данных и выгрузка в XML

На самом деле, существует два вида сериализации: сериализация XDTO и сериализация XML. Первый механизм преобразует объекты информационной базы в объекты XDTO. Второй преобразует объекты XDTO в  XML.

В нашем случае, данные уже преобразованы в набор вложенных структур со значениями простых типов. Тем не менее, сериализация XDTO все равно необходима, так как фабрика XDTO имеет представление исключительно только об XML – типах.

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

Если все данные успешно перенесены в объекты фабрики XDTO, выполняется преобразование данных в XML и выгрузка в файл обмена.

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

 

Процесс загрузки данных

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

  1. Выполняется чтение данных из файла обмена
  2. Выполняется создание объектов фабрики XDTO на основании данных XML и типов в описании формата.
  3. Каждый объект преобразуются в набор вложенных структур, для удобного доступа к свойствам из обработчиков.
  4. Выполняется поиск правила обработки данных и его выполнение.   
  5. Обходятся все доступные для объекта правила конвертации.
  6. Происходит конвертация объекта и его свойств из набора вложенных структур в данные ИБ. На данном этапе можно получить какие-либо дополнительные данные из преобразованного объекта XDTO и записать их в дополнительные свойства формируемого объекта ИБ, для последующей обработки.
  7. Происходит поиск загруженного объекта в ИБ – приёмнике. По умолчанию поиск происходит по внутреннему уникальному идентификатору. Это поведение можно изменить, я расскажу об этом более подробно в следующих статьях.
  8. Выполняются дополнительные действия с перед записью найденного или нового объекта.
  9. Выполняются дополнительные действия после загрузки всех данных.

 

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

Ставьте плюсик, если моё начинание кажется Вам полезным J.

 

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

 

Другие мои статьи из серии «Новый подход к обмену данными»

  1. Пример доработки правил конвертации данных без использования КД 3.0

 

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. genayo 14.12.18 10:08 Сейчас в теме
Поправьте заголовок, ну не серьёзно же...
rpgshnik; Evil Beaver; accounting_cons; Fox-trot; +4 Ответить
3. genayo 14.12.18 10:28 Сейчас в теме
(1) Э... Не намного лучше стало...
18. ids79 6462 14.12.18 16:29 Сейчас в теме
2. Fox-trot 128 14.12.18 10:14 Сейчас в теме
так там и картинки надо тогда менять
4. MuI_I_Ika 844 14.12.18 10:52 Сейчас в теме
Да, новый формат корпоративной даты это сильно.
6. kembrik 3 14.12.18 11:48 Сейчас в теме
(4) ВходнойПрайс тоже норм)
5. nyam-nyam 14.12.18 11:16 Сейчас в теме
Уважаемый автор!
Буду весьма признателен за исправление во всём тексте и картинках/слайдах всяких разных вариаций на тему написания ED на единственно верный вариант - EnterpriseData.
razmochaev; +1 Ответить
19. ids79 6462 14.12.18 16:30 Сейчас в теме
39. MaxS 2228 15.12.18 10:16 Сейчас в теме
(5) Почему ED - это неверное сокращение?
Смотрим статью ИТС https://its.1c.ru/db/metod8dev#content:5851:hdoc
И видим повсеместное использование "Формат ED", "формата ED".
43. nyam-nyam 15.12.18 12:12 Сейчас в теме
(39) Проблема была не в ED, а в вариациях написания EnterpriseData - EnterpriCeData, EnterpriseDatE и т.п.
7. h00k 44 14.12.18 11:53 Сейчас в теме
Предпринимательское свидание ;)
8. w.r. 595 14.12.18 12:26 Сейчас в теме
Уже больше года использую обмен на КД 3.0 с внешней системой. Из явных минусов - сложность. Нужно описывать объекты в пакете XDTO по заданным правилам, их типы + сама по себе конфигурация КД 3.0 довольно сырая: окна обработчиков - обычные текстовые поля, в которых нет даже подсветки синтаксиса. Проще реализовать свой обмен через типовой механизм обмена v8msg
VladC#; Lem0n; +2 Ответить
9. kolya_tlt 26 14.12.18 13:12 Сейчас в теме
(8) зато вы пишете выгрузку\загрузку один раз для объекта и больше не паритесь, лишь поддерживаете изменения. когда в парке систем больше 10, и например, из 5 из них вы загружаете заказы, а в 8 - выгружаете реализации, вы сразу ощутите преимущества КД 3.0
10. kembrik 3 14.12.18 13:33 Сейчас в теме
(9) Это только в теории, к сожалению. На практике с чем только но приходится сталкиваться и править в этих "Универсальных" обменах, которые в типовых весьма безобразны. Обмениваем мы например УТ с УТ, обе базы типовые. В источнике Заказ Клиента имеет допреквизит "Поставщик" с типом СправочникСсылка.Партнеры (старндартный функционал, позволяет). В "Старой" конвертации никаких проблем, тем более у нас тут идентичные конфигурации. Положили в допреквизит -получили оттуда же. В "ED" у нас такой сущности как Партнер не имеется, правил выгрузки под нее нет, и даже механизмов, которые позволяют положить в "Строку" тип реквизита и его GUID а потом разобрать на приёмнике - тоже нет "из коробки". Худо-бедно нормально работает в типовом направлении УТ в Бух, например, но стоит только развернуть обмены в "обратную" сторону - сразу море сюрпризов
practik1c; chembulatov76; svilsa; Vladimir Litvinenko; +4 Ответить
11. kolya_tlt 26 14.12.18 13:46 Сейчас в теме
(10) вы не поняли то что я написал. я не говорил, что сложностей нет, я говорил что решаются они один раз.
22. kembrik 3 14.12.18 18:00 Сейчас в теме
(11) Увы и ах. Многообразие использования в наших типовых конфигурациях дополнительных реквизитов и сведений в самых разных вариантах таково, что мы отчаялись решить все возможные возникающие коллизии в "Универсальном обмене" постоянными допилами, а сделали отдельные обмены только допреквизитов на кд 2 для этих целей
30. MaxS 2228 14.12.18 19:16 Сейчас в теме
(22) Обмен доп реквизитами сделал на КД3. Осталось дополнить возможность обмена типами значений, не поддерживаемых форматом.
Печально, что в типовых правилах это не работает и недостаточно объектов формата, например для переноса наборов доп реквизитов и сведений.
И большой минус в функционале расширений - нельзя расширить состав плана обмена, нельзя подменить XDTO пакет. Если этот вопрос решить в будущих версиях, расширением можно будет решить все вопросы обмена.
svilsa; A_Max; +2 Ответить
12. w.r. 595 14.12.18 13:47 Сейчас в теме
(9) если объект в конфигурации поменялся для КД 3.0 ты должен

А) внести изменения в пакет XDTO
Б) внести измнения в ПКО в КД3.0
В) перенести код модуля обработно в конфигурацию

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

+ очень важно. Для обмена, основанного на ФабрикахXDTO, имеет значение порядок тэгов в файле XML! В своем обмене порядок в XML файле может быть произвольный
13. kolya_tlt 26 14.12.18 13:52 Сейчас в теме
(12)
вы забыли помножить количество действий на n-обменов. в примере выше получится минимум 5 действий, а в КД 3.0 так и останется 3. еще раз я не утверждаю что КД 2.0 плох, а 3.0 - идеален. вы же должны знать на, что способен тот или иной инструмент и что из этого следует. всё равно что сравнить пилу и бензопилу :)
насчет порядка - всё наоборот. в КД 2.0 он был важен, в 3.0 - нет
14. w.r. 595 14.12.18 14:00 Сейчас в теме
(13) это если конфигурации идентичные, то 3 действия. А если обмен БП <-> ERP, где документы не соотвествуют друг другу по структуре и реквизитам, то ПКО придется править все-равно для обеих конфигураций. + учитывайте, что для КД3.0 нужно править ПКО на выгрузку, а для обмена на v8msg - нет
Vladimir Litvinenko; +1 Ответить
21. MaxS 2228 14.12.18 17:02 Сейчас в теме
(14) не требуется синхронно менять правила КД 3.0.
Например УПП уже давно кардинально не меняется. Сделал один раз правила в КД3 и всё. Вне зависимости от появления новых документов в ERP, БП или УТ, правила в УПП не нужно дорабатывать.
24. w.r. 595 14.12.18 18:11 Сейчас в теме
(21) я писал про ERP, а не про УПП. ERP сейчас очень динамично развивающаяся конфигурация
20. MaxS 2228 14.12.18 16:57 Сейчас в теме
Приветствую всех, надеюсь как и автор, что белых пятен, заблуждений и недопониманий в использовании формата EnterpriseData будет всё меньше. ;)

(12)
В своем обмене на v8msg просто вносишь изменения в код модуля загрузки и все. Выгрузка делается системой автоматически со всеми реквизитами объекта. Править ничего не надо

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

внести изменения в пакет XDTO
- не нужно вводить людей в заблуждение. Это делать не обязательно.
Для выгрузки ссылочного объекта, который не поддерживается форматом ED тоже нашлось решение, не требующее менять пакет XDTO.

перенести код модуля обработно в конфигурацию
- для этого придумали расширения.

Никогда не задумывался о порядке тегов при использовании КД 3.0, если пользоваться БСП.
25. w.r. 595 14.12.18 18:17 Сейчас в теме
(20) это вы не вводите людей в заблуждение. Смысл КД3.0 как раз в практическом отсутствии кодинга: создал нужные объекты или доработал существующие в XDTO EnterpriseData, выгрузил получившуюся схему XSD в КД3.0. В КД3.0 мышкой нащелкал ПКО и ПОД и готово. Но по факту приходится все-равно писать сложные обработчики выгрузки и загрузки в ПКО и смысл весь как таковой в КД3.0 теряется. Работа с ним более трудоёмка чем обычный кодинг в своей процедуре загрузки XML формата v8msg
29. MaxS 2228 14.12.18 18:52 Сейчас в теме
(25) Если заниматься доработкой XDTO, то пропадает основной плюс. Слово универсальный формат можно вычеркнуть. Правда появляется другой плюс - снимаются все ограничения и появляется возможность как в КД 2 создавать правила для любых нетиповых баз.
Для вводной статьи по ED пугать людей обязательностью доработки XDTO не стоит. ;) Это не обязательная процедура, а возможность.

Сложность - понятие относительное. Специалист должен уметь всё. Применять технологии к месту, а не что-то одно, что он умеет. Для типовых конфигураций в настоящее время стандарт - универсальный формат.
victorree; ids79; +2 Ответить
32. w.r. 595 14.12.18 19:42 Сейчас в теме
(29) даже для типовых конфигураций, описанных объектов в пакете EnterpriseData, может быть недостаточно, если используются конфигурации для бюджетных учреждений и тд

На счёт сложности. На EnterpriseData есть, написанное мной, рабочее решение: экспорт/импорт справочников и документов в стороннюю ERP систему. Примерный поток несколько тысяч объектов в день и обмен v8msg. Второй вариант мне показался предпочтительнее
37. MaxS 2228 14.12.18 20:49 Сейчас в теме
(32) У каждой задачи есть решение.
Но как в статье отмечено, 1С продвигает ED. И рано или поздно типовой функционал будет работать в основных вариантах обменов и для большинства конечных пользователей этого будет достаточно. Мелкие недочеты исправят программисты.
Полностью менять типовой обмен на свой очень хороший будут единицы.

Меньше всего требуют доработок правила для БП 3.0. Видимо на обмен с БП 3.0 все типовые правила на КД3 заточены.
Самые нерабочие, по моему - правила ED для УНФ.
Требуют доработок все ERP КА УТ, розница, если настраивать обмен между собой и используются виды номенклатуры, доп реквизиты, характеристики..
38. w.r. 595 14.12.18 21:20 Сейчас в теме
(37) КД3.0 ещё не стал стандартом и, думаю, не станет им. Слишком неудобная она - требует много лишних манипуляций и нюансов в использовании. История похожая на EDT - задумка хорошая, но пользоваться невозможно
40. MaxS 2228 15.12.18 10:39 Сейчас в теме
(38) От технологичных решений не уйти, это вопрос времени. КД 3. неудобна, но это не означает, что технология ED неправильная. Если усовершенствовать КД 3, он сможет сам конструировать сложные обработки, вставлять правила в конфигурацию, тестировать обмен.
EDT аналогично - баги уберут, инструменты появятся, удобство повысится.
Возможность копаться на низшем уровне и переставлять биты информации останется, но такой ручной труд "сделать всё самому" не сможет составить конкуренцию готовым решениям.

Например, можно написать своё решение управления данными на MS Assess 2000-х годов, создать таблицы, связи, индексы, написать функционал взаимодействия с пользователем, программировать каждое действие. Или перейти на 1С и написать тоже самое. Мне приходилось этим заниматься, специально сравнивал затраты времени, чтобы обосновать переход на 1С 8.0. Разница оказалась в 8 раз в пользу 1С.
С каждым годом объёмы информации и сложность обработки будут расти, чтобы не утонуть, придётся использовать комбайны типа EDT, стандартизировать обмены как в ED и т.п.
41. w.r. 595 15.12.18 10:46 Сейчас в теме
(40) в эпоху развития REST и JSON мы говорим о «технологичных» решениях, основанных на XML и файлообмене. Ну как-то дальше даже читать не хочется. Для меня лично, касаемо интерфейсов, которые сейчас есть у 1С, более перспективным и технологичным видится интерфейс oData
distorshion; svilsa; +2 Ответить
42. MaxS 2228 15.12.18 11:10 Сейчас в теме
(41) Для ED не требуется обмен именно файлами. И это уже реализовано в типовых 1С. Открываем обработку "Выгрузка загрузка EnterpriseData" и видим возможность обмена текстом в виде XML. Можно в той же 1С настроить web сервисы и обмениваться в реальном времени текстом. Например, станок с ЧПУ изготавливает деталь и отправляет данные в универсальном формате в файл или в сервис, не важно. Главное он не задумывается по поводу совместимости, т.к. формат универсальный. Сегодня на том конце УПП, завтра ERP.
До появления ED синхронизация с 1С осуществлялась напрямую через com, прямыми запросами к СУБД и т.п.
Других универсальных технологичных способов обмена с типовыми базами 1С, которые поддерживаются типовыми базами пока нет. Если появится, можно будет обсуждать.
44. w.r. 595 16.12.18 21:03 Сейчас в теме
(42) web сервисы - это уже тоже вчерашний день. «Универсальность» весьма сомнительна и требует допилки напильником. Но если нравится - пользуйтесь на здоровье. Для себя за год+ использования я не нашёл особых плюсов в обмене на XSD схеме по сравнению с обычным XML
36. ids79 6462 14.12.18 20:19 Сейчас в теме
(29)Согласен, основной плюс обмена через ED, как раз стандартизация. Это, правда, и основной минус. Но здесь уж, с какой стороны смотреть.
31. kembrik 3 14.12.18 19:34 Сейчас в теме
(20)
- для этого придумали расширения.


Это которые слетают и перескакивают на стандартный модуль обмена, если в коде расширения ошибка :)?
33. w.r. 595 14.12.18 19:46 Сейчас в теме
(31) в идеальном мире от 1С, где живет в тч и Enterprise Data, ничего не слетает )))
34. ids79 6462 14.12.18 20:12 Сейчас в теме
(31)
Это которые слетают и перескакивают на стандартный модуль обмена


Расширения - механизм новый, есть конечно недочеты.
Но его уже очень многие успешно используют.
Так что Ваши опасения напрасны.
45. kembrik 3 17.12.18 11:08 Сейчас в теме
(34) Мои опасения - это недавняя боль от бардака в статьях ДДС, которые использовались в доработанном обмене по ED в расширении, для переноса того, что переносить в ED не планировали.

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

 &Вместо("ДоступныеВерсииУниверсальногоФормата")
Процедура Наш_ДоступныеВерсииУниверсальногоФормата(ВерсииФормата)
   
   ВерсииФормата.Вставить("1.2", МенеджерОбменаЧерезУниверсальныйФормат);
   ВерсииФормата.Вставить("1.3", Наш_МенеджерОбменаЧерезУниверсальныйФормат);
   ВерсииФормата.Вставить("1.4", Наш_МенеджерОбменаЧерезУниверсальныйФормат);
   ВерсииФормата.Вставить("1.5", Наш_МенеджерОбменаЧерезУниверсальныйФормат);
   ВерсииФормата.Вставить("1.6", Наш_МенеджерОбменаЧерезУниверсальныйФормат);
   
КонецПроцедуры
Показать
Этот вариант удобен в разработке и поддержке но "Одно неловкое движение- и ты отец" - при ошибке в расширении есть шанс что всё пойдет по стандартной схеме
49. A_Max 18 18.12.18 15:55 Сейчас в теме
(45) простое решение вынести этот функционал в отдельное расширение.
35. MaxS 2228 14.12.18 20:16 Сейчас в теме
(31) Замечал такой момент. Давно была идея - установить второе простое расширение, которое не позволяет запускать типовые правила и генерирует ошибку. Это уже технические вопросы, которые можно решить. Для особо ответственных случаев можно просто снять модуль с правилами с поддержки и вставить свой.
23. kembrik 3 14.12.18 18:01 Сейчас в теме
(12) А что порекомендуете почитать по v8msg ? Где можно посмотреть работающие примеры обмена?
28. w.r. 595 14.12.18 18:28 Сейчас в теме
15. Evil Beaver 7041 14.12.18 14:44 Сейчас в теме
Формат называется EnterpriseData. Исправьте заголовок, потому что потенциальные читатели, которые будут искать на инфостарте информацию - не смогут найти Вашу статью.
16. ids79 6462 14.12.18 16:18 Сейчас в теме
(15) Спасибо, Андрей.
Все поправил
17. ids79 6462 14.12.18 16:26 Сейчас в теме
На счет ошибки в названии всем спасибо!
Все исправил.
И за стеб тоже спасибо :)
Ибо, нефиг такие ошибки делать.
К сожалению, грамотность не мой конек.
26. rusmil 235 14.12.18 18:18 Сейчас в теме
Спасибо за статью, ждем продолжения.
27. acanta 14.12.18 18:26 Сейчас в теме
Если я поняла правильно, отладка правил обмена во второй конвертации так хорошо прижилась, что решили модуль отладчика правил превратить в глобальный модуль (чтоб наверняка отладить с перехватом и просмотром в любом месте). А насчет структуры куда выгружать могли хоть в ПВХ предопределенные, хоть в справочник, хоть в перечисления сделать. Решили почему бы не XDTO с пространством имен. Это круче.
Автору респект.
46. acanta 17.12.18 11:45 Сейчас в теме
Пакет XDTO можно загрузить в макет двоичными данными, mxl-xml или текстом? А модуль менеджера обмена данными вставить в обработку?
47. MaxS 2228 17.12.18 11:57 Сейчас в теме
(46) Да, можно. Все обмены на УПП, КА 1.1, УТ 10.3 и т.п. так сделал.
48. ids79 6462 17.12.18 11:58 Сейчас в теме
(46)Пакет XDTO можно выгрузить в виде xsd-схемы и вставить в макет. Модуль менеджера можно вставить в модуль внешней обработки.
A_Max; acanta; +2 Ответить
50. vadim1011985 86 29.12.18 13:12 Сейчас в теме
Вопрос к знающим людям , есть задача организовать автоматический односторонний обмен 32-х баз ЗиУП с одной базой ЗиУП КОРП по расписанию. С помощью КД 2.0 я сделал правила и слил все данные из разных баз в одну КОРП тут проблем нет, все ясно и понятно. Префиксацию документов и некоторых справочников организовал непосредственно в самих правилах. Но это разовый обмен. Сейчас думаю на счет автоматического обмена и смотрю в сторону КД 3.0 и есть вопросы на сколько трудозатратно это все дело надо переносить все документы и справочники по ссылкам из хтих документов а так же их движения и некоторые регис тры сведений . Посмотрел формат ED 1.5 и 1.6 там нет большинства описаний документов из ЗиУП. С КД 2.0 тоже много заморочек не хочется после каждого обновления шерстить правила в поисках изменений + конфигурацию делать не типовой и писать правила регистрации для каждого объекта .
51. MaxS 2228 29.12.18 13:58 Сейчас в теме
(50) Можно сделать.
Из-за ограниченного описания видов документов и справочников в ED можно поступить 2-мя способами.

1. Выбрать справочник и документ формата для переноса любого справочника и документа.Например, СтатьиДДС и КорректировкаДолга.
Написать процедуры, которые упаковывают все реквизиты и табличные части в данные формата и распаковывают их обратно.
В правилах перед началом конвертации процедура проверяет наличие ПКО и самостоятельно заполняет для ПОД используемые ПКО, чтобы не заморачиваться ручным написанием кода для ПОД загрузки.

2. Заняться доработкой формата ED Например сделать формат 1.61 - за основу берем 1.6 и дорабатываем. Новый формат вставляем в расширение, модуль с новыми правилами туда же. Подобные расширения с идентичным форматом нужно вставить во все базы, участвующие в обмене.

Ещё не забыть загрузить в КД3 конфигурацию с регистрами накопления и расчета.
1-й вариант у меня получился. Написал обработку, создание правил для нового документа или справочника занимает меньше секунды ;)
2.- вариант очень затратный по объёмам. Правильно продумать состав документов и справочников. В процессе доработки и отладки нужно часто менять формат, соответственно одновременно обновлять все базы, участвующие в обмене.
52. vadim1011985 86 29.12.18 14:19 Сейчас в теме
(51) Тогда по 1 варианту получается что для каждого документа писать свои правила по упаковки данных в формат ?
53. MaxS 2228 29.12.18 14:33 Сейчас в теме
(52) В каждом документе вызов универсальной процедуры. Все ПКО таких документов выглядят идентично за исключением имени и ссылки на документ конфигурации. Процедура по метаданным разбирает состав реквизитов и табличных частей.
По трудозатратам сложно сказать про этот вариант, т.к. всё делалось в течение нескольких лет ;) Используется множество процедур. От выгрузки одного реквизита по имени эволюционировало в выгрузку документа со всеми реквизитами и табличными частями.
Недостаток первого варианта - конфигурации должны быть примерно идентичными. Если они отливаются обмен не поломается, просто данные по отличающимся реквизитам никуда не запишутся.
Плюс 2-го варианта - это правильное использование универсального формата обмена, обмен возможен между сильно отличающимися конфигурациями.

Если начинать с нуля, может быть и 2-й вариант будет быстрее. Когда начинал с 1-м вариантом, расширение не поддерживало XDTO пакеты.
Минус 2-го варианта в недостатках конфигурации КД3 - там нет как в КД2 автоматического заполнения ПКС. Всё руками. Это тоже пришлось автоматизировать.
54. vadim1011985 86 29.12.18 14:37 Сейчас в теме
(53) Спасибо. Скорее всего придется все таки КД 2.0 юзать, так как по срокам очень ограничен , Как по мне , КД 3.0 не такой уж и универсальный формат как его позиционируют (((.
55. MaxS 2228 29.12.18 14:42 Сейчас в теме
(54) формат, то как раз универсальный, задумка хорошая и правильная.
Инструменты для подготовки правил обмена с использованием КД3 ещё сырые. Если их довести до того, что умеет КД2, будет проще.
56. vadim1011985 86 29.12.18 14:47 Сейчас в теме
(55) Согласен , инструментария не хватает ,Да и инфы не так много , все рассматривают типовые примеры УТ-БП , В общем и целом понятно , но как доходит до дела... сразу куча вопросов. Еще раз спасибо за ответы
58. ids79 6462 29.12.18 18:07 Сейчас в теме
(54)Я бы на Вашем месте все-таки ED использовал, если смотреть в будущее.
КД 3.0 развивается достаточно быстро. Если на данный момент КД 2.0 и удобнее, через год ситуация может поменяться.
59. vadim1011985 86 30.12.18 11:50 Сейчас в теме
(58) Проблема в том , что я сильно ограничен по времени, до конца января уже должен быть рабочий обмен ,

Я то думал что для всех документов будет соответствие с ED , а тут такой облом , а так надо разбираться как все сворачивать в другой формат и как разворачивать потом , боюсь застрять на середине. Если как говорит , Максим у него на доработки КД 3.0 ушло несколько лет , то я за полмесяца явно не разберусь.
57. ids79 6462 29.12.18 18:04 Сейчас в теме
(53)Мне больше импанирует первый вариант, без доработки формата. Хотя конечно есть тоже нюансы. Наверно разработчикам имеет смысл создать специальные объекты формата для удобного переноса произвольных данных. Как раз для таких случаев. Ну и функционал КД 3.0 слабоват конечно. Хотя лучше, чем пару лет назад.
60. acanta 30.12.18 12:12 Сейчас в теме
(51)
1. Выбрать справочник и документ формата для переноса любого справочника и документа.Например, СтатьиДДС и КорректировкаДолга.

И спустя еще несколько лет мы получим ситуацию как с правами доступа (вместо набора прав - кирпичики, объединяемые в профиль, сохраняемый в пользовательском режиме).
Разбиваем EnterpriseData на подсистемы или даже отдельные объекты, для каждого пишем отдельный собственный формат. Унификация сохранится, в случае несинхронного обновления корреспондентов (как у нас часто бывает) можно будет отключить нерабочие участки в режиме предприятия.
gogik2006; MaxS; +2 Ответить
61. MaxS 2228 30.12.18 13:39 Сейчас в теме
(60) Интересная идея. Думал ранее над таким вариантом. Проблема в том, что на момент инициализации какой версии формата какой отдать модуль правил, мы не знаем для какого узла будут использованы эти модули. Теоретически можно перед началом обмена заново устанавливать менеджер обмена.
Ещё возникала аналогичная мысль - основной обмен через ED, вспомогательный на другом плане обмена с использованием правил на КД2.

(58)
я за полмесяца явно не разберусь.
Как выгрузить много табличных частей в одну табличную часть думаю не сложно для программиста и это к КД3 не относится. Простые типы переносим как есть, ссылочные как строка уид, даже тип данных можно не указывать, главное имя реквизита и табличной части указать.
Задержка может возникнуть с КД3 если нет опыта. И для обмена ЗУП 3 - ЗУП 3 нужно создать правила для примерно 60 документов не считая справочников. Умножаем на 3 (2 ПКО и 1 ПОД), получаем гору ручного труда.
62. acanta 30.12.18 13:44 Сейчас в теме
Почему нельзя прописать в свойствах формата модуль правил обмена? В подписках на событие определяется модуль, а тут некуда его определить?
63. MaxS 2228 30.12.18 13:52 Сейчас в теме
(62) вроде бы штатно для плана обмена модуль, а не для каждого узла свой модуль.
70. ids79 6462 31.12.18 15:46 Сейчас в теме
(62)Штатно да, для плана обмена. Но можно очень просто прописать отдельные для узлов.
Для этого можно использовать реквизит узла "ПутьКМенеджеруОбмена" и совсем немного доработать процедуру "ДоступныеВерсииФорматаОбмена" из модуля менеджера плана обмена.
64. acanta 30.12.18 13:58 Сейчас в теме
А жаль. Для узла модуль было бы удобнее, возникает такое чувство - либо разработчики работают на 2х мониторах(На одном висит ЕД, на другом модуль) либо один отдел или разработчик пишет(отвечает за разработку) ЕД с оглядкой на не-1с-потребителей, а потом под него другой подстраивает конвертацию втискивая их в типовые и особо не задумываясь. Скорее всего 2й вариант, но для этого его надо редактировать во внешнем редакторе, а загружать в 1с готовое. И я не понимаю, зачем некий протокол обмена с каким-либо (даже очень важным) не 1с-ным получателем жестко встраивать в каркас обмена между 1с-ными конфигурациями.
Но фактически такой вариант будет означать встраивание конвертации 3 в конфигурацию (модуль на плане обмена вместо обработчиков до и после начала обмена, модуль на часть XDTO вместо обработчиков перед началом выгрузки, после загрузки).
В конвертации данных 2 я пока тоже только осваиваюсь, не понимаю, как отключить регистрацию чего-то в штатных в правилах регистрации объектов.
65. MaxS 2228 30.12.18 14:38 Сейчас в теме
(64)
https://its.1c.ru/db/metod8dev#content:5852:hdoc
Для обмена данными через формат EnterpriseData у конфигураций, использующих "Библиотеку стандартных подсистем", есть два веб-сервиса:

EnterpriseDataUpload – упрощенный вариант для загрузки данных в информационную базу из сторонних приложений. Не требует специальных настроек на стороне конфигурации (кроме развертывания собственно веб-сервиса); однонаправленный обмен данными – ТОЛЬКО импорт данных в информационную базу.
EnterpriseDataExchange – для двустороннего обмена данными между конфигурацией и сторонним приложением. Для работы с ним необходима настройка обмена данными на стороне конфигурации.
Теоретически можно обмениваться не только с 1С.
С одной стороны это недостаток - общий модуль правил на все узлы, с другой стороны если всем дать функционал на каждый узел свои правила, то после обновления конфигурации пользователи массово забудут обновить правила и так же будут ругать новый формат обмена.
Поэтому если программист, обслуживающий обмен смог настроить для каждого узла свои правила, то он и сможет его поддерживать в рабочем состоянии.
Т.е. так, как сделано сейчас в типовых наверное логично.
66. acanta 30.12.18 14:45 Сейчас в теме
Скорее речь идет о продвинутом пользователе, который должен либо настроить обмен как есть, либо получить(купить) обновления если обмен не работает. Типовые конфигурации расходятся в направлениях - в одном нужен программист, в других нет. ED это шаг в сторону когда программисты не нужны, и они ничего не должны настраивать, не так ли?
ИМХО, конфигурации уровня КА2 и ЕРП должны иметь возможность настроек. А к примеру в БП или УНФ это будет только мешать. Но подход один.
67. MaxS 2228 30.12.18 15:21 Сейчас в теме
(66) ED это правильный шаг. Не нужно заботится о синхронном обновлении конфигурации. Это значительно облегчает жизнь простым пользователям.
Все типовые обмены в целом нормально работают. Основное назначение - обмен между разнородными базами.
В ERP и КА последних версий появились настройки для каждого узла обмена - отбор по разделам учета.
Проблемы возникают при попытке через ED обменяться однотипными базами. КА 2 - КА 2, ЗУП - ЗУП. Для КД2 наоборот - создать правила для обмена однотипными базами легко.
Последние версии ED обмениваются информацией какие виды объектов они умеют отправлять и принимать. Для универсального обмена это полезно. Не нужно отправлять лишнее.
72. muskul 13.03.19 06:26 Сейчас в теме
(67)окей гугл не проходит обмен после обновления )
71. muskul 13.03.19 06:25 Сейчас в теме
(66)Если бы теже ошибки при синхронизации и обмене были человечные а не то что сейчас можно было бы и согласится. Не каждый консультант по 1с сразу поймет что там говорится, какое свойство и почему ЕД решил не выгружать. Особенно забавно когда он два часа выгружает выгружает тысяч 20 объектов, спотыкается на каком то одном и все на смарку. При загрузке таже ситуация.
Про правила регистрации тоже хотел бы почитать.
68. acanta 30.12.18 15:27 Сейчас в теме
КД 2 предусматривает возможность миграции движений (т.е. перенос данных как есть, независимо от наличия исправлений в последующих периодах и последовательности проведения), КД 3 такой возможности не имеет. При настройке обмена в КД 2 с проведением в базе получателе - лучше сразу делать КД 3.
69. acanta 30.12.18 22:00 Сейчас в теме
В любом случае типовая конфигурация получается отражением бизнес процесса разработки конфигурации. Если при таком количестве общих модулей и возможности добавлять методы преобразования в форматы к объектам хоть в модули объектов, хоть в модули менеджера, модуль ED один и к нему построено нечто похожее на вымученную 2ю конвертацию, то таковы особенности разделения труда самих разработчиков в фирме 1с. Есть отдел интеграции, они пока поддерживают кд2 и судя по всему слабо взаимодействуют с самими разработчиками.
73. distorshion 19 26.02.21 00:52 Сейчас в теме
XML медленное гавно .... oData как тут уже говорили по скорости в сотни раз быстрее.
74. MaxS 2228 26.02.21 04:34 Сейчас в теме
(73) После обмена данными документ нужно провести, а это 90% из всего обмена. Поэтому особой разницы нет какой используется транспорт. ED не для скорости, оно для универсальности.
75. user1140274 01.03.21 09:47 Сейчас в теме
Дмитрий, было бы здорово если бы вы на примерах в новой статье осветили новые возможности конвертации 3.1 https://1c.ru/news/info.jsp?id=28113

В КД редакции 3.1 появились новые возможности, а также получили дальнейшее развитие существующие. Ниже приводится описание основных изменений в новой редакции.

Разработка правил регистрации
Новая версия конфигурации позволяет создавать правила регистрации объектов по аналогии с правилами регистрации в конфигурации КД 2.1. Но, в отличие от версии 2.1, правила регистрации могут быть выгружены как в формате XML, так и обычным кодом.

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

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

Автоматическая загрузка описания конфигурации
Добавлена возможность автоматически загружать описание конфигурации из каталога, в который ранее были выгружена конфигурация в виде XML-файлов, либо указав путь к хранилищу конфигурации, либо из каталога, в котором хранится исходный код конфигурации в формате 1C:Enterprise Development Tools (EDT). Также есть возможность задать расписание для обновления описания метаданных.

Автоматическая выгрузка подготовленных правил конвертации
В редакции 3.1 добавлена возможность автоматической выгрузки готовых правил конвертации или регистрации в каталог, в котором хранится исходный код конфигурации в формате EDT либо расположены исходные коды конфигурации в формате XML, выгруженные из конфигуратора.

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

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

Работа с механизмом расширения формата EnterpriseData
КД 3.1 позволяет разрабатывать новые версии формата EnterpriseData, а также расширять существующие. Создавать новые версии формата можно теперь непосредственно в конфигурации КД. Также существует возможность делать расширения существующей версии формата и его объектов, добавляя значения перечислений, реквизиты ключевых свойств, реквизиты табличных частей и т. д.
76. twin76 12.03.21 09:48 Сейчас в теме
1с не умеет как-то думать широко и при этом просто - они почему то усложняют все на пустом месте часто - запутывая только людей. Идея очень хорошая - с форматом общим неким - но нахрена этих куча словечек каких-то типа, сокращений, еще и на англицком:)))) А для гибкости формата можно было просто с самого начала ввести там в этот формат некий ПростоБизнесОбъект - когда человеку надо из доработанной конфигурации что-то перенести и что никаким образом не отражено в формате. И там уже можно и родителя прописать и все остальное там вообще все. Ну и соответственно при написании конвертации для загрузки так же самое - знаешь что у тебя там есть ПростоБизнесОбъект.ОченьНужныйОбъект1 и ПростоБизнесОбъект.НужныйРеквизит12 - и что они значат и что с ними делать - ну берешь его и все. Расширять существующие версии формата EnterpriseData (по русски-то нельзя было, и чтобы смысла побольше??? - например УниверсальныйФорматОбмена??:))))))) - это примерно тоже самое может. НО по смыслу - как-то посложнее вообще - а тут, с наличием ПростоБизнесОбъекта - тут ты вообще не паришься - просто вводишь эти ПростоБизнесОбъекты на то, что в формате не описано - и все. И - вот тебе гибкость, которая утеряна в EnterpriseData (аааа, бесит!!!:))) и которая была до этого - возвращается, легко и непринужденно:))) Короче - в 1С не понимают чего-то такого Очень Важного В Жизни:)))) Судя вообще по всему, как и что у них делается:))) ВСЕ делается:)
77. twin76 12.03.21 09:53 Сейчас в теме
(76) на всякий случай скажу, что я не очень глубоко понимаю это все - но я думаю это вряд ли может помешать понять общие принципы, как это все могло бы работать лучше.
79. twin76 12.03.21 18:30 Сейчас в теме
(76)тут немного засомневался - может есть в этом ЕД (буду по русски назло 1С:))) какой-нибудь механизм передачи неописанных в формате сущностей?? Может сделали в более поздних? А то так - ну вот как раз про это человек и пишет " В "ED" у нас такой сущности как Партнер не имеется, правил выгрузки под нее нет, и даже механизмов, которые позволяют положить в "Строку" тип реквизита и его GUID а потом разобрать на приёмнике - тоже нет "из коробки"" - да это же нонсенс вообще. Ну что это за "универсальный формат"??? Вообще- я говорю- вот смотришь на 1С и думаешь - ну почему там людям - которые сверху стоят, проектировщики - такие ОЧЕВИДНЫЕ ВЕЩИ в голову не приходят???
Ну или у них какая-нибудь хитрая вообще бизнес-модель или вообще там какая-то модель существования - что надо все чтобы было через ж:)))))
Просто очень обидно, что вроде как основа-то есть - очень хорошая, заложенная еще с 7-ки, а вот реализация - гораздо хуже, чем могла бы быть.
80. MaxS 2228 12.03.21 20:01 Сейчас в теме
(79) В типовых конфигурациях в обработке "Выгрузка загрузка EnterpriseData" появилось поле "Расширение формата", в документации на БСП есть какое-то описание. И в демо базе БСП есть пример.
Задумка хорошая, но как это расширение формата использовать в синхронизации через планы обмена?

В доработанном мной формате есть сущности Документ.УниверсальныйДокумент, Справочник.УниверсальныйСправочник и Справочник.УниверсальныйСправочникГруппа, а так же универсальные процедуры для выгрузки всех реквизитов через "AdditionalInfo", их даже в правилах описывать не нужно - выгружается всё, что есть типовое и нетиповое.
81. twin76 13.03.21 00:54 Сейчас в теме
(80) спасибо за ответ, я сам не умею, можно сказать, программировать на 1С - не знаю ее, как среду разработки.Ну 7.7 знаю, 8-ку нет - так что не совсем понял там, ну в общих чертах - то что Вы в первой части ответили. Но вот то, что и Вы там вопрос задали - как это использовать, плюс то, что именно ВЫ доработали-добавили сущности в формат нужные для универсальности обмена, а не сами 1С-ники - ну это вот как раз говорит о том, что нет у них там человека который бы вот так вот сверху это все видел - довольно очевидное, со смыслом очевидным. Я вот занимаюсь на некотором уровне внедрением там-администрированием 1С, - ну там установить, косяки исправить какие-то, глюки, подключить оборудование,обновить, выгрузки настроить, показать людям, как что делать - ну кое на что хватает знаний моих - и просто постоянно сталкиваюсь с тем, что очевидные вещи или не продуманны в 1С или кажется так, что ради поступления денег все так глючно сделали:)))
Не понятно - почему вот не собраться и не обсудить им там - как бы вот например и что можно было сделать лучше - реализовать эту идею с универсальным обменом - СРАЗУ, с самого начала. А не так вот - о, идея хорошая, запускаем - и потом и через годы там не всегда появляется нормальная реализация, прям такая хорошая. В принципе на 8-ку многие люди не решались переходить и через 5 лет после ее появления - говоря, что она сырая, хотя возможностей там уже было больше. Ну ладно, это я уже далеко отошел от темы вопроса:))) Спасибо Вам - на самом деле прояснили многое -я как раз хотел понять - в чем разница между простым обменом, который есть например в ЗУП при настройке синхронизации и ED, теперь знаю, спасибо:) и думаю многие Вам тоже спасибо скажут (жалко что не сами 1С:)) - за то, что вот продвигаете -поясняете про ED
78. twin76 12.03.21 10:11 Сейчас в теме
и просто про то, что данные, выгружаются в виде, что к каждому значению полагается туева хуча символов каких-то - ну вы поняли, я про XML - и это потом все нужно как говорится парсить-разбирать и все это понимаешь, когда матами покрываешь разрабочиков, когда это все ждешь и веришь-надеешься, чтобы очередной ошибки не вылезло - ну это идиотизм просто - по другому не скажешь. Ну надо вам формат данных описывать - ну прилагайте его к файлу обмена, кто мешает то. Надо вам понты-типа-совместимость там с какими-то другими системами - хотя этот данный файл обмена им в принципе не может предназначаться - ну сделайте вы такую ВОЗМОЖНОСТЬ - если вы понторез - выгружайте через XML:)))) А если у человека тупо есть две проги и они обмениваются через 5 минут данными, миллиардами байтиков - то делать процентов 70 из этих байтиков просто бессмысленными - ну это.... как хотите, так и называйте:)))) описал в заголовке файла обмена какие данные в каких таблицах двумерных лежат и все. ну и там как значения записаны. Если там удобнее в каких-то мест не через двумерные таблицы - ну напишите, тут начинается XML - и добавьте так. Но большинство то данных- это что???? Это тупые таблички по совершенно тупым вот этим жестким описаниям. По заголовкам - что это за данные по строчкам - экземпляры данных. Собственно как оно в разных СУБД и хранится. Короче 1С-ники, еще раз говорю - чего-то важного в жизни не понимают:))) гоняются все время якобы за чем то крутым, но в итоге - совершенно простое что-то у них упускается в их всех решениях. И они получаются какими-то громоздкими и глючными и много где вообще фиг поймешь - зачем это тут вообще так сделали. Сложно и глючно. И про глюки - к этим глюкам они как-то с недостаточной серьезностью относятся - и с годами их если и убавляется в одном месте- прибавляется в другом:))) Я не только про глюки в программах - но типа того, что выпустили обновление - накатили, чуть поработали, поняли - что глючное-ошибок полно- и начинаются пляски, за которые, конечно же надо платить специалистам:))) А потом выясняется, что там в коде какая-то ерунда явная - просто надо было внимания больше уделить. Ну это люди все ЧУВСТВУЮТ. Что вот у вас такая система. И за это - вы хотите еще больше денег - чтобы вот так вот "поддерживать". И часто кажется, что именно так и было задумана - такая "бизнес модель" у 1С.
Оставьте свое сообщение

См. также

Использование классов .Net в 1С для новичков Промо

Практика программирования Разработка внешних компонент Универсальные функции v7.7 v8 Бесплатно (free)

Руководство для новичков. Написав статью http://infostart.ru/public/238584/, я понял, что многие не понимают того, что написано. Поэтому в этой статье постараюсь более подробно остановиться на азах и без кода на вражеском языке (C#)

27.01.2016    80680    Serginio    113    

Полезные примеры СКД, ч.2

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

Еще несколько примеров решения задач в СКД.

06.04.2021    5576    Neti    7    

Обзор полезных методов БСП 3.1.4

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

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

25.03.2021    21814    rayastar    49    

Звуковое управление в 1С 8.3

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

В данной статье описано создание библиотеки для звукового управления (выполнение команд голосом) для платформы 1С 8.3. Задача была поставлена так, чтобы модуль функционировал непосредственно на клиенте 1С, осуществляя управление формами, и взаимодействовал с интерфейсом.

16.03.2021    3978    velemir    31    

Использование программных перечислений, ч.1: строковые константы Промо

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

Часто ли у вас возникает необходимость в коде выполнять сравнение на строку?

10.12.2016    39272    unichkin    74    

Serverless (Faas) в 1С. Создание и вызов Yandex Cloud Functions

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

"Я не могу просто взять и скопировать код с гитхаба", "у нас 1С микросервисами окружена", "возможностей мало" - частые фразы 1С разработчиков. которым не хватает возможностей платформы в современном мире. Faas, конечно, история не новая, но нас сдерживало 152ФЗ и задержки по пингам. Для того, чтобы действительно использовать в 1С код, к примеру, на Python, надо было приложить усилия. Теперь всё намного проще - берём и используем.

28.12.2020    5902    comol    31    

Базовые вещи БСП, которые облегчат жизнь программисту 1С

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

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

30.08.2020    14883    quazare    34    

Форма выбора (подбор) в управляемых формах

Практика программирования v8 v8::УФ 1cv8.cf Россия Бесплатно (free)

Разбор небольших примеров того, как правильно открывать форму выбора (подбора) в управляемых формах, не прибегая к модальным окнам.

08.05.2020    51308    user5300    18    

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

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

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

15.10.2018    33518    tormozit    105    

[БСП] Обмен через Конвертацию данных 2.1

Обмен через XML v8 1cv8.cf Бесплатно (free)

Добавим новый план обмена и настроим в БСП типовой обмен через правила конвертации данных (КД 2.1)

03.02.2020    10131    John_d    17    

Программная работа с настройками СКД

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

Нюансы программной работы с настройками системы компоновки данных в отчетах и динамических списках. Обзор всех видов настроек компоновки. Что в каких случаях правильно применять. В качестве примера рассмотрена работа с отборами и группировками.

27.01.2020    49572    ids79    26    

[СКД] Программное создание схемы компоновки данных

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

Сделаем отчет на СКД полностью программно, без использования макета "схема компоновки данных".

15.01.2020    35462    John_d    22    

Оформление и рефакторинг сложных логических выражений Промо

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

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

20.09.2012    80512    tormozit    131    

Как сделать обмен данными через универсальный формат быстрее? Реализация многопоточного обмена данными

Обмен данными 1С Обмен через XML v8 1cv8.cf Бесплатно (free)

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

31.12.2019    9146    ids79    17    

Последовательности событий при проведении документа 1С. Шпаргалка + про формы + про расширения

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

Собрал информацию о событиях/подписках/расширениях в одном месте.

30.12.2019    28048    kuzyara    38    

30 задач. Странных и не очень

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

30 задач на знание языка программирования 1С и некоторого поведения платформы. Маленьких. Странных и не очень.

02.12.2019    20669    YPermitin    61    

Запись значения в поле ввода/формы со срабатыванием события ПриИзменении Промо

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

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

11.07.2007    51534    tormozit    51    

Как передать IP адрес, который вызвал HTTP запрос в 1C (для веб-сервера Apache)

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

Столкнулся с задачей получения IP адреса, который вызывает http сервис 1С. Итак, решение:

22.11.2019    10990    Sibars    19    

Полезные процедуры и функции для программиста

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

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

07.10.2019    35537    HostHost    41    

Таблица значений. Нюансы

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

Обзор некоторых аспектов использования общеизвестного инструмента 1С.

01.10.2019    45549    Yashazz    50    

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

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

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

10.09.2017    48261    tormozit    74    

Оповещения боту из 1С за 31 минуту

Практика программирования Интеграция v8::УФ 1cv8.cf Бесплатно (free)

Поделюсь опытом, как быстро сделать бота с оповещениями в Телеграмм из 1С без лишних затрат.

18.09.2019    18952    feva    43    

[Шпаргалка] Программное создание элементов формы

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

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

06.09.2019    80312    rpgshnik    70    

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

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

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

05.09.2019    65742    ids79    55    

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

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

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

25.04.2019    16854    m-rv    3    

Регистры бухгалтерии. Общая информация

Практика программирования Математика и алгоритмы v8 v8::БУ БУ Бесплатно (free)

Общая информация о внутреннем устройстве регистров бухгалтерии.

05.09.2019    38071    YPermitin    25    

Три костыля. Сказ про фокусы в коде

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

Три интересных (или странных) костыля в коде, которые могут помочь в повседневных и не очень задачах.

03.09.2019    28139    YPermitin    81    

EnterpriseData – часть 3. Загрузка данных, идентификация объектов

Практика программирования Математика и алгоритмы Перенос данных из 1C8 в 1C8 Разработка v8 v8::УФ 1cv8.cf Бесплатно (free)

Основные этапы загрузки данных через EnterpriseData. Идентификация объектов загружаемых полностью и по ссылке. Приведены схемы процессов загрузки данных. Описание основных операций и обработчиков. Перечень процедур БСП, используемых при загрузке данных, структура «КомпонентыОбмена».

22.08.2019    17561    ids79    8    

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

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

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

16.04.2019    21556    m-rv    17    

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

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

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

17.08.2019    39908    ids79    19    

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

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

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

08.08.2019    124872    ids79    72    

Фоновое выполнение кода в 1С - это просто

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

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

02.08.2019    50766    avalakh    26    

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

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

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

01.06.2018    33903    m-rv    22    

Разбираемся с параметрами редактирования СКД

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

Связь по типу, Параметры выбора, Связи параметров выбора

31.07.2019    34286    json    15    

СКД - наборы данных и связи между ними, создание собственной иерархии, вложенные отчеты

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

Набор данных объект. Использование в схеме компоновки нескольких наборов данных. Различные варианты связи наборов: объединение, соединение. Использование иерархии в отчетах на СКД. Создание собственной иерархии, иерархия детальных записей. Использование вложенных схем в отчетах на СКД.

26.07.2019    88528    ids79    14    

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

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

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

17.07.2019    43170    ids79    27    

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

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

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

05.12.2017    29345    itriot11    34    

Регистры сведений. За кулисами

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

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

09.07.2019    30672    YPermitin    14    

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

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

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

04.07.2019    20905    SeiOkami    52    

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

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

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

02.07.2019    69617    ids79    17    

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

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

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

10.11.2018    40378    ids79    44    

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

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

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

25.06.2019    66750    ids79    27    

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

Практика программирования Производительность и оптимизация (HighLoad) v8 v8::Запросы Бесплатно (free)

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

11.06.2019    28395    dmurk    148    

Подсистема БСП «Управление доступом», основные объекты и регистры

БСП (Библиотека стандартных подсистем) Роли и права v8 v8::УФ v8::Права 1cv8.cf Бесплатно (free)

Основные принципы работы подсистемы «Управление доступом» из состава БСП. Виды доступа, ограничение доступа на уровне записей. Описание основных объектов и регистров, используемых подсистемой.

23.05.2019    28619    ids79    9    

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

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

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

16.05.2019    55316    YPermitin    30    

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

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

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

07.04.2019    39963    ellavs    130    

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

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

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

28.03.2019    29828    ellavs    90    

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

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

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

21.03.2019    29176    barelpro    87    

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

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

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

14.03.2019    37218    YPermitin    53