Некоторые контрагенты для настройки электронного обмена документами требуют заполнения специальных полей ИнфПолФХЖ1 и ИнфПолФХЖ2 дополнительной информацией.
Например:
https://kazan.megastroy.com/edo
- В дополнительном текстовом поле документа ЭДО (XML) должен быть указан GLN магазина «Мегастрой» согласно нижеприведенному примеру:
- В дополнительном текстовом поле табличной части документа ЭДО (XML) должны быть указаны международные штрих-кода номенклатуры EAN-13 или EAN-8 формата согласно нижеприведенном примере:
Быстро разобраться мне помогла статья - //infostart.ru/1c/articles/1247892/, за что автору этой статьи благодарность. А ниже привожу пример рабочей процедуры в подключаемом модуле:
Процедура _ОбработатьДляАгавы(СсылкаНаДокумент, Протоконтент)
//в моем случае GLN хранится в доп свойстве документа сч.фактура выданный - "GLN"
_СвойствоGLN = УправлениеСвойствами.НаборСвойствПоИмени("GLN");
GLN = УправлениеСвойствами.ЗначениеСвойства(СсылкаНаДокумент,_СвойствоGLN);
//Сообщить(""+СсылкаНаДокумент+" GLN:"+GLN);
ДополнитьМассивKeyValue(Протоконтент.AdditionalInfoId.StructedAdditionalInfos, "грузополучатель", Строка(GLN));
КоллекцияСтрок = Протоконтент.Table.Items;
Для Каждого Элемент Из КоллекцияСтрок Цикл
Номенклатура = Справочники.Номенклатура.НайтиПоКоду(Элемент.ItemVendorCode);
ШХ = _ПолучитьШтрихКод(Номенклатура);
Если НЕ ЗначениеЗаполнено(ШХ) Тогда
Сообщить("("+Номенклатура.Код+") " + Номенклатура.Наименование + " - не указан ШХ!", СтатусСообщения.Важное);
КонецЕсли;
ДополнитьМассивKeyValue(Элемент.StructedAdditionalInfos
, "штрихкод"
, ШХ);
//Сообщить(ШХ);
КонецЦикла;
КонецПроцедуры
Расширение для автоматизации процесса подписания электронных документов в мобильном приложении "Госключ" с видом подписи УКЭП/УНЭП, которое подходит для электронного подписания бухгалтерских документов, список которых утвержден в приказе Минфина №61н «Об утверждении унифицированных форм электронных документов бухгалтерского учета…»
Работаете по контрактной схеме, сталкивались с проблемой, что в контракте жестко указаны наименование, цена, единица измерения товара. И не все готовы создавать новую номенклатуру под каждый контракт или менять наименование и единицу измерения для уже имеющейся. Тем более, бывает так, что контракт - это формальность. Контракт не описывает жесткие условия поставки, нужно соблюсти правильность в предоставлении документов. Данное решение позволит вам оперировать своей номенклатурой при оформлении реализаций по государственному контракту в УТ 11.5 и КА 2.5.11, в то же время выводить на печать документы, соответствующие данным контракта. Реализована выгрузка для сайта госзакупок (ЕИС) по 44-ФЗ.
Согласно 54-ФЗ по правилам ведения кассовых операций необходимо оформлять приходные кассовые ордера (ПКО) и расходные кассовые ордера (РКО) на основании чеков ККМ. Все данные о чеках, можно взять на сайте оператора фискальных данных (ОФД). Обработка загрузки данных из ОФД в 1С сделает за вас в 1С - ПКО и РКО, Операции по платежным картам или Отчет о розничных продажах (может создать номенклатуру в 1С, указать налоги и др. реквизиты в документах в зависимости от налогообложения ККМ в торговой точке).
ПОДПИСЫВАЙТЕ ДОКУМЕНТЫ С ФИЗЛИЦАМИ ПО СМС.
Ваши клиенты и сотрудники смогут подписывать документы простой электронной подписью (ПЭП) без визита к вам в офис. С телефона или компьютера без установки приложений и регистраций.
В публикации размещены специализированные обработки для загрузки кассовых чеков в базах 1С (для локальных баз): 1С:БП 3.0, 1С:УНФ 3.0, 1С:КА. 2.5, 1С:ERP Управление предприятием, ред. 2 и 1С:УТ 11.5. Вы просто сканируете QR коды с бумажных и электронных чеков c помощью мобильного приложения ФНС и чеки автоматически (без ручного ввода) загружаются в документы 'Авансовый отчет', 'Расходы предпринимателя', 'Путевой лист', 'Приходная накладная', 'Поступление (акты, накладные, УПД)', 'Приобретение товаров и услуг', 'Отчет о розничных продажах' и 'Поступление денежных документов'.
Кто получает документы в формате XML из различных сервисов ЭДО (формат 820 приказ ФНС 31 мая 2019) и набивает их вручную в 1С, тот наверняка хотел бы автоматизировать этот процесс. Поддержка конфигураций: Бухгалтерии 3, УПП 1.3, 1С:КА 2.4 и 1С:КА 2.5, УТ10, УТ11.4 и УТ11.5.
СлужебнаяИнформация = Элемент.СлужебнаяИнформация; // структура с полями "Номенклатура", "Характеристика" и "Упаковка"
Номенклатура = СлужебнаяИнформация.Номенклатура;
(4) Добрый день ! Помогите разобраться как всё таки заполнить эти поля ИнфПолФХЖ1 и ИнфПолФХЖ2 , из описания разработчика не понятно где это заполняется. В вашем примере тоже не понимаю, мне нужно в УПД заполнить данные поля, помогите примером или твкныте пальцем где это заполняется . Можно за денежку
Качаете модуль 1с
Настраиваете обработку "подключаемый модуль" как в этой статье:
https://infostart.ru/1c/articles/1247892/ В подключаемом модуле так же как в этой статье:
(7)Спасибо огромное , всё получилось , только добавляю строки в функции ПодготовитьЭлектронныйДокумент . Вроде как тут рекомендуют заполнять из описания разработчика к модулю.
добрый день. подскажите пожалуйста. требуется заполнение 2х дополнительных полей.
<ИнфПолФХЖ1>
<ТекстИнф Значен="0207,,Идентиф="номер_тк"/>
<ТекстИнф Значен="S,,Идентиф="код_получателя"/>
<ИнфПолФХЖ1>
Как мне это сделать?
(12)В БСП есть ОбщийМодуль.ОбменДаннымиXDTOСервер , там функция ОбъектXDTOВСтруктуру(ОбъектXDTO, КомпонентыОбмена) Экспорт , который выполняет преобразование объекта XDTO в структуру с данными.
Модуль Диадока обновился. Новый рабочий код подключаемого модуля (целиком):
Перем ОсновнойМодуль Экспорт;
Процедура УПД_ДобавитьИнфПолФХЖ1(Content, Key, Value)
Если НЕ ЗначениеЗаполнено(Value) Тогда
Возврат;
КонецЕсли;
AdditionalInfoId = Content.AdditionalInfoId;
ОсновнойМодуль.ДобавитьИнформационноеПоле(AdditionalInfoId, Key, Value);
КонецПроцедуры
//-->20210516
Функция _ПолучитьШтрихКод(_номенклатура)
Если НЕ ЗначениеЗаполнено(_номенклатура) Тогда
Возврат Неопределено;
КонецЕсли;
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| ШтрихкодыНоменклатуры.Штрихкод КАК Штрихкод
|ИЗ
| РегистрСведений.ШтрихкодыНоменклатуры КАК ШтрихкодыНоменклатуры
|ГДЕ
| ШтрихкодыНоменклатуры.Номенклатура = &Номенклатура";
Запрос.УстановитьПараметр("Номенклатура",_номенклатура);
Рез = Запрос.Выполнить().Выгрузить();
Если Рез.Количество()=0 Тогда
Сообщить("Не указан ШК: ("+_номенклатура.Код+") "+_номенклатура.Наименование,СтатусСообщения.Важное);
Иначе
Возврат СокрЛП(Рез[0].Штрихкод);
КонецЕсли;
КонецФункции
// Обработка заполнения контента в формате приказа ММВ-7-15/820@.
//
// Параметры:
// СсылкаНаДокумент - ЛюбаяСсылка - ссылка на документ информационной базы;
// Протоконтент - Структура - http://1c-pro-docs.diadoc.ru/ru/latest/objects/Utd820SellerContent.html
//
Процедура _ОбработатьДляАгавы(СсылкаНаДокумент, Протоконтент)
_СвойствоGLN = УправлениеСвойствами.НаборСвойствПоИмени("GLN");
GLN = УправлениеСвойствами.ЗначениеСвойства(СсылкаНаДокумент,_СвойствоGLN);
Сообщить(""+СсылкаНаДокумент+" GLN:"+GLN);
УПД_ДобавитьИнфПолФХЖ1(Протоконтент, "грузополучатель", Строка(GLN));
КоллекцияСтрок = Протоконтент.Table.Items;
Для Каждого Элемент Из КоллекцияСтрок Цикл
Номенклатура = Справочники.Номенклатура.НайтиПоКоду(Элемент.ItemVendorCode);
ШХ = _ПолучитьШтрихКод(Номенклатура);
Если НЕ ЗначениеЗаполнено(ШХ) Тогда
Сообщить("("+Номенклатура.Код+") " + Номенклатура.Наименование + " - не указан ШХ!", СтатусСообщения.Важное);
КонецЕсли;
Если ЗначениеЗаполнено(ШХ) Тогда
ОсновнойМодуль.ДобавитьИнформационноеПоле(Элемент, "штрихкод", ШХ);
КонецЕсли;
КонецЦикла;
КонецПроцедуры
//--<
Функция ОбработатьСобытие(ИмяСобытия, Параметры) Экспорт
Если ИмяСобытия = "ПодготовитьЭлектронныйДокумент" Тогда
Возврат ПодготовитьЭлектронныйДокумент(Параметры);
КонецЕсли;
КонецФункции
// Обработчики событий подключаемого модуля
Функция ПодготовитьЭлектронныйДокумент(Параметры)
// Имя шаблона: Произвольное изменение контента УПД
Если ТипЗнч(Параметры) = Тип("Структура") И Параметры.Свойство("Результат_ИМ") Тогда
Content = Параметры.Результат.Content;
Документ1С = Параметры.Результат.Документ1С;
ВидДокументаРазвернутый = Параметры.ВидДокументаРазвернутый;
ТипКонтента_XDTO = ВидДокументаРазвернутый.ТипКонтента;
Если ВРЕГ(ТипКонтента_XDTO) = ВРЕГ("Utd820SellerContent") Тогда
_ОбработатьДляАгавы(Документ1С, Content);
КонецЕсли;
//Возврат Истина;
КонецЕсли;
КонецФункции
// Общие функции для использования в обработчиках событий
// Методы работы с XDTO
// общие функции подключаемого модуля (БСП и взаимодействие с основным модулем)
Функция СведенияОВнешнейОбработке() Экспорт
ПараметрыРегистрации = Новый Структура;
ПараметрыРегистрации.Вставить("Вид", "ДополнительнаяОбработка");
ПараметрыРегистрации.Вставить("Наименование", "Диадок (СКБ Контур): Подключаемый модуль");
ПараметрыРегистрации.Вставить("БезопасныйРежим", Ложь);
ПараметрыРегистрации.Вставить("Версия", ЭДО_ВерсияAPIПодключаемогоМодуля());
ПараметрыРегистрации.Вставить("Информация", "Модуль работы с электронными первичными документами через Диадок (подключаемая часть)");
ТаблицаКоманд = ПолучитьТаблицуКоманд();
ДобавитьКоманду(ТаблицаКоманд, "Выполнение регламентных операций подключаемого модуля Диадок", "ВыполнитьРегламентныеДействияПМ", "ВызовСерверногоМетода");
ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
Возврат ПараметрыРегистрации;
КонецФункции
Функция ПолучитьТаблицуКоманд()
Команды = Новый ТаблицаЗначений;
Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));
Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));
Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));
Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
Возврат Команды;
КонецФункции
Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
НоваяКоманда = ТаблицаКоманд.Добавить();
НоваяКоманда.Представление = Представление;
НоваяКоманда.Идентификатор = Идентификатор;
НоваяКоманда.Использование = Использование;
НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
НоваяКоманда.Модификатор = Модификатор;
КонецПроцедуры
Процедура ВыполнитьКоманду(ИдентификаторКоманды, ПараметрыВыполненияКоманды = Неопределено) Экспорт
Если ИдентификаторКоманды = "ВыполнитьРегламентныеДействияПМ" Тогда
ВыполнитьРегламентныеДействияПМ(ПараметрыВыполненияКоманды);
КонецЕсли;
КонецПроцедуры
Процедура ВыполнитьРегламентныеДействияПМ(Параметры)
// Регламентные действия, НЕ требующие инициализации основного модуля
КонецПроцедуры
Функция ЭДО_ВерсияAPIПодключаемогоМодуля() Экспорт
Возврат 4;
КонецФункции
Процедура ЭДО_СлужебнаяИнформацияГенератораШаблона()
// Данный метод не выполняет кода и содержит только настройки построителя ПМ в момент генерации кода.
// Предназначен для облегчения анализа изменений реального кода относительно шаблона.
// ВерсияПостроителя: 0.5.6
//{ Сценарии
// Произвольное изменение контента УПД
//} Сценарии
КонецПроцедуры
// Имя шаблона: Изменение таблицы товаров УКД (УТ 10), основные поля
Если ТипЗнч(Параметры) = Тип("Структура") И Параметры.Свойство("Результат_ИМ") Тогда
Если ВРЕГ(ТипКонтента_XDTO) = ВРЕГ("UcdSellerContent") тогда
УКД_ИзменитьДанныеТоваров(Content, Документ1С);
КонецЕсли;
Возврат Истина;
КонецЕсли;
параметры находит они читаются а вот Параметры.Свойство неопределено , УПД проходит ,
УКД не проходит условие Если "ТипЗнч(Параметры) = Тип("Структура") И Параметры.Свойство("Результат_ИМ") Тогда"
убираем Параметры.Свойство("Результат_ИМ") тогда нет данных по контрагенту
Если НЕ Услуга Тогда
Если ЗначениеЗаполнено(СтрокаТЧ.СерияНоменклатуры) и ЗначениеЗаполнено(СтрокаТЧ.СерияНоменклатуры.НомерГТД) и ЗначениеЗаполнено(СтрокаТЧ.СерияНоменклатуры.СтранаПроисхождения) Тогда
НовЭлемент = НовыйЭлементСпискаXDTO(Контент.CustomDeclarations);
Заполнить_CustomDeclaration(НовЭлемент, СтрокаТЧ.СерияНоменклатуры.СтранаПроисхождения.Код, СтрокаТЧ.СерияНоменклатуры.НомерГТД.Код);
КонецЕсли;
Если ЗначениеЗаполнено(СтрокаТЧ.Номенклатура.ДатаНачалаМаркировки) и Документ1С.Дата > СтрокаТЧ.Номенклатура.ДатаНачалаМаркировки ТОгда
ШКДляОСУ = ПолучитьКодМаркировки(СтрокаТЧ.Номенклатура,СтрокаТЧ.СерияНоменклатуры, СтрокаТЧ.ЕдиницаИзмерения);
Если ЗначениеЗаполнено(ШКДляОСУ) Тогда
НовЭлемент = НовыйЭлементСпискаXDTO(Контент.ItemIdentificationNumbers);
Заполнить_ItemIdentificationNumber(НовЭлемент, "020"+ШКДляОСУ+"37"+ СтрЗаменить(Строка(Контент.Quantity),Символы.НПП,""));
КонецЕсли;
КонецЕсли;
//Ольга 24.10.22
Если Документ1С.Контрагент.ИНН = "100*******" Тогда
ШК = ПолучитьКодМаркировки(СтрокаТЧ.Номенклатура,СтрокаТЧ.СерияНоменклатуры, СтрокаТЧ.ЕдиницаИзмерения);
Если ЗначениеЗаполнено(ШК) Тогда
НовЭлемент = НовыйЭлементСпискаXDTO(Контент.StructedAdditionalInfos);
Заполнить_StructedAdditionalInfos (НовЭлемент,"штрихкод", ШК);
КонецЕсли;
КонецЕсли;
//Ольга 24.10.22
КонецЕсли;
В итоге в теге ИнфПолФХЖ2 добавляется Значение равное штрихкоду и идентификатор = "штрихкод".
(29) Верно, но как вносить изменения я уже понял. Но это касаются только инфополей, что до этого заполнялись и они записаны в XML в Content. Иные данные не заполнялись изначально, поэтому возможно в XML даже тега на это поле нет
(30)Дам тебе подсказку, поле "ИнфПолФХЖ3" это будет Коллекция AdditionalInfoItem , с индентификатором "СтПерИнф" то что тебе нужно ) так что там всё есть