Rehcraeser

Newbie | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Цитата: тогда, где хранится это значение т.к. оно не табличное в расходной накладной, а вычисляемое. | А в чем проблема то? Если ты создаешь именно "Документ" с ТЧ, то можно сделать, например, так. В табличной части своего документа в свойствах колонки, где выбираешь накладные, прописываешь процедуру, например, ПриВыбореНакладной(). В модуле формы документа прописываешь эту процедуру, например, так: Процедура ПриВыбореНакладной() Если Накладная.Выбран()=1 Тогда // Накладная - это идентификатор колонки, где выбираешь накладную. СуммаСНДС = Накладная.Итог("Всего"); // СуммаСНДС - идентификатор колонки твоей суммы. // Всего - идентификатор колонки, в которой в накладной хранится сумма с // НДС в табличной части. КонецЕсли; КонецПроцедуры З.Ы. Естественно все идентификаторы ставишь свои. То бишь те, которые заданы в накладной твоей и в табличной части создаваемого документа. Если в накладной в табличной части нету поля, в котором сидит готовая сумма с НДС, тогда надо сделать Накладная.Итог("Сумма")+Накладная.Итог("НДС"). Где "Сумма" и "НДС" - это поля, где сидит сумма без НДС и НДС соответственно. Надо только проверить, чтобы в свойствах колонок накладной стояла галочка "Итог по колнке". Добавлено: Цитата: Помогите понять как сделать! есть строка к примеру 1+9-2+6 (это строка) В итоге нужно преобразовать строку в число и вычислить вырожение. Я не понимаю как это сделать. | Например так: Код: Функция ВыражениеСтрока(АнализСтр = "") Рез = 0;ч=0; НаборЦифр = "0123456789"; Знаки = "+-"; Если ПустаяСтрока(АнализСтр)=1 Тогда Возврат Рез; КонецЕсли; Ст = СокрЛП(АнализСтр); Чис1 = 0;Чис1с = ""; Чис2 = 0;Чис2с = ""; Знак = ""; Нашли1 = 0; Для ч=1 по СтрДлина(Ст) цикл Сим = Сред(Ст, ч, 1); Если (СтрЧислоВхождений(НаборЦифр,Сим)>0)и(Нашли1 = 0) Тогда Чис1с = Чис1с + Сим; ИначеЕсли (СтрЧислоВхождений(НаборЦифр,Сим)>0) Тогда Чис2с = Чис2с + Сим; ИначеЕсли (СтрЧислоВхождений(Знаки,Сим)>0)и(Нашли1 = 0) Тогда Знак = Сим; Нашли1 = 1;Чис1 = Число(Чис1с); ИначеЕсли (СтрЧислоВхождений(Знаки,Сим)>0)и(Нашли1 = 1) Тогда Чис2 = Число(Чис2с); Если Знак = "+" Тогда Чис1 = Чис1+Чис2; Иначе Чис1 = Чис1 - Чис2; КонецЕсли; Знак = Сим; Чис2с = ""; КонецЕсли; КонецЦикла; Чис2 = Число(Чис2с); Если Знак = "+" Тогда Чис1 = Чис1+Чис2; Иначе Чис1 = Чис1 - Чис2; КонецЕсли; Рез = Чис1; Возврат Рез; КонецФункции | Лень было писать проверку на допустимые символы в выражении, поэтому, если надо, допишешь сам. | Всего записей: 3 | Зарегистр. 20-01-2009 | Отправлено: 12:46 20-01-2009 | Исправлено: Rehcraeser, 12:58 20-01-2009 |
|