Как посчитать сумму счета-фактуры 1С при импорте данных в CRM?
Добрый день, собственно вопрос в теме.
CRM ver 3.4.0
1C ver 7.7
Нравится
Здравствуйте.
А в 1С разве нету поля сумма счета, которая равна сумме всех продуктов в табличной части?
Если нет, тогда только конфигурационно: в скрипте подчиненной интеграции(импорт табличной части), на событии OnBeforeRecordImport складывать суммы всех продуктов в какую либо переменную,
а на OnAfterImport записать куда либо в CRM.
Я такого поля не нашел, но может плохо искал т.к. 1С только начал изучать...
Можно привести пример кода того как высчитать сумму документа по его деталировке?
Здравствуйте, Валентин.
В 1С сумма считается программно, как сумма всех продуктов в табличной части, т.е. по факту действительно, сумма счета не хранится в каком либо поле в шапке объекта "Счет".
Проще всего провести импорт, а после уже импорта, заполнить сумму счета:
function FillSummOfInvoices() { var InvDataset= Services.GetNewItemByUSI('ds_Invoice'); var OffOfInvDataset = Services.GetNewItemByUSI('ds_OfferingInInvoice'); InvDataset.Open(); InvDataset.GotoFirst(); while(!InvDataset.IsEOF) { var InvoiceID = InvDataset('ID'); ApplyDatasetFilter(OffOfInvDataset, 'InvoiceID', InvoiceID, true); OffOfInvDataset.Open(); OffOfInvDataset.GotoFirst(); var SumTotal = 0; while(!OffOfInvDataset.IsEOF) { SumTotal = SumTotal + OffOfInvDataset('TotalAmount'); //где TotalAmount - поле суммы по продукту в счете OffOfInvDataset.GotoNext(); } InvDataset.Edit(); InvDataset('TotalAmount') = SumTotal; // где TotalAmount - поле суммы счета InvDataset.Post(); InvDataset.GotoNext(); } }
Спасибо Дмитрий! Я в этом направлении и начал копать, но столкнулся с тем что не импортируются строки счета-фактуры в CRM. Выкладываю скриншоты настройки импорта...
Валентин, по настройкам, вроде-бы все ок, ну а причину, кончено, сказать сложно...
Вот если бы Вы дали свою БД 1с + выгрузили Вашу настройку интеграции...
Насколько я понял у Вас 7.7 - недавно настраивал как раз интеграцию счетов + номенклатура (правда экспорт), вложу Вам данную интеграцию как вложение - попробуйте её загрузить и использовать как пример.