Имя: Пароль:
1C
1С v8
Ошибка создания счёта (ОбработкаЗаполнения)
0 welijow479
 
30.07.20
22:38
Здравствуйте, я уже жалею что прикоснулся к программному продукту, который нужно законом запретить выпускать за свою 'стабильность'.

Работаю с интеграцией по reat протоколу. Написал код, отладил, загрузил, а он не работает. Стал разбираться и пришёл к такому результату: выполняю один код, на одном сервере с одинаковыми параметрами:
Бухгалтерия предприятия, редакция 3.0 (3.0.80.36), - при вставке счёта вылезает ошибка 500 с текстом "Ошибка при выполнении обработчика - 'ОбработкаЗаполнения'.".
Бухгалтерия предприятия, редакция 3.0 (3.0.77.78), - успешно вставляет счёт без каких либо ошибок.

Я даже сниффером трафик снял ( https://pastebin.com/zSYX2yMb ) и совершенно не понимаю чего ещё нужно этой программе..
1 МихаилМ
 
30.07.20
22:43
Это Вы safona8215 ?
2 Ёпрст
 
гуру
31.07.20
00:31
(0) значит в более новой редакции есть еще какой то реквизит, обязательный к заполнению, которого в старой редакции не было.
Откройте 1с-ину и сделайте тоже самое ручонками, оно напишет, чего не хватает
3 welijow479
 
31.07.20
00:55
(2) нету обязательных полей в счёте, - Создаю счёт и нажимаю записать, готово. Собственно в схеме "/odata/standard.odata/$metadata" тоже написано что нету обязательных полей.
4 Ёпрст
 
гуру
31.07.20
01:06
(3) если эту шляпу переписать с json на xml, не пробовал ?
5 Ёпрст
 
гуру
31.07.20
01:08
И это.. там же вроде в OData надо доступные объекты галочками ментить.. этот счёт в новой редакции помечен ?
6 Ёпрст
 
гуру
31.07.20
01:09
в самой 1с-ине.
7 welijow479
 
31.07.20
01:12
(4) xml не пробовал, нужно много кода править :(
В настройках да, включил "Счет покупателю" и он включил пару сотен связанных объектов, всё как на старой версии.
8 Ёпрст
 
гуру
31.07.20
01:23
Непонятно, схрена ли этот обработчик вообще вызывается, ты же не ввод на основании лепишь, или это другая ошибка ?..хз, rest -ом не баловался
9 Ёпрст
 
гуру
31.07.20
01:24
посмотри в модуле дока в пофигураторе, в чем разница в релизах в ОбработкаЗаполенния
10 Ёпрст
 
гуру
31.07.20
01:43
И это, а в новом релизе бухии, все те реквизиты с такими гуидами то хоть есть в базе?
11 Ёпрст
 
гуру
31.07.20
01:44
А то, хз как таи рест реализовпн, если по гуиду не найдет, будет пустая ссылка и будет тебе "не заполнено" обязательное поле
12 welijow479
 
31.07.20
01:50
(9) проверил. Вообще весь код объекта "СчётНаОплатуПокупателю" одинаковый, метод "ОбработкаЗаполнения" тоже.
(10) все guid забивались на новую конфигурацию, через админу сайта: ( Сайт делает запрос, получает список, отображает его, я выбираю и сохраняю в свою БД, далее использую этот ID ).

*накатывает депрессия*
13 welijow479
 
31.07.20
01:52
(11) но я скажу больше, на старой версии я могу передать пустой массив "{}" и счёт создастся, без полей вообще, но он будет и ошибок не будет.
В новой пробовал передавать пустой массив, - ошибка.
14 acht
 
31.07.20
07:25
(0) > я уже жалею что прикоснулся
(12) > накатывает депрессия

Скажите, а подход "а вот я такой, а что ей надо - непонимаю", он у вас только с программным обеспечением?
15 hhhh
 
31.07.20
07:32
(14) наверно, с бабами еще
16 welijow479
 
31.07.20
12:34
(14) нет, только к таким прогам где полностью отсутствует внятная документация, а все статьи и книги на протяжении 400 страниц пережёвывают сопли на тему нажатия пары кнопок, которые и так очевидны, ничего конкретного, ничего по делу.
Если Вы такой умненький, скажите, в чём дело. Я предоставил всю информацию, и запрос и версии ПО. Подскажите что по делу а не посты на форуме набивайте.
Хотя сообщество 1с, это идеальное сообщество, где можно показать весь свой пафос в придачу с менталитетом...

По делу кто что скажет?
И спасибо пользователю Ёпрст, который пытался помочь.
17 Ёпрст
 
гуру
31.07.20
12:48
(16) другие хоть запросы отрабатывают в этой конфе ? Ну там, создание клиентосов и т.д..?
18 Ёпрст
 
гуру
31.07.20
12:53
Открой дерево метаданных в пофигураторе этого документа, посомтри, у каких реквизитов стоит галка выдавать ошибку , если не заполнено.
Если такие есть, видать их как-то передаешь не верно..
19 Ёпрст
 
гуру
31.07.20
12:54
Или вообще не передаешь своим рестом.
20 welijow479
 
31.07.20
13:23
(17) POST запрос только один, но я попробую что-нибудь другое добавить и проверить, но все GET запросы отрабатывают успешно.
(18) из всех обязательных полей (Организация, Контрагент, ОрганизацияПолучатель, СтруктурнаяЕдиница) не был передан последний, как я понял это счёт организации, но его добавление никак не изменила картину.
21 acht
 
31.07.20
13:43
(16) https://ibb.co/f0cLBTS

У тебе есть, например, осознание хотя бы различных контекстов компиляции? Очевидно ему...
22 Ёпрст
 
гуру
31.07.20
13:48
(20) табличной части там нет ? Мот там есть обязательные поля к заполнению, которые не пихаешь
23 welijow479
 
31.07.20
13:57
(21) а у Вас есть хотя-бы представления о регистрах ввода\вывода архитектуры AVR? или о том, как 8'ми битный процессор считает 64 битный числа, как происходит математика типа float?
Подозреваю что нет... У меня есть задача, простая задача, и она была решена, до тех пор пока 1с не сломал конфигурацию. Если Вам нечего сказать, то пожалуйста, не говорите!

(22) В табличных частях тоже самое, только один момент, там есть таблицы ( ВозвратнаяТара и УдалитьУслуги ), я их вообще не передаю, не понял, они нужны или нет, или нужно передавать пустой массив...
24 acht
 
31.07.20
13:59
(23) И про математику с фиксированной точкой я тебе тоже могу рассказать. Подозревает он...
25 Ёпрст
 
гуру
31.07.20
14:02
(23) вот хз, я с rest 1с-овским не работал, у нас свои интеграции с сайтами
Пробуй на другом объекте попроще, слепить свой запрос.
26 Ёпрст
 
гуру
31.07.20
14:03
Или.. конфу обнови до другого релиза, раз на старом работало
27 Ёпрст
 
гуру
31.07.20
14:03
сравнением конфы можно посмотреть, че там поменяли жешь..
28 welijow479
 
31.07.20
14:08
(27) Принял, попробую сравнить, спасибо.
О результатах отпишусь, если не забанят :)
29 Ёпрст
 
гуру
31.07.20
14:09
Мот какую подписку добавили..хз, мне лень на сервак буховский топать, я даже не помню, какая БП у нас стоит, 3 или 2 ?..они там сами копашаться в ней
30 welijow479
 
31.07.20
14:55
(27) не уверен что я корректно понимаю этот файл ( https://pastebin.com/gTs16pNv ), но вроде ничего криминального нету.
основная конфигурации - старая, рабочая.
файл - новая, не рабочая.
31 Ёпрст
 
гуру
31.07.20
15:18
(30) не, это всё похрен.

Когда гет запрос делаешь с этими реквизитами, что потом в пост пихаешь, норм возвращает ? Сами объекты ти в базе есть ? Клиентос/договор/номенлатура и т.д.. где гуид у тебя.
32 acht
 
31.07.20
15:27
(31) GET тупо читает данные из базы. POST/PUT/PATCH что-там-у-них дополнитеьно вызывают работу программной логики. Ошибки логгируются в известные места.
33 welijow479
 
31.07.20
15:36
(31) да, ещё раз проверил вручную все id, всё возвращается, всё на месте.
(32) так откройте тайну, где они логируются? Я журнале регистрации есть только запись о входе пользователя.
34 Ёпрст
 
гуру
31.07.20
15:38
(33) тут только если тех журнал настраивать и смотреть че там.
35 Ёпрст
 
гуру
31.07.20
15:50
пробуй на другом объекте..справочник, например, записать
36 welijow479
 
31.07.20
15:52
(34) настроил, вот вывод логов:

48:25.247004-0,EXCP,0,process=httpd,OSThread=5060,Usr=odata.user,Exception=0d2200af-1696-4395-91e5-2872675e6d3d,Descr='src\StandardODataApiServiceImpl.cpp(204):
0d2200af-1696-4395-91e5-2872675e6d3d: Ошибка при выполнении обработчика - ''ОбработкаЗаполнения''
8d366056-4d5a-4d88-a207-0ae535b7d28e: Ошибка при получении значения атрибута контекста (ПараметрыКлиентаНаСервере)
{ОбщийМодуль.ОбщегоНазначения.Модуль(1374)}:    ПараметрЗапускаПриложения = ПараметрыСеанса.ПараметрыКлиентаНаСервере.Получить("ПараметрЗапуска");
{Справочник.Организации.МодульМенеджера(82)}:        Если ОбщегоНазначения.РежимОтладки() Тогда
{ОбщийМодуль.БухгалтерскийУчетПереопределяемый.Модуль(1676)}:        Возврат Справочники.Организации.ОрганизацияПоУмолчанию(ИмяПользователяИБ);
{ОбщийМодуль.ЗаполнениеДокументов.Модуль(404)}:        ОсновнаяОрганизация = БухгалтерскийУчетПереопределяемый.ПолучитьЗначениеПоУмолчанию("ОсновнаяОрганизация");
{Документ.СчетНаОплатуПокупателю.МодульОбъекта(491)}:    ЗаполнениеДокументов.Заполнить(ЭтотОбъект, ДанныеЗаполнения);
f08d92f8-9eb2-4e19-9dd9-977d907cec2d: Нарушение прав доступа!'

Что-то уже вменяемое, но непонятно :\
37 Ёпрст
 
гуру
31.07.20
16:00
(36)
>>>>Нарушение прав доступа!
38 Ёпрст
 
гуру
31.07.20
16:00
Прав у тя нет короче, на создание объектов в базе этой.
39 Ёпрст
 
гуру
31.07.20
16:00
под этим юзверем
40 welijow479
 
31.07.20
16:13
(38) но я использую пользователя, который был создан при включении odata интерфейса: https://ibb.co/TcRSSSw
41 Ёпрст
 
гуру
31.07.20
16:22
(40) ага, но судя по ошибки, у этого пользователя нет прав на этот док
42 welijow479
 
31.07.20
16:41
(41) да, и Вы были правы. Выдал Полные права и всё заработало.
На версии, на которой я всё отлаживал, всё работало потому что в системе не было пользователей...

Ёпрст, огромное Вам спасибо. Есть же есть добрые люди, которые помогут, даже если человек не понимает в этой отрасли.
Надеюсь кошелёк в ЯД актуальный. Не много, но ..
2 + 2 = 3.9999999999999999999999999999999...