|
Как заполнить инфополе "Иные сведения" в УКД при передаче в Контур.Диадок? | ☑ | ||
---|---|---|---|---|
0
Denosik
24.03.24
✎
16:23
|
Может есть кто работал с Контур.Диадок на обычных формах, совсем не понимаю как заполнить инфополе. Может через плагин или подключаемый модуль можно, но я просто не знаю как. В интернете так и не нашёл ничего путного... Буду невероятно благодарен за помощь
|
|||
1
Волшебник
24.03.24
✎
17:04
|
Инфополе = Значение; Не стоит благодарности. |
|||
2
mikecool
24.03.24
✎
20:05
|
(0) никто с ним не работал...
смотря, что тебе нужно можно в код лезть можно через ПМ возможно, событие ОбработатьСобытиеПослеЗаполненияКонтента из ПМ тебе подойдет оно, как понимаю, отрабатывает всегда - перед отправкой или формированием печ форм смотри переменные DocumentType = Параметры.DocumentType; Content = Параметры.Content; ДокументСсылка = Параметры.ДокументСсылка; и что еще есть и - смотри описание апи диадока, Content под апи как раз подпадает |
|||
3
Denosik
25.03.24
✎
08:28
|
(1) знать бы куда вставить. Если через плагин изменения контекста то какой шаблон взять.
Если через подключаемый модуль, то как вообще это использовать и как название инфополя, если в том же XDTO объекте "контекст" нет "иные сведения" |
|||
4
Denosik
25.03.24
✎
08:32
|
(2) я нашел как заполнять инфороля в ПМ, но только в случае, если эти инфополя уже заполняются и мне просто надо сменить выводимые данные. Но в данном случае "иные сведения" не выводились и в Content их обозначения нет(
|
|||
5
Denosik
25.03.24
✎
08:33
|
(3) контекст - content*
|
|||
6
mikecool
25.03.24
✎
16:20
|
(4) они есть, ищи в описании апи на сайте диадока
и если нашел - то знаешь, как называется поле, уже пол дела сделано |
|||
7
Chai Nic
25.03.24
✎
16:29
|
"Иные сведения" заполняются по хотелке контрагента в согласованном с ним формате, поэтому в 1с этого никогда не будет. Перехватывайте расширением сформированный xml перед отправкой, и дописывайте в него нужные атрибуты и значения. Как-то так.
|
|||
8
Denosik
26.03.24
✎
02:26
|
Вытащил сформированный xml, в нём нашёл узел EventContent, в котором всего 3 узла, а по документации Дидока там должно быть 5, среди которых должна быть CostChangeInfo - иные сведения.
Осталось понять как его дописать правильно |
|||
9
Chai Nic
26.03.24
✎
06:36
|
||||
10
АгентБезопасной Нацио
26.03.24
✎
08:33
|
(2) ПослеЗаполненияКонтента - емнип, это в старой версии диадока ("стандарт"). Хотя он, если есть, тоже отрабатывает, как ни странно (у меня отрабатывает и старый ПМ, оставшийся от Стандарта, и новый - Универсал).
В ПослеЗаполненияКонтента инфополе ФХЖ1 заполнется примерно так: НомерДатаЗаказа=ПолучитьНомерДатуЗаказаИзРеализации(Реализация); НомерЗаказа = НомерДатаЗаказа.НомерДокумента; ДатаЗаказа = НомерДатаЗаказа.ДатаДокумента; Если НомерЗаказа <> Неопределено Тогда Протоконтент.AdditionalInfoId.StructedAdditionalInfos.Добавить(Новый Структура("key,value",НаименованиеПоляНомерORDER,НомерЗаказа)); КонецЕсли; Если ДатаЗаказа <> Неопределено Тогда Протоконтент.AdditionalInfoId.StructedAdditionalInfos.Добавить(Новый Структура("key,value",НаименованиеПоляДатаORDER,ДатаЗаказа)); КонецЕсли; НомерДатаАкта=ПолучитьНомерДатуАктаИзРеализации(Реализация); НомерАкта = НомерДатаАкта.НомерДокумента; ДатаАкта = НомерДатаАкта.ДатаДокумента; Если НомерАкта <> Неопределено Тогда Протоконтент.AdditionalInfoId.StructedAdditionalInfos.Добавить(Новый Структура("key,value",НаименованиеПоляНомерDESADV,НомерАкта)); КонецЕсли; Если ДатаАкта <> Неопределено Тогда Протоконтент.AdditionalInfoId.StructedAdditionalInfos.Добавить(Новый Структура("key,value",НаименованиеПоляДатаDESADV,ДатаАкта)); КонецЕсли; В Универсал имхо нужно ловить в ПМ событие ПодготовитьЭлектронныйДокумент https://developer.kontur.ru/Docs/Diadoc_UM/func/pm/Podgotovit'ElektronnyyDokument.html |
|||
11
Denosik
26.03.24
✎
09:05
|
(9) проблемка, в XML я создал элемент, для пробы заполнил его текстом и записал в XDTOобъект. Но иные сведения не заполнились. Может не так перенес в XDTO...
|
|||
12
Denosik
26.03.24
✎
09:09
|
(10) а это интересно, это совершенно иной способ.
Вы заполняете AdditionalInfoId, это и есть иные сведения? Я думал иные сведения это CostChangeInfo, а AdditionalInfoId - дополнительные свойства. Что в шапке документа |
|||
13
АгентБезопасной Нацио
26.03.24
✎
09:16
|
(12) "иные сведения" - это StructedAdditionalInfos. А CostChangeInfo - это иные сведения об изменении стоимости.
Причем StructedAdditionalInfos у контента - это ФХЖ1, а у item'a у table - это ФХЖ2 |
|||
14
Denosik
27.03.24
✎
08:31
|
(13) а если у меня в AdditionalInfoId нет StructedAdditionalInfos?
Перевел XML в текст, а там AdditionalInfoId представлено таким тегом : </AdditionalInfoId> без начала и дочерних узлов |
|||
15
АгентБезопасной Нацио
27.03.24
✎
11:21
|
(14) Видимо, что-то типа AdditionalInfoId.Вставить("StructedAdditionalInfos", Новый Массив);
В каком событии смотришь? Вообще, озвучь задачу целиком и версию модуля Контура... |
|||
16
Denosik
27.03.24
✎
11:27
|
(15) заполнил процедурой "основноймодуль.ДобавитьИнформационноеПоле(Content.AdditionalInfoId, "тест", "тест1")
Поле появилось, но в шапке в поле доп. Сведения. А мне нужно заполнить поле "иные сведения", что после таблицы |
|||
17
Denosik
27.03.24
✎
11:30
|
(15) в документе создал реквизит "иные сведения" тип - строка. Выводить его в инфополе "иные сведения" в УКД диадок
Диадок на обычной форме версия 4.39.3.2938 |
|||
18
dchumak
27.03.24
✎
11:37
|
(16)
1) открой обработку Диадок в конфигураторе. 2) сохрани макет печатные формы (это внешняя обработка, там можно посмотреть, откуда берутся из структуры Content данные и выводятся в макет) с расширением epf 3) далее смотришь в документации как заполнять эти данные. 4) AdditionalInfoId - это НЕ иные сведения, а доп. сведения (ИнфПолФХЖ). По твоему примеру. Иные сведения - это CostChangeInfo. developer.kontur.ru/Docs/Diadoc_UM/objects/EventContent.html |
|||
19
dchumak
27.03.24
✎
11:41
|
(17)
сначала разберись со структурой УПД/УКД Диадок, а также со структурой Content, которая потом преобразуется в XML и сразу все станет понятно, что куда выводить. В модуле можно включить отладку и посмотреть, что куда пишется. |
|||
20
Denosik
27.03.24
✎
11:48
|
(18) точно, с пф спасибо. Помогло реально понять что откуда заполняется
|
|||
21
Denosik
27.03.24
✎
11:49
|
(19) увы, при попытке включить отладку в системных настройках, диадок просто вылетает
|
|||
22
dchumak
27.03.24
✎
11:51
|
(21) включайте отладку и остановку по ошибке и смотрите, где вылетает
|
|||
23
dchumak
27.03.24
✎
11:58
|
(21) ну и сначала проверьте доступ к каталогу, в который обработки выгружаются
|
|||
24
Denosik
27.03.24
✎
12:04
|
(19) ты Бог.
Всем, кто мучается с заполнениями какого либо поля Открываете нужное пф, смотрите из чего заполняется и просто заполняете этот тег. Даже если его нет, он сам создаться Решение с иными сведениями: Content.EventContent.CostChangeInfo = "Оно работает!"; |
|||
25
dchumak
27.03.24
✎
12:11
|
(24) вообще для этого функции есть, заполняющие либо значение свойства, либо список XDTO (я в ПМ их использую), например
УстановитьЗначениеXDTO(Контент, "CostChangeInfo", "Иные сведения"); УстановитьЗначениеXDTO(Контент, "OperationContent", "Уведомляю об изменении документа."); НовЭлемент = НовыйЭлементСпискаXDTO(Контент.CorrectionBases); Заполнить_BaseDocumentName(НовЭлемент, Документ1С); Процедура Заполнить_BaseDocumentName(Контент, Документ1С) УстановитьЗначениеXDTO(Контент, "BaseDocumentDate", Документ1С.ДатаИсходногоДокумента); УстановитьЗначениеXDTO(Контент, "BaseDocumentNumber", Документ1С.НомерИсходногоДокумента); УстановитьЗначениеXDTO(Контент, "BaseDocumentName", "Счет-фактура"); УстановитьЗначениеXDTO(Контент, "AdditionalInfo", Неопределено); УстановитьЗначениеXDTO(Контент, "BaseIdFile", Неопределено); КонецПроцедуры Как-то так, при генерации ПМ они прописываются в структуру. |
|||
26
Denosik
27.03.24
✎
13:02
|
(25) да но так оно ругалось, что свойства CostChangeInfo нет в Content
|
|||
27
dchumak
27.03.24
✎
13:26
|
(26) значит не инициализируется что-то при начальном заполнении.
При отладке (например, в ПМ, в структуре уже есть изначально свойства и по умолчанию они заполнены как Неопределено). |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |