1c api диадок proformainvoice как заполнить
- Как правильно получить тип, функцию и версию документа из из ответа Organization.GetDocumentTypes() ?
Возвращает коллекцию с описанием типов документов, доступных в ящике организации
То есть с точки зрения 1С 7.7 - это получим СписокЗначений или что, и как обрабатывать, непонятно.
Для отправляемого документа необходимо заполнить мета информацию, у которой источник (поле Source) указан User
В примере этого нет, как это заполнить? При переходе по ссылке - это DocumentMetadataItem.
Если нужна xsd схема для 1С 7.7, то как её получить, как с ней работать?
Нужно ли получить xml-файл (и зачем, раньше не нужно было) - и сохранять его куда-то временно, или не временно, и теперь он обязателен для отправки?
Для сохранения схемы в папку запустить так?
Organization.SaveUserDataXSD("UniversalTransferDocument", "ДОП", "utd820_05_01_01", "Seller", путьСохранения);
А потом где-то это использовать?
Пробую так (где-то находил пример, начал дописывать):
Процедура ЗаполнитьДинамическийКонтентДокумента(in_content)
Перем Utd820_SellerContent;
Перем Signers, ОтправленныеДокументы;
SignerDetails - нашел, что это ExtendedSignerDetails, но из свойств у него не срабатывало Patronymic, а нужно MiddleName.
Где-то нашел, установил так.
Как заполнять табличную часть, какие поля имеются?
Раньше к документу добавлялось: AddWork(), а затем к каждой строке AddItem() (были Description, UnitCode, Quantity, Price, SubtotalWithVatExcluded, TaxRate, Vat, Subtotal - теперь все те же поля?)
А затем были для работ общи суммы после табличной части:
.TotalVat; TotalWithVatExcluded; Total
Как мне заполнить акт о выполнении работ в формализованном виде
First_DocumentToSend = SendTask.AddDocument("XmlAcceptanceCertificate", "Доп", "utd820_05_01_01") - не сработало, ругается на XmlAcceptanceCertificate
Для теста пробую: First_DocumentToSend = SendTask.AddDocument("UniversalTransferDocument", "ДОП", "utd820_05_01_01");
The text was updated successfully, but these errors were encountered:
JGhjfhgjkdh5486t commented Jul 19, 2021
- Как правильно получить тип, функцию и версию документа из из ответа Organization.GetDocumentTypes()
В ответе метода будет коллекция описаний типов документов, доступных в ящике организации Диадок.
В описании типа документа будет коллекция доступных функций типа документа.
В описании функции документа - коллекция доступных версий документа.
Выбираете необходимые вам [DocumentTypeDescription.Name; DocumentFunction.Name; DocumentVersion.Version]
Добрый день.
Разбираю, смотрю, у Акта есть множество разных версий функций.
XmlAcceptanceCertificate - Акт - Имя функции: default - И далее нашел, что устаревшие act_05_01_01. какие-то rezru_05_01_01.
А вот далее, что нужно по 820: utd820_05_01_01; utd820_05_01_01_hyphen - что это, и в чем разница с hyphen ?
И еще utd820_05_01_02_hyphen.
Есть просто utd_05_01_01, без 820 - это что?
У накладной: XmlTorg12 - Накладная - имя функции default - также есть по старым приказам torg12_05_01_01.
А по 820 те же: utd820_05_01_01; utd820_05_01_01_hyphen; utd820_05_01_02_hyphen.
Использовать с hyphen или без? Какая между ними разница?
И у УПД (UniversalTransferDocument) те же.
Получается, версия чаще всего будет одинаковая, только разные названия и имена функций.
JGhjfhgjkdh5486t commented Jul 19, 2021
- Если нужна xsd схема для 1С 7.7, то как её получить, как с ней работать?
UserDataXSD можно получить с помощью метода Organization.SaveUserDataXSD(. );
Она является документацией к структуре DynamicContent'а
При сохранении схемы:
Organization.SaveUserDataXSD("XmlAcceptanceCertificate", "default", "utd820_05_01_01_hyphen", "Seller", путьСохранения + "\shemaXsd.xsd");
В одной из первых строк схемы: <xs:element name="UniversalTransferDocumentWithHyphens">
Так должно быть? Или должно быть XmlAcceptanceCertificate ?
Если заполнять без hyphen: <xs:element name="UniversalTransferDocument">
Там есть функция документа Function, и значения только три: СЧФ, ДОП и СЧФДОП, нет никаких default
Теперь при добавлении документа ошибок не выдает:
First_DocumentToSend = SendTask.AddDocument("XmlAcceptanceCertificate", "default", "utd820_05_01_01");
Правильно ли заполняю подписантов (нужен пример):
Нужно ли для подписантов этот AddItems ? Как определить, повторяющийся элемент или нет?
Далее заполнение таблицы:
После строк - итоги всей таблицы, как я понимаю, это уже записываем просто в элемент InvoiceTable = Utd820_SellerContent.Table
// Для всей Таблицы - Итоги
Все значения, которые строки - передавать в кавычках?
decimal - тоже?
Как-то не так заполняю подписантов?
JGhjfhgjkdh5486t commented Jul 21, 2021
При заполнении DocumentDate ругается на Плохой тип переменной:
Если ему передаешь дату, либо строку - пишет, что это не дата, похоже, для передачи нужен конкретный формат строки с полным годом.
Строки, где тип decimal, похоже, надо передавать строку, а не число.
GilimkhanovDenis commented Jul 22, 2021
Добрый день.
Разбираю, смотрю, у Акта есть множество разных версий функций.
XmlAcceptanceCertificate - Акт - Имя функции: default - И далее нашел, что устаревшие act_05_01_01. какие-то rezru_05_01_01.
А вот далее, что нужно по 820: utd820_05_01_01; utd820_05_01_01_hyphen - что это, и в чем разница с hyphen ?
И еще utd820_05_01_02_hyphen.
Есть просто utd_05_01_01, без 820 - это что?У накладной: XmlTorg12 - Накладная - имя функции default - также есть по старым приказам torg12_05_01_01.
А по 820 те же: utd820_05_01_01; utd820_05_01_01_hyphen; utd820_05_01_02_hyphen.Использовать с hyphen или без? Какая между ними разница?
И у УПД (UniversalTransferDocument) те же.
Получается, версия чаще всего будет одинаковая, только разные названия и имена функций.
версии act_05. и torg12_05. - Акт и Торг-12 в формате 172 приказа. Аналоги XmlActToSend и XmlTorg12ToSend
версия rezru_05. - Акт в формате 552 приказа. Аналог XmlAct552ToSend
версия tovtorg_05. - Торг-12 в формате 551 приказа. Аналог TovTorgToSend
версии utd820_05. и utd820_05. _hyphen - документы с контентом в формате 820 приказа. Аналога в PackageSendTask нет. Отличаются друг от друга тем, как передаются поля, которые необходимо отображать прочерками в печатной форме
GilimkhanovDenis commented Jul 22, 2021
При сохранении схемы:
Organization.SaveUserDataXSD("XmlAcceptanceCertificate", "default", "utd820_05_01_01_hyphen", "Seller", путьСохранения + "\shemaXsd.xsd");
В одной из первых строк схемы: <xs:element name="UniversalTransferDocumentWithHyphens">
Так должно быть? Или должно быть XmlAcceptanceCertificate ?
Если заполнять без hyphen: <xs:element name="UniversalTransferDocument">
Там есть функция документа Function, и значения только три: СЧФ, ДОП и СЧФДОП, нет никаких default
Контент документа и [Тип; Функция; Версия] документа независимы друг от друга. В данном случае просто совпало название поля в описании типа документа и в контенте
Теперь при добавлении документа ошибок не выдает:
First_DocumentToSend = SendTask.AddDocument("XmlAcceptanceCertificate", "default", "utd820_05_01_01");Правильно ли заполняю подписантов (нужен пример):
Все данные нужно задавать строками, всё верно
Нужно ли для подписантов этот AddItems ? Как определить, повторяющийся элемент или нет?
В схеме у узла будет аттрибут повторяемости, например minOccurs= или maxOccurs= . Добавление подписанта есть в примере работы с коллекциями в DynamicContent
и т.д.
После строк - итоги всей таблицы, как я понимаю, это уже записываем просто в элемент InvoiceTable = Utd820_SellerContent.Table
// Для всей Таблицы - Итоги
Все значения, которые строки - передавать в кавычках?
decimal - тоже?
Все данные заполняются строками. decimal - строкой в соответствии с форматом типа xs:decimal
С подобным текстом вижу следующую ошибку:
GilimkhanovDenis commented Jul 22, 2021
При заполнении DocumentDate ругается на Плохой тип переменной:
Если ему передаешь дату, либо строку - пишет, что это не дата, похоже, для передачи нужен конкретный формат строки с полным годом.
Строки, где тип decimal, похоже, надо передавать строку, а не число.
Какое именно значение пытаетесь записать в контент?
Все значения нужно задавать как строки
JGhjfhgjkdh5486t commented Jul 22, 2021
Благодарю за ответы.
Да, данные стал заполнять как строки, дополнил остальными необходимыми данными, смотрел по ошибкам (как-то они частично обрезаются в 1С).
Для даты, как оказалось, нужна строка и тип даты с полным годом.
Заполнил структуры адресов, а также TransferInfo, Function, данные DocumentDate и DocumentNumber и т.п.
То есть заполнил весь контент пока на примере одной команды.
Далее при отправке не все поля заполнены.
Для отправки черновика установить так? IsDraft = "true"; // Черновик
Идентификаторы подразделений можно найти в поле Department.Id , а дерево подразделений можно увидеть в MyOrganization.Departments или Counteragent.Departments
Благодарю!
/UniversalTransferDocument/Table: When @VAT is filled, @WithoutVat should be declared as 'false' or omitted
Если выгружается несколько строк с разными ставками, то в каждой строке нужно устанавливать как?
Если ставка "без Ндс" и сумма Ндс = 0 (нет Ндс), тогда WithoutVat устанавливать в "true" ?
И итоговый WithoutVat устанавливать в true, только если все строки "без Ндс" ? А иначе установить "false" ?
Еще в таблице есть поле Total - Сумма всего, общая
А что за поле TotalNet - Нетто всего ?
JGhjfhgjkdh5486t commented Jul 28, 2021
Добрый день.
Подскажите, а какой-то есть флаг пакета, как отправлять документы (несколько документов) пакетом,
а каким образом просто один документ вне пакета?
Схему получал такую:
Organization.SaveUserDataXSD("ProformaInvoice", "default", "proformainvoice_01_01", "Seller", путьСохранения + "\shemaXsd_Счет.xsd");
JGhjfhgjkdh5486t commented Jul 29, 2021
Добрый день.
ProformaInvoice - в метаданных обязательно заполнять имя файла? Должно быть вложение или что это?
Как правильно заполнить таблицу? Ошибка про неверный подчиненный элемент.
Беру ProformaInvoiceTable, добавляю: AddProformaInvoiceItem();
Заполняю поля, кроме Excise.
Vat.VatTotal = Строка суммы Ндс, или "0" (Пробовал и пусто "")
addAdditionalInfo() - там внутри обязательные значения Id и Value
xs:sequence - это как-то по-особому нужно заполнять? Зачем элементы Excise, Vat и AdditionalInfo внутри,
а остальные атрибуты снаружи?
Остальные атрибуты Product, Unit и т.д. - заполняю строками, как указано.
Значение TaxRate должен полностью совпадать с указанными?
Если передам строкой "10" без процентов?
или "без ндс" не совпадет с регистром? Может ли быть пустая строка?
При отправке формализованного акта, похоже, тоже не всё заполнил (метаданные, судя по ошибке) ?
"XmlAcceptanceCertificate", "default", "utd820_05_01_01"
Какие файлы там нужны, в метаданных?
Я же передаю заполненный Формализованный Акт.
Посмотрел список обязательных метаданных - Насколько я понимаю, всё передавать строкой также.
JGhjfhgjkdh5486t commented Jul 29, 2021
Каким образом также по API определить, подписан / отклонен ли документ (какие статусы бывают?) и когда?
Важно ли для этого или нет, когда, в каком формате / формализованный или нет он отправлен?
Как получить список уже отправленных от нас документов в ДиаДок за период, с фильтрацией по статусам подписания ?
AndreyPermikin commented Aug 2, 2021
Так как вы выполняете самостоятельную разработку интеграционного решения и вопросы имеют консультационный характер.
Более удобным вариантом для вас будет приобретение услуг по консультациям API. В рамках данной услуги с вами свяжется специалист группы внедрения и сможет ответить на вопросы по написанию интеграционного решения и особенностях его разработки.
Для того чтобы оставить заявку на приобретение консультации вы можете обратиться к вашему менеджеру, либо оформить заявку через техническую поддержку.
JGhjfhgjkdh5486t commented Aug 3, 2021
Так как вы выполняете самостоятельную разработку интеграционного решения и вопросы имеют консультационный характер.
Более удобным вариантом для вас будет приобретение услуг по консультациям API. В рамках данной услуги с вами свяжется специалист группы внедрения и сможет ответить на вопросы по написанию интеграционного решения и особенностях его разработки.
Для того чтобы оставить заявку на приобретение консультации вы можете обратиться к вашему менеджеру, либо оформить заявку через техническую поддержку.
Благодарю за ответ. Буду уточнять. Так по документации не всё понятно, как реализовывать выгрузку, и обработка ошибок. По схеме заполнил формализованный счет, а ошибка невалидной таблицы, и непонятно, что делать. Или счет может быть только неформализованным?
И как я понимаю, у счета не будет стандартной формы, только файл, который контрагент сможет скачать, так?
Добрый день.
Ошибка при отправке формализованного акта 820, похоже, не принимает отрицательное значение, как передать?
XmlAcceptanceCertificate
default
Версия = utd820_05_01_01
При просмотре схемы - это decimal
<xs:attribute name="SubtotalWithVatExcluded" use="optional">
xs:annotation
xs:documentationСтТовБезНДС - сумма без учета налога</xs:documentation>
</xs:annotation>
xs:simpleType
<xs:restriction base="xs:decimal">
<xs:totalDigits value="19" />
<xs:fractionDigits value="2" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
При выгрузке числа делаю строкой,
и в одном документе есть отрицательная сумма, соответственно, становится строкой "-69.25", заменил её на положительное значение "69.25" - отправилось.
Что касается отправки счетов, счет передается как полуформализованный документ. Передача счета в XML формате не обязательна.
JGhjfhgjkdh5486t commented Aug 6, 2021
Каким образом отправлять?
kab1k commented Aug 10, 2021
JGhjfhgjkdh5486t commented Aug 12, 2021
Добрый день.
Благодарю за ответ.
В AddInitialDocument - передавать идентификатор документа Родительского, к пакету которого присоединять этот новый, текущий документ?
GilimkhanovDenis commented Aug 12, 2021
Да, параметром указывается идентификатор родительского документа к которому будет привязан отправляемый документ
Для новых вопросов предлагаю создавать отдельную тему, чтобы, в случае необходимости, можно было легко находить ответ на поставленный вопрос.
Интеграция посредством API Диадока актуальна для разных учетных систем, не имеющих единого решения, или если уже существующее на текущий момент не устраивает компанию. Благодаря интеграции учетная система получает те функции Диадока, которые необходимы организации по ЭДО.
Программный функционал
- Отправление и получение документов внутри собственной инфосистемы;
- Добавление новых контрагентов и исключение старых;
- Фильтрация документов по установленным критериям с помощью фильтра;
- Разработка и отправка документации в формате XML;
- Согласование документов;
- Автоподпись документации КЭП.
Способы создания
интеграционных решений
API Диадок предлагает два эффективных варианта решения поставленных задач по интеграции в области электронного документооборота. Сотрудники нашей компании Контур.Диадок помогут вам определиться с оптимальным в соответствии с вашими потребностями.
Этот способ интеграции считается общим, с его помощью, в частности, гарантируется независимость платформ для интеграционных решений.
Помимо этого, она изолирует данные криптографической деятельности, по этой причине прикладной разработчик может не вникать в нюансы пользования CryptoAPI. Текущая версия DiadocApi.dll в комплексе с исходниками внесена в структуру SDK, а его, в свою очередь, можно скачать ниже.
SDK для API Диадока используется для программирования на C+, Java и C++, кроме того, с программой можно работать через COM-сервисы.
AddInDiadocAPI — объединение с учетными записями на базе 1СЭтот внешняя составляющая, главная задача которой состоит в объединении учетных систем на 1С. С помощью этого метода получится избавиться от длительного решения типовых задач, которые появляются при объединении 1С с Диадоком. Составляющая может работать на оборудовании с операционной системой Microsoft Windows. При этом дополнительно устанавливать вспомогательные модули не понадобится.
Специальная внешняя составляющая актуальна для использования разработчиками, которые занимаются объединением Диадока с различными программными решениями, разработанными на платформе 1С. Она дает возможность программистам оперативно находить решения типовых задач, которые появляются при состыковке 1С-программ с Диадоком.
Данная составляющая кодирована на языке программирования C++, не имеет в структуре излишних зависимостей. Это дает возможность внедрять ее на любой системе на базе ОС Microsoft без инстализации дополнительных модульных элементов.
API – программный интерфейс Диадока - инструмент для тех, кто хочет самостоятельно произвести интеграцию со своей информационной системой.
Функционал электронного документооборота на основе этих методов можно реализовать в любую современную информационную систему (1С, SAP, Oracle, Microsoft Dynamics AX/NAV и др.).
Выбирайте прикладные задачи, определяйтесь с требованиями к клиентской части и доступных средств разработки - формируйте наиболее подходящий уровень взаимодействия с API Диадока.
API — программный код, написанный авторами одной системы для того, чтобы авторы других программ могли с помощью этого кода «научить» свои программные продукты взаимодействовать между собой.
С помощью данного метода и/или коннекторов можно реализовать интеграцию с любой учетной системой.
Чтобы начать пользоваться кодом требуется ключ разработчика, распространяющийся платно.
У Диадок есть три вида API:
API Диадока позволяет выполнять все основные операции, что и в веб-интерфейсе:
- создание документов в утвержденном xml формате (счета-фактуры, запросы на корректировку счета-фактуры, акты, накладные);
- осуществлять все операции по получению и отправке документов непосредственно из информационной системы;
- автоматически подписывать документы КЭП из информационной системы;
- отслеживать статусы документов;
- работать со списком контрагентов (приглашения, проверка на предмет регистрации в Диадоке);
- согласовывать документы;
- строить выборки документов по различным критериям.
В зависимости от решаемых прикладных задач и от требований к клиентской части можно выбрать следующие виды интеграции:
Кроме того, есть интеграция с криптографией, так что Вам не нужно разбираться с тонкостями обращений к CryptoAPI. Актуальная версия библиотеки вместе с исходниками входит в состав diadoc SDK.
Преимущества интеграции в Вашу систему:
- Возможность создать собственное решение под свои задачи.
- Работа в едином интерфейсе с информационной системой.
- Подходит для интеграции с любой информационной системой.
Дополнительные функции
Ниже дан краткий обзор дополнительных функций.
Отправка заявления участника ЭДО
Поиск контрагентов
Метод GetOrganizationsByInnKpp позволяет искать в Диадоке ящики по ИНН и КПП организаций, которым они принадлежат.
При помощи метода GetOrganization можно по идентификатору организации узнать различные справочные данные, заведенные в Диадок, такие как ИНН, КПП, название, а также получить список ее ящиков.
Черновики
Диадок позволяет помещать в «свой» ящик еще не подписанные документы без их немедленной отправки контрагентам.
Это может быть полезно, когда подготовкой документов занимается один человек, а правом подписи и отправки обладает другой.
Подготовка печатных форм
Для документов, передаваемых через Диадок, в формализованном не человекочитаемом виде, предусмотрена возможность получения их печатных форм.
Фильтрация списка документов
При помощи метода GetDocuments, можно быстро получать информацию о документах (например, о счетах-фактурах) в своем ящике, задавая различные критерии фильтрации документов.
Кроме того, есть возможность получить всю метаинформацию об отдельном документе, зная его идентификатор. Для этого предназначен метод GetDocument.
Любой сеанс работы начинается с прохождения процедуры аутентификации, в ходе которой программный клиент от имени пользователя получает авторизационный токен, однозначно идентифицирующий этого пользователя и дающий клиенту право читать и писать в ящики Диадока, к которым данный пользователь имеет доступ.
Пользователь может аутентифицироваться в системе либо по сертификату электронной подписи формата X.509, либо по паре логин/пароль.
Что нужно для интеграции с Diadoc API:
1. Заполнить заявку, чтобы получить ключ разработчика и сертификат тестовой квалифицированной электронной подписи;
2. Оплатить счет на ключ API;
3. Оплатить услуги по консультации, если необходимо.
В случае возникновения вопросов обращайтесь по телефону или ссылке "Получить консультацию".
Компания «СКБ Контур» разработала программный интерфейс для собственного продукта по обеспечению электронного документооборота. Такой API стал уникальным и эффективным интегратором для любых, уже установленных учетных систем предприятий, стандартных и нестандартных.
Подходит для самостоятельной реализации функционала ЭДО в SAP, Microsoft Dynamics AX/NAV, «1C», Oracle и т. п.
Если на рынке нет подходящего готового решения либо имеющиеся предложения не устраивают, то «Диадок API» поможет получить то, что требуется.
Наш центр подключения к ЭДО предоставляет клиентам готовый программный код для настройки взаимодействия используемых продуктов на уровне, необходимом для решения задач конкретного бизнеса.
С «Диадок API» можно выполнять такие же действия, что и в веб-приложении:
- формировать документы в требуемом формате xml (акты, счета-фактуры, накладные, запросы на корректировку);
- автоматически проставлять квалифицированную электронную подпись;
- работать с базой контрагентов (удалять устаревшие контакты, добавлять новые, проверять регистрацию в «Диадоке», отправлять приглашение);
- отслеживать статусы и согласовывать документы;
- отбирать данные через фильтр по разным критериям;
- отправлять или принимать документы.
Интеграция через «Диадок API» позволяет не создавать лишних окон и интерфейсов. Также не придется переносить какие-либо данные, так как имеющаяся учетная программа и «Диадок» станут единой системой.
Разработчик предлагает и несколько готовых решений:
- Коннектор. Это модуль, который размещается на сервере (заказчика или исполнителя), и связывает «Диадок» с системой учета. Вмешательство в конфигурацию изначальной программы не допускается. Вариант подходит для бизнеса с большим оборотом документации и сложным процессом согласования.
- Для «1С». После установки на сервер или компьютер клиента системы интегрируются, то есть могут использовать функционал и данные друг друга.
- Для SAP. Комплекс полностью учитывает нюансы данного программного продукта, в частности, связывает документы по установленным внутренним стандартам с электронными.
Интеграционные решения
Данный вариант предназначен для взаимодействия с произвольными программами. Это наиболее общий уровень интеграции, так как не зависит от платформ, которые используют объединяемые системы.
Такая форма подходит для разных учетных программ при условии, что они:
При этом библиотека изолирует данные и методы работы с криптографией, поэтому прикладному разработчику не придется вникать в нюансы обращения к CryptoAPI. Исходные коды и последняя версия DiadocApi.dll включены в состав SDK, предлагаемый к скачиванию по ссылке.
С системами на «1С» — AddInDiadoc
Это независимый модуль, позволяющий интегрироваться с программами на платформе «1С». Данный способ обеспечивает предельно быстрое решение типовых задач, сопровождающих процесс объединения функционала «Диадок» и 1С-продуктов. Указанная компонента способна запускаться на ПК с Microsoft Windows, причем при этом не требуется устанавливать прочие дополнительные модули.
Язык написания AddInDiadoc — C++, никаких лишних зависимостей не содержится.
Читайте также: