Вычисление веса номенклатуры при выгрузке в XML
Имеется такая функция;
&НаСервере
Функция ВыгрузитьВозврат(ИмяФайлаXML)
ЗаписьXML = Новый ЗаписьXML();
ЗаписьXML.ОткрытьФайл(ИмяФайлаXML);
ЗаписьXML.ЗаписатьОбъявлениеXML();
ЗаписьXML.ЗаписатьНачалоЭлемента("SellingBatchUpload");
ЗаписьXML.ЗаписатьАтрибут("FileVer", "1.0");
ЗаписьXML.ЗаписатьАтрибут("InfoType","Selling");
ЗаписьXML.ЗаписатьНачалоЭлемента("Sellings");
Для Каждого ТекСтр Из Объект.ДокументыВыгрузки Цикл
Если НЕ ТекСтр.Вкл Тогда
Продолжить;
КонецЕсли;
//ВидПоставки = 40; //Возврат
Список = Новый СписокЗначений;
//Список.Добавить("DeliveryTypeCode" , ВидПоставки); //Код вида поставки DeliveryTypeCode
Список.Добавить("EfsNum" , ТекСтр.НомерЭСФ); //Номер счет фактуры EfsNum
Список.Добавить("GtdNum" , ""); //Номер ГТД / Заявление или СН GtdNum
Список.Добавить("ProviderFacilityId" , ТекСтр.Склад.КодЭТТН); //Склад поставщика ProviderFacilityId
Список.Добавить("CustomerTin" , ТекСтр.Контрагент.ИНН); //ИНН покупателя CustomerTin
Список.Добавить("CustomerFacilityId" , ТекСтр.СкладПолучатель.КодЭТТН); //Склад покупателя CustomerFacilityId
Список.Добавить("ShippingTypeCode" , ТекСтр.СпособПеревозки); //Способ перевозки ShippingTypeCode
Список.Добавить("Comment" , ТекСтр.Документ.Комментарий); //Комментарий Comment
ЗаписьXML.ЗаписатьНачалоЭлемента("Selling");
Для Каждого Строка Из Список Цикл
ЗаписьXML.ЗаписатьНачалоЭлемента(Строка.Значение);
ЗаписьXML.ЗаписатьТекст(Строка.Представление);
ЗаписьXML.ЗаписатьКонецЭлемента();
КонецЦикла;
ЗаписьXML.ЗаписатьНачалоЭлемента("Products"); //Products
Для Каждого Стр Из ТекСтр.Документ.Товары Цикл
СписокТоваров = Новый СписокЗначений;
СписокТоваров.Добавить("ProductId" , Стр.Номенклатура.КодЭТТН); // Идентификатор товара
СписокТоваров.Добавить("UnitCode" , Стр.Номенклатура.ЕдиницаИзмерения); // Код единицы измерения товара
СписокТоваров.Добавить("Amount" , Формат(Стр.Количество,"ЧЦ=18; ЧДЦ=5; ЧРД=.")); // Количество товара
СписокТоваров.Добавить("Price" , Формат(Стр.Цена,"ЧЦ=18; ЧДЦ=5; ЧРД=.")); // Цена товара
СписокТоваров.Добавить("NetWeight" , Формат(Стр.Номенклатура.ВесНетто*Стр.Количество,"ЧЦ=18; ЧДЦ=5; ЧРД=.")); // Масса (нетто) товара
СписокТоваров.Добавить("GrossWeight" , Формат(Стр.Номенклатура.ВесБрутто*Стр.Количество,"ЧЦ=18; ЧДЦ=5; ЧРД=.")); // Масса (брутто)
ЗаписьXML.ЗаписатьНачалоЭлемента("SellingProduct");//SellingProduct
Для Каждого Строка Из СписокТоваров Цикл
ЗаписьXML.ЗаписатьНачалоЭлемента(Строка.Значение);
ЗаписьXML.ЗаписатьТекст(Строка.Представление);
ЗаписьXML.ЗаписатьКонецЭлемента();
КонецЦикла;
ЗаписьXML.ЗаписатьКонецЭлемента(); //SellingProduct
КонецЦикла;
ЗаписьXML.ЗаписатьКонецЭлемента(); //Products
ЗаписьXML.ЗаписатьКонецЭлемента(); //Selling
КонецЦикла;
ЗаписьXML.ЗаписатьКонецЭлемента();//Sellings
ЗаписьXML.ЗаписатьКонецЭлемента();//SellingBatchUpload
ЗаписьXML.Закрыть();
Возврат ЗаписьXML;
КонецФункции
Вес нетто и вес брутто номенклатуры находятся не в самом справочнике, а в регистре сведений Характеристика Номенклатуры,
и я вот не могу понять, как его от туда вытащить ,и потом умножить на количество в которое находиться в моей табличной части
нужна помощь с этим, в 1с пока новичок
СписокТоваров.Добавить("NetWeight" , Формат(Стр.Номенклатура.ВесНетто*Стр.Количество,"ЧЦ=18; ЧДЦ=5; ЧРД=.")); // Масса (нетто) товара
СписокТоваров.Добавить("GrossWeight" , Формат(Стр.Номенклатура.ВесБрутто*Стр.Количество,"ЧЦ=18; ЧДЦ=5; ЧРД=.")); // Масса (брутто)
&НаСервере
Функция ВыгрузитьВозврат(ИмяФайлаXML)
ЗаписьXML = Новый ЗаписьXML();
ЗаписьXML.ОткрытьФайл(ИмяФайлаXML);
ЗаписьXML.ЗаписатьОбъявлениеXML();
ЗаписьXML.ЗаписатьНачалоЭлемента("SellingBatchUpload");
ЗаписьXML.ЗаписатьАтрибут("FileVer", "1.0");
ЗаписьXML.ЗаписатьАтрибут("InfoType","Selling");
ЗаписьXML.ЗаписатьНачалоЭлемента("Sellings");
Для Каждого ТекСтр Из Объект.ДокументыВыгрузки Цикл
Если НЕ ТекСтр.Вкл Тогда
Продолжить;
КонецЕсли;
//ВидПоставки = 40; //Возврат
Список = Новый СписокЗначений;
//Список.Добавить("DeliveryTypeCode" , ВидПоставки); //Код вида поставки DeliveryTypeCode
Список.Добавить("EfsNum" , ТекСтр.НомерЭСФ); //Номер счет фактуры EfsNum
Список.Добавить("GtdNum" , ""); //Номер ГТД / Заявление или СН GtdNum
Список.Добавить("ProviderFacilityId" , ТекСтр.Склад.КодЭТТН); //Склад поставщика ProviderFacilityId
Список.Добавить("CustomerTin" , ТекСтр.Контрагент.ИНН); //ИНН покупателя CustomerTin
Список.Добавить("CustomerFacilityId" , ТекСтр.СкладПолучатель.КодЭТТН); //Склад покупателя CustomerFacilityId
Список.Добавить("ShippingTypeCode" , ТекСтр.СпособПеревозки); //Способ перевозки ShippingTypeCode
Список.Добавить("Comment" , ТекСтр.Документ.Комментарий); //Комментарий Comment
ЗаписьXML.ЗаписатьНачалоЭлемента("Selling");
Для Каждого Строка Из Список Цикл
ЗаписьXML.ЗаписатьНачалоЭлемента(Строка.Значение);
ЗаписьXML.ЗаписатьТекст(Строка.Представление);
ЗаписьXML.ЗаписатьКонецЭлемента();
КонецЦикла;
ЗаписьXML.ЗаписатьНачалоЭлемента("Products"); //Products
Для Каждого Стр Из ТекСтр.Документ.Товары Цикл
СписокТоваров = Новый СписокЗначений;
СписокТоваров.Добавить("ProductId" , Стр.Номенклатура.КодЭТТН); // Идентификатор товара
СписокТоваров.Добавить("UnitCode" , Стр.Номенклатура.ЕдиницаИзмерения); // Код единицы измерения товара
СписокТоваров.Добавить("Amount" , Формат(Стр.Количество,"ЧЦ=18; ЧДЦ=5; ЧРД=.")); // Количество товара
СписокТоваров.Добавить("Price" , Формат(Стр.Цена,"ЧЦ=18; ЧДЦ=5; ЧРД=.")); // Цена товара
СписокТоваров.Добавить("NetWeight" , Формат(Стр.Номенклатура.ВесНетто*Стр.Количество,"ЧЦ=18; ЧДЦ=5; ЧРД=.")); // Масса (нетто) товара
СписокТоваров.Добавить("GrossWeight" , Формат(Стр.Номенклатура.ВесБрутто*Стр.Количество,"ЧЦ=18; ЧДЦ=5; ЧРД=.")); // Масса (брутто)
ЗаписьXML.ЗаписатьНачалоЭлемента("SellingProduct");//SellingProduct
Для Каждого Строка Из СписокТоваров Цикл
ЗаписьXML.ЗаписатьНачалоЭлемента(Строка.Значение);
ЗаписьXML.ЗаписатьТекст(Строка.Представление);
ЗаписьXML.ЗаписатьКонецЭлемента();
КонецЦикла;
ЗаписьXML.ЗаписатьКонецЭлемента(); //SellingProduct
КонецЦикла;
ЗаписьXML.ЗаписатьКонецЭлемента(); //Products
ЗаписьXML.ЗаписатьКонецЭлемента(); //Selling
КонецЦикла;
ЗаписьXML.ЗаписатьКонецЭлемента();//Sellings
ЗаписьXML.ЗаписатьКонецЭлемента();//SellingBatchUpload
ЗаписьXML.Закрыть();
Возврат ЗаписьXML;
КонецФункции
Вес нетто и вес брутто номенклатуры находятся не в самом справочнике, а в регистре сведений Характеристика Номенклатуры,
и я вот не могу понять, как его от туда вытащить ,и потом умножить на количество в которое находиться в моей табличной части
нужна помощь с этим, в 1с пока новичок
СписокТоваров.Добавить("NetWeight" , Формат(Стр.Номенклатура.ВесНетто*Стр.Количество,"ЧЦ=18; ЧДЦ=5; ЧРД=.")); // Масса (нетто) товара
СписокТоваров.Добавить("GrossWeight" , Формат(Стр.Номенклатура.ВесБрутто*Стр.Количество,"ЧЦ=18; ЧДЦ=5; ЧРД=.")); // Масса (брутто)
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот