Имя: Пароль:
1C
1С v8
Как решить "Условия"
,
0 Kamich
 
28.03.13
17:58
В общем в форме Обработки имеется 10 реквизитов с "Наименование" по  "Наименование9",также количество(столько же), цена (Столько же) Сумма(столько же).

Так же есть кнопка Добавить.
Вопрос:
Не могу решить проблему с условиями.
К примеру если Количество4, Количесвто3,Количество6 заполнены то создается новый документ и в тЧ Нового документа вписывается наименование,цена,количество,сумма, а после происходит проведение документа,и движение в регистрынакопления.
Пишу вот такую процедуру на одно условие:
Пожалуйста подкорректируйте если что не так:
Процедура Кнопка1Нажатие(Элемент)
Док=Документы.ОказаниеУслуги.СоздатьДокумент();
Док.Дата=ТекущаяДата();

Если  Количество>0 Тогда
Строки=Док.Товар.Добавить();
Строки.Наименование=Наименование;
Строки.Цена=Цена;
Строки.Сумма=Сумма;
Строки.Количество=Количество;
КонецЕсли;

Док.Проведен=Истина;
Движения=Док.Движения.ОстаткиМатериалов.Добавить();
Движения.ВидДвижения=ВидДвиженияНакопления.Расход;
Движения.Период=Док.Дата;
Для Каждого Строка Из Док.ЭтотОбъект.Товар Цикл
   Движения.Наименование=Строка.Наименование;
   Движения.Количество=Строка.Количество;
КонецЦикла;
Док.Проведен=Истина;
Док.Записать();    
КонецПроцедуры
1 samozvanec
 
28.03.13
17:59
(0) люблю твои темы
2 Kamich
 
28.03.13
17:59
(1) ))
3 palpetrovich
 
28.03.13
18:00
(0) до табличных частей еще не дошел что-ли?
4 Kamich
 
28.03.13
18:00
(3) ?
5 samozvanec
 
28.03.13
18:01
сразу в документе делать не предлагать?
6 drcrasher
 
28.03.13
18:01
теперь понятно, откуда у v8: Защита от просмотра кода ноги растут =)
7 Kamich
 
28.03.13
18:02
(5) да
8 palpetrovich
 
28.03.13
18:02
(4) в смысле "имеется 10 реквизитов с "Наименование"  совсем не то что ниже в коде
научись хотя-бы вопрос формулировать что-ли
9 ПиН
 
28.03.13
18:03
сразу чувствуется, что человек работает в франчайзи на крупном проекте...
10 Kamich
 
28.03.13
18:04
Вернее будет так, но это на одно условие:
Процедура Кнопка1Нажатие(Элемент)
Док=Документы.ОказаниеУслуги.СоздатьДокумент();
Док.Дата=ТекущаяДата();

Если  Количество>0 Тогда
Строки=Док.Товар.Добавить();
Строки.Наименование=Наименование;
Строки.Цена=Цена;
Строки.Сумма=Сумма;
Строки.Количество=Количество;


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

КонецПроцедуры
11 palpetrovich
 
28.03.13
18:04
(0) сделай в своей обработке табличную часть - точную копию той, что в нужном тебе документе
сильно обдегчит заполение
12 samozvanec
 
28.03.13
18:05
(7) в таком случае, единственное, что могу предложить - базовый курс Гилева.
13 Kamich
 
28.03.13
18:05
(11) Скрытую ТЧ?,Тоже вариант...черт)
14 samozvanec
 
28.03.13
18:05
+(12) могу еще научить с помощью мыла и веревки петлю делать грамотно, чтоб переделывать не пришлось
15 Kamich
 
28.03.13
18:06
(11) Спасибо)
16 palpetrovich
 
28.03.13
18:07
(13) вот-жешь  какой скрытный ...зачем скрытную-то?
17 Kamich
 
28.03.13
18:09
(16) Ну ясно))) Ладно спасибо )))
Спасибо за пониманию)
Мне еще столько "морей открывать)))")
18 Птица
 
28.03.13
18:24
кажется, поняла. Автор хочет перебирать пронумерованные реквизиты формы как коллекцию.
В принципе, в восьмерке это возможно:

типа так:

   Для  Сч = 1 По 2 Цикл
       Сообщить(ЭтаФорма["Вася"+Формат(Сч,"ЧГ=")]);    
   КонецЦикла;

Но вообще это кривой путь: если подразумевается, что данные на форме в итоге попадут в одну ТЧ, зачем размножать переменные? не проще ли и на форме сделать ТабличноеПоле, как советует (11)
19 hhhh
 
28.03.13
19:52
(18) ну это логично. Например семерочники, когда переходят на 8, формы рисуют как в 7.7. А автор - спец по экселю. Вот он и фигачит форму в виде таблицы эксель, с 30-ю колонками.
Основная теорема систематики: Новые системы плодят новые проблемы.