Имя: Пароль:
1C
 
Я опять про Контур для 970 формата
☑
0 Мисти
 
31.03.25
✎
14:26
Изменились все внутренности - названия! В прошлый раз обновление встало, я нашла, куда вставить свои куски, но для 820 формата, меня никто не надоумил, что всё придумано ради 970. А про 970 - я даже упоминаний не могу найти! Хотя версия Диадока новая.
2 mikecool
 
31.03.25
✎
14:29
(0) я тебе еще в прошлый раз писал - используй подключаемый модуль
3 PLUT
 
31.03.25
✎
14:29
(0) вот тут есть немного букв про

https://developer.kontur.ru/Docs/Diadoc_UM/objects/Spravka/ObnovlenieUPDvPM.html

я не читал
4 mikecool
 
31.03.25
✎
14:32
+2 но даже это не всегда спасает от переименований
5 PLUT
 
31.03.25
✎
14:30
(0) еще вся ночь впереди до 1 апреля 2025
6 PLUT
 
31.03.25
✎
14:33
вот тут "структуры для заполнения контента 970"

https://developer.kontur.ru/Docs/Diadoc_UM/objects/970%40/_UPD970.html
7 PLUT
 
31.03.25
✎
14:36
(0) так вот жыж, вероятно

https://developer.kontur.ru/Docs/Diadoc_UM/objects/Spravka/SellerContent.html#

но чтобы каждый раз не заниматься ерундой, вам нужно свои "костылики" вынести в ПМ (подключаемый модуль), по совету (1) (2)
8 Мисти
 
31.03.25
✎
15:17
Спасибо!
9 Мисти
 
31.03.25
✎
15:19
(2) Я пробовала, у меня что-то не пошло. У меня заполнение строк упд идет по своей структуре, нетиповой - это возможно в ПМ?
10 ДиВаH2
 
31.03.25
✎
15:21
(0) надо смотреть в макете КонтурДиадокИнтеграцияХХХХ
11 Мисти
 
31.03.25
✎
15:23
(10) для УПП 1.3 - смотреть 10.3?
12 ДиВаH2
 
31.03.25
✎
15:23
(9) обработать событие ПодготовитьЭлектронныйДокумент в ПМ
13 ДиВаH2
 
31.03.25
✎
15:24
(11) КонтурДиадокИнтеграцияБП20
14 Мисти
 
31.03.25
✎
15:24
В прошлом обновлении нашла в КонтурДиадокСтандартОФ, но там нет упоминания 970 формата!
15 АгентБезопасной Нацио
 
31.03.25
✎
15:28
(9) Конечно, возможно
НоваяСтрокаТаблицы = ОсновнойМодуль.НовыйЭлементСпискаXDTO(Table.Items);
... и заполняешь все поля...
16 ДиВаH2
 
31.03.25
✎
15:32
лучше в ПМ обработать событие ПодготовитьЭлектронныйДокумент, получить заполненый Диадоком электронный документ и переработать под себя. Но можно и в макете поправить КонтурДиадокИнтеграцияБП20, если очень хочется
17 АгентБезопасной Нацио
 
31.03.25
✎
15:36
(16) Ей еще в прошлый раз говорили - "Дорабатывать надо через ПМ!"
Но, увы, "не в лошадь сено"©
18 Andy13
 
31.03.25
✎
17:00
Только что делал интеграцию для УПП 1.3 + аренда и управление недвижимостью. Всё решено через ПМ, всё работает. Для образца брал интеграцию БП 2.0 из состава обработки диадока.
19 Гена
 
гуру
31.03.25
✎
17:20
А что такое подключаемый модуль? Если на пальцах и кратко.
20 PLUT
 
31.03.25
✎
17:24
(19) Подключаемый модуль (ПМ) — это вспомогательная внешняя обработка. ПМ содержит функции для обработки событий в зависимости от конфигурации 1С и бизнес-процессов организации.

© https://developer.kontur.ru/Docs/Diadoc_UM/proc/_Work_PM.html

типа "расширения", если стильно-модно-молодежно, но сейчас по старинке - "внешняя обормотка"
21 АгентБезопасной Нацио
 
31.03.25
✎
17:38
(19) закос под ООП.
Т.е. модуль, в котором можно добавить или  переопределить "под себя" т.н. "события" (т.е. процедуры) - обработки электронных документов (создания, изменения содержимого, обработки документов после отправки, и т.п.)
22 Гена
 
гуру
31.03.25
✎
17:48
т.е. это вспомогательная программа для общения между контрагентами через различные конфигурации 1С. Но тогда оба контрика должны и купить Диадок, и работать в 1С?
23 Гена
 
гуру
31.03.25
✎
17:53
Просто наш крупный арендодатель прислал мне письмо со словами:
С Марта 2025 года настоятельно рекомендуем заключать договоры аренды, дополнительные соглашения к ним и соглашения о расторжении договоров в системе электронного документооборота (ЭДО) Контур.Диадок.

Это что, @@@@@, за принуждение нас к покупке какой-то хрени )
24 PLUT
 
31.03.25
✎
17:57
(22) нет, если стандартный модуль не устраивает, то можно накостылять обработку электродокументов согласно своей уникальной "пинзес"-логике

ЭДО это не только отправка электродокументов, но и получение! и не только формализованных, но и неформализованных :)
25 PLUT
 
31.03.25
✎
18:00
(23) между контриками и провайдерами ЭДО есть "роуминг", т.е. не обязательно прям должны Диадок
26 Bigbro
 
31.03.25
✎
20:20
(14) 970 формат Диадок реализовали не в коре а в модуле интеграции полностью
то есть если у вас БП2 - смотрите модуль интеграции БП2 и там секцию сбор контента 970
27 АгентБезопасной Нацио
 
01.04.25
✎
06:23
(23) Ну да, принуждение к ЭДО. точно так же, как государство принуждало переходить на электронную сдачу отчетности.
Договор с провайдером ЭДО - нужен, но не обязательно с Диадоком. Между провайдерами есть роуминг, но есть нюансы и с провайдерами (ЭДО-Лайт не принимал неформализованные документы, например. а договор, протокол - это именно неформализованные), и с роумингом (куда-то при роуминге не уходят МЧД), поэтому нужно проверять. Контур, в принципе, неплох - но охамел знатно. Модули для 1с (они у всех провайдеров свои) можно и не покупать, работать из веб-морды (и вообще не иметь 1с).  Но это на любителя...
28 Alexor
 
01.04.25
✎
11:18
(9) возможно.
В подключаемом модуле можно полностью сформировать свой документ.
Вчера как раз разбирался с этим.

Советую сначала ПМ подключить расширением, что бы отладчик был доступен. Потом можно или оставить расширением или подключить обработкой.
29 АгентБезопасной Нацио
 
01.04.25
✎
07:40
(28) ПМ и так доступен для отладки (как, впрочем, и все остальные внутренние модули). Если используешь его как внешнюю обработку, лежащую где-то на диске - то для применения изменений надо всего лишь перезапустить модуль.
30 Ёпрст
 
01.04.25
✎
08:35
Ну, не все можно сделать через пм. Приходиться и ядро и другие модули править. Особенно, в конфах, где нет бсп и других модулей с типовых, на которые любит ссылаться контур.
31 АгентБезопасной Нацио
 
01.04.25
✎
08:46
(30) а можно пример?
что касается наличия ОМ БСП, и ОМ типовых - так их наличие проверяется, и если не найдены - используются внутренние интеграционные модули. Можно даже свой ИМ написать и назначить.
32 Ёпрст
 
01.04.25
✎
08:51
(31) да легко - свой фильтр в отборе документов. Как сделать в ПМ ?- да никак )
33 Ёпрст
 
01.04.25
✎
08:56
+32 текст запроса получения пакета ты еще подправишь, но вот передачу параметров  - будь добр протащить через ядро
34 АгентБезопасной Нацио
 
01.04.25
✎
08:57
(32) согласен.
35 Bigbro
 
01.04.25
✎
11:39
(30) а потом ловить веселье на обновлениях обработки кривых..
только одно обновление закончил - выясняется что там была куча косяков и они уже новых три версии выпустили.(
36 АгентБезопасной Нацио
 
01.04.25
✎
11:56
(35) ну, все-таки они косячат не сплошняком. потому - по максимуму надо через ПМ. Впрочем, ТС куда-то пропала... Наверное, переписывает код модулей...
37 Bigbro
 
01.04.25
✎
12:41
(36) достаточно там у них косяков. хуже то что они ошибки принимать и исправлять не хотят.
в итоге переписываем код по своему. потом где то через полгода они по своему исправляют а у нас уже по другому переделано, и на это уже другие изменения завязаны.
в итоге ком расхождений только нарастает.
38 Ёпрст
 
01.04.25
✎
13:59
(37) есть такое, говорю в чате, у вас косяк в 970, в 820 норм а
выгружает, а 970 болт. Поправьте свой вэбсервис. И тут начинается, а какая у вас конфа, а дайте то, а дайте это. Написал, чтоб позвали кого-то из взрослых и не ипали мозг.  И...что удивительно, нашелся человек и сказал, как накостылить. Потом, поправили это в след.релизе.
39 АгентБезопасной Нацио
 
01.04.25
✎
14:12
Кстати, а как в новом формате отображается ОСУ с весовым товаром? (товаром с переменным весом) Только по количеству?
40 Клетчатый
 
01.04.25
✎
14:38
Всем привет. Короче настало 1 Апреля, как то упустил данный момент, нужно перенести доработки из ПМ 820 формат в новый 970, предполагаю что нужно ковырять процедуру Заполнить_Utd970SellerContent, только не понял как на неё пробросить вызов. Помогите "пожилому" 1С-нику.
41 kobzon2
 
01.04.25
✎
14:50
(40) Что тут предполагать? Либо использовать ПМ, либо кодить в имеющихся модулях. Почти всё по 970 реализовано в модулях Интеграции. Для каждой конфигурации он свой.
Открыл обработку Диадок, поставил галку Отладка и считай дело сделано.
42 Клетчатый
 
01.04.25
✎
15:01
Диадок включён в конфу, пытаюсь подменить протоконтент. У для каждого адресата свои "погремушки"
43 АгентБезопасной Нацио
 
01.04.25
✎
15:11
(40) В ПМ
Функция ПодготовитьЭлектронныйДокумент(Параметры)
Если ТипЗнч(Параметры) = Тип("Структура") И Параметры.Свойство("Результат_ИМ") Тогда
    Документ1С = Параметры.Результат.Документ1С;
    Контент=Параметры.Результат.Content;
    Если  Параметры.ВидДокументаРазвернутый.ID = "ID_УПД" Тогда
... и тут заполняешь свои, хм, "погремушки"
44 Клетчатый
 
01.04.25
✎
15:14
Спасибо, до этого докопался, вопрос в адресах, таблице номенклатуры (нужно 0000 менять на "-") и ДопСведения.
45 АгентБезопасной Нацио
 
01.04.25
✎
15:17
(44) меняй. "братва не возражает"©
или конкретизируй вопросы...
46 kobzon2
 
01.04.25
✎
15:19
ДопСведения это additionalinfold в Content.
47 Клетчатый
 
01.04.25
✎
15:20
ДопСведения раньше писал в Протоконтент.AdditionalInfoId.StructedAdditionalInfos

Реквизиты продавца раньше менял в Протоконтент.Seller

Номенклатуру менял в Протоконтент.Table.Items
48 Клетчатый
 
01.04.25
✎
15:21
В ПМ-е ПодготовитьЭлектронныйДокумент(Параметры), протоконтент не вижу.
49 АгентБезопасной Нацио
 
01.04.25
✎
15:23
(48) Контент=Параметры.Результат.Content
50 Клетчатый
 
01.04.25
✎
15:26
На этапе ПодготовитьЭлектронныйДокумент, выгружаю параметры на диск, Content = Неопределено
51 АгентБезопасной Нацио
 
01.04.25
✎
15:27
(50) ТрадиционныйКитайскийВопрос™ - анахуа?
52 Клетчатый
 
01.04.25
✎
15:30
Ну когда то это было удобно для отладки.
53 АгентБезопасной Нацио
 
01.04.25
✎
15:32
(52) а в отладчике забанили?
54 Клетчатый
 
01.04.25
✎
15:34
Как ПМ, загруженный как внешняя обработка отладить можно ?
55 АгентБезопасной Нацио
 
01.04.25
✎
15:38
(54) выгрузи, пропиши, что ПМ на диске, да и отлаживай.
56 Клетчатый
 
01.04.25
✎
15:49
Ладно, потом с отладкой поиграюсь.
Сейчас пытаюсь писать в контент, получаю по всей морде
"Индекс находится за границами массива"
ДополнитьМассивKeyValue(Контент.AdditionalInfoId.StructedAdditionalInfos, "Договор", "ДопСведения");

Есть подозрение что нужно использовать что то вроде УстановитьЗначениеXDTO
57 lucky_
 
01.04.25
✎
15:55
(56) Есть подозрение, что вы забыли про проверку из (43)
58 АгентБезопасной Нацио
 
01.04.25
✎
15:59
(56) заслуженно.
59 Клетчатый
 
01.04.25
✎
16:01
Если ТипЗнч(Параметры) = Тип("Структура") И Параметры.Свойство("Результат_ИМ") Тогда
        
        Документ1С = Параметры.Результат.Документ1С;
        
        Если Параметры.ВидДокументаРазвернутый.ID = "ID_СчетФактура" Тогда

Проверка есть
60 Клетчатый
 
01.04.25
✎
16:05
Похоже забыл сначала
    Для Сч = 1 По 0 Цикл
        НовЭлемент = НовыйЭлементСпискаXDTO(Контент.StructedAdditionalInfos);
        Заполнить_AdditionalInfoItem(НовЭлемент, Неопределено);
    КонецЦикла;
61 Злопчинский
 
01.04.25
✎
16:08
А подскажите, как это должно быть в XML-файле в итоге:
.
"П" - простой элемент логической модели, реализованный в виде элемента XML-файла.
.
так:
<КрНаимСтрПр>Китай</КрНаимСтрПр>
.
?
62 Клетчатый
 
01.04.25
✎
16:17
Неужели никто не делал в ПМ 970, замену данных в процедуре ПодготовитьЭлектронныйДокумент?
Поделитесь куском "интеллекта"
63 Andy13
 
01.04.25
✎
16:20
(62) У меня так это сделано...
    Если ВРег(ТипКонтента_XDTO) = "UTD970SELLERCONTENT" Тогда // Это 970
        Если ОсновнойМодуль.ТипСоответствуетКонтентуУПД(ВидДокументаРазвернутый)
            Или ОсновнойМодуль.ТипСоответствуетКонтентуУКД(ВидДокументаРазвернутый) Тогда
            ПослеСозданияДокумента    = ?(Параметры.Свойство("Результат_ИМ", ПослеСозданияДокумента), ПослеСозданияДокумента, Ложь);
            ТиповоеОснование = ПолучитьТиповыеОснования(Документ1С);
            Если ТиповоеОснование = Неопределено Тогда    // Нестандартный документ (Начисление арендной платы и его СФ)

                Если ПослеСозданияДокумента Тогда        // Доработка уже созданного электронного документа
                    
                Иначе                                     // Создание электронного документа. ("Начисление арендной платы" и его счет - фактура)
                    ПодготовитьЭлектронныйДокумент970(Параметры);
                    Возврат Истина;
                КонецЕсли;
                
            КонецЕсли;
        КонецЕсли;
    КонецЕсли;
64 Andy13
 
01.04.25
✎
16:22
Дополняю.

ТипКонтента_XDTO = Параметры.ВидДокументаРазвернутый.ТипКонтента;
65 Клетчатый
 
01.04.25
✎
16:26
Спасибо, вопрос в модификации контента, есть большое подозрение, что контента нет.
66 Andy13
 
01.04.25
✎
16:26
Процедура "ПодготовитьЭлектронныйДокумент" может выполняться дважды. До и после типовой процедуры.
67 Клетчатый
 
01.04.25
✎
16:27
Покажи кусок из твоего ПодготовитьЭлектронныйДокумент970
где модифицируешь данные
68 Andy13
 
01.04.25
✎
16:55
Включаете режим отладки, выгружаете (создаете) ПМ. Указываете расположение ПМ на диске и работаете с отладчиком.
69 Andy13
 
01.04.25
✎
16:31
Функция ПодготовитьЭлектронныйДокумент970(Параметры)
    
    //https://developer.kontur.ru/Docs/Diadoc_UM/func/Podgotovit%27ElektronnyyDokument.html
    
    Результат = Параметры.Результат;
    
    ВидДокументаРазвернутый = Параметры.ВидДокументаРазвернутый;
    ДополнительныеПараметры = Параметры.ДополнительныеПараметры;
    ДанныеСотрудника        = Параметры.ДанныеСотрудника;
    
    ДанныеОрганизации = ОсновнойМодуль.Организации_ЗаполненныеРеквизиты(, Результат.BoxID);
    
    УказыватьОтсутствиеОснованияУПД    = ДанныеОрганизации.УказыватьОтсутствиеОснованияУПД;
    
    Документ1С                    = Результат.Документ1С;
    ДокументыОснования            = Результат.ДокументыОснования;
    ВидДокументаНаименование    = ВидДокументаРазвернутый.Наименование;
    
    ID                            = ВидДокументаРазвернутый.ID;
    ТипКонтента_XDTO            = ВидДокументаРазвернутый.ТипКонтента;    
    TypeNamedId                    = ВидДокументаРазвернутый.TypeNamedId;
    FormatVersion                = ВидДокументаРазвернутый.FormatVersion;
    FunctionName                = ВидДокументаРазвернутый.FunctionName;

    //Получим функцию документа, которая используется в типовом модуле
    ФункцияУПД = ФункцияДокументаДляXML(TypeNamedId, FunctionName);
    ДополнительныеПараметры = Новый Структура;
    
    ДополнительныеПараметры.Вставить("УказыватьОтсутствиеОснованияУПД", УказыватьОтсутствиеОснованияУПД);
    
    ДополнительныеПараметры.Вставить("ПараметрыСогласования", Неопределено);
    ДополнительныеПараметры.Вставить("ДанныеСотрудника"        , ДанныеСотрудника); // Графа 10 (РабОргПрод)
    
    ДополнительныеПараметры.Вставить("ФИОПодписанта", " ");
    ДополнительныеПараметры.Вставить("ФункцияУПД"    , ФункцияУПД);
    
    ДополнительныеПараметры.Вставить("FormatVersion", FormatVersion);

//    Результат.Вставить("ДополнительныеСведенияСтрокой");
    ДополнительныеПараметры.Вставить("ТочностьЦены", 2);
    ДополнительныеПараметры.Вставить("ТочностьКоличества", 3);
    
    
    
    НеИспользуется_ТиповойМодуль        = Истина;
    НеИспользуется_РежимУправляемыхФорм    = Истина;
    
    СтруктураКонтента    = ОсновнойМодуль.ОбъектXDTOВСтруктуру(НовыйКонтент(ТипКонтента_XDTO), Истина);
    Если ТипЗнч(Документ1С) = Тип("ДокументСсылка.СчетФактураВыданный") Тогда
        ВидСчетаФактуры = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Документ1С, "ВидСчетаФактуры");
        
        Если ВидСчетаФактуры = Перечисления.ВидСчетаФактурыВыставленного.НаАванс
                    Или ВидСчетаФактуры = Перечисления.ВидСчетаФактурыВыставленного.НаАвансКомитента
                    Или ВидСчетаФактуры = Перечисления.ВидСчетаФактурыВыставленного.КорректировочныйНаАванс Тогда
        
        Иначе

            УПД970_КонтентТитулаПродавца_СчетФактураВыданный(СтруктураКонтента, Документ1С, ФункцияУПД, ДополнительныеПараметры);
        КонецЕсли;
        
    ИначеЕсли ТипЗнч(Документ1С) = Тип("ДокументСсылка.АР_НачислениеАренднойПлаты") Тогда
        УПД970_КонтентТитулаПродавца_РеализацияТоваровУслуг(СтруктураКонтента, Документ1С, ФункцияУПД, ДополнительныеПараметры);
    КонецЕсли;
    
    ОсновнойМодуль.ЗаполнитьКонтентXDTOПоСтруктуре(Результат.Content, СтруктураКонтента);
        

КонецФункции // ПодготовитьЭлектронныйДокумент970
70 Злопчинский
 
01.04.25
✎
16:33
(61) типа вот так?
71 Клетчатый
 
01.04.25
✎
16:34
УПД970_КонтентТитулаПродавца_СчетФактураВыданный.Это откуда?
72 Andy13
 
01.04.25
✎
16:35
В общем лезешь в модуль "КонтурДиадокИнтеграцияБП20" или другой подходящий по конфе и копипастишь куски оттуда.
73 Злопчинский
 
01.04.25
✎
16:36
(70) Разобрался.
да, так
74 Клетчатый
 
01.04.25
✎
16:39
Я грешным делом думал обойтись шаблоном ПМ, а тут полный жоп.
75 Andy13
 
01.04.25
✎
16:45
А что тебе надо нестандартного? У меня вот был нестандартный документ который надо было перекрасить в акт оказания услуг. А что тебе надо? Может и не надо создавать новый, а просто подрихтовать уже созданный? Тогда это проще намного.
76 Ёпрст
 
01.04.25
✎
16:45
77 Ёпрст
 
01.04.25
✎
16:45
+76 ну там слева выбрать нужный раздел тока.
78 Клетчатый
 
01.04.25
✎
16:54
Сейчас смотрю ПМ_БП_30_epf там совсем другой ПодготовитьЭлектронныйДокумент, чем в шаблоне, попробую оттуда дёрнуть.
79 Andy13
 
01.04.25
✎
16:54
(78) Окстись. Это у тебя ОЧЕНЬ старая версия. Не прокатит.
80 Andy13
 
01.04.25
✎
16:53
В новых версиях это называется "КонтурДиадокИнтеграцияБП30"
81 Andy13
 
01.04.25
✎
16:54
И ещё раз. Что за документ впихивашь?
82 Клетчатый
 
01.04.25
✎
17:07
СФ выданную.
меняю продавца
ДопСведения
и код единицы измерения с 0000 на "-"
83 Bigbro
 
01.04.25
✎
17:21
интересно откуда вылезает код единицы измерения 0000 он вроде нигде не передается такой
84 Клетчатый
 
01.04.25
✎
17:25
В контент мне передаётся Строка {"#",6ba5c161-bef5-4a06-909d-183a02027242}  я фигею, самыми разными методами.
85 Andy13
 
01.04.25
✎
17:43
(82) Тут дело простое. Новый создавать не надо, подрихтовать уже созданный.
86 Клетчатый
 
01.04.25
✎
17:49
Андрей, смысл в том что я не получаю контент.
87 Клетчатый
 
01.04.25
✎
17:57
Старый это модуль Стандарт.
Делаю новый, подключаю.
И в Функция ПодготовитьЭлектронныйДокумент970(Параметры)
не могу получить контент, по крайней мере он у меня отражается после ОсновнойМодуль.ЗаполнитьКонтентXDTOПоСтруктуре(Результат.Content, СтруктураКонтента);
как строка {"#",6ba5c161-bef5-4a06-909d-183a02027242}
88 Клетчатый
 
01.04.25
✎
18:03
А после какого события, вызываешь ПодготовитьЭлектронныйДокумент970 ????
89 Клетчатый
 
01.04.25
✎
18:16
Заработала "Шайтан арба", после события
ИначеЕсли ИмяСобытия = "ПослеПодготовкиПакета" Тогда
90 АгентБезопасной Нацио
 
01.04.25
✎
18:23
(78)
1.бери новую версию диадока.
2.Делай ПМ для новой версии, на диске.
3.Убирай старый ПМ для "стандарта" (ну или из него убери ОбработатьСобытиеПослеЗаполненияКонтента).
4.Перехватывай в новом ПМ ПриСозданииЭлектронногоДокумента, когда в нем уже есть свойство РезультатИМ (т.е. уже отработал модуль интеграции, заполнил контент).
5.Изменяй контент так, как душе заблОгАрОссудится, в рамках правил @970, и отдавай его дальше... всё....
91 АгентБезопасной Нацио
 
01.04.25
✎
18:26
(89) ПослеПодготовкиПакета используется, если надо обработать уже не один документ, а пакет в котором может быть несколько доков - например, основной УПД, плюс все УКД к этому УПД... Или УПД, и несколько неформализованных. ссылки на доку приведены в самом начале...
92 АгентБезопасной Нацио
 
01.04.25
✎
18:30
(82) за код единицы измерения как 0000, так и "-" - опять получишь по жопе, и будешь жаловаться. Либо из классификатора, либо пусто для услуг. Хотя в последнем могу наврать - лень лезть из дома на работу для проверки
93 Клетчатый
 
01.04.25
✎
18:50
Спс, насчёт 0000 и "-", уже говорил менеджерам.
Но им так надо.
Всем спасибо, заработало после ПослеПодготовкиПакета, да приходится перебирать пакеты, но оно работает.
94 АгентБезопасной Нацио
 
01.04.25
✎
18:57
(93) "Друг Аркадий, не говори красиво - говори правильно!"©
Делай сразу правильно, и не придется трахаться в следующий раз
95 Клетчатый
 
01.04.25
✎
19:00
Завтра, покажу как Диадок ругается, может дойдёт до неразумных.
96 Злопчинский
 
01.04.25
✎
20:37
Заткнулся.
Что надо указывать для Контур.Диадок
в теге СведТов для
ИнфПолФХЖ2 - валидатор https://www.diadoc.ru/docs/forms/validation-xml не пропускает, требует...
.
?
97 Ёпрст
 
01.04.25
✎
23:15
(96) см.(76) там есть все примеры для маркировки

примеры жешь есть в тырнете
<ДопСведТов ПрТовРаб="1" КодТов="513357" НаимЕдИзм="шт" />
 <ИнфПолФХЖ2 Идентиф="НарядЗаказ" Значен="П-5654/28" />
 <ИнфПолФХЖ2 Идентиф="КодЕНС" Значен="292019" />
 <ИнфПолФХЖ2 Идентиф="СпецификацияНомер" Значен="002643-039188(МСМЦ002615)" />
 <ИнфПолФХЖ2 Идентиф="СпецификацияДата" Значен="25.09.2020" />
 <ИнфПолФХЖ2 Идентиф="УникНомерМеста" Значен="12000056822160317002" />
 <ИнфПолФХЖ2 Идентиф="НомерМеста" Значен="2" />
 <ИнфПолФХЖ2 Идентиф="ВесМестаБрутто" Значен="4" />
 <ИнфПолФХЖ2 Идентиф="ВесМестаНетто" Значен="35" />
 <ИнфПолФХЖ2 Идентиф="ОбъемМестаБрутто" Значен="1.3" />
 <ИнфПолФХЖ2 Идентиф="ОбъемМестаНетто" Значен="1.2" />
 <ИнфПолФХЖ2 Идентиф="ДлинаМеста" Значен="1" />
 <ИнфПолФХЖ2 Идентиф="ШиринаМеста" Значен="1.80" />
 <ИнфПолФХЖ2 Идентиф="ВысотаМеста" Значен="0.9" />
 <ИнфПолФХЖ2 Идентиф="ТранспортныйДокНомер" Значен="АМ555-2" />
 <ИнфПолФХЖ2 Идентиф="ТранспортныйДокДата" Значен="19.10.2020" />
98 Злопчинский
 
02.04.25
✎
01:20
(97) в версии 5.03, табл 5.15 ДопСведТов не вижу атрибута НаимЕдИзм.
https://normativ.kontur.ru/document?moduleId=1&documentId=486791#h6112
.

ээээ!
это именно для Контур.Диадок?
.
потому как я впихнул простую заглушку
<ИнфПолФХЖ2 Идентиф="штрихкод" Значен="1234567890123" />
указанное проглатывает (это понятно), но все равно ругается (это непонятно).
Такое ощущение что ИнфПолФХЖ2 должен быть с каким-то вполне определенным Идентиф, специфическим для обмена через Контур.Диадок.
Или какая-то наведенная ошибка.
99 Злопчинский
 
02.04.25
✎
01:38
Может у кого есть живой реальный xml из ЛК контур.диадок с импортными товарами/гтд - киньте в личку на посмотреть на e.meil@mail.ru
Спасибо
100 Злопчинский
 
02.04.25
✎
01:22
товары на которых тренируюсь - немарикируемые, непрослеживаемые.
101 Злопчинский
 
02.04.25
✎
01:50
(97) вот если выкинуть тег ДопСведТов - то прокатывает.
но так не полчится, потому что для импортных товаров надо указывать в этом теге инфу для КрНаимСтрПр - наименование страны происхождения товара, да и необязательный КодТов, например, может пригодиться
102 Злопчинский
 
02.04.25
✎
01:51
кто шарит в формате - может поправят меня, растолкуют... что не так...
103 Злопчинский
 
02.04.25
✎
02:30
так. клюшечники не сдаются, клюшечники мстят!
.
На данном этапе отладки ситуация поправилась когда
узел <ДопСведТов> положил сразу после открытия тега <СведТов>
но здесь https://normativ.kontur.ru/document?moduleId=1&documentId=486791#h6112
про обязательный порядок тегов/узлов ничегошеньки нет (не нашел/не увидел).
.
Хорошо бы заиметь XSD для формата 5.03
а то придется лезть искать где-то на сайте налоговой
.
когда сам пилил когда-то выгрузку - в конце обязательно ставил проверку по XSD? а тут в адской самописной конфе плбющит и таращит меня страшно.
.
Извиняюсь за беспокойство.
104 Злопчинский
 
02.04.25
✎
02:33
полезное по мелочи https://buh.ru/news/fns-obyasnila-kak-izmenilsya-elektronnyy-format-scheta-faktury-i-upd.html
по письму письмо ФНС от 26.03.2025 № ЕА-4-26/3241@.
Оригинал: https://v8.1c.ru/lawmonitor/852234dc-0ae1-11f0-8ce1-005056bea45e.htm
105 Злопчинский
 
02.04.25
✎
02:35
это только наша любимая прога/сопровожденцы могут уведомить что xsd изменилась , но ссылку на XSD не дать...
https://v8.1c.ru/lawmonitor/852234dc-0ae1-11f0-8ce1-005056bea45e.htm
106 Злопчинский
 
02.04.25
✎
02:40
(103) попытки положить ДопСведТов в другое место внутри узла СведТов - приводят к тому, что валидатор Контур.Диадок - ругается...
.
xsd на 5.03 пока не нашел
и чем определяется/как понять порядок тегов/узлов - непонятно...
107 Злопчинский
 
02.04.25
✎
03:24
судя по всему последние XSD для 5.03 здесь https://www.nalog.gov.ru/rn77/about_fts/docs/15556529/
108 Злопчинский
 
02.04.25
✎
03:45
узел СвДТ тоже требуется класть во вполне определенное место в узле СведТов.
как это понять по XSD - хз. Может кто подскажет?
ориентироватьяс что если в XSD определение тега/узла лежит за определением какого-то другого тега/узла - так и надо класть при формировании XML?
109 Злопчинский
 
02.04.25
✎
03:54
далее:
порядок узлов (по крайней мере тех, которые "интересны" мне) чтобы валидатор пропускал должен быть таким
СведТов
  СвДТ
  ДопСведТов

такой порядок соответствует порядку следования этих узлов в XSD в (107)
110 Злопчинский
 
02.04.25
✎
03:58
ну и что самое обидное
в человекочитаемом описании Таблица 5.12
https://normativ.kontur.ru/document?moduleId=1&documentId=486791#h6112
порядок узлов соответствует XSD
но бляха муха совсем не очевидно что последовательность должна быть именно такой.
И вся трабла, что майстрячить пришлось на основе какой-то до этого работавшей выгрузки, а новые и измененные узлы совсем неочевидно было мне что надо класть строго (хотя я об этом знаю, что такие требования есть, но блин они же ИМХО должны описываться как-то явно, а не только просто раположением узлов в документации и слеованием описаний ы XSD
111 Злопчинский
 
02.04.25
✎
04:00
Самое обидное-2: я обычно пишу свой код.
и скольо выгрузок писал - писал по человекочитаемой документации, встретилось описание узла/тега - вбвбвхиваю его. Поэтому не было проблем с порядком следования.
А тут адская самлписная конфига не имеющая ничего общего ни с однйо типовой, тяжелый грязный код. охерительнеы архитектурые решения просто упасть итд. Решил взять за основу что было ибо хз что там "у нее унутре".
на тебе абвгдэйку!!!
112 Злопчинский
 
02.04.25
✎
04:01
Короче.
Пойду застрелюсь.
113 vladmenleo
 
02.04.25
✎
05:18
(106) плохо ищешь https://formats.saby.ru/edo/standart/117134?version=141251
там и описание и хсд и пример
114 Sneer
 
02.04.25
✎
08:04
					ЗаписьXML.ЗаписатьНачалоЭлемента("СведТов");
						ЗаписьXML.ЗаписатьАтрибут("КолТов", Формат(Стр.Количество, "ЧЦ=15; ЧДЦ=3; ЧРД=.; ЧГ=0"));
						ЗаписьXML.ЗаписатьАтрибут("СтТовУчНал", Формат(Стр.Сумма, "ЧЦ=15; ЧДЦ=2; ЧРД=.; ЧГ=0"));
						Если Стр.СтавкаНДС = Перечисления.СтавкиНДС.БезНДС Тогда
	       					ЗаписьXML.ЗаписатьАтрибут("НалСт", "без НДС");
       					Иначе
							ЗаписьXML.ЗаписатьАтрибут("НалСт", Строка(Стр.СтавкаНДС));
       					КонецЕсли;
						ЗаписьXML.ЗаписатьАтрибут("СтТовБезНДС", Формат(Стр.Сумма - Стр.СуммаНДС, "ЧЦ=15; ЧДЦ=2; ЧРД=.; ЧГ=0"));
						ЗаписьXML.ЗаписатьАтрибут("ЦенаТов", Формат((Стр.Сумма - Стр.СуммаНДС) / Стр.Количество, "ЧЦ=15; ЧДЦ=2; ЧРД=.; ЧГ=0"));
						ЗаписьXML.ЗаписатьАтрибут("ОКЕИ_Тов", Стр.Номенклатура.ЕдиницаИзмерения.Код);
						ЗаписьXML.ЗаписатьАтрибут("НаимЕдИзм", Стр.Номенклатура.ЕдиницаИзмерения.Наименование);
						ЗаписьXML.ЗаписатьАтрибут("НаимТов", ?(ПустаяСтрока(Стр.Содержание), ?(ПустаяСтрока(Стр.Номенклатура.НаименованиеПолное), Стр.Номенклатура.Наименование, Стр.Номенклатура.НаименованиеПолное), Стр.Содержание));
						ЗаписьXML.ЗаписатьАтрибут("НомСтр", Формат(Ном, "ЧЦ=15; ЧДЦ=0; ЧГ=0"));

						Если Не Стр.НомерГТД.Пустая() Тогда
							ЗаписьXML.ЗаписатьНачалоЭлемента("СвДТ");
								ЗаписьXML.ЗаписатьАтрибут("НомерДТ", СокрЛП(Стр.НомерГТД.Код));
								ЗаписьXML.ЗаписатьАтрибут("КодПроисх", Стр.СтранаПроисхождения.Код);
							ЗаписьXML.ЗаписатьКонецЭлемента();
						КонецЕсли;

						ЗаписьXML.ЗаписатьНачалоЭлемента("ДопСведТов");
							ЗаписьXML.ЗаписатьАтрибут("КодТов", Стр.Номенклатура.Код);
							ЗаписьXML.ЗаписатьАтрибут("ПрТовРаб", ?(Стр.Номенклатура.Услуга, "3", "1"));
							Если Не Стр.СтранаПроисхождения.Пустая() Тогда
								ЗаписьXML.ЗаписатьНачалоЭлемента("КрНаимСтрПр");
								ЗаписьXML.ЗаписатьТекст(Стр.СтранаПроисхождения.Наименование);
								ЗаписьXML.ЗаписатьКонецЭлемента();
							КонецЕсли;
						ЗаписьXML.ЗаписатьКонецЭлемента();

						ЗаписьXML.ЗаписатьНачалоЭлемента("Акциз");
							ЗаписьXML.ЗаписатьНачалоЭлемента("БезАкциз");
								ЗаписьXML.ЗаписатьТекст("без акциза");
							ЗаписьXML.ЗаписатьКонецЭлемента();
						ЗаписьXML.ЗаписатьКонецЭлемента();
						
						ЗаписьXML.ЗаписатьНачалоЭлемента("СумНал");
							Если Стр.СтавкаНДС = Перечисления.СтавкиНДС.БезНДС Тогда
								ЗаписьXML.ЗаписатьНачалоЭлемента("БезНДС");
									ЗаписьXML.ЗаписатьТекст("без НДС");
								ЗаписьXML.ЗаписатьКонецЭлемента();
							Иначе
								ЗаписьXML.ЗаписатьНачалоЭлемента("СумНал");
									ЗаписьXML.ЗаписатьТекст(Формат(Стр.СуммаНДС, "ЧЦ=15; ЧДЦ=2; ЧРД=.; ЧН=0; ЧГ=0"));
								ЗаписьXML.ЗаписатьКонецЭлемента();
							КонецЕсли;
						ЗаписьXML.ЗаписатьКонецЭлемента();
						
						Если Не НеВыгружатьИД Тогда
							ЗаписьXML.ЗаписатьНачалоЭлемента("ИнфПолФХЖ2");
								ЗаписьXML.ЗаписатьАтрибут("Значен", Строка(Стр.Номенклатура.УникальныйИдентификатор()));
								ЗаписьXML.ЗаписатьАтрибут("Идентиф", "ИД");
							ЗаписьXML.ЗаписатьКонецЭлемента();
						КонецЕсли;
					ЗаписьXML.ЗаписатьКонецЭлемента();



(108) вот так проходит контроль
115 Злопчинский
 
02.04.25
✎
09:39
(113) ага, удобно.
спсб.
справился уже
116 Клетчатый
 
02.04.25
✎
11:14
Прошу помощи. С XDTO не работал, поэтому в модулях Диадок - плаваю. Вчера разобрался и получил Контент в Событии ПодготовитьЭлектронныйДокумент, сейчас не могу добавить "Дополнительные сведения" в контент.AdditionalInfoId.StructedAdditionalInfos

очень нужна помощь
117 lucky_
 
02.04.25
✎
11:16
(116) заплатить Контуру не предлагать?
118 Andy13
 
02.04.25
✎
11:23
И не разбирайся. Есть простой путь. Посмотри в (69), там есть такая строчка:
СтруктураКонтента    = ОсновнойМодуль.ОбъектXDTOВСтруктуру(НовыйКонтент(ТипКонтента_XDTO), Истина);
Подставь вместо "НовыйКонтент(ТипКонтента_XDTO)" свой полученный контент. Получишь контент в виде структуры. Ну  и там всё просто добавляется/изменяется/удаляется.
Потом с помощью ОсновнойМодуль.ЗаполнитьКонтентXDTOПоСтруктуре(Результат.Content, СтруктураКонтента); преобразуешь обратно в XML.
119 Andy13
 
02.04.25
✎
11:25
(117) Это зло даже не предлагать! Я пытался.
120 rozer76
 
02.04.25
✎
11:27
(116) например штрихкод, вот огрызок в ПодклМодуле (ПМ)

Протоконтент= ОсновнойМодуль.ТиповойМодуль_ПолучитьКонтент(ТиповойМодуль, РежимУправляемыхФорм, Документ1С, ТипКонтента_XDTO, ДополнительныеПараметры);

Таблица = Протоконтент.InvoiceCorrectionTable.Items;
                Для каждого СтрокаТЧ Из Таблица Цикл  
                    ДополнитьМассивKeyValue(СтрокаТЧ.StructedAdditionalInfos
                        , "штрихкод"
                        , СвояФункцияПолучитьШКТовараПоПартнеру(СтрокаТЧ.СлужебнаяИнформация.Номенклатура, ОбщегоНазначения.ЗначениеРеквизитаОбъекта(СсылкаНаДокумент.Контрагент,"Партнер")));
КонецЦикла;

Процедура ДополнитьМассивKeyValue(Массив, Key, Value)
    НовыйЭлемент = Новый Структура;
    НовыйЭлемент.Вставить("Key",    Key);
    НовыйЭлемент.Вставить("Value",    Value);
    Массив.Добавить(НовыйЭлемент);
КонецПроцедуры
121 Клетчатый
 
02.04.25
✎
11:26
Андрей, я не уверен что мне нужен XML, там задача подменить в созданном документе "кое что", с этим справился, а вот как добавить Дополнительные сведения - глухо.
122 Andy13
 
02.04.25
✎
11:29
Дополнительные сведения сидят в контенте. Пустые. Надо их найти и заполнить.
123 Клетчатый
 
02.04.25
✎
11:29
Вот как раз с помощью ДополнитьМассивKeyValue не могу добавить         ДополнитьМассивKeyValue(Протоконтент.AdditionalInfoId.StructedAdditionalInfos, "Договор", ДопСведения);
124 АгентБезопасной Нацио
 
02.04.25
✎
11:31
(116) ну вот и повод начать работать с XDTO.

Например, добавить функции

Функция НовыйКонтент(ИмяКонтента,СоздатьВсеСвойства=Истина)
    Возврат ОсновнойМодуль.ДД_Компонента_ПолучитьПустойКонтент(ИмяКонтента,СоздатьВсеСвойства);
КонецФункции

Функция НовыйЭлементСпискаXDTO(СписокXDTO,СоздатьВсеСвойства=Истина)
    НовыйКонтент = НовыйКонтент(СписокXDTO.ВладеющееСвойство.Тип.Имя,СоздатьВсеСвойства);
    Возврат СписокXDTO.Добавить(НовыйКонтент);
КонецФункции

Функция НовыйЭлементСпискаXDTOСоЗначением(СписокXDTO,ЗначениеЭлемента)
    НовыйКонтент = НовыйКонтент(СписокXDTO.ВладеющееСвойство.Тип.Имя,Ложь);
    Возврат СписокXDTO.Добавить(ЗначениеЭлемента);
КонецФункции

Процедура ДобавитьВКонтент(ЭлементСписка,СтруктураДанных)
    НовыйЭлементСписка = НовыйЭлементСпискаXDTO(ЭлементСписка);
    ЗаполнитьЗначенияСвойств(НовыйЭлементСписка,СтруктураДанных);
КонецПроцедуры

И в ПодготовитьЭлектронныйДокумент что-то вроде
//ДобавитьВКонтент(Элемент.StructedAdditionalInfos,Новый Структура("key,value","ЧЗ_ОСУ",РегВырЧЗОСУ));
125 Клетчатый
 
02.04.25
✎
11:31
по причине:
Несоответствие типов XDTO:
Тип '{http://diadoc.kontur.ru/dll_types}AdditionalInfoItem' не найден
126 АгентБезопасной Нацио
 
02.04.25
✎
11:33
(118) тоже вариант!©
127 АгентБезопасной Нацио
 
02.04.25
✎
11:36
(125) научись для начала правильно задавать вопросы....
Типа "пытаюсь получить *, делаю**, получаю ***", и указывать в постах номер сообщения, на которое отвечаешь.  а то, например, (125) относится хп к чему...
128 Клетчатый
 
02.04.25
✎
11:46
(125) относится к (123) в рамках ответа на (120).

(124) Спасибо большое - очень помогли.
129 АгентБезопасной Нацио
 
02.04.25
✎
12:00
(76) ага, спасибо, понял. Т.е., если я правильно понял, ЧЗ теперь сам опирается на признак товара переменного веса в НК, и берет для товара переменного значение из Количества...
130 Djelf
 
02.04.25
✎
12:09
(23) Откат от Контура получателю это обычное дело.
Но не получается у них нормализовать откат через роуминг провайдеров.
Поэтому такие требования.
Можно "забить" на эти требования Контура, УПД все равно проходить будут.
131 Bigbro
 
02.04.25
✎
14:13
за 5 дней уже 3 версии Диадок выпустили.
продолжают исправлять контент по 970
132 АгентБезопасной Нацио
 
02.04.25
✎
14:31
(131) хм. а что такого исправили? у меня вроде валидацию проходит, ЧЗ проходит, контра не жалуется (точнее, жаловалась, но это мои косяки были)
133 Andy13
 
02.04.25
✎
14:55
(132) Ну например косяк был формировании СФ на аванс для УПП.
134 АгентБезопасной Нацио
 
02.04.25
✎
15:01
(133) Понятно. У меня ограниченные задачи и КА/УТ, видимо, меня не зацепило...
135 Bigbro
 
02.04.25
✎
15:16
(132) проверки на ноль, с заменами на единицы у количества, там был новый приказ с другим правилом теперь в некоторых случаях можно ставить ноль, когда раньше он на единицу заменялся.
по адресам много изменений с проверками и раскрутками по форматам классификаторов.
ну и еще какие то детали возможно исправление старых ошибок.
подозреваю что это не последнее, потому что сейчас начнутся корректировки 970 форматом старых документов оформленных в 820 формате и там сто процентов будут накладки.
136 АгентБезопасной Нацио
 
02.04.25
✎
15:40
(135) кстати, а УКД? я не нашел упоминаний об их изменении... Поэтому все отправляем по-старому, 736, с "регулярным выражением", и пока проходит...
137 rozer76
 
02.04.25
✎
21:50
(136) УКД это позже..немного
138 Мисти
 
02.04.25
✎
22:20
А мне показалось, что тему закрыли! А она вот!
Я всё еще в процессе. Вопрос такой - при запуске обработки Диадок - она, видимо, "компилируется" - т.е. преобразует макеты в обработки и куда-то их сохраняет, чтобы потом запускать. Так? У меня явно эти "скомпилированные" обработки где-то зависли, потому что я отменила всякую отладочную печать, а она продолжает печататься! Как заставить ее заново выгрузить из себя все обработки из макетов?
139 Мисти
 
02.04.25
✎
22:29
(124) очень нужен совет по xdto, куда можно написать?
140 Ёпрст
 
02.04.25
✎
22:40
(138) выгрузить - галка режим отладки. Загрузить - ручонками в нужный макет
141 Мисти
 
03.04.25
✎
01:09
(140) нет, моя проблема не в этом. При вызове программы продолжает работать то, что было в эти макеты вставлено вчера! Сегодня там уже другое! Но по отладочной печати я вижу, что работают старые модули.
142 Bigbro
 
03.04.25
✎
05:24
(141) если галка режим отладки стоит то запускаются выгруженные на диск модули, даже если в обработку уже загрузили другие.
или отладку убирайте или выгружайте повторно.
ну или вы не ту версию запускаете, бывает путаница когда обработок много
143 Ёпрст
 
03.04.25
✎
06:47
(141) переоткрой предприятие
144 АгентБезопасной Нацио
 
03.04.25
✎
08:53
(139) дык сюда и пиши.
(138) ничо нигде не "компилируется". При работе либо создаются внешние обработки из макетов (если режим отладки не включен), либо используются уже выгруженные для отладки в /libs и /include каталога запуска обработки(если отладка включена). И нехрен там исправлять, вам однозначно хватит ПМа
145 Мисти
 
03.04.25
✎
18:50
Основание передачи (сдачи) / получения (приемки) - как у них это поле называется?
146 АгентБезопасной Нацио
 
03.04.25
✎
19:01
(145) а что мешает поискать в ссылке из (6)? что?
Накрайняк, поискать в приказе фнс, и потом найти в (6) по имени тега  https://developer.kontur.ru/Docs/Diadoc_UM/objects/970%40/TransferInfo970.html ? Ошибка в ДНК?
147 Мисти
 
03.04.25
✎
19:16
Спасибо! Знать бы где искать!
148 Мисти
 
03.04.25
✎
19:17
обидно, что они там по ходу дела ДокументУчета теряют, как раньше было удобно! И их структура перед глазами и мой начальный документ, из которого удобно взять всё, что нужно.
149 АгентБезопасной Нацио
 
03.04.25
✎
19:31
(148) ничего они не теряют. см (43). бери - не хочу. Хоть вообще всё.
150 АгентБезопасной Нацио
 
03.04.25
✎
19:35
(147)
Программист сидит в баре и пьет пиво. Подходит к нему девица и, заигрывая, спрашивает:
- Молодой человек, а сколько сейчас времени, хи-хи, не подскажете?
Программист берет ее за руку, показывает на часы на ее руке и с ненавистью в голосе говорит:
- ВОТ ЗДЕСЬ... ВСЕ.... НАПИСАНО!!!
©
В документации искать, где же еще. Я еще бы понимал, если б ссылки на доку не были в первом десятке ответов...
151 Мисти
 
03.04.25
✎
19:38
Где я и где первый десяток?? ))
152 АгентБезопасной Нацио
 
03.04.25
✎
19:39
(151) в восьмом и девятом ответах...
153 Мисти
 
03.04.25
✎
19:42
Ладно, согласна, пусть ПМ. "Сгенерировать Шаблон" - получила текст. Куда его??
154 Мисти
 
03.04.25
✎
19:56
Не удалось подключить ПМ (путь к ПМ = Кос_ПМ_Диадок; расположение = Конфигурация) по причине:
Поле объекта не обнаружено (ОсновнойМодуль)
155 Bigbro
 
03.04.25
✎
20:07
"Цветы, дети, политика, театр, архитектура" - мне кажется лучше вам все же заняться этим.
156 Мисти
 
03.04.25
✎
20:33
нет ни одной задачки, которую бы я не решила - мытьем или катаньем.
с ПМ не идет дело. Буду править в модулях! Подскажите, в каком модуле есть еще ссылка на первичный документ?
157 Bigbro
 
03.04.25
✎
21:14
Берешь интеграционный модуль для 1с Молокозавод Казахстан и там смотришь блок формирование контента 970.
соответственно везде где идут вызовы этого модуля и возвращается content это оно и есть.
158 Alexor
 
03.04.25
✎
22:51
(153) Создай пустую обработку. Или внешний файл или расширение. Этот тест скопировать в модуль обработки.
Если внешняя то подключить ее.
В Обработке Диадок указать либо в составе конфигурации либо выбрать из справочника.


Контент менять в
Функции ПодготовитьЭлектронныйДокумент()
Там шаблонами накидывает разные варианты.
Единственное, что у меня не сработало.
В шаблоне прописан Возврат Истина.
Я не особо разбирался, что возвращать должно, но не булево.
Просто сделал Что бы в Функции не было Возврат, тогда отрабатывает без ошибок.
Можно и свою таб часть пересобрать. И доп.поля прописать.
Титул, только не совсем понял, где формирует.
Но изменить можно в этой функции.
Примеры там есть.




Вызывается из Функция ОбработатьСобытие()
159 АгентБезопасной Нацио
 
04.04.25
✎
09:15
(153) Ну ведь всё есть в документации, прямо по пунктам, а для особо тупых - даже с картинками. https://developer.kontur.ru/docs/Diadoc_UM/index.html
ссылка на документацию либо в первом десятке ссылок гугла, либо прямо при генерации шаблона ПМ.
(156) решать надо не "мытьем или катаньем", а головой. Даже по именам выгруженых для отладки модулей можно понять.
(155) политику, театр и архитектуру - вычеркивай.
160 cep207
 
04.04.25
✎
13:12
(0) как остановите регламентные задания. 1с документооборот для целей миграций?
161 Bigbro
 
04.04.25
✎
13:42
(160) на сервере 1с, если доступ есть.
162 a1ex4ndr
 
04.04.25
✎
16:47
(43) ХЗ у меня при 970 формате в Параметры.Результат.Content неопределено в ПодготовитьЭлектронныйДокумент.
И в ПодготовитьПакет при 820 формате правил контент в Параметры.Пакет.Документы/{ТекущийДокумент}/СлужебнаяИнформация.Контент, а при 970 формате Контента в СлужебнойИнформации нет...
163 v36i82bp
 
04.04.25
✎
16:52
(123) (156) Оставлю тут в качестве примера ПМ:

Перем ОсновнойМодуль Экспорт; //ВызовыПМ.epf

Функция ОбработатьСобытие(ИмяСобытия, Параметры) Экспорт
    Если ИмяСобытия = "ПодготовитьЭлектронныйДокумент" Тогда
        Возврат ПодготовитьЭлектронныйДокумент(Параметры);
    КонецЕсли;
КонецФункции

Функция ПодготовитьЭлектронныйДокумент(Параметры)

    Если ТипЗнч(Параметры) = Тип("Структура") И Параметры.Свойство("Результат_ИМ") Тогда //Обработка готового результата

        Документ1С = Параметры.Результат.Документ1С; //Ссылка
        мКонтент = Параметры.Результат.Content; //ОбъектXDTO
        
        мДобавитьКодНоменклатурыВНаименование = Ложь;
        мДобавитьКодНоменклатурыВДопИнфПоле = Ложь;
        мЗаменитьОснованиеНаДоговор = Ложь; //Взаиморасчеты ведутся по Заказам  
        мУказатьЗаказВДопИнфПоле = Ложь;
        
        //Обрабатываем условия при которых необходимо изменить данные
        Если ЗначениеЗаполнено(Документ1С.Контрагент) Тогда
            мДобавитьКодНоменклатурыВНаименование = Истина;
            мДобавитьКодНоменклатурыВДопИнфПоле = Истина;
            мЗаменитьОснованиеНаДоговор = Истина;
            мУказатьЗаказВДопИнфПоле = Истина;
        КонецЕсли;
        
        Если Параметры.ВидДокументаРазвернутый.ID = "ID_СчетФактура" Тогда //ID_ДОКУМЕНТА //Условие создано при генерации шаблона
        КонецЕсли;
        
        Если Параметры.ВидДокументаРазвернутый.ID = "ID_УПД" Тогда //ID_ДОКУМЕНТА //Условие создано при генерации шаблона
        КонецЕсли;
        
        Если Параметры.ВидДокументаРазвернутый.ID = "ID_АктФормализованный" Тогда //ID_ДОКУМЕНТА //Условие создано при генерации шаблона    
        КонецЕсли;
        
        Если Параметры.ВидДокументаРазвернутый.ID = "ID_ТОРГ12" Тогда //ID_ДОКУМЕНТА //Условие создано при генерации шаблона
            
            Если мДобавитьКодНоменклатурыВНаименование Или мДобавитьКодНоменклатурыВДопИнфПоле Тогда
                СтрокиТаблицы = мКонтент.Table.Items;
                Для Каждого ЭлементXDTO Из СтрокиТаблицы Цикл
                    Номенклатура = ЗначениеИзСтрокиВнутр(ЭлементXDTO.СлужебнаяИнформация.Номенклатура); //Получаем ссылку из строки
                    КодНоменклатуры = Номенклатура.Код;
                    Если ЗначениеЗаполнено(КодНоменклатуры) Тогда
                        Если мДобавитьКодНоменклатурыВДопИнфПоле Тогда
                            // Выводим информацию в раздел "Доп. сведения" табличной части
                            ОсновнойМодуль.ДобавитьИнформационноеПоле(ЭлементXDTO, "Код", СокрЛП(КодНоменклатуры));
                        КонецЕсли;
                        Если мДобавитьКодНоменклатурыВНаименование Тогда
                            // Выводим информацию в раздел "Наименование товара" табличной части
                            ЭлементXDTO.Product = ЭлементXDTO.Product + ", " + СокрЛП(КодНоменклатуры)
                        КонецЕсли;
                    КонецЕсли;
                КонецЦикла;
            КонецЕсли; // Добавить Код
            
            Если мЗаменитьОснованиеНаДоговор И ЗначениеЗаполнено(Документ1С.ДоговорКонтрагента) Тогда
                Если Параметры.ВидДокументаРазвернутый.ТипКонтента = "Utd820SellerContent" Тогда //ММВ-7-15/820@
                    Если мКонтент.TransferInfo.TransferBases.Количество() = 0 Тогда //СписокXDTO
                        // Добавляем элемент в СписокXDTO
                        мОснование = ОсновнойМодуль.НовыйЭлементСпискаXDTO(мКонтент.TransferInfo.TransferBases);
                        ОсновнойМодуль.УстановитьЗначениеXDTO(мОснование, "DocumentName", "Договор");
                        ОсновнойМодуль.УстановитьЗначениеXDTO(мОснование, "DocumentNumber", Документ1С.ДоговорКонтрагента.Номер);
                        ОсновнойМодуль.УстановитьЗначениеXDTO(мОснование, "DocumentDate", Документ1С.ДоговорКонтрагента.Дата);
                    Иначе
                        мОснование = мКонтент.TransferInfo.TransferBases[0];
                        Если мУказатьЗаказВДопИнфПоле И мОснование.DocumentName = "Заказ покупателя" И ЗначениеЗаполнено(мОснование.DocumentNumber) И ЗначениеЗаполнено(мОснование.DocumentDate) Тогда
                            // Выводим информацию в раздел "Доп. сведения" шапки документа
                            ОсновнойМодуль.ДобавитьИнформационноеПоле(мКонтент.AdditionalInfoId, мОснование.DocumentName, "№ " + мОснование.DocumentNumber + " от " + Формат(мОснование.DocumentDate, "ДФ=dd.MM.yyyy"));
                        КонецЕсли;
                        мОснование.DocumentName = "Договор";
                        мОснование.DocumentNumber = Документ1С.ДоговорКонтрагента.Номер;
                        мОснование.DocumentDate = Документ1С.ДоговорКонтрагента.Дата;
                    КонецЕсли;    
                КонецЕсли; // 820
                
                Если Параметры.ВидДокументаРазвернутый.ТипКонтента = "Utd970SellerContent" Тогда //ЕД-7-26/970@
                    Если мКонтент.TransferInfo.TransferBases.Количество() = 0 Тогда //СписокXDTO
                        // Добавляем элемент в СписокXDTO
                        мОснование = ОсновнойМодуль.НовыйЭлементСпискаXDTO(мКонтент.TransferInfo.TransferBases);
                        ОсновнойМодуль.УстановитьЗначениеXDTO(мОснование, "Name", "Договор");
                        ОсновнойМодуль.УстановитьЗначениеXDTO(мОснование, "Number", Документ1С.ДоговорКонтрагента.Номер);
                        ОсновнойМодуль.УстановитьЗначениеXDTO(мОснование, "Date", Документ1С.ДоговорКонтрагента.Дата);
                    Иначе
                        мОснование = мКонтент.TransferInfo.TransferBases[0];
                        Если мУказатьЗаказВДопИнфПоле И мОснование.Name = "Заказ покупателя" И ЗначениеЗаполнено(мОснование.Number) И ЗначениеЗаполнено(мОснование.Date) Тогда
                            // Выводим информацию в раздел "Доп. сведения" шапки документа
                            ОсновнойМодуль.ДобавитьИнформационноеПоле(мКонтент.AdditionalInfoId, мОснование.Name, "№ " + мОснование.Number + " от " + Формат(мОснование.Date, "ДФ=dd.MM.yyyy"));
                        КонецЕсли;
                        мОснование.Name = "Договор";
                        мОснование.Number = Документ1С.ДоговорКонтрагента.Номер;
                        мОснование.Date = Документ1С.ДоговорКонтрагента.Дата;
                    КонецЕсли;
                КонецЕсли; // 970
                
            КонецЕсли; // Заменить Основание на Договор
            
        КонецЕсли; // "ID_ТОРГ12"    
        
    КонецЕсли; //Обработка готового результата
    
    Возврат Истина;
    
КонецФункции

///////////////////////////////////////////////////

Функция СведенияОВнешнейОбработке() Экспорт
    
    ПараметрыРегистрации = Новый Структура;
    ПараметрыРегистрации.Вставить("Вид",                 "ДополнительнаяОбработка");
    ПараметрыРегистрации.Вставить("Наименование",         "Диадок (СКБ Контур): Подключаемый модуль");
    ПараметрыРегистрации.Вставить("БезопасныйРежим",     Ложь);
    ПараметрыРегистрации.Вставить("Версия",             ЭДО_ВерсияAPIПодключаемогоМодуля());
    ПараметрыРегистрации.Вставить("Информация",         "Модуль работы с электронными первичными документами через Диадок (подключаемая часть)");
    
    ТаблицаКоманд = ПолучитьТаблицуКоманд();
    
    ДобавитьКоманду(ТаблицаКоманд, "Выполнение регламентных операций подключаемого модуля Диадок", "ВыполнитьРегламентныеДействияПМ", "ВызовСерверногоМетода");
    
    ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
    
    Возврат ПараметрыРегистрации;
    
КонецФункции

Функция ПолучитьТаблицуКоманд()
    
    Команды = Новый ТаблицаЗначений;
    
    Команды.Колонки.Добавить("Представление",             Новый ОписаниеТипов("Строка"));
    Команды.Колонки.Добавить("Идентификатор",             Новый ОписаниеТипов("Строка"));
    Команды.Колонки.Добавить("Использование",             Новый ОписаниеТипов("Строка"));
    Команды.Колонки.Добавить("ПоказыватьОповещение",     Новый ОписаниеТипов("Булево"));
    Команды.Колонки.Добавить("Модификатор",             Новый ОписаниеТипов("Строка"));
    
    Возврат Команды;
    
КонецФункции

Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
    
    НоваяКоманда                        = ТаблицаКоманд.Добавить();
    НоваяКоманда.Представление            = Представление;
    НоваяКоманда.Идентификатор            = Идентификатор;
    НоваяКоманда.Использование            = Использование;
    НоваяКоманда.ПоказыватьОповещение    = ПоказыватьОповещение;
    НоваяКоманда.Модификатор            = Модификатор;
    
КонецПроцедуры

Процедура ВыполнитьКоманду(ИдентификаторКоманды, ПараметрыВыполненияКоманды = Неопределено) Экспорт
    
    Если ИдентификаторКоманды = "ВыполнитьРегламентныеДействияПМ" Тогда
        ВыполнитьРегламентныеДействияПМ(ПараметрыВыполненияКоманды);
    КонецЕсли;
    
КонецПроцедуры

Процедура ВыполнитьРегламентныеДействияПМ(Параметры)
    // Регламентные действия, НЕ требующие инициализации основного модуля
КонецПроцедуры

Функция ЭДО_ВерсияAPIПодключаемогоМодуля() Экспорт
    
    Возврат 4;
    
КонецФункции
164 alexandr1
 
04.04.25
✎
16:53
(154) Нужно поставить экспорт на переменную, еще можно на ядро добавить. Не знаю почему изначально так не делают.
На ут10.3 еще не работает если в ядре при подключении ПМ не указать ссылку на ядро(на само себя).
Чудеса одни
165 alexandr1
 
04.04.25
✎
16:58
Обновил обработку, а все равно маркировку по осу ставит все в номупак, а не в ГТИН и КолВедМарк.
166 Злопчинский
 
04.04.25
✎
17:01
Что-то как-то очень долго все в 8-ке проблемы решаются...
Понятно, что уровень/интеграция и прочее (но это ж не в77 интеграции писать, в 77 у двух клиентов тупую выгрузку подокументно и/или групповую запилил уже работают два дня как), но все равно какая-то виллариба с 8-кой получается, что так долго-то...?
.
- В Вилларибо снова беда, горят стога конопли...
- А в Виллабаджо снова праздник, ветер дует в их сторону!
167 АгентБезопасной Нацио
 
04.04.25
✎
17:59
(162) так а формат отправки-то переключил?
168 АгентБезопасной Нацио
 
04.04.25
✎
18:03
(166) Ну, во-первых, в типовых сам вендор, судя по всему, накосячил. В контуре - простейшие случаи, типа моего (обычная торговля, большинство товаров с ОСУ, меньше немаркеров и поэкземплярного), сетей с их дополнительными ФХЖ мало - допилено по сути за день, да и то часть косяков по  моей криворукости, и часть по невнимательности
169 Злопчинский
 
04.04.25
✎
18:48
(168) я рад за тебя. ;-)
170 Bigbro
 
04.04.25
✎
18:55
4.50.2 придется ставить
много ошибок исправлено. (
171 Мисти
 
05.04.25
✎
19:55
Как работать с отладчиком Контура? Он мне всё выгрузил, я вижу нужные мне куски, вставила туда свое, просто сохранила, не возвращала обратно в макеты... Запустила заново Диадок - вижу, что он моих вставок не видит!
172 Мисти
 
05.04.25
✎
20:06
(170) а мне прислали 4.50.18
173 Bigbro
 
05.04.25
✎
20:37
174 АгентБезопасной Нацио
 
06.04.25
✎
10:33
175 Клетчатый
 
07.04.25
✎
08:37
Кто нибудь программно подменял Unit на значение Неопределено в контенте Table.Items? Проблема в том что одну и туже номенклатуру используют разные контрагенты, но одним нужно количество и цена, а другим нужны прочерки.
Простое присвоение не работает.
176 АгентБезопасной Нацио
 
07.04.25
✎
09:36
(175) для вашей функции документа - он является обязательным?
177 Клетчатый
 
07.04.25
✎
10:16
Нет. Заменил на стороне 1С единицу измерения на пустое значение - всё работает, а вот как если "здесь читать, здесь не читать" на будущее, если значения Unit <> Неопределено, а нужно очистить?
178 Клетчатый
 
07.04.25
✎
11:21
(175) Получается, что в случае отсутствия единицы измерения
ОКЕИ_Тов (UNIT) и НаимЕдИзм (UnitName) - не выгружаются в СведТов (Items) и в контенте значения Неопределено.
А вот если они сначала выгрузились и уже есть в Items, получается весь контент нужно Items очистить и заново заполнить?
179 Клетчатый
 
07.04.25
✎
11:22
(178) для (176)
180 АгентБезопасной Нацио
 
07.04.25
✎
14:39
(178) Ну попробуй их пустыми строками заполнить...
181 Клетчатый
 
07.04.25
✎
14:59
(180), пробовал "", Неопределено, Null.
Сейчас в 1С, очистил Единицу, для всех услуг.
Если будут требовать, буду костылить с добавлением как в (124).
182 Клетчатый
 
07.04.25
✎
15:05
(181) Очистил для услуг у которых Единица была "-".
183 АгентБезопасной Нацио
 
07.04.25
✎
16:15
(182) В Приказе об этом  и написано:

Таким образом, если работы или услуги можно измерить количественно — в документе указывают единицы измерения (ОКЕИ_Тов). А также заполняют количество и цену.

Если работы или услуги измерить количественно нельзя — ОКЕИ_Тов не заполняют. Значения КолТов и ЦенаТов в таком случае заполняют на усмотрение составителя документа, но при этом если вы указываете количество, цену нужно прописать обязательно.


Т.е. правильно - у услуг не заполнять, если не указано иное
184 Клетчатый
 
07.04.25
✎
16:58
(183) Спасибо, просто на одну номенклатуру вешают кучу Контрагентов со своими, требованиями. Буду действовать от противного, если нужно добавлю, а так "прочерк".
185 АгентБезопасной Нацио
 
07.04.25
✎
17:06
(184) Ну вот для "отдельных требований" и заполняй, по их спецификациям. А для всех нормальных - по правилам
186 Клетчатый
 
10.04.25
✎
16:26
(185) Продолжаю копать ПМ, возникла странная ситуация.
Доработал в ПМ ID_СчетФактура,ID_ИСФ. Всё нормально.
Добрался до ID_КСФ. В отладчике в событии "ПодготовитьЭлектронныйДокумент"  не получаю Результат_ИМ,

дальше вылетает с ошибкой
Не удалось подготовить пакет (ВидПакета=ID_КСФ, ДокументУчета=Счет-фактура выданный 1111 от 31.03.2025 0:00:00) по причине:
Ошибка инициализации подключаемого модуля:
Выбранный файл не является подключаемым модулем.

КонтурЭДО последний. Видно не хочет заполнять контент по Корректировочным СФ
187 Клетчатый
 
10.04.25
✎
16:29
(185) при отключении ПМ в настройках, всё равно ругается на ошибку инициализации ПМ
188 Ёпрст
 
10.04.25
✎
17:49
(187) в рег сведении свойства объектов прибей это
189 Клетчатый
 
11.04.25
✎
11:04
(188) нет такого регистра, уже и ПМ переименовал переподключил. А всё равно где то скрывается
ВнешняяОбработкаОбъект.ДиадокПодключаемыйМодульСтандарт  Имя модуля ПодключаемыйМодуль.

Если это старый, то где он хранится?
190 Клетчатый
 
11.04.25
✎
11:08
(189) Эту фигню похоже создаёт КонтурДиадокСтандартУФ, теперь буду думать как победить.
191 Ёпрст
 
11.04.25
✎
11:28
(189) в обычных формах диадок весь свой мусор хранит в рс.значениясвойствобъекта, где оно в уф - надо смотреть, мне лень. Там прибить и привет
192 Клетчатый
 
11.04.25
✎
11:32
(191) БП 3 - собственно УФ. есть большое подозрение, что с переходом к 970, на 736 слегка забили. Сейчас ковыряю макет КонтурДиадокСтандартУФ.
193 АгентБезопасной Нацио
 
11.04.25
✎
12:03
(192) запускаешь диадок в режиме отладки, и смотришь, какой он модуль пытается подключить и инициализировать. чуть выше по стеку смотришь, откуда он подключает. Еще выше - откуда он берет путь для подключения. там и чистишь.
194 Клетчатый
 
11.04.25
✎
13:04
(193) КонтурДиадокСтандартУФ пытается инициализировать ПМ предварительно присвоив ему имя ДиадокПодключаемыйМодульСтандарт причём в случае КСФ по алгоритму Стандарт 736, а модуль можно подключить только 1, возможно буду подменять ПМ на старый вариант 820.
195 Клетчатый
 
11.04.25
✎
15:05
(192) Тех поддержка подсказала где почистить мусор, для БП 3 это РС Дополнительные сведения. Там в свойстве DDPro_ИмяИнтеграционногоМодуля завис старый интеграционный модуль ПМ_БП_30, почистил - дальше дело пошло.
196 rozer76
 
14.04.25
✎
21:03
(173) это нормально, "контуровцы" могут прислать по запросу версию для тестов, сейчас это 4.50.29 хотя официальная 4.50.2.