Имя: Пароль:
1C
1С v8
КД 2.1 Запись и чтение таблицы значений в xml файле
0 Leo_Lito
 
21.03.23
17:05
Разбираюсь в КД и пишу правила обмена ЕРП -> БП. Контактная информация в ЕРП - табличная часть документа, в БП - регистр сведений. Для выгрузки значений получаю и записываю ТаблЧасть в ТаблЗнач. Здесь возникают вопросы. Как положить ее в файл обмена, а потом получить?
Читал, что можно передать в параметр, но не особо разобрался. Подскажите, пожалуйста.
1 Leo_Lito
 
21.03.23
17:08
Поправка: В ЕРП - табличная часть справочника. Справочник Контрагентов
2 p-soft
 
21.03.23
17:09
(0) преобразовать в структуру обьекта-получателя.
ну вот и формируйте набор записей рс и его передавайте
3 lite777
 
21.03.23
17:11
(0) ЕРП и так бухучет есть
4 lite777
 
21.03.23
17:14
Приемник РГ , получает данных из ВходящихДанных (галка)
5 lite777
 
21.03.23
17:15
Перед выгрузкой сформировать Входящие данные
6 p-soft
 
21.03.23
17:20
(4) галка не в тему.
еще раз, чтобы данные кто-то принял, их надо выгрузить в формате принимающей стороны. так кд устроено.
можно взять правила обмена из старых конф и посмотреть как произвольная структура выгружается в набор записей рс
это по-моему есть в примерах, которые с кд идут
7 Leo_Lito
 
22.03.23
08:10
(6) Спасибо за ответ. Просто при выгрузке я думал выгрузить ТЗ, а при загрузке из строк ТЗ формировать записи в РС. Так не получится?
8 Leo_Lito
 
22.03.23
14:31
UP вопроса. В общем нашел решение: создаю ПКО с РС в качестве приемника и пустым источником. Пишу запрос на вкладке Алгоритмы\запросы:
ВЫБРАТЬ
КИ.Ссылка Как Объект,
КИ.Тип Как Тип,
КИ.Вид Как Вид,
КИ.Представление Как Представление,
КИ.Представление Как Поле1
ИЗ
Справочник.Контрагенты.КонтактнаяИнформация КАК КИ

После этого создаю ПВД и в обработчик Перед выгрузкой пишу следующее:
    
Результат = Запросы.ЗапросКонтИнф.Выполнить();

Выборка = Результат.Выбрать();

Пока Выборка.Следующий() Цикл
    
    ВыгрузитьПоПравилу(Выборка, , , , "КонтактнаяИнформация");  

КонецЦикла;

Выгружает ссылку на объект, Представление и Поле1, но Тип (ПеречислениеСсылка.ТипыКонтактнойИнформации) и Вид (СправочникСсылка.ВидыКонтактнойИнформации (Заполняется ссылкой на предопределнный элемент)) не выгружает.  Почему так?
9 Leo_Lito
 
22.03.23
14:34
(8) Проверял запрос в конфигураторе ЕРП, в полученной ТЗ получаю все поля. В КД видимо Тип и Вид нужно получать как-то иначе
10 Leo_Lito
 
22.03.23
15:56
UP
11 big
 
22.03.23
18:05
Можно в выгружаемый узел файла выгрузить всё что угодно, создать уникальный узел xml и в него выгрузить. При загрузке данного объекта найти этот узел и загрузить всё что нужно куда нужно.

з.ы. я так из 7.7 в 8-ку подобие ИД объекта выгружаю
12 Leo_Lito
 
23.03.23
09:03
(11) Можете подробнее описать? В какой обработчик это прописать и каким образом? Я узлами xml вообще не интересовался
13 welwel
 
23.03.23
09:11
(12) емнип здесь был пример "1С:Предприятие 8. Конвертация данных: обмен данными между прикладными решениями" (+CD). Бояркин В.,Филатов А.
14 Leo_Lito
 
23.03.23
09:14
(12) В ПВД  добавил следующий код:

Результат = Запросы.ЗапросКонтИнф.Выполнить();

Выборка = Результат.Выбрать();

Пока Выборка.Следующий() Цикл  
    
    Если Выборка.Вид = Справочники.ВидыКонтактнойИнформации.ФактАдресКонтрагента Тогда
        Объект.Вид = Справочники.ВидыКонтактнойИнформации.ФактАдресКонтрагента;
    ИначеЕсли Выборка.Вид = Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента Тогда
        Объект.Вид = Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента;
    КонецЕсли;

    ВыгрузитьПоПравилу(Выборка, , , , "КонтактнаяИнформация");

КонецЦикла;

Пишет Поле объекта не обнаружено (Вид). Другие поля, не ссылочного типа получает и выгружает спокойно.В конфигурации проверял запрос через ТЗ - все выгрузило и заполнило, значит в КД оно просто не может получить значение в этой ячейке ТЧ. Чем это вызвано?
15 Leo_Lito
 
23.03.23
09:14
(13) Спасибо, сейчас посмотрю
16 Leo_Lito
 
23.03.23
09:17
(13) У Вас ссылки, где посмотреть книгу не осталось?
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший