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