Добрый день. Подскажите как исправить ошибку, не могу понять как передать текущие данные с клиента на сервер. Ругается
{Документ.франВыполненнаяРабота.Форма.ФормаДокумента.Форма(96)}: Ошибка при получении значения атрибута контекста (ТекущиеДанные)
ТекущиеДанные = ЭтотОбъект.Элементы.Работы.ТекущиеДанные;
по причине:
Текущие данные таблицы недоступны на сервере
Текущие данные таблицы недоступны на сервере
&НаСервере
Процедура РаботыДоговорыКонтрагентовПриИзмененииНаСервере()
ТекущиеДанные = ЭтаФорма.Работы.ТекущиеДанные;
//ТекущиеДанные = ЭтотОбъект.Элементы.Работы.ТекущиеДанные;
Если ЗначениеЗаполнено(ТекущиеДанные.Контрагент) Тогда
ТекущиеДанные.ДоговорКонтрагента = ТекущиеДанные.Контрагент.ОсновнойДоговорКонтрагента;
ТекущиеДанные.Организация = ТекущиеДанные.ДоговорКонтрагента.Организация;
Иначе
ТекущиеДанные.ДоговорКонтрагента = Справочники.ДоговорыКонтрагентов.ПустаяСсылка();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура РаботыДоговорыКонтрагентовПриИзменении(Элемент)
РаботыДоговорыКонтрагентовПриИзмененииНаСервере();
КонецПроцедуры
ПоказатьПо теме из базы знаний
- Программное копирование узла/строки дерева значений на управляемой форме (УФ, ДанныеФормыДерево, ДанныеФормыЭлементДерева) в вариантах на клиенте и на сервере
- Подбираем сервер для 1C:ERP
- Утилита тестирования сервера 1С от HADGEHOGs
- Базы данных. Несколько шагов до серьезного обслуживания
- Перенос данных между похожими конфигурациями 1С
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Использовать идентификатор текущей строки:
ИдентификаторСтроки = Элементы.Работы.ТекущаяСтрока;
ТекущиеДанные = Работы.НайтиПоИдентификатору(ИдентификаторСтроки);
&НаСервере
Функция РаботыДоговорыКонтрагентовПриИзмененииНаСервере(Контрагент)
Возврат новый Структура("ОсновнойДоговорКонтрагента, Организация",Контрагент.ОсновнойДоговорКонтрагента,Контрагент.ОсновнойДоговорКонтрагента.Организация);
КонецФункции
&НаКлиенте
Процедура РаботыДоговорыКонтрагентовПриИзменении(Элемент)
ТекущиеДанные = Элементы.Работы.ТекущиеДанные;
Если ЗначениеЗаполнено(ТекущиеДанные.Контрагент) Тогда
Структура = РаботыДоговорыКонтрагентовПриИзмененииНаСервере(ТекущиеДанные.Контрагент);
ТекущиеДанные.ДоговорКонтрагента = Структура.ОсновнойДоговорКонтрагента;
ТекущиеДанные.Организация = Структура.Организация;
Иначе
ТекущиеДанные.ДоговорКонтрагента = Неопределено;
КонецЕсли;
КонецПроцедуры
Показать
&НаСервере
Функция ЗначениеРеквизита(Объект,ИмяРеквизита);
Возврат Объект[ИмяРеквизита];
КонецФункции
&НаКлиенте
Процедура полРеквизит1ПриИзменении(Элемент)
ТекДанные = Элементы.пол.ТекущиеДанные;
ТекДанные.ДоговорКонтрагента = ЗначениеРеквизита(ТекДанные.Контрагент,"ОсновнойДоговорКонтрагента");
ТекДанные.Организация = ЗначениеРеквизита(ТекДанные.Контрагент,"Организация");
КонецПроцедуры
Показать
Делаю через запрос, ругается на то что нельзя передатьрезультат запроса с сервера на клиент, это я понимаю подскажите как исправить????
&НаСервере
Функция РаботыКонтрагентПриИзмененииНаСервере(Контрагент)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ДоговорыКонтрагентов.Ссылка КАК Договор,
| ДоговорыКонтрагентов.Контрагент КАК Контрагент
|ИЗ
| Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
|ГДЕ
| ДоговорыКонтрагентов.франТипДоговораФранчайзи = &ТипДоговора
| И ДоговорыКонтрагентов.Контрагент = &Контрагент";
Запрос.УстановитьПараметр("Контрагент", Контрагент);
Запрос.УстановитьПараметр("ТипДоговора", Перечисления.франТипыДоговоров.Сопровождение);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
РезультатЗапроса = ВыборкаДетальныеЗаписи.Договор;
КонецЦикла;
//КонецЕсли;
Возврат РезультатЗапроса;
КонецФункции
&НаКлиенте
Процедура РаботыКонтрагентПриИзменении1(Элемент)
ТекущиеДанные = Элементы.Работы.ТекущиеДанные;
ТекущиеДанные.ДоговорыКонтрагентов = РаботыКонтрагентПриИзмененииНаСервере(ТекущиеДанные.Контрагент)
КонецПроцедуры
Показать
В итоге получилось так
&НаСервере
Функция РаботыКонтрагентПриИзмененииНаСервере(Контрагент)
//{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ДоговорыКонтрагентов.Ссылка КАК Договор
|ИЗ
| Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
|ГДЕ
| ДоговорыКонтрагентов.Контрагент = &Контрагент";
Запрос.УстановитьПараметр("Контрагент", Контрагент);
РезультатЗапроса = Запрос.Выполнить();
//ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
ТабЗн = РезультатЗапроса.Выгрузить();
Таблица = ОбщегоНазначения.ТаблицаЗначенийВМассив(ТабЗн);
Возврат Таблица;
КонецФункции
&НаКлиенте
Процедура РаботыКонтрагентПриИзменении1(Элемент)
ТекущиеДанные = Элементы.Работы.ТекущиеДанные;
ЗХначениеДоговора = РаботыКонтрагентПриИзмененииНаСервере(ТекущиеДанные.Контрагент);
ЗнДог = ЗХначениеДоговора[0];
зн = ЗнДог.Договор;
ТекущиеДанные.ДоговорыКонтрагентов = зн;
КонецПроцедуры
Показать
Прошу помощи))) Мучаюсь 4 час. Я новичок в 1С. Имеется Документ посещение в нем табличная часть дополнительные покупки и там реквизиты Товар(ссылка на Справочник Товары), СтоимостьТовара, Количество Сумма. Есть справочник Товары с реквизитом Стоимость.
Хочется когда выбираешь Товар автоматически подставляется стоимость из справочника к тому или иному товару. А после выставления количества товара в сумме автоматически подсчитывалась итоговая стоимость. А потом хочу чтобы к итого ещё эта сумма прибавлялась, но это я наверное буду мучатся сама.
Хочется когда выбираешь Товар автоматически подставляется стоимость из справочника к тому или иному товару. А после выставления количества товара в сумме автоматически подсчитывалась итоговая стоимость. А потом хочу чтобы к итого ещё эта сумма прибавлялась, но это я наверное буду мучатся сама.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот