08.12.2006, 11:29
общий
это ответ
Здравствуйте, Darina!
Судя по всему, в Вашей таблице должно быть еще одно измерение. Т.е. Вы делаете выборку кассовых ордеров и собираете данные об аренде, зарплате и налогах, и при этом должны их привязать к объекту, к которому они относятся (то ли сотруднику, то ли еще к чему, в общем к аналитике). В моем Приложении программный код, в котором для каждого сотрудника сводятся все расходы (т.е. для каждого сотрудника своя строка в таблице значений).
Второй вопрос -- на форме документа у таблицы значений в свойствах есть параметр "Формула". Укажите там имя процедуры и в процедуре опишите вызов документа (есть методы для определения текущей колонки и текущей строки). Вам, конечно, также понадобится иметь ссылку на этот документ (привязка к сумме), это уже реализовать сложнее с точки зрения алгоритма, но нет ничего невозможного ;)
Приложение:
Процедура Заполнить() ТЗ1.УдалитьСтроки(); Док = СоздатьОбЪект("Документ.РасходныйОрдер"); // Выбирам документы за период. Док.ВыбратьДокументы(ДатаНачала,ДатаКонца); //Проходим по каждому документу выбираем строки и заполняем ‘ТаблицуЗначений‘. Пока Док.ПолучитьДокумент()=1 Цикл Если Док.Выбран()=1 Тогда ТЗ1.НоваяСтрока(); // Elric { ТЗ1.Сотрудник=Док.Сотрудник; // Elric } // Заполняем ТЗ. Если Док.Субконто1=Перечисление.СтатьиИздержек.Аренда Тогда ТЗ1.Аренда=Док.Сумма; ИначеЕсли Док.Субконто1=Перечисление.СтатьиИздержек.ОплатаТруда Тогда ТЗ1.Зарплата=Док.Сумма; ИначеЕсли Док.Субконто1=Перечисление.СтатьиИздержек.Отчисления Тогда ТЗ1.Налоги=Док.Сумма; КонецЕсли; КонецЕсли; КонецЦикла; // Elric { ТЗ1.Свернуть("Сотрудник","Аренда,Зарплата,Налоги"); // Elric } Если ТЗ1.КоличествоСтрок()=0 Тогда Предупреждение("За данный период нет расходов!",10); КонецЕсли;КонецПроцедуры