Имя: Пароль:
1C
1С v8
Заполнение вспомогательных реквизитов табличной части формы документы
,
0 Scorp1985
 
23.04.13
08:42
Добрый день все!
В табличной части формы документа есть вспомогательные реквизиты для расчета и основные реквизиты, привязанные к реквизитам табличной части самого документа.

Необходимо держать в актуальном состоянии их значения.
Вопросы:

1. Процедура для расчета должна выгладеть так?

&НаКлиенте
Процедура ЗаполнитьВспомогательныеРеквизиты(ТекущаяСтрока)
   ТекущаяСтрока.ЦенаПоставщика = ТекущаяСтрока.СуммаПоставщика / ТекущаяСтрока.Количество;
   // и т.д. для каждого реквизита
КонецПроцедуры

2. Лучше при изменении значения в определенной строке вызывать процедуру только для этой строки?

3. При открытии документа вызываю процедуру таким циклом с перебором строк, и получаю ошибку "Итератор для значения не определен", что не так?

Для  Каждого Строка из Элементы.СоставНакладной.ТекущаяСтрока  Цикл
         ТекСтр = Элементы.СоставНакладной.ДанныеСтроки(Строка);
       ЗаполнитьВспомогательныеРеквизиты(ТекСтр);

4. Откуда вызывать процедуру в цикле, ПередОткрытием ??
1 Scorp1985
 
24.04.13
07:01
Никто не поможет новичку?)
2 Jonny_Khomich
 
24.04.13
07:18
ТекСтр = Элементы.СоставНакладной.ДанныеСтроки(Строка); - бред какой то непонятный.
Твоя переменная Строка содержит значение строки.
Ты вообще знаком с циклами? Может стоит сперва их подтянуть?
и в твою грёбанную процедуру передавай Строка
ЗаполнитьВспомогательныеРеквизиты(Строка);
3 kosts
 
24.04.13
07:18
Для  Каждого Строка из Элементы.СоставНакладной.ТекущаяСтрока  Цикл
Что хотел этим перебрать, колонки строки? В данном случае программа правильно ругается, что итератор не определен.

Лучше опиши предметную задачу, что тебе нужно посчитать...
А то ничего не понятно "вспомогательные", "основные" чем они отличаются?
4 Jonny_Khomich
 
24.04.13
07:23
и понятно, что эти данные надо менять при изменении значений этих колонок! Зачем каждый раз пересчитывать перед открытием? У тебя документ будет с пометкой "Изменён".
5 Scorp1985
 
24.04.13
07:32
Есть табличная часть документа с реквизитами "Количество", "СуммаПоставщика", "СуммаНаценки"

На форму документа добавлены для удобства заполнения реквизиты "ЦенаПоставщика" ( = СуммаПоставщика/Количество ), "Наценка" ( = СуммаНаценки/Количество ), эти реквизиты в документе мне хранить не нужно, т.к. они создают избыточность, но при заполнении они нужны.
6 Scorp1985
 
24.04.13
07:34
Ну и при открытии, соответственно нужно во всю таблицу эти все расчетные реквизиты таблично формы подставить.
7 kosts
 
24.04.13
07:35
(5) Все сохраняют цены в документе и не считают это избыточностью. Сохраняй и не ломай себе моск.
8 Scorp1985
 
24.04.13
07:38
Я просто изначально не 1с-ник, и меня в Институте им. Б.Н. Ельцина учили так не делать =)
9 Jonny_Khomich
 
24.04.13
07:39
(8) твой 1кб в базе вообще никак не помеха, а выполнять каждый раз заполнение, бред!
10 kosts
 
24.04.13
07:40
(8) Не тот случай.
Что будет если у тебя количество не введут, а цену введут. При открытии как цену посчитаешь?
11 Scorp1985
 
24.04.13
07:41
Спасибо, т.е. даже если мне нужно 10 элементов использовать, которые можно посчитать от остальных - всё писать в документ по законам программирования на 1с?)
12 Scorp1985
 
24.04.13
07:42
(10) У меня контроль заполнения =)
13 Jonny_Khomich
 
24.04.13
07:44
(12) если тебя учили в таком хорошем институте и ты весь такой умный, то что же ты обращаешься на форум с такой проблемой то?
14 kosts
 
24.04.13
07:44
(11) Не по законам 1С, а по соображениям целесообразности.
И придется везде считать эти цены, условия ставить. В печатных формах, например.
15 Defender aka LINN
 
24.04.13
08:00
(12) И как же он реализован, позволь полюбопытствовать?
(8) А в этом вашем университете тебя не учили, что при делении двух чисел может получиться число с числом десятичных знаков несколько более 2?