Имя: Пароль:
1C
1С v8
Передать данные текущей строки в запрос (управляемые формы)
0 Beast42
 
07.09.15
19:44
Собсно сабж такой:

&НаКлиенте
Процедура ПродукцияКоличествоРолловПриИзменении(Элемент)
    ТекущаяСтрока =  ТекущийЭлемент.ТекущаяСтрока; //При удалении нескольких строк в документе индексы остаются старые...
    Если НужнаяНоменклатура(ТекущаяСтрока) Тогда
        ТекущийЭлемент.ТекущиеДанные.Количество = ТекущийЭлемент.ТекущиеДанные.КоличествоРоллов * 8;
    Иначе
        ТекущийЭлемент.ТекущиеДанные.КоличествоРоллов = 0;
    КонецЕсли;
КонецПроцедуры

&НаСервере
Функция НужнаяНоменклатура(ТекущаяСтрока)
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    Номенклатура.Ссылка КАК Ссылка
    |ИЗ
    |    Справочник.Номенклатура КАК Номенклатура
    |ГДЕ
    |    Номенклатура.ЭтоГруппа = ЛОЖЬ
    |    И Номенклатура.Родитель = &Родитель
    |    И Номенклатура.Ссылка = &Ссылка
    |    И НЕ Номенклатура.ПометкаУдаления";
    Запрос.УстановитьПараметр("Ссылка", Объект.Продукция[ТекущаяСтрока].Номенклатура); //Вот сюда нужно предать данные строки
    Запрос.УстановитьПараметр("Родитель", Справочники.Номенклатура.НайтиПоКоду("ФР-00000129"));
    Результат = Запрос.Выполнить().Выбрать();    
    Возврат Результат.Следующий();    
КонецФункции




Этьа конструкция работает, но вот если заполнить таблицу каким либо обработчиком и потом удалить несколько строк, то данная конструкция не работает, говорит что "Индекс находится за пределами массива"...Так вот вопрос, как ещё можно передать данные текущей строки???
1 DrShad
 
07.09.15
21:11
Обращайся явно к таблице данных формы
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.