Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Возможно ли составить запрос для изменения в табличной документа #5

Open
smoln opened this issue Sep 27, 2019 · 1 comment

Comments

@smoln
Copy link

smoln commented Sep 27, 2019

Добрый день, использую Вашу библиотеку в проекте, в принципе проблем не возникает, работает стабильно.
Возникла необходимость изменять и обновлять информацию в табличной части, разных документов, класс update относится только к изменениям внешней части, не подскажите как мне провалиться в табличную часть и изменить определенную строку, возможно добавить новую, используя тот функционал который сейчас есть, или сейчас это невозможно?

@ab-kily
Copy link
Contributor

ab-kily commented Oct 8, 2019

Добрый день, использую Вашу библиотеку в проекте, в принципе проблем не возникает, работает стабильно.
Возникла необходимость изменять и обновлять информацию в табличной части, разных документов, класс update относится только к изменениям внешней части, не подскажите как мне провалиться в табличную часть и изменить определенную строку, возможно добавить новую, используя тот функционал который сейчас есть, или сейчас это невозможно?

Добрый день! Спасибо за обратную связь и извиняюсь за задержку с ответом. В рамках наших задач мы всегда обновляли всю табличную часть у документа. Так, например, в документе ЗаказКлиента наш код выглядит примерно так (часть кода опущена):

...
        $odata = [
            'Number'=>$doc_id,
            'Date'=>date('c',strtotime($o->add_date)),
            'ЖелаемаяДатаОтгрузки'=>date('c',strtotime($od_date)),
            'ДатаОтгрузки'=>date('c',strtotime($od_date)),
            'Организация_Key'=>'2b3e8ebe-c1c2-11e6-d495-00155dd9fc47',
            'Партнер_Key'=>$partner_id,
            'Контрагент_Key'=>$customer_id,
            'Соглашение_Key'=>'d8e27e68-c370-11e6-d495-00155dd9fc47',
            'Сделка_Key'=>'00000000-0000-0000-0000-000000000000',
            'Валюта_Key'=>'ec4378f4-c1b3-11e6-3b95-00155dd9fc47',
            'СуммаДокумента'=>$o->fullTotal,
            'ГрафикОплаты_Key'=>'00000000-0000-0000-0000-000000000000',
            'Склад_Key'=>'4a1b565a-c1c2-11e6-d495-00155dd9fc47',
            'Менеджер_Key'=>$o->userManager && $o->userManager->odata_key ? $o->userManager->odata_key : '00000000-0000-0000-0000-000000000000',
            'НеОтгружатьЧастями'=>true,
            'Статус'=>'КОбеспечению',
            'МаксимальныйКодСтроки'=>count($products)+1,
            'ПорядокОплаты'=>'РасчетыВРубляхОплатаВРублях',
            'ЭтапыГрафикаОплаты'=>[
                [   
                    'LineNumber' => '1',
                    'ВариантОплаты' => 'КредитПослеОтгрузки',
                    'ДатаПлатежа' =>date('c',strtotime($od_date)),
                    'ПроцентПлатежа' => 100,
                    'СуммаПлатежа' => $o->fullTotal,
                    'ПроцентЗалогаЗаТару' => 0,
                    'СуммаЗалогаЗаТару' => 0,
                ],
            ],
        ];
        if($comment) {
            $odata['Комментарий'] = $comment;
        }   

        $goods = [];
        $idx = 0;
        foreach($products as $idx=>$op) {
            $goods[] = [
                'LineNumber'=>$idx+1,
                'КодСтроки'=>$idx+1,
                'ДатаОтгрузки'=>$odata['ЖелаемаяДатаОтгрузки'],
                'Номенклатура_Key'=>$odata_p_id,
                'Характеристика_Key'=>$odata_v_id,
                'Упаковка_Key'=>'00000000-0000-0000-0000-000000000000',
                'КоличествоУпаковок'=>$qnt,
                'Содержание'=>$dm_p->DMArtName,
                'Количество'=>$qnt,
                'ВидЦены'=>'b9bb5abe-c370-11e6-d495-00155dd9fc47',
                'СтавкаНДС'=>'БезНДС',
                'СуммаНДС'=>0,
                'Цена'=>$price,
                'Сумма'=>$sum,
                'СуммаСНДС'=>$sum,
                'ПроцентРучнойСкидки'=>$op->discount,
                'СуммаРучнойСкидки'=>number_format($price*$qnt*($op->discount/100),2,'.',''),
                'Склад_Key'=>'4a1b565a-c1c2-11e6-d495-00155dd9fc47',
                'ВариантОбеспечения'=>'Отгрузить',
            ];
        }
        $odata['Товары'] = $goods;
        $data = $client->{'Document_ЗаказКлиента'}->update($id,$odata);

Какую-либо возможность обновить табличную часть мы не тестировали, хотя идея мне кажется интересной. В принципе, реализовать что-либо подобное не сложно, мы подумаем над этим.

Если у вас есть возможность помочь с реализацией этой задачи, то с радостью примем пул реквест )

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants