arefaste/1C_Forums huggingface dataset:
подскажите как воспроизвести wav файл на клиенте, есть что то типа плеера?
wav файл получаю по http но только на сервере (на клиенте http ресурс не доступен)

по поиску искал но темы все старые, может что изменилось )
---
Ну например через тег audio поля HTML.
---
ЗапуститьПриложение(ИмяФайла)
---
это понятно, но хотел просто по кнопке воспроизвести
---
https://helpf.pro/faq/view/1846.html
---
Ну например через тег audio поля HTML.
---
спасибо
---
а еще вопрос, если повторно хотят запустить (не закрывая форму) то не работает, как обойти это?

Просто если сделать по кнопке снова то не помогает
   ПолеHTML = "";
   ПолеHTML = "<!DO CTYPE html><ht ml><head></head><body><audio controls=""controls"" autoplay autobuffer=""autobuffer"" autoplay=""autoplay"">
   |<source src=""dat a:audio/wav;base64," + ПолеДанные+ """></audio></body></html>";
---
У меня без ПолеHTML = "" не работало повторное воспроизведение, эта строчка помогла. Может от версии платформы зависит
Здравствуйте. Подскажите, пожалуйста, как исправить ошибку Поле объекта недоступно для записи (ПолноеИмя)
 File = FSO.GetFile(file)?
```1c
    FSO = new COMОбъект("Scripting.FileSystemObject");
    File = FSO.GetFile(file);
```
---
для начала я бы попробовал написать не file = fso.... а, например, newfile = fso....
---
для начала я бы попробовал написать не file = fso.... а, например, newfile = fso....
---
блин, точно, вот я невнимательный, там же переменная переназначается у меня. Спасибо.
Здравствуйте, форумчане.
Новичок, требуется помощь, конфигурации 1С:ERP

Есть расширение Обработки → ПечатьСчетовНаОплату, пытаюсь в «Модуле менеджера» данной обработки получить значение элемента «Статус» расширения Документы → ЗаказКлиента → ФормаДокумента, каким образом я могу это сделать и могу ли вообще?

Попробовал для начала просто сослаться на этот объект и вывести пользователю на экран значение переменной, безуспешно, ругается на .Объект
---
В расширении это нормально. Просто надо запрос писать руками (или добавлять в расширение реквизит статус заказа) или писать в режиме предприятия в консоли запросов и переносить в конфигуратор.
---
элемента «Статус» этот элемент формы на какой путь к данным ссылается? Скорее всего это не реквизит документа.
---
Возможно не совсем верно объяснил задачу.

Имеется расширение ПечатьСчетовНаОплату и ЗаказКлиента.
Задача: получить значение «Статус» "На согласовании", "К выполнению", "Закрыт" для сравнения значения этого элемента и выполнения определенных действий при определенном значении.
---
Статус есть в реквизитах заказа клиента.
---
Прошу подсказать, как мне правильно получить доступ к этому реквизиту в ЗаказКлиента (я так понимаю ссылаться нужно на реквизит документа, который в Основной Конфигурации, а не Расширение)?
---
Ниже ответил.
---
Благодарю.
---
Возможно, там нужно Ссылку через Экспорт делать или Запрос, но если делать через запрос, но постоянно ругается на Элемент «Статус».
---
В расширении это нормально. Просто надо запрос писать руками (или добавлять в расширение реквизит статус заказа) или писать в режиме предприятия в консоли запросов и переносить в конфигуратор.
---
изит статус заказа)
Понял, благодарю, то есть просто тело запроса оформить, но со ссылкой на реквизит ЗаказКлиента из Основной Конфигурации?
Добрый день. Добавил в базу общий модуль, с экспортной функцией, и не могу к нему обратиться, база просто его не видит. Подскажите, пожалуйста, как исправить?
---
управляемые формы или обычные? управляемые. Все оказалось намного проще, закрыл обработку, открыл заново, и все заработало. Думал достаточно просто конфигурацию обновить, может просто глюк какой.
---
какие галочки на модуле? Откуда идет обращение и в каком виде?
---
какие галочки на модуле? . Обращение из обработки. ПроверкаФайлов.МояФункция(Файл).
---
Обращение из обработки
управляемые формы (приложение) или обычные?
Если управляемые, то будет доступно только из контекста &Сервер. Из обычных форм не будет доступно совсем.
Для доступности нужен еще флаг у общего модуля "Вызов сервера"
---
управляемые формы или обычные? управляемые. Все оказалось намного проще, закрыл обработку, открыл заново, и все заработало. Думал достаточно просто конфигурацию обновить, может просто глюк какой.
---
причем изначально в расширение добавлял, там ПроверкаФайлов отображался как общий модуль, но если пробую свою функцию через точку вызвать, то выдавало ошибку "Метод объекта не обнаружен". Совместимость пробовал менять, не помогло. Решил в конфигу основную добавить и проверить, а тут вообще не работает.
Всем доброго дня! Можно ли включать/отключать видимость сразу нескольких колонок ? Чтоб не плодить кучу таких строчек ?
У меня таблица с большим количеством колонок, нужно разбить по группам как-то.

ЭлементыФормы.ТЗ.Колонки.ИмяКолонки1.Видимость = Истина;
---
вывести в отдельную процедуру, передавать туда имена колонок через массив, например. В цикле включать/отключать.
---
вывести в отдельную процедуру, передавать туда имена колонок через массив, например. В цикле включать/отключать.
---
а можно поподробней? как в цикле ЭлементыФормы.ТЗ.Колонки.ИмяКолонки1.Видимость = Истина; эту строку представить ?
---
обращаться к колонке через коллекцию, типа такого
ЭлементыФормы.ТЗ.Колонки["МояКолонкаНоменклатура"].Видимость = Истина;
---
["МояКолонкаНоменклатура"] Спасибо! То что нужно!!!
Здравствуйте. Пишу телеграм бота, который взаимодействует с 1С. Стоит задача отправить запрос на базу 1С, при ответе боту.
Модель взаимодействия следующая:
1) Пользователь нажимает на кнопку
2) Бот просит ввести текст
3) Пользователь вводит текст
4) Бот обрабатывает текст добавляя в него код команды и отправляет на 1С

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

Добавлю еще сюда код обработчиков. Сейчас я могу по нажатию кнопки отправить сообщение пользователю и могу считать ответ.

Обработчик кнопки:

```1c
    answerPer = 'it me'
    @dp.callback_query_handler(text='testCommand')
    async def exportCommand(callback : types.CallbackQuery):
    global answerPer
    answerPer = '/contact'
    await callback.message.answer('Введите ФИО сотрудника, которого вы хотите получить: {ФИО}')
```

Обработчик ответа:

```1c
    @dp.message_handler()
    async def echo_message(msg: types.Message):
    if(answerPer == '/contact'):
    global answerPer
    answerPer = 'it me'
    await bot.send_message(msg.from_user.id, 'contact')
    else:
    await bot.send_message(msg.from_user.id, answerPer)
```

Сейчас как вы видите он выводит просто сообщение юзеру. Надо чтобы его ответ я преобразовывал и отправлял в базу 1С в уже исправленном варианте.
---
А почему не сделать обработку на 1С? Поднимается http-сервис, на него заводится веб-хук с телеги. И на стороне 1С обрабатываешь все команды, кнопки, текст и вообще все что надо.
Я себе сделал уведомления по движению по договору (что счет выписан, акт или бабки пришли), обработку кнопки (получить печатную форму счета) и команды (долги по договорам показать, счет неоплаченные).
На 1С все пишется легко и непринужденно. У телеги хороший апи.
---
А почему не сделать обработку на 1С? Поднимается http-сервис, на него заводится веб-хук с телеги. И на стороне 1С обрабатываешь все команды, кнопки, текст и вообще все что надо.
Я себе сделал уведомления по движению по договору (что счет выписан, акт или бабки пришли), обработку кнопки (получить печатную форму счета) и команды (долги по договорам показать, счет неоплаченные).
На 1С все пишется легко и непринужденно. У телеги хороший апи.
---
Добрый день. Хочу уточнить у вас по поводу web-hook. Обязательно ли покупка своего хостинга для работы с веб хуком. У меня проблема пока с получением белого адреса, а исходя из той информации, что я нашел по технологии, без него не обойтись.
---
Добрый день. Да, причем нужен не просто адрес, а еще и ssl, поскольку телега хочет https. Т.е. нужен еще и домен.
---
У 1С нативная интеграция с телегой убогая. Надо писать свою.
---
Скажите это ему Ссыль :-)
Добрый день!
Зарплата и управление персоналом КОРП, редакция 3.1 (3.1.7.87).
Заполнила вручную справочник Структура предприятия. Указываю для позиции Штатного расписания Место в структуре предприятия. Однако в форме списка справочника Сотрудники эти поля остаются пустыми. В регистре сведений Место ПШР в структуре предприятия есть запись для этой ПШР. Регистр сведений Подчиненность структурных единиц так же заполнен. Подскажите, пожалуйста, что еще можно сделать?
---
В регистре сведений "Данные для подбора сотрудников" должны быть записи о месте в структуре предприятия.
Скорее всего да - нужно кадровые документы перепровести.
---
Кажется, разобралась! Нужно была распровести кадровые документы, а затем провести. Всем спасибо за ответы!
---
А если попробовать перепровести прием на работу (пересчеты потом убрать).

У вас структура предприятия не соответствует структуре юрлиц ?

Подчиненность структурных единиц так же заполнен
Это подчиненность внутри структурных единиц .
---
Заполнить справочник Подразделение (оно может не совпадать со структурой)
в документе Утверждение штатного расписания надо установить соответствия. Тогда в справочнике Сотрудники появляется подразделение (не структура)
(1)
---
в документе Утверждение штатного расписания надо установить соответствия

Это если ведется история изменений ШР. А так, достаточно указать в ПШР , что они и сделали
---
В регистре сведений "Данные для подбора сотрудников" должны быть записи о месте в структуре предприятия.
Скорее всего да - нужно кадровые документы перепровести.
---
Этот регистр не подчинен регистратору, он непериодический, так что лучше потом его еще раз проверить
---
Это не существенно. Такие регистры заполняются подпиской на событие.
---
Я советую проверить (у кого проблема ) , потому как сталкивалась, когда ЗУП 3 некорректно перезаполняет такие регистры.
---
Сначала заполнили место в структуре в ПШР. Потом я на всякий случай включила историю, провела утверждение ШР.
У нас был перенос на 01.04.2018 из ЗУП 2.5. Я перепровела начальную штатную расстановку. По всем перенесенным сотрудникам структура встала правильно.
А по принятым позже 01.04.2018 - не встает. Перепроводила приемы на работу, перезаполняла их с нуля. Проводила новое утверждение ШР на дату после приема. Регистр Данные для подбора не заполняется и все.
---
Кажется, разобралась! Нужно была распровести кадровые документы, а затем провести. Всем спасибо за ответы!
---
Можно еще так исправить:
В регистре сведений "Данные для подбора сотрудников" - Еще - Разблокировать объекты - Еще - Перезаполнить регистр
---
Спасибо. Прекрасное решение, чтобы не перепроводить документы. Потому, что потом сидеть чистить перерасчеты такое себе. Да и для тех, кто был принят давно - это не тем более лучшее решение.
Всех приветствую!
Пытаюсь доработать процедуру ПередЗаписью для РН в УНФ 3.0 1с Фреш.
Проверку сделал :

```1c
    Если ОбменДанными.Загрузка Тогда
    Возврат;
    КонецЕсли;
```

Проблема в том, что как не крути - процедура не работает в безопасном режиме.
Соответственно расширение тоже.

Но при прохождении аудита техподдержка написала делать эту проверку (которой сначала не было).
Соответственно как-то процедуру ПередЗаписью можно допилить в безопасном режиме.

Но КАК ??))
---
Для расширений можно безопасный режим и не использовать. При добавлении расширения в менеджере сервиса выберите, что требуется привилегированный режим, расширение подключится в небезопасном режиме и расширение модулей заработает
---
Для расширений можно безопасный режим и не использовать. При добавлении расширения в менеджере сервиса выберите, что требуется привилегированный режим, расширение подключится в небезопасном режиме и расширение модулей заработает
---
отдал на аудит.
ждемс
---
Прокатило!
спасибо!) я почему-то считал, что привилегированный режим нужен для отмены ограничений в ролях пользователей.

