GithubHelp home page GithubHelp logo

Возможно ли составить запрос для изменения в табличной документа about odata-1c HOT 1 OPEN

kilylabs avatar kilylabs commented on June 14, 2024
Возможно ли составить запрос для изменения в табличной документа

from odata-1c.

Comments (1)

ab-kily avatar ab-kily commented on June 14, 2024

Добрый день, использую Вашу библиотеку в проекте, в принципе проблем не возникает, работает стабильно.
Возникла необходимость изменять и обновлять информацию в табличной части, разных документов, класс 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);

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

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

from odata-1c.

Related Issues (9)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.