Основная задача — выгружать изменённые объекты во внешнюю систему. Эта внешняя система к нам подключается через веб-сервис или COM (тут это не рассматривается) и используется эта обработка. Так же обработку можно использовать в ручную для формирования XML файлов (для отладочных целей).
Правильно ли делать было через СКД — это вопрос, старшие поправят. Мне понравилось, то, что т.о. структура для каждого типа объекта задаётся в отдельном макете, запрос внешне не перегружен и содержит в основном только логику, большинство дополнительной информации выуживаю через характеристики. На сколько это оптимально по скорости и ресурсам — вопрос, нужно взвесить цену и качество что называется. Само формирование СКД занимает дополнительное время, тем более, что используются на прополую характеристики. Но зато мне показалось удобным в разработке и поддержке + мне кажется такой способ более масштабируемый, новые объекты клепались на счёлк, старые модифицировались легко. Разработка у нас идёт несколькими сотрудниками — удобно, что достаточно захватить макет, чего мне в большинстве случаев было достаточно для исправления или доработки формата выгрузки.
Молодая обработка, но работает на коммерческом примере. Большая часть обработки была написана до меня коллегами, в какой то момент подхватил и остальные объекты решил выгружать через СКД — собственно в этом мой единственный существенный вклад в обработку.
Используется 2 группировки — Группировка по Ссылке и группировка Детальные записи подчинённые. Они выгружаются в Дерево значений, в основной группировке хранятся данные для шапки, в подчинённой хранятся данные строк документов. Обработка не полностью универсальна, часто структуры (название тэгов табличной части и строк, например) прописывается прямо в коде. Поля, которые необходимы для работы, но не должны выгружаться в XML отмечаются в СКД как Свойства элементов пользовательских настроек «Недоступный». Для добавления в структуру свойств надо добавить вычисляемое поле с таким же Путём и затем добавить в настройку СКД, потом удалить из вычисляемых полей. В качестве альтернативы настройки можно формировать программно — пример в Перемещениях.
При необходимости используются функции общего модуля (см в СКД вычисляемые поля), мне пригодились эти:
//grdСКД.ВидДокумента(Документ)
Функция ВидОбъекта(Объект) Экспорт
Возврат Объект.Метаданные().Имя;
КонецФункции
//grdСКД.УникальныйИдентификатор(Ссылка)
Функция УникальныйИдентификатор(Ссылка) Экспорт
Возврат Ссылка.УникальныйИдентификатор();
КонецФункции
Функция СокрЛ4СКД(Строка) Экспорт
Возврат СокрЛ(Строка);
КонецФункции
Функция СокрП4СКД(Строка) Экспорт
Возврат СокрП(Строка);
КонецФункции
Функция СокрЛП4СКД(Строка) Экспорт
Возврат СокрЛП(Строка);
КонецФункции
Конфигурация = Не имеет значения…. Автор зачем обманываешь, на УПП не пошла, потом еще раз глянул внимательнее и увидел что рядом еще и Розница стоит, так как понимать, имеет значение конфигурация или нет?
LineykaSBK, с вашей критикой от части согласен и добавил основной раздел «Практика программирования» (почему то забыл это сделать! — на модерации). Тэга «универсальная обработка» не было и в этом эоне боюсь не будет.
Обработка является примером кода, а не универсальной выгрузкой из 1С во «внешнюю систему». На этот уровень предлагаю замахиваться после внедрения в платформу 1С прикладных объектов работы с искусственным интеллектом ;-).
Хранить и настраивать значительную часть структуры XML и запроса к ИБ на уровне макетов СКД может пригодиться и в других конфигурациях. А, может, это вообще не правильно и те, кто постарше, поправят, решительно.
Мне показалось удобным, хотя с точки зрения оптимизации по скорости и, возможно, ресурсам это не самый шустрый вариант (один большой запрос будет работать быстрее). Но мне нравится, что это всё легко масштабируемо и проще в поддержке. Вместо большого и не очень читаемого запроса остаётся только его костяк, не перегруженный реквизитами, которые можно подключить на уровне настроек.
Т.к. разработкой занимается несколько человек и надо захватывать/освобождать объекты из хранилища — каждый объект в отдельном макете даёт гибкость в теле дополнительную. За последние 2 недели не лазил в модуль обработки вообще. А вот макеты напильником подтачивал — где то запрос, где то настройки.
PS Эта обработка и в 1С:Розница 1.0 не сработает, т.к. используется свой регистр сведений «Коды внешних систем» и справочник «Виды кодов внешних систем». Вполне реально доработать код обработки и вместо своего регистра использовать стандартный. Повторюсь, в первую очередь это «практика программирования», а не универсальное решение для всех случаев.
(1) LineykaSBK, не сразу разобрался с интерфейсом ответов тут, выше отписался.