спасибо за помощь!
В док-те док-т "Заявка на расходования ДС" рек-т "Счет получателя" выделен красным цветом, подскажите из-за чего это может быть
---
```1c
    Процедура ПроверитьКорректностьЗаполненияПлатежаВБюджет()

    ТекущаяДата = ?(ЗначениеЗаполнено(Объект.Дата), Объект.Дата, ТекущаяДатаСеанса());
    ПлатежиВБюджет.ПроверитьКорректностьЗаполненияПлатежаВБюджет(ЭтотОбъект, ТекущаяДата);

    КонецПроцедуры
```

Посмотрите еще эту процедуру.
---
Посмотрите в модуле формы Процедура УстановитьУсловноеОформление(), там устанавливается несколько УО для этого поля.
---
Я так понимаю что уже в этой процедуре значение установлено
---
```1c
    Процедура ПроверитьКорректностьЗаполненияПлатежаВБюджет()

    ТекущаяДата = ?(ЗначениеЗаполнено(Объект.Дата), Объект.Дата, ТекущаяДатаСеанса());
    ПлатежиВБюджет.ПроверитьКорректностьЗаполненияПлатежаВБюджет(ЭтотОбъект, ТекущаяДата);

    КонецПроцедуры
```

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

Попробуйте удалить форму из расширения и настроить по новой.
---
хотя бы скрины привели.
Как прикручивали событие?
Все должно отрабатывать при правильном подключении события.

Попробуйте удалить форму из расширения и настроить по новой.
---
Да, какой-то глюк был, удалил вообще объект и заново добавил. Хотя уже делал так, не понимаю почему в первый раз не помогло
---
В событиях переопределили или просто написали код в модуле формы?
---
Переопределил как на скрине, да
---
Безопасный режим у расширения отключен?
---
Точно, не был отключен. Спасибо. Но теперь заходит только один раз при открытии формы. При дальнейших нажатиях не отрабатывает событие активации строки
---
Хотя нет, это другое событие было. У динамического списка так и не работает
---
Может не во всех динамических списках такая проблема. У меня возникает в УТ 11.4 в обработке ПодборТоваровВДокументПродажи, в элементе на форме СписокСтандартныйПоискНоменклатура
---
Там вроде бы есть 2 дин. списка.
---
Да, и что? Меня интересует только элемент СписокСтандартныйПоискНоменклатура
---
Возможно, когда вы тестируете, форма показывает другой список.
---
Сделал события везде, ни в один элемент не заходит
Здравствуйте. Как в кд2 можно в обработчике поля поиска проверить заполнен ли реквизит например у контрагента инн? В обработчике нет доступа к принимаемому объекту. Перед загрузкой источник тоже пустой еще. Мне нужно по условию сделать вариант поиска если реквизит не заполнен одно, если заполнен другое.
---
```1c
    Если ЗначениеЗаполнено(СвойстваПоиска["ИНН"]) Тогда
```
---
```1c
    Если ЗначениеЗаполнено(СвойстваПоиска["ИНН"]) Тогда
```
---
Самое главное пытался так в свойствах было только наименование. Сейчас от вашей подсказки допер, что я поснимал галочки в пкс все кроме наименования). Олух)
Привет. Объясните кто нибудь пжлста. Спасибо

На форме Вид пломбы - поле ввода, реквизит ВидПл - Справочник ссылка.ВидыПл . У меня не отрабатывает условие . Как обратится к наименованию пломбы?

 Код
 Если  ВидПл = "Роторная пломба" Тогда
     Утил = У1;

Иначе

 Утил = У2;

КонецЕсли;
Показать полностью
---
Если СокрЛП(ВидПл.Наименование) = "Роторная пломба" Тогда
---
Если СокрЛП(ВидПл.Наименование) = "Роторная пломба" Тогда
---
Спасибо. Блин я не понимаю как СокрЛП (Удаляет пробельные символы в начале и конце исходной строки) помогло, откуда там пробелы)))
---
Но вообще это дурной тон - сравнивать наименование в коде. Его могут изменить пользователи и твое условие перестанет работать
---
Менять нельзя ничего каждый элемент уникальный)
---
Я бы сделал предопределенное значение, либо регистр соответствий
---
Если их немного, может тогда лучше использовать перечисления а не справочник
---
так кроме СокрЛП я еще заменил Ссылку на справочник на его наименование
Здравствуйте!
Тема избитая, но, видимо, у меня глаз замылился настолько, что ошибки не вижу, поэтому прошу прощения
Может ли такой алгоритм удалять не все строки, а через одну?

