К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

БП 3 и com-соединение из 7.7

Гость
0 - 20.05.2020 - 00:41
Добрый день, стоит задача из 7.7 записать реквизит справочника номенклатуры "Артикул" в БП 3.

Соответственно нарываюсь на ошибку

"Ошибка при выполнении обработчика - 'ПередЗаписью'
Попытка передачи с клиента на сервер мутабельного значения 1-го параметра метода ЗапретНаИзменениеНоменклатурыПередЗаписью ()."

Можно ли это обойти?



Гость
1 - 20.05.2020 - 00:42
Код выглядит следующим образом:

Код:
ОбъектНом = v8.Справочники.Номенклатура.НайтиПоКоду(Выборка.Товар.Код).ПолучитьОбъект();
ОбъектНом.Артикул = "";
ОбъектНом.Записать();
Гость
2 - 20.05.2020 - 06:10
А Вы уверены, что товар найден по коду ? Если объект получен, то проблем по идее быть не должно. Как вариант попробуйте установить в истину ОбменДанными.Загрузка
У меня аналогичная обработка работает, с проблемой не сталкивался
Гость
3 - 20.05.2020 - 08:04
2-USSR > Угу, уверен. Возможно проблема в том, что целевая база на SQL.
Установка ОбменДанными.Загрузка = Истина к желаемому результату, к сожалению, не привела :(
Гость
4 - 20.05.2020 - 08:06
Кстати, а что это за метод такой: ЗапретНаИзменениеНоменклатурыПередЗаписью ()

что-то в синтакс-помощнике его не нашел :)
Гость
5 - 20.05.2020 - 08:15
Что интересно, если закомментировать обработчик ПередЗаписью у справочника номенклатуры в целевой базе, то ошибка всё равно остаётся
Гость
6 - 20.05.2020 - 08:56
4-Sasha > 99% что это подписка на событие. При этом подписка ссылается на процедуру общего модуля. Общий модуль объявлен как серверный к примеру, а подписка срабатывает на клиенте. Отсюда и ошибка.
Гость
7 - 20.05.2020 - 10:06
6-SergeyY >а есть вариант записать изменения через COM одного реквизита объекта безо всяких подписок на события? :)
Гость
8 - 20.05.2020 - 10:10
(6)скорее всего так и есть. Я почему то подумал, что конфа типовая
(7)а что это вообще за код, почему из 7.7 вызывается? Выборка в коде 8-рочная ?
Гость
9 - 20.05.2020 - 11:43
(8) Суть: сопоставление номенклатуры в семерке и восьмерки (практически типовая БП 3.0, есть расширения, не касающиеся номенклатуры) идет по артикулу.
В семерку артикулы подгружаются из внешнего источника.
Нужно массово обновить артикулы в семерки из этого источника и соответственно переписать их в восьмерке.
Для удобства работы (чтобы не запускать две обработки в каждой из баз) думал это сделать в семерке через COM- соединение

Да, выборка в коде восьмерочная - результат запроса по старому артикулу
Гость
10 - 20.05.2020 - 17:22
В общем, не решил эту проблему.
Перенёс кусок обновления данных в восьмерке во внешнюю обработку, запускаемую в самой восьмерке и там по OLE к семерке.
Uho
11 - 20.05.2020 - 18:30
Цитата:
Сообщение от Sasha Посмотреть сообщение
Попытка передачи с клиента на сервер мутабельного значения 1-го параметра метода ЗапретНаИзменениеНоменклатурыПередЗаписью ()."
нет в типовой БП такой процедуры
Гость
12 - 21.05.2020 - 10:38
11-Uho > Спасибо за наводку :) Теперь осталось выяснить, как и откуда вызывается эта процедура.

Нашел нетиповой общий модуль с единственной этой процедурой, тип модуля "Клиент, Сервер"

Но откуда вызывается этот модуль ненахожу. Глобальный поиск по процедуре дает ссылку только на этот модуль. Глобальный поиск по имени модуля тоже ничего не даёт "совпадений не найдено".

Есть два расширения, в них поиск по имени процедуры или модуля ничего не находит
Гость
13 - 21.05.2020 - 12:29
(12)Так тут уже говорили, смотри подписки на события. Метод к подписке наверное и привязан. Найди ссылки на модуль


К списку вопросов






Copyright ©, Все права защищены