Имя: Пароль:
1C
1С v8
Создание Строчки
0 zzzLEXzzz
 
08.08.13
16:03
Здравствуйте, 1с 8.2 УТ. подскажите пожалуйста, как правильно прописать. Имеется документ с табличной частью, нужно чтобы при изменении реквизита "контрагент" который находиться НЕ в табличной части, создавалась строка в табличной части. думал сделать так, но не получилось. что я делаю не правильно? Заранее спасибо.

Процедура КонтрагентПриИзменении(Элемент)

   ЭлементыФормы.КоманднаяПанель1.Кнопки.Действие;    
    
КонецПроцедуры
1 Михаил Козлов
 
08.08.13
16:04
Попробуйте добавить сроку в табличную часть.
2 Maxus43
 
08.08.13
16:05
Процедура КонтрагентПриИзменении(Элемент)

СтрокаТЧ = ТабЧасть.Добавить();
Строкатч.РЕКВИЗИТ = тралаал;
3 zzzLEXzzz
 
08.08.13
16:05
(1) Ааамммм а как именно это прописать, подскажи плиз
4 Maxus43
 
08.08.13
16:06
язык программирования вроде русский, и мне просто интересно, какой результат хотел получить, написав ЭлементыФормы.КоманднаяПанель1.Кнопки.Действие; ? это просто смысла не имеет же
5 salvator
 
08.08.13
16:07
(4) Хотел Insert вызвать по ходу :)
6 Fish
 
08.08.13
16:09
Вообще задача не совсем понятна. Т.е. получается, сколько раз я изменю контрагента, столько строчек добавится в ТЧ? Остаётся загадкой смысл подобной задачи :)
7 myk0lka
 
08.08.13
16:10
(6) История изменения контрагентов? ))))))
8 Maxus43
 
08.08.13
16:11
умом Россию не понять, пока не выпито 0,5, а когда выпито 0,5 - проблема кажется нехитрой, попытка глубже понимать уже попахивает литрой! (с)
9 zzzLEXzzz
 
08.08.13
16:13
(6) Я об этом не подумал ((( а как тогда сделать чтобы условие выполнялось только один раз?
10 Maxus43
 
08.08.13
16:14
Процедура КонтрагентПриИзменении(Элемент)

Если ТабЧасть.Количество()>0 Тогда Возврат; КонецЕсли;
СтрокаТЧ = ТабЧасть.Добавить();
Строкатч.РЕКВИЗИТ = тралаал;
11 Поросенок Петр
 
08.08.13
16:17
(9) Тебе про кривость задачи говорят, а ты себе ещё одни грабли готовишь. Вероятно ещё и подскажут сделать флажок чтобы "условие выполнялось только один раз" хе-хе...
12 Fish
 
08.08.13
16:17
(9) Это зависит от того, что должно быть в этой добавляемой строке. Если это просто сферическая строка в вакууме, то (10) вполне подойдёт. А если туда нужно записывать выбранного контрагента, или данные, которые зависят от контрагента, то надо делать иначе :)
13 Fish
 
08.08.13
16:18
+(12) И вообще, прежде чем начинать что-то писать, неплохо бы проанализировать задачу и продумать ВЕСЬ алгоритм.
14 pessok
 
08.08.13
16:19
Если ЗначениеЗаполнено(Контрагент) Тогда ЭлементыФормы.Контрагент.ТолькоПросмотр = Истина;

выполнится только один раз, я гарантирую это :)
15 zzzLEXzzz
 
08.08.13
16:21
Огромное спасибо за советы, в следующий раз всё учту, просто я новичок в этом )) сделал так(10)всё получилось, ещё раз спасибо
16 Maxus43
 
08.08.13
16:23
(15) тут дело не в том, новичек или нет, а просто логически пройди цепочку, без привязки к 1с илди другому языку программирования, как пользователь. Нажму сюда - хочу это, а что если ещё раз нажму? и т.д.
17 pessok
 
08.08.13
16:23
(16) это называется блок-схемой ;)
18 Fish
 
08.08.13
16:32
(15) Смысл задачи так и остался нераскрыт:
1. Создал документ - контрагента нет, строчки нет.
2. Выбрал контрагента - контрагент есть, строчка есть.
3. Очистил поле контрагента - контрагента нет, строчка есть :))
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.