```1c
    Для каждого СтрокаВозврата Из ТабВозврат Цикл

    ОтгруженныеПартии = ТабВозврат.НайтиСтроки(Новый Структура("Номенклатура, СчетУчета", СтрокаВозврата.Номенклатура, СтрокаВозврата.СчетУчета));

    Для каждого СтрокаОтгрузки Из ОтгруженныеПартии Цикл
    ТабВозврат.Удалить(СтрокаОтгрузки);
    КонецЦикла;

    КонецЦикла;
```
---
пример:
Обход в цикле Для Каждого. Получили первую строку. Удалили первую строку. Вторая строка становится первой, третья второй и т.д. Второй проход цикла получает вторую строку, которая ранее была третьей.
Смысл понятен?
---
Может ли такой алгоритм удалять не все строки, а через одну?
Конечно. Вы удаляете в том же цикле, поэтому такой результат.
---
пример:
Обход в цикле Для Каждого. Получили первую строку. Удалили первую строку. Вторая строка становится первой, третья второй и т.д. Второй проход цикла получает вторую строку, которая ранее была третьей.
Смысл понятен?
---
Потому что по науке сперва делают массив удаляемых строк, а потом удаляют по собранному в массиве. Иначе выборка неправильно позиционируется. Точнее позиционируется правильно, просто количество элементов изменилось.

Нужно что-то типа

```1c
    УдаляемыеСтроки = новый Массив
    Для каждого СтрокаОтгрузки Из ОтгруженныеПартии Цикл
    УдаляемыеСтроки.Добавить(СтрокаОтгрузки);
    КонецЦикла;
    Для каждого Стр из УдаляемыеСтроки цикл
    ТабВозврат.Удалить(Стр);
    КонецЦикла;
```

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

к тому же, это будет быстрее...

т.к. удаление с хвоста, удаляет уже почищенные хвост, а если начинать с первого элемента,
то удаление первых элементов будет каждый раз сдвигать все последующие, в т.ч. те, которые впоследствии будут удалены.
В ЕРП УХ через расширение программное устанавливаю в документе параметры выбора для колонки Номенклатура ТЧ Товары, что бы нельзя было выбрать помеченные на удаление элементы.
Суть проблемы в том, что при выборе через форму выбора, устанавливается отбор согласно установленных параметров выбора. НО при вводе по строке параметры выбора игнорирует.
В отладке отборы корректны.
На постой конфигурации не смог воспроизвести эту проблему, там все отрабатывает.
Сталкивался ли кто с подобным?
---
Скорее всего, параметры ввода по строке переопределяются в обработчике ОбработкаПолученияДанныхВыбора менеджера объекта.
---
Скорее всего, параметры ввода по строке переопределяются в обработчике ОбработкаПолученияДанныхВыбора менеджера объекта.
---
Обработчиков событий нет
отбор не переопределяется
---
Как вы это определили?
---
Да. Действительно параметры переопределялись, но тоже в расширении. Я проверял только основную конфигурацию. Вопрос снят.
Добрый день. Задался одной идеей и вот наткнулся на проблему. Гуглил возможно не правильно задавал вопрос. Поэтому решил создать тему на форуме, мало ли вся инфа есть в сети.

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

Так вот в обычном случае мы пишем Документы.ПТИУ.Создать(), но в связи с тем что я мог выбрать не поступление, а например реализацию. Как мне в коде этого добится. условно подменить ПТИУ на РТИУ. Вообще это возможно?

Вариант с тем, что на каждый документ делать своё Если ПТИУ Тогда Документы.ПТИУ.Создать() КонецЕсли - просьба не предлагать)

Спасибо
---
следующий пункт обучения - начать читать хелп...

ДокументыМенеджер (DocumentsManager)
Элементы коллекции:
ДокументМенеджер.<Имя документа>
Для объекта доступен обход коллекции посредством оператора Для каждого … Из … Цикл. При обходе выбираются менеджеры документов.
Возможно обращение к менеджеру документа посредством оператора [...]. В качестве аргумента передается имя документа, как оно задано в конфигурации.
---
следующий пункт обучения - начать читать хелп...

ДокументыМенеджер (DocumentsManager)
Элементы коллекции:
ДокументМенеджер.<Имя документа>
Для объекта доступен обход коллекции посредством оператора Для каждого … Из … Цикл. При обходе выбираются менеджеры документов.
Возможно обращение к менеджеру документа посредством оператора [...]. В качестве аргумента передается имя документа, как оно задано в конфигурации.
---
Спасибо
Добрый день, передовики кода 1С!

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

```1c
    Если ПустоеЗначение(Парам)=0 Тогда
    выбДок = Парам.Получить("Контекст");
    Печать();
```

Подскажите, почему?
---
Семерку уже подзабыл, но Вы уверены, что выбДок не совпадает с именем какого-нибудь реквизита?
---
Вы уверены, что выбДок не совпадает с именем какого-нибудь реквизита? Поддерживаю.

 Причем, реквизит этот неопределенного вида - иначе в отладчике показывало бы 0, "" или еще какое-то пустое значение
---
Семерку уже подзабыл, но Вы уверены, что выбДок не совпадает с именем какого-нибудь реквизита?
---
Вы уверены, что выбДок не совпадает с именем какого-нибудь реквизита? Поддерживаю.

 Причем, реквизит этот неопределенного вида - иначе в отладчике показывало бы 0, "" или еще какое-то пустое значение
---
Да, видимо так и было. Создал новую переменную и все стало хорошо. Хотя так и не понял, где находится реквизит-однофамилиц: в шапке и в табличной части такого нет.
Доброе утро, уважаемые форумчане!
Хотелось бы узнать уже у опытных старожил 1С. Какие средства для редактирования плана обмена (синхронизация между базами) лучше использовать в современном 1С?
Есть КД 2.0, КД 3.0.,обмен через JSON, XML, XDTO и тп. Поправьте если ошибаюсь.
Что посоветуете изучать для перспектив? Просто для меня это будет в новинку, хочу углублённо погрузить в тему обмена данными между базами.
Заранее спс:)
---
Обмен между базами:
1. Обмен с помощью правило КД2. Правила редактируются в соответствующей конфигурации.
2. Обмен с помощью КД3. Универсальный обмен, но требует изменения пакетов XDTO для обменивающихся объектов в составе конфигурации и обработки менеджера обмена с правилами преобразования объектов.
3. Обмен в различных других форматах (CommerceML и прочих). Требуют отдельного кода выгрузок/загрузок, если необходимо что-то поменять.

Транспорт между базами:
1. Файлы, ftp, ... - мир праху.
2. COM-соединения. Аналогично.
3. Веб-серсвисы и HTTP-сервисы. Апач, ИИС, 1С-ный какой-то свой собственный "искаропки".
4. Брокеры сообщений и очереди. Кафки, кролики, MQTT++++++....
5. Боты, веб-сокеты и прочая всячина...

Форматы обмена:
1. XML.
2. JSON.
3. CSV.
4. ProtoBuf.
5. Любой, который в голову взбредет...
---
Вы сперва погрузитесь в тему, а то сам по себе вопрос - глупость
КД - это инструмент написания правил обмена
JSON, XML, XDTO - это способы(средства) сериализации данных
---
у опытных старожил 1С
О. Так и буду коллег называть. Опытная старожила =)
---
1С:Шина самая модная технология для передачи информации.
---
Обмен между базами:
1. Обмен с помощью правило КД2. Правила редактируются в соответствующей конфигурации.
2. Обмен с помощью КД3. Универсальный обмен, но требует изменения пакетов XDTO для обменивающихся объектов в составе конфигурации и обработки менеджера обмена с правилами преобразования объектов.
3. Обмен в различных других форматах (CommerceML и прочих). Требуют отдельного кода выгрузок/загрузок, если необходимо что-то поменять.

Транспорт между базами:
1. Файлы, ftp, ... - мир праху.
2. COM-соединения. Аналогично.
3. Веб-серсвисы и HTTP-сервисы. Апач, ИИС, 1С-ный какой-то свой собственный "искаропки".
4. Брокеры сообщений и очереди. Кафки, кролики, MQTT++++++....
5. Боты, веб-сокеты и прочая всячина...

Форматы обмена:
1. XML.
2. JSON.
3. CSV.
4. ProtoBuf.
5. Любой, который в голову взбредет...