Передать ссылки на объекты справочника с сервера на клиент
Здравствуйте!
Есть небольшая обработка, которая переименовывает Номенклатуру из Справочника ВариантыКомплектации (Табличная часть элемента справочника). Работает корректно, но изменения видны только после перезагрузки Предприятия. Решила использовать метод ОповеститьОбИзменении. Однако он используется только на клиенте.
В связи с этим вопрос, как передать ссылки на объекты справочника с сервера на клиент? Создала на форме реквизит с типом ТаблицаЗначений тзИзменяемаяНоменклатура и пытаюсь его заполнить, но ругается на не соответствие типов, потому что этот реквизит с типом ДанныеФормыКоллекция, а не ТаблицаЗначений.
Есть небольшая обработка, которая переименовывает Номенклатуру из Справочника ВариантыКомплектации (Табличная часть элемента справочника). Работает корректно, но изменения видны только после перезагрузки Предприятия. Решила использовать метод ОповеститьОбИзменении. Однако он используется только на клиенте.
В связи с этим вопрос, как передать ссылки на объекты справочника с сервера на клиент? Создала на форме реквизит с типом ТаблицаЗначений тзИзменяемаяНоменклатура и пытаюсь его заполнить, но ругается на не соответствие типов, потому что этот реквизит с типом ДанныеФормыКоллекция, а не ТаблицаЗначений.
&НаСервере
Процедура ЗаполнитьНаСервере()
тзИзменяемаяНоменклатура = Новый ТаблицаЗначений;
тзИзменяемаяНоменклатура.Колонки.Добавить("Номенклатура");
Для Каждого СтрокаВарКомплектации из Объект.ВариантыКомплектации Цикл
спрВарКомплектации = СтрокаВарКомплектации.ВариантКомплектации;
Для Каждого СтрокаНоменклатура из спрВарКомплектации.Товары Цикл
ОбъектНоменклатура = СтрокаНоменклатура.Номенклатура.ПолучитьОбъект();
ОбъНоменклНаименБезПроб = СокрП(ОбъектНоменклатура.Наименование);
ОбъектНоменклатура.Наименование = Лев(ОбъНоменклНаименБезПроб, СтрДлина(ОбъНоменклНаименБезПроб) - 1) +
СтрокаНоменклатура.НомерСтроки + ")";
ОбъектНоменклатура.Записать();
Стр = тзИзменяемаяНоменклатура.Добавить();
Стр.Номенклатура = ОбъектНоменклатура;
КонецЦикла;
Сообщить("Изменены наименования номенклатуры в варианте комплектации " + СтрокаВарКомплектации.ВариантКомплектации);
КонецЦикла;
ЗначениеВРеквизитФормы(тзИзменяемаяНоменклатура,Объект.ИзменяемаяНоменклатура);
КонецПроцедуры
&НаКлиенте
Процедура Заполнить(Команда)
ЗаполнитьНаСервере();
Для Каждого Элемент из Объект.ИзменяемаяНоменклатура Цикл
ОповеститьОбИзменении(Элемент);
КонецЦикла;
Элементы.ВариантыКомплектации.Обновить();
КонецПроцедуры
ПоказатьПо теме из базы знаний
- Обработка печатной формы WORD клиент-сервер УФ
- Отправка электронной почты с помощью локального почтового клиента из 1С, развернутой под удаленным рабочим столом
- Обзор полезных методов БСП 3.1.4
- Гарри Поттер и подкапотное пространство веб-клиента
- Взаимодействие с сотрудниками и клиентами из одного окна конфигурации 1С (Телеграм, ВКонтакте, Facebook, Discord). Преимущества, технические особенности, подводные камни
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Ссылки можно просто передать любый способом, например как возвращаемое значение функции, или через хранилища, или еще как, вариантов много. Например, в приведенном коде заменить процедуру на функцию и возвращать список ссылок.
Но судя по постановке задачи, нужно не это, а обновление каких-то отображаемых данных в программе. Каких и где, неизвестно, поэтому трудно что-то сказать. Но есть кучка возможностей для решения подобных задач, типа ОбновитьОтображениеДанных() и прочее, наверное какой-то их этих вариантов решит проблему.
Но судя по постановке задачи, нужно не это, а обновление каких-то отображаемых данных в программе. Каких и где, неизвестно, поэтому трудно что-то сказать. Но есть кучка возможностей для решения подобных задач, типа ОбновитьОтображениеДанных() и прочее, наверное какой-то их этих вариантов решит проблему.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот