Титул продавца
Раньше к УКД относился тип контента «UcdSellerContent». Для 29 формата введен новый тип контента «Ucd29SellerContent».
- «CreatorBase»
Изменен тип поля: вместо строки в 29 формате используйте новую структуру DocumentDetails с обязательными полями «Name», «Number», «Date».
При отсутствии номера в поле «Number» необходимо указать: «Без номера».
Было:
УстановитьЗначениеXDTO(Content, "CreatorBase", "Основания №" + Номер + " от " + Дата);
Стало:
CreatorBase = Content.CreatorBase; УстановитьЗначениеXDTO(CreatorBase, "Name" , "Основания"); УстановитьЗначениеXDTO(CreatorBase, "Number", Номер); УстановитьЗначениеXDTO(CreatorBase, "Date" , Дата);
- «CurrencyName»
Поле с наименованием валюты стало обязательным для заполнения.
Стало:
УстановитьЗначениеXDTO(Content, "CurrencyName", "Российский рубль");
- «OperationContent»
Изменены устанавливаемые значения.
Было:
EventContent = Content.EventContent; УстановитьЗначениеXDTO(EventContent, "OperationContent", "Изменение стоимости товаров и услуг");
Стало:
EventContent = Content.EventContent; УстановитьЗначениеXDTO(EventContent, "OperationContent", "1");
Значение в 29 формате (тип Строка)
Расшифровка
1
предлагаю изменить стоимость
2
уведомляю об изменении стоимости
- «TransferDocDetails736» → «TransferDocDetails»
В 29 формате наименование поля изменено на «TransferDocDetails».
Также изменены наименования полей элемента коллекции:
Наименование в 736@
Наименование в 29@
«BaseDocumentName»
«Name»
«BaseDocumentNumber»
«Number»
«BaseDocumentDate»
«Date»
Поле «Number» обязательно к заполнению. При отсутствии номера в поле необходимо указать: «Без номера».
Было:
TransferDocDetails = ОсновнойМодуль.НовыйЭлементСпискаXDTO(Content.EventContent.TransferDocDetails736); УстановитьЗначениеXDTO(TransferDocDetails, "BaseDocumentName" , "УПД"); УстановитьЗначениеXDTO(TransferDocDetails, "BaseDocumentDate" , Дата); УстановитьЗначениеXDTO(TransferDocDetails, "BaseDocumentNumber" , Номер);
Стало:
TransferDocDetails = ОсновнойМодуль.НовыйЭлементСпискаXDTO(Content.EventContent.TransferDocDetails); УстановитьЗначениеXDTO(TransferDocDetails, "Name" , "УПД"); УстановитьЗначениеXDTO(TransferDocDetails, "Number" , Номер); УстановитьЗначениеXDTO(TransferDocDetails, "Date" , Дата);
- «CorrectionBases»
В 29 формате изменены наименования полей элемента коллекции:
Наименование в 736@
Наименование в 29@
«BaseDocumentName»
«Name»
«BaseDocumentNumber»
«Number»
«BaseDocumentDate»
«Date»
Поле «Number» обязательно к заполнению. При отсутствии номера в поле необходимо указать: «Без номера».
Было:
CorrectionBase = ОсновнойМодуль.НовыйЭлементСпискаXDTO(Content.EventContent.CorrectionBases); УстановитьЗначениеXDTO(CorrectionBase, "BaseDocumentName" , "Договор"); УстановитьЗначениеXDTO(CorrectionBase, "BaseDocumentDate" , Дата); УстановитьЗначениеXDTO(CorrectionBase, "BaseDocumentNumber" , Номер);
Стало:
CorrectionBase = ОсновнойМодуль.НовыйЭлементСпискаXDTO(Content.EventContent.CorrectionBases); УстановитьЗначениеXDTO(CorrectionBase, "Name" , "Договор"); УстановитьЗначениеXDTO(CorrectionBase, "Number" , Номер); УстановитьЗначениеXDTO(CorrectionBase, "Date" , Дата);
- «Department»
В 29 формате уменьшена максимальная длина поля до 500 символов.
- «CountryCode»
Новое обязательное поле для заполнения кода страны иностранной организации.
Поле обязательно к заполнению, если участник факта хозяйственной жизни является иностранной организацией (иностранным гражданином), не состоящей на учете в налоговых органах.
Т.е. если у структуры ExtendedOrganizationInfo в поле «Type» было установлено значение «ForeignEntity» или «ForeignPersonEntity».
Стало:
Seller = ОсновнойМодуль.НовыйЭлементСпискаXDTO(Content.Sellers); УстановитьЗначениеXDTO(Seller, "CountryCode", КодСтраны);
- «Country»
Поле обязательно к заполнению, если участник факта хозяйственной жизни является иностранной организацией (иностранным гражданином), не состоящей на учете в налоговых органах.
Т.е. если у структуры ExtendedOrganizationInfo в поле «Type» было установлено значение «ForeignEntity» или «ForeignPersonEntity».
Стало:
Seller = ОсновнойМодуль.НовыйЭлементСпискаXDTO(Content.Sellers); УстановитьЗначениеXDTO(Seller, "Country", НаименованиеСтраны);
- «Phone»
Изменен тип поля: вместо единственного значения в 29 формате реализовано множественное заполнение.
Перепишите алгоритм с установки единственного значения на добавление элемента в коллекцию.
Было:
Seller = ОсновнойМодуль.НовыйЭлементСпискаXDTO(Content.Sellers); УстановитьЗначениеXDTO(Seller, "Phone", НомерТелефона);
Стало:
Seller = ОсновнойМодуль.НовыйЭлементСпискаXDTO(Content.Sellers); Seller.Phone.Добавить(НомерТелефона);
- «Email»
Изменен тип поля: вместо единственного значения в 29 формате реализовано множественное заполнение.
Перепишите алгоритм с установки единственного значения на добавление элемента в коллекцию.
Было:
Seller = ОсновнойМодуль.НовыйЭлементСпискаXDTO(Content.Sellers); УстановитьЗначениеXDTO(Seller, "Email", АдресПочты);
Стало:
Seller = ОсновнойМодуль.НовыйЭлементСпискаXDTO(Content.Sellers); Seller.Email.Добавить(АдресПочты);
- «BankAccountNumber»
В 29 формате поле стало обязательным для заполнения, если заполнено хотя бы одно из полей «BankName», «BankId», «CorrespondentAccount». Также увеличена максимальная длина поля до 34 символов.
Стало:
Seller = ОсновнойМодуль.НовыйЭлементСпискаXDTO(Content.Sellers); УстановитьЗначениеXDTO(Seller, "BankAccountNumber", НомерСчета);
Структура AddressInfo
Вместо плоской структуры в 29 формате для разных типов адреса реализованы вложенные поля с новыми структурами:
«AddressRF» - для заполнения российского адреса;
«AddressSAR» - для заполнения адреса ГАР;
«AddressText» - для заполнения адреса произвольной строкой.
В связи с этим меняется обращение к полям адреса.
- «AddressRF»
Изменено расположение полей: вместо прямого обращения к полям в 29 формате используется вложенная структура в поле «AddressRF».
Также в 29 формате появилось обязательное поле «Region». У полей «Territory», «City», «Locality», «Street» максимальная длина увеличена до 255 символов. У полей «Building», «Block», «Apartment» максимальная длина увеличена до 50 символов.
Было:
Seller = ОсновнойМодуль.НовыйЭлементСпискаXDTO(Content.Sellers); Address = Seller.Address; УстановитьЗначениеXDTO(Address, "ZipCode" , Индекс); УстановитьЗначениеXDTO(Address, "RegionCode", КодРегиона); УстановитьЗначениеXDTO(Address, "Territory" , Район); УстановитьЗначениеXDTO(Address, "City" , Город); УстановитьЗначениеXDTO(Address, "Locality" , НаселенныйПункт); УстановитьЗначениеXDTO(Address, "Street" , Улица); УстановитьЗначениеXDTO(Address, "Building" , Дом); УстановитьЗначениеXDTO(Address, "Block" , Корпус); УстановитьЗначениеXDTO(Address, "Apartment" , Квартира);
Стало:
Seller = ОсновнойМодуль.НовыйЭлементСпискаXDTO(Content.Sellers); УстановитьЗначениеXDTO(Seller.Address, "Type", "AddressRF"); Address = Seller.Address.AddressRF; УстановитьЗначениеXDTO(Address, "ZipCode" , Индекс); УстановитьЗначениеXDTO(Address, "RegionCode", КодРегиона); УстановитьЗначениеXDTO(Address, "Region" , Регион); УстановитьЗначениеXDTO(Address, "Territory" , Район); УстановитьЗначениеXDTO(Address, "City" , Город); УстановитьЗначениеXDTO(Address, "Locality" , НаселенныйПункт); УстановитьЗначениеXDTO(Address, "Street" , Улица); УстановитьЗначениеXDTO(Address, "Building" , Дом); УстановитьЗначениеXDTO(Address, "Block" , Корпус); УстановитьЗначениеXDTO(Address, "Apartment" , Квартира);
- «AddressText»
Изменено расположение полей: вместо прямого обращения к полям в 29 формате используется вложенная структура в поле «AddressText». Также в 29 формате появилось обязательное поле «Country».
Было:
Seller = ОсновнойМодуль.НовыйЭлементСпискаXDTO(Content.Sellers); Address = Seller.Address; УстановитьЗначениеXDTO(Address, "IsForeign" , Истина); УстановитьЗначениеXDTO(Address, "CountryCode" , КодСтраны); УстановитьЗначениеXDTO(Address, "AddressText" , Адрес);
Стало:
Seller = ОсновнойМодуль.НовыйЭлементСпискаXDTO(Content.Sellers); УстановитьЗначениеXDTO(Seller.Address, "Type", "AddressText"); Address = Seller.Address.AddressText; УстановитьЗначениеXDTO(Address, "CountryCode" , КодСтраны); УстановитьЗначениеXDTO(Address, "Country" , НаименованиеСтраны); УстановитьЗначениеXDTO(Address, "AddressText" , Адрес);
- «AddressSAR»
Изменено расположение полей: вместо прямого обращения к полю «AddressCode» в 29 формате используется вложенная структура в поле «AddressSAR» с обязательными полями «ID», «RegionCode», «Region».
Было:
Seller = ОсновнойМодуль.НовыйЭлементСпискаXDTO(Content.Sellers); УстановитьЗначениеXDTO(Seller.Address, "AddressCode", КодГАР);
Стало:
Seller = ОсновнойМодуль.НовыйЭлементСпискаXDTO(Content.Sellers); УстановитьЗначениеXDTO(Seller.Address, "Type", "AddressSAR"); Address = Seller.Address.AddressSAR; УстановитьЗначениеXDTO(Address, "ID" , КодГАР); УстановитьЗначениеXDTO(Address, "RegionCode", "66"); УстановитьЗначениеXDTO(Address, "Region" , "Свердловская обл.");
Коллекция «Item» (поле «Items»)
Коллекции «OriginalItemIdentificationNumbers» и «CorrectedItemIdentificationNumbers»
Коллекция «Item» (поле «Items»)
- «OriginalNumber»
В 29 формате поле стало обязательным для заполнения.
Стало:
УстановитьЗначениеXDTO(Item, "OriginalNumber", ПорядковыйНомерТовараВСЧФ);
- «Product»
В 29 формате максимальная длина поля увеличена до 2000 символов.
- Коллекция «CustomDeclarations»
В 29 формате добавлена новая коллекция для фиксации сведений о декларации на товары. В формате 736 данные ГТД фиксировали в доп. сведениях.
Было:
Item = ОсновнойМодуль.НовыйЭлементСпискаXDTO(Content.InvoiceCorrectionTable.Items); ОсновнойМодуль.ДобавитьИнформационноеПоле(Item, "цифровой код страны происхождения", СтранаКод); ОсновнойМодуль.ДобавитьИнформационноеПоле(Item, "краткое наименование страны происхождения", СтранаНаименование); ОсновнойМодуль.ДобавитьИнформационноеПоле(Item, "регистрационный номер декларации на товары", НомерГТД);
Стало:
Item = ОсновнойМодуль.НовыйЭлементСпискаXDTO(Content.InvoiceCorrectionTable.Items); Item_CustomDeclaration = ОсновнойМодуль.НовыйЭлементСпискаXDTO(Item.CustomDeclaration); УстановитьЗначениеXDTO(Item_CustomDeclaration, "Country", СтранаНаименование); УстановитьЗначениеXDTO(Item_CustomDeclaration, "CountryCode", СтранаКод); УстановитьЗначениеXDTO(Item_CustomDeclaration, "DeclarationNumberBefore", НомерГТД_До); Item_CustomDeclaration.DeclarationNumberAfter = НомерГТД_После; Если ЭтоУменьшение Тогда УстановитьЗначениеXDTO(Item_CustomDeclaration, "DeclarationNumbersDec", НомерГТД_После); Иначе УстановитьЗначениеXDTO(Item_CustomDeclaration, "DeclarationNumbersInc", НомерГТД_После); КонецЕсли;
- Коллекция «StructedAdditionalInfos»
В 29 формате максимальная длина поля «Key» увеличена до 100 символов.
Коллекция «ItemTracingInfos»
- «RegNumberUnit»
В 29 формате увеличена минимальная длина поля до 25 символов. Было 1-29, стало 25-29.
- «UnitName»
В 29 формате добавлено новое поле. Поле обязательно для заполнения, если заполнено поле «Unit».
Стало:
Item = ОсновнойМодуль.НовыйЭлементСпискаXDTO(Content.InvoiceCorrectionTable.Items); Item_TracingInfo = ОсновнойМодуль.НовыйЭлементСпискаXDTO(Item.ItemTracingInfos); УстановитьЗначениеXDTO(Item_TracingInfo, "UnitName", НаименованиеЕдИзм);
- «QuantityDiff»
В 29 формате в структуре появились новые поля обязательные к заполнению: «OriginalSumWithoutVat», «CorrectedSumWithoutVat», «SumWithoutVatInc», «SumWithoutVatDec».
Было:
Item = ОсновнойМодуль.НовыйЭлементСпискаXDTO(Content.InvoiceCorrectionTable.Items); Item_TracingInfo = ОсновнойМодуль.НовыйЭлементСпискаXDTO(Item.ItemTracingInfos); УстановитьЗначениеXDTO(Item_TracingInfo.QuantityDiff, "OriginalQuantity", СтрокаТовар.Количество_До); УстановитьЗначениеXDTO(Item_TracingInfo.QuantityDiff, "CorrectedQuantity", СтрокаТовар.Количество_После); Если ЭтоУменьшение Тогда УстановитьЗначениеXDTO(Item_TracingInfo.QuantityDiff, "QuantityDec", СтрокаТовар.Количество_Разница); Иначе УстановитьЗначениеXDTO(Item_TracingInfo.QuantityDiff, "QuantityInc", СтрокаТовар.Количество_Разница); КонецЕсли;
Стало:
Item = ОсновнойМодуль.НовыйЭлементСпискаXDTO(Content.InvoiceCorrectionTable.Items); Item_TracingInfo = ОсновнойМодуль.НовыйЭлементСпискаXDTO(Item.ItemTracingInfos); УстановитьЗначениеXDTO(Item_TracingInfo.QuantityDiff, "OriginalQuantity", СтрокаТовар.Количество_До); УстановитьЗначениеXDTO(Item_TracingInfo.QuantityDiff, "CorrectedQuantity", СтрокаТовар.Количество_После); Если ЭтоУменьшение Тогда УстановитьЗначениеXDTO(Item_TracingInfo.QuantityDiff, "QuantityDec", СтрокаТовар.Количество_Разница); Иначе УстановитьЗначениеXDTO(Item_TracingInfo.QuantityDiff, "QuantityInc", СтрокаТовар.Количество_Разница); КонецЕсли; УстановитьЗначениеXDTO(Item_TracingInfo.QuantityDiff, "OriginalSumWithoutVat", СтрокаТовар.СтоимостьБезНДС_До); УстановитьЗначениеXDTO(Item_TracingInfo.QuantityDiff, "CorrectedSumWithoutVat", СтрокаТовар.СтоимостьБезНДС_После); Если ЭтоУменьшение Тогда УстановитьЗначениеXDTO(Item_TracingInfo.QuantityDiff, "SumWithoutVatDec", СтрокаТовар.СтоимостьБезНДС_Разница); Иначе УстановитьЗначениеXDTO(Item_TracingInfo.QuantityDiff, "SumWithoutVatInc", СтрокаТовар.СтоимостьБезНДС_Разница); КонецЕсли;
Коллекции «OriginalItemIdentificationNumbers» и «CorrectedItemIdentificationNumbers»
- Заполнение кода ОСУ
Изменены поля для заполнения информации о коде ОСУ:
в 736 формате использовалось поле «PackageIds» с указанием кода ОСУ в виде регулярного выражения
[02][GTIN][37][Количество];в 29 формате для указания «GTIN» и количества используются отдельные поля - поле «GTIN» и поле «MarkedItemsQuantity».
Примечание
Подробные рекомендации по заполнению в 29 формате сведений об объемно-сортовом учете см. в разделах ОСУ без весового товара и ОСУ с весовым товаром методологии заполнения сведений о маркированных товарах.
- Заполнение номера партии
Изменены поля для заполнения информации о партии товара:
в 736 формате использовалась коллекция дополнительных полей «StructedAdditionalInfos» с ключами «ПрПартМаркДо» и «ПрПартМаркПосле».
в 29 формате для заполнения данных о партии товара добавлено поле «BatchCode».
Примечание
Подробные рекомендации по заполнению в 29 формате сведений о производственных партиях см. в разделах «Партионный учет» и «Партионный учет с весовым товаром» методологии заполнения сведений о маркированных товарах.
Подробнее
Состав структуры Signer в 29 формате.
Состав структуры ExtendedSignerDetails в 736 формате.
- «ConfirmCredentials»
Новое обязательное поле для заполнения способа подтверждения полномочий.
Значение (тип Строка)
Расшифровка
1
в соответствии с данными, содержащимися в электронной подписи
2
в соответствии с доверенностью в электронной форме в машиночитаемом виде, если представление доверенности осуществляется посредством включения в каждый пакет электронных документов, подписываемых представителем
3
в соответствии с доверенностью в электронной форме в машиночитаемом виде, если представление доверенности осуществляется из информационной системы. При этом необходимая информация для запроса доверенности из информационной системы указана в электронном документе
4
в соответствии с доверенностью в электронной форме в машиночитаемом виде, если представление доверенности осуществляется из информационной системы. При этом необходимая информация для запроса доверенности из информационной системы представляется способом, отличным от указания в электронном документе
5
в соответствии с доверенностью в форме документа на бумажном носителе
6
иное
Стало:
Signer = ОсновнойМодуль.НовыйЭлементСпискаXDTO(Content.Signers); УстановитьЗначениеXDTO(Signer, "ConfirmCredentials", "1");
- «SignerDetails»
Структура удалена из 29 формата.
Было:
Signer = ОсновнойМодуль.НовыйЭлементСпискаXDTO(Content.Signers); SignerDetails = Signer.SignerDetails; УстановитьЗначениеXDTO(SignerDetails, "Surname", Фамилия); УстановитьЗначениеXDTO(SignerDetails, "FirstName", Имя); УстановитьЗначениеXDTO(SignerDetails, "Patronymic", Отчество); УстановитьЗначениеXDTO(SignerDetails, "Inn", ИНН); УстановитьЗначениеXDTO(SignerDetails, "SignerType", Тип); УстановитьЗначениеXDTO(SignerDetails, "JobTitle", Должность); УстановитьЗначениеXDTO(SignerDetails, "Powers", ОбластьПолномочий); УстановитьЗначениеXDTO(SignerDetails, "PowersBase", ОснованиеПолномочий); УстановитьЗначениеXDTO(SignerDetails, "Status", Статус); УстановитьЗначениеXDTO(SignerDetails, "SignerInfo", ИныеСведения); УстановитьЗначениеXDTO(SignerDetails, "OrganizationName", НаименованиеОрганизации);
Стало:
Signer = ОсновнойМодуль.НовыйЭлементСпискаXDTO(Content.Signers); УстановитьЗначениеXDTO(Signer, "ConfirmCredentials", "1"); УстановитьЗначениеXDTO(Signer, "Surname", Фамилия); УстановитьЗначениеXDTO(Signer, "FirstName", Имя); УстановитьЗначениеXDTO(Signer, "Patronymic", Отчество); УстановитьЗначениеXDTO(Signer, "JobTitle", Должность); УстановитьЗначениеXDTO(Signer, "AdditionalInfo", ИныеСведения);
- «OrganizationPowersBase»
Поле удалено из формата 29@.
Было:
Signer = ОсновнойМодуль.НовыйЭлементСпискаXDTO(Content.Signers); УстановитьЗначениеXDTO(Signer.SignerDetails, "OrganizationPowersBase", "Основание полномочий");
- «Powers»
Поле удалено из формата 29@.
Было:
Signer = ОсновнойМодуль.НовыйЭлементСпискаXDTO(Content.Signers); УстановитьЗначениеXDTO(Signer.SignerDetails, "Powers", "MadeAndResponsibleForOperationAndSignedInvoice");
- «Status»
Поле удалено из формата 29@.
Было:
Signer = ОсновнойМодуль.НовыйЭлементСпискаXDTO(Content.Signers); УстановитьЗначениеXDTO(Signer.SignerDetails, "Status", "SellerEmployee");
- «PowersBase»
Поле удалено из формата 29@.
Было:
Signer = ОсновнойМодуль.НовыйЭлементСпискаXDTO(Content.Signers); УстановитьЗначениеXDTO(Signer.SignerDetails, "PowersBase", "Основание полномочий");
- «SignerType»
Поле удалено из формата 29@.
Было:
Signer = ОсновнойМодуль.НовыйЭлементСпискаXDTO(Content.Signers); УстановитьЗначениеXDTO(Signer.SignerDetails, "SignerType", "LegalEntity");
- «RegistrationCertificate»
Поле удалено из формата 29@.
Было:
Signer = ОсновнойМодуль.НовыйЭлементСпискаXDTO(Content.Signers); УстановитьЗначениеXDTO(Signer.SignerDetails, "RegistrationCertificate", "Свидетельство №1 от 01.01.2024");
В 29 формате в имени файла заполняйте признаки, обозначающие содержание в файле алкогольной, табачной продукции или нефтепродуктов.
Если в ПМ осуществляется заполнение или изменение маркировки, относящейся к перечисленным видам продукции, то для корректного формирования имени файла в момент подготовки ЭД используйте методы Новый_ПризнакиПрослеживаемыхИМаркируемыхТоваров и ЗаполнитьПризнакиПрослеживаемыхИМаркируемыхТоваров.
Стало:
Content = Параметы.Результат.Content;
ЕстьАлкогольнаяПродукция = Документ1С.СодержитАлкоголь;
ЕстьТабачнаяПродукция = Документ1С.СодержитТабак;
Если ЕстьАлкогольнаяПродукция ИЛИ ЕстьТабачнаяПродукция Тогда
ПризнакиПрослеживаемыхИМаркируемыхТоваров = ОсновнойМодуль.Новый_ПризнакиПрослеживаемыхИМаркируемыхТоваров(,, ЕстьАлкогольнаяПродукция, ЕстьТабачнаяПродукция);
ОсновнойМодуль.ЗаполнитьПризнакиПрослеживаемыхИМаркируемыхТоваров(Content, ПризнакиПрослеживаемыхИМаркируемыхТоваров);
КонецЕсли;