Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 03:04

Проблемы с обходом табличной части документа

Автор fairei, 30 авг 2011, 17:59

0 Пользователей и 1 гость просматривают эту тему.

fairei

начал обучаться по книге радченко, решил добавить свой обработчик на изменение даты:

&НаКлиенте
Процедура ДатаПриИзменении(Элемент)
Если Элементы.ПереченьНоменклатуры.ВыделенныеСтроки.Количество() <> 0 Тогда
Для каждого ТекСтрокаНоменклатура из ПереченьНоменклатуры Цикл
ТекСтрокаНоменклатура.Цена = РаботаСоСправочниками.РозничнаяЦена(Объект.Дата, ТекСтрокаНоменклатура);
РаботаСДокументами.РассчитатьСумму(ТекСтрокаНоменклатура);
КонецЦикла;
КонецЕсли;
КонецПроцедуры

на что говорит: {Документ.ОказаниеУслуги.Форма.ФормаДокумента.Форма(24,40)}: Переменная не определена (ПереченьНоменклатуры)
посмотрел на форуме, вроде так и пишет народ...
исправляю вот так:

Процедура ДатаПриИзменении(Элемент)
Если Элементы.ПереченьНоменклатуры.ВыделенныеСтроки.Количество() <> 0 Тогда
Для каждого ТекСтрокаНоменклатура из Элементы.ПереченьНоменклатуры Цикл
ТекСтрокаНоменклатура.Цена = РаботаСоСправочниками.РозничнаяЦена(Объект.Дата, ТекСтрокаНоменклатура);
РаботаСДокументами.РассчитатьСумму(ТекСтрокаНоменклатура);
КонецЦикла;
КонецЕсли;
КонецПроцедуры

{Документ.ОказаниеУслуги.Форма.ФормаДокумента.Форма(24)}: Итератор для значения не определен
      Для каждого ТекСтрокаНоменклатура из Элементы.ПереченьНоменклатуры Цикл
что не так?
и еще вопрос, каким образом проверять наличие информации в табличной части документа (ПереченьНоменклатуры), я это делаю так:
...Если Элементы.ПереченьНоменклатуры.ВыделенныеСтроки.Количество() <> 0 Тогда...
но думаю есть свойство, типа Элементы.ПереченьНоменклатуры.пусто = Истина???
Спасибо!

fairei

начал обучаться по книге радченко, решил добавить свой обработчик на изменение даты:


&НаКлиенте
Процедура ДатаПриИзменении(Элемент)
Если Элементы.ПереченьНоменклатуры.ВыделенныеСтроки.Количество() <> 0 Тогда
  Для каждого ТекСтрокаНоменклатура из ПереченьНоменклатуры Цикл
   ТекСтрокаНоменклатура.Цена = РаботаСоСправочниками.РозничнаяЦена(Объект.Дата, ТекСтрокаНоменклатура);
   РаботаСДокументами.РассчитатьСумму(ТекСтрокаНоменклатура);
  КонецЦикла;
КонецЕсли;

на что говорит: {Документ.ОказаниеУслуги.Форма.ФормаДокумента.Форма(24,40)}: Переменная не определена (ПереченьНоменклатуры)
посмотрел на форуме, вроде так и пишет народ...
исправляю вот так:

...Для каждого ТекСтрокаНоменклатура из Элементы.ПереченьНоменклатуры Цикл...

что не так?
и еще вопрос, каким образом проверять наличие информации в табличной части документа (ПереченьНоменклатуры), я это делаю так:
...Если Элементы.ПереченьНоменклатуры.ВыделенныеСтроки.Количество() <> 0 Тогда...
но думаю есть свойство, типа Элементы.ПереченьНоменклатуры.пусто = Истина???
Спасибо!

has

А так?

Для каждого ТекСтрокаНоменклатура из Обьект.ПереченьНоменклатуры Цикл


fairei

Цитата: has от 31 авг 2011, 09:20
А так?

Для каждого ТекСтрокаНоменклатура из Обьект.ПереченьНоменклатуры Цикл



так тоже не катит: {Документ.ОказаниеУслуги.Форма.ФормаДокумента.Форма(25)}: Ошибка при вызове метода контекста (РозничнаяЦена): Ошибка при вызове серверного метода.
            ТекСтрокаНоменклатура.Цена = РаботаСоСправочниками.РозничнаяЦена(Объект.Дата, ТекСтрокаНоменклатура);
несовпадение типов

вот процедура:
Процедура ДатаПриИзменении(Элемент)
   Если Элементы.ПереченьНоменклатуры.ВыделенныеСтроки.Количество() <> 0 Тогда
      Для каждого ТекСтрокаНоменклатура из Объект.ПереченьНоменклатуры Цикл
            ТекСтрокаНоменклатура.Цена = РаботаСоСправочниками.РозничнаяЦена(Объект.Дата, ТекСтрокаНоменклатура);
            РаботаСДокументами.РассчитатьСумму(ТекСтрокаНоменклатура);
      КонецЦикла;
   КонецЕсли;
КонецПроцедуры

has

Ну в отладчике посмотри тип ТекСтрокаНоменклатура. А точно на клиенте выполнять нада?

ivanov660

Цитата: has от 05 сен 2011, 07:16
Ну в отладчике посмотри тип ТекСтрокаНоменклатура. А точно на клиенте выполнять нада?
А в настройках модуля стоит разрешение на вызов в клиентском приложении?
+
Разделяйте понятия в НаКлиенте и НаСервере, т.е. надо разделять код процедуры на серверные и клиентские (т.к. на управляемом клиенте маленький перечень используемых функций).

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск