|
БУ2.0 - непонятное поведение алгоритма в базе под SQL | ☑ | ||
---|---|---|---|---|
0
ksergey
04.06.19
✎
13:16
|
Бухгалтерия для Украины, редакция 2.0.15.1
Платформа 8.3.10.2772 Имею сложную в алгоритме и оформлении обработку загрузки данных под старой версию Бухгалтерия для Украины 1.2 под 8.2 В связи с переходом на БУ 2.0 пришлось ее переделать, учитывая сложность переделал только сам алгоритм под нюансы новой БУ 2.0 т.е. новая обработка в оформлении осталась такой же, а для работы в 2.0 запускаю её под специальным пользователем в толстом клиенте. Суть проблемы заключается в том, что в файловой версии данный алгоритм работает (проверено на нескольких базах), а в SQL-версии падает с ошибкой в момент записи с проведением документа Ошибка при вызове метода контекста (Записать): Ошибка при выполнении обработчика - 'ОбработкаПроведения': {ОбщийМодуль.НалоговыйУчет.Модуль(591)}: Ошибка при вызове метода контекста (УстановитьУправляемуюБлокировку): Попытка передачи с клиента на сервер мутабельного значения 2-го параметра метода УстановитьУправляемуюБлокировку () В чем причина нашел быстро (там действительно в вызове с толстого клиента на сервер передается в параметре структуры ТаблицаЗначений, но мне не понятно - почему же этот алгоритм работает в файловой версии ? И как разрешить эту проблему под SQL? Буду балгодарен за любую помощь и дельный совет :) |
|||
1
Провинциальный 1сник
04.06.19
✎
13:20
|
Потому что в файловой версии не происходит передачи мутабельного объекта на сервер за неимением сервера)
|
|||
2
ЛЮС
04.06.19
✎
13:27
|
вместо таблицы можете передавать массив структур
|
|||
3
ksergey
06.06.19
✎
10:52
|
Добрый день коллеги.
Решил немного освежить тему, в связи с вновь открывшимися обстоятельствами :) Оказалось, что на самом деле ошибка передачи мутабельного значения вызывала вот эта структура содержащая Новый Диапазон СтруктураЗначенийБлокировки = Новый Структура("Период", Новый Диапазон(, ДокументОбъект.Дата)); Вопрос: почему передача этого пар-ра Новый Диапазон вызывает такую ошибку передачи мутабельного значения? |
|||
4
ksergey
06.06.19
✎
11:00
|
Собственно само решение нашел - обернул через ЗначениеВСтрокуВнутр(Новый Диапазон )
а в вызываемой процедуре вывернул и подсунул снова в алгоритм - всё заработало Но вопрос у меня остался: почему передача пар-ра Новый Диапазон вызывает такую ошибку передачи мутабельного значения? |
|||
5
ptiz
06.06.19
✎
11:12
|
(4) А хз. Судя по СП - должно передаваться.
Доступность: Сервер, толстый клиент, внешнее соединение. Возможен обмен с сервером. Сериализуется. |
|||
6
Провинциальный 1сник
07.06.19
✎
08:05
|
(4) ДокументОбъект в ЗначениеВСтрокуВнутр? Ну-ну.. Возможность сериализации несериализуемого через структуру - багоюз. Серверных процессов может быть больше одного, вы это понимаете хоть?
|
|||
7
ksergey
10.06.19
✎
11:22
|
Отвечу в надежде, что привлеку еще какое-либо мнение
>>ДокументОбъект в ЗначениеВСтрокуВнутр? Ну-ну. уважаемый Провинциальный, у меня речь идет о том, что пришлось оборачивать вот этот код Новый Диапазон(, ДокументОбъект.Дата) а не сам ДокументОбъект >>Серверных процессов может быть больше одного, вы это понимаете хоть? пож-та, поясните - это каким-то образом связано с Новый Диапазон(, ДокументОбъект.Дата) ну и таки снова спрошу - почему этот алгоритм в файловой версии работает? |
|||
8
Провинциальный 1сник
14.06.19
✎
11:04
|
(7) Может 1с реквизит объекта передает по ссылке, а не по значению, в целях оптимизации.. Попробуйте для интереса передать именно значение типа "дата" (для надежности можно его пропустить через сериализацию), а не реквизит объекта.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |