1C Rest oData обновление данных PATCH запросом

1. baracuda 2 23.07.21 10:02 Сейчас в теме
Всем добра. Работаю с Rest Odata. С получением данных проблем нет.
Пришло время их изменять. Тут и возникли сложности. Делаю все как по документации.
PATCH запрос на ресурс

192.168.1.100/rest/odata/standard.odata/Catalog_ВидыЦен(guid('b90a2813-8380-11e9-9bec-e0d55e5ecc06')?$format=json

в теле запроса указываю свойства которые хочу изменить

{

    "Description": "2% cкидка 212121",
    "Идентификатор": "2Cкидка"
 
}

в ответ получаю.

{
    "odata.error": {
        "code": "-1",
        "message": {
            "lang": "ru",
            "value": "Ошибка при выполнении обработчика - 'ПередЗаписью'"
        }
    }
}
Показать

Причем такой ответ приходит как на обновление данных справочников так и для документов
По теме из базы знаний
Найденные решения
2. nomad_irk 72 23.07.21 10:04 Сейчас в теме
(1)может прав пользователю не хватает на изменение данных через ODATA?
baracuda; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. nomad_irk 72 23.07.21 10:04 Сейчас в теме
(1)может прав пользователю не хватает на изменение данных через ODATA?
baracuda; +1 Ответить
3. baracuda 2 23.07.21 10:11 Сейчас в теме
(2)кстати хороший вопрос. я использую пользователя которого создал в обработке настройка интерфейса Odata
4. baracuda 2 23.07.21 10:12 Сейчас в теме
(2) чел ты гений!! Спасибо!
5. user100000 16.04.23 17:33 Сейчас в теме
а у меня выходит
Использованный HTTP метод запрещен в данном контексте
6. пользователь 16.04.23 19:39
Сообщение было скрыто модератором.
...
7. пользователь 16.04.23 21:05
Сообщение было скрыто модератором.
...
8. user693482_dusick150 23.05.23 15:18 Сейчас в теме
Я использую такой код !

use GuzzleHttp\Client;

// данные для аутентификации
$username = 'test';
$password = 'test';

// создаем экземпляр HTTP-клиента
$client = new Client([
    'base_uri' => 'http://1cs.local/base/odata/standard.odata/',
    'timeout'  => 5.0,
]);

// данные для добавления в базу данных
$newData = [
  'Number' => '666993811',
    'Date' => '2023-05-22T16:09:23',
    // Добавьте другие поля и значения для добавления
];

// Преобразование данных в JSON
$jsonData = json_encode($newData);


// делаем PATCH-запрос к API 1С OData с передачей данных и заголовком авторизации
$response = $client->request('PATCH', 'Document_ПередачаОСВАренду(guid(\'ded04c9b-f8a1-11ed-9dda-b06ebfbdbb65\'))', [
    'query' => [
        '$format' => 'json',
    ],
    'headers' => [
        'Authorization' => 'Basic ' . base64_encode("$username:$password"),
        'Content-Type' => 'application/json',
    ],
    'body' => $jsonData,
]);

// проверка кода ответа
if ($response->getStatusCode() === 200) {
    echo 'Запись успешно добавлена в базу данных 1С.';
} else {
    echo 'Произошла ошибка при добавлении записи в базу данных 1С.';
}
Показать
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот