7.7 Суммирование реквизитов из других документов

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем Anton_Davids, 23 дек 2010.

  1. TopicStarter Overlay
    Anton_Davids
    Offline

    Anton_Davids

    Регистрация:
    5 дек 2010
    Сообщения:
    12
    Симпатии:
    0
    Баллы:
    1
    Имеется журнал документов, в которых выбран год из справочника и полугодие перечислением. Мне нужно сформировать новый документ, в который, при выборке года и полугодия, данные по реквизитам из табличной части документов из журнала суммируются в табличную часть моего нового документа..подскажите, как сделать?
  2. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Конвертируйте значения справочника/перечисления в интервал дат и выборкой объекта (или через рапрос) производите суммирование
  3. Хряк
    Online

    Хряк Профессионал в 1С

    Регистрация:
    26 сен 2007
    Сообщения:
    1.447
    Симпатии:
    37
    Баллы:
    54
    Davids, ничё не понятно
  4. TopicStarter Overlay
    Anton_Davids
    Offline

    Anton_Davids

    Регистрация:
    5 дек 2010
    Сообщения:
    12
    Симпатии:
    0
    Баллы:
    1
    например есть 6 документов за первое полугодие..по выполненным работам за каждый месяц.. их реквизиты табличной части - виды работ.. в этих документах учитывается выполнения работ по разным сотрудникам.. нужно составить отчет о выполненных работах за полгода - выполнить сложение работ за каждый месяц и результат занести в аналогичную табличную часть, как и по месяцам..
  5. Хряк
    Online

    Хряк Профессионал в 1С

    Регистрация:
    26 сен 2007
    Сообщения:
    1.447
    Симпатии:
    37
    Баллы:
    54
    рыба открыт новый документ
    док выбрать документы
    док получить документ
    док выгрузить табл. часть в тз

    тз свернуть
    тз загрузить в табл часть нового документа
  6. TopicStarter Overlay
    Anton_Davids
    Offline

    Anton_Davids

    Регистрация:
    5 дек 2010
    Сообщения:
    12
    Симпатии:
    0
    Баллы:
    1
    Пытаюсь сделать вот так..подскажите в чем ошибаюсь..

    Код:
    Док  = СоздатьОбъект("Документ.УчетЗаСеместрШт");
    ТЗ   = СоздатьОбъект("ТаблицаЗначений");
    ТЗ.НоваяКолонка("Лекции");
    ТЗ.НоваяКолонка("Лабораторные");
    ТЗ.НоваяКолонка("Практические");
    ТЗ.НоваяКолонка("Консультации");
    ТЗ.НоваяКолонка("Конртольные");
    ТЗ.НоваяКолонка("Курсовые");
    ТЗ.НоваяКолонка("Практика");
    ТЗ.НоваяКолонка("Экзамены");
    ТЗ.НоваяКолонка("Зачеты");
    ТЗ.НоваяКолонка("Дипломники");
    ТЗ.НоваяКолонка("Госэкзамены");
    ТЗ.НоваяКолонка("Аспиранты");
    ТЗ.НоваяКолонка("Контроль");
    ТЗ.НоваяКолонка("ДрВидыРабот");
    ТЗ1  = СоздатьОбъект("ТаблицаЗначений");
    Док.ВыбратьДокументы();
    Пока Док.ПолучитьДокумент() = 1 Цикл
    Док.ВыгрузитьТабличнуюЧасть(ТЗ1,Лекции,Лабораторные,Консультации,Контрольные,Курсовые,Практика,
    Экзамены,Зачеты,Дипломники,ГосЭкзамены,Аспиранты,Контроль,ДрВидыРабот);
    ТЗ1.ВыбратьСтроки();
    Пока ТЗ1.ПолучитьСтроку() = 1 Цикл
    ТЗ.НоваяСтрока();
    ТЗ.Лекции = ТЗ1.Лекции;
    ТЗ.Лабораторные = ТЗ1.Лабораторные;
    ТЗ.Практические = ТЗ1.Практические;
    ТЗ.Консультации = ТЗ1.Консультации;
    ТЗ.Контрольные = ТЗ1.Контрольные;
    ТЗ.Курсовые = ТЗ1.Курсовые;
    ТЗ.Практика = ТЗ1.Практика;
    ТЗ.Экзамены = ТЗ1.Экзамены;
    ТЗ.Зачеты = ТЗ1.Зачеты;
    ТЗ.Дипломники = ТЗ1.Дипломники;
    ТЗ.Госэкзамены = ТЗ1.Госэкзамены;
    ТЗ.Аспиранты = ТЗ1.Аспиранты;
    ТЗ.Контроль = ТЗ1.Контроль;
    ТЗ.ДрВидыРабот = ТЗ1.ДрВидыРабот;
    КонецЦикла;
    ТЗ1.Очистить();
    КонецЦикла;
    ТЗ.Свернуть(Наименование,Лекции);
    
    
    //,Лабораторные,Консультации,Контрольные,Курсовые,Практика, Экзамены,Зачеты,Дипломники,ГосЭкзамены,Аспиранты,Контроль,ДрВидыРабот) надо сделать по всем, но говорит - слишком много параметров.. есть выход?
    [warn="Внимание"]
    Не забываем пользоваться тегами
    [/warn]
  7. dianofob
    Offline

    dianofob (-_-)y-.o0O

    Регистрация:
    3 июл 2009
    Сообщения:
    711
    Симпатии:
    0
    Баллы:
    26
    у метода ВыгрузитьТабличнуюЧасть() посмотрите какие параметры в синтакс-помощнике и в каком виде.... пересчет колонок должен быть в кавыках
    весь ваш кусок кода в реальности может выглядеть так:

    Код:
        ТЗ = СоздатьОбъект("ТаблицаЗначений");
    ТЗ1 = СоздатьОбъект("ТаблицаЗначений");
    Док = СоздатьОбъект("Документ.УчетЗаСеместрШт");
    Док.ВыбратьДокументы();
    Пока Док.ПолучитьДокумент() = 1 Цикл
    Док.ВыгрузитьТабличнуюЧасть(ТЗ1);
    КолвоСтрокТЗ = ТЗ.КоличествоСтрок();
    Если КолвоСтрокТЗ = 0 Then
    ТЗ1.Выгрузить(ТЗ);
    ТЗ.Очистить();
    КонецЕсли;
    
    Для i = 1 По ТЗ1.КоличествоСтрок() Цикл
    ТЗ.НоваяСтрока();
    КонецЦикла;
    ТЗ.Заполнить(ТЗ1,КолвоСтрокТЗ+1);
    КонецЦикла;
    ТЗ.Свернуть(Лекции);
    
    
    
    В таб ТЗ кстати нет колонки Наименование
  8. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    1) зачет выгружаем в промежуточную? Можно же перебрать строи документа
    2) Наименование я что-то в коде не вижу, а вы сворачиваете по ней
    3) Применте код
    Код:
    ТЗ.Свернуть("Наименование","Лекции");
    
    
  9. TopicStarter Overlay
    Anton_Davids
    Offline

    Anton_Davids

    Регистрация:
    5 дек 2010
    Сообщения:
    12
    Симпатии:
    0
    Баллы:
    1
    пытаюсь добить свой код..не заполняется ТЧ..молчит и не заполняется.. есть идеи почему?
    Код:
    Док  = СоздатьОбъект("Документ.Карточкаштат");
    УчетЗаСеместр= СоздатьОбъект("Документ.УчетЗаСеместршт");
    ТЗ   = СоздатьОбъект("ТаблицаЗначений");
    ТЗ1  = СоздатьОбъект("ТаблицаЗначений");
    ТЗ.НоваяКолонка("Наименование");
    ТЗ.НоваяКолонка("Должность");
    ТЗ.НоваяКолонка("Лекции");
    ТЗ.НоваяКолонка("Лабораторные");
    ТЗ.НоваяКолонка("Практические");
    ТЗ.НоваяКолонка("Консультации");
    ТЗ.НоваяКолонка("Конртольные");
    ТЗ.НоваяКолонка("Курсовые");
    ТЗ.НоваяКолонка("Практика");
    ТЗ.НоваяКолонка("Экзамены");
    ТЗ.НоваяКолонка("Зачеты");
    ТЗ.НоваяКолонка("Дипломники");
    ТЗ.НоваяКолонка("Госэкзамены");
    ТЗ.НоваяКолонка("Аспиранты");
    ТЗ.НоваяКолонка("Контроль");
    ТЗ.НоваяКолонка("ДрВидыРабот");
    Док.ВыбратьДокументы();
    Пока Док.ПолучитьДокумент() = 1 Цикл
    Док.ВыгрузитьТабличнуюЧасть("ТЗ1","Наименование, Должность,Лекции,Лабораторные,Консультации,Контрольные,Курсовые,Практика,Экзамены,Зачеты,Дипломники,ГосЭкзамены,Аспиранты,Контроль,ДрВидыРабот");
    ТЗ1.ВыбратьСтроки();
    Пока ТЗ1.ПолучитьСтроку() = 1 Цикл
    ТЗ.НоваяСтрока();
    ТЗ.Лекции = ТЗ1.Лекции;
    ТЗ.Лабораторные = ТЗ1.Лабораторные;
    ТЗ.Практические = ТЗ1.Практические;
    ТЗ.Консультации = ТЗ1.Консультации;
    ТЗ.Контрольные = ТЗ1.Контрольные;
    ТЗ.Курсовые = ТЗ1.Курсовые;
    ТЗ.Практика = ТЗ1.Практика;
    ТЗ.Экзамены = ТЗ1.Экзамены;
    ТЗ.Зачеты = ТЗ1.Зачеты;
    ТЗ.Дипломники = ТЗ1.Дипломники;
    ТЗ.Госэкзамены = ТЗ1.Госэкзамены;
    ТЗ.Аспиранты = ТЗ1.Аспиранты;
    ТЗ.Контроль = ТЗ1.Контроль;
    ТЗ.ДрВидыРабот = ТЗ1.ДрВидыРабот;
    КонецЦикла;
    ТЗ1.Очистить();
    КонецЦикла;
    ТЗ.Свернуть("Наименование","Лекции,Лабораторные,Консультации,Контрольные,Курсовые,Практика,Экзамены,Зачеты,Дипломники,ГосЭкзамены,Аспиранты,Контроль,ДрВидыРабот");
    УчетЗаСеместр.Загрузитьтабличнуючасть("ТЗ");
    
    
  10. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Просто можно глянуть в отладчике...
    С первого взгляда не вижу ошибок.
    Есть уточнения:
    1) ТЗ1.Очистить(); - делать не нужно так как метод ВыгрузитьТабличнуюЧасть делает это сам
    2) вы не выбираете период документов Карточкаштат. Так и надо от рождества христова?
    3) Если не умеете пользоваться отладчиком воспользутесь методом Сообщить или Состояние для отслеживания работы
  11. dianofob
    Offline

    dianofob (-_-)y-.o0O

    Регистрация:
    3 июл 2009
    Сообщения:
    711
    Симпатии:
    0
    Баллы:
    26
    ТЗ.Свернуть("Наименование","Лекции...) не заполняли вы такую колонку.


    и опять невнимательны

    ЗагрузитьТабличнуюЧасть(<?>);
    LoadTable(<?>);
    Синтаксис:
    ЗагрузитьТабличнуюЧасть(<ТаблЗнач>)
    Назначение:
    Загрузить многострочную часть документа из таблицы значений.
    Параметры:
    <ТаблЗнач> - значение типа ''Таблица значений'', откуда загружается многострочная часть документа. Колонки совмещаются по идентификаторам.
  12. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Хм... Действительно... "наименование" прошляпил)))
    +
    Код:
    УчетЗаСеместр.Загрузитьтабличнуючасть(ТЗ);
    
    
  13. TopicStarter Overlay
    Anton_Davids
    Offline

    Anton_Davids

    Регистрация:
    5 дек 2010
    Сообщения:
    12
    Симпатии:
    0
    Баллы:
    1
    не пойму, что не так?
  14. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    У вас ТЗ в примере в кавычках... 1с воспинимает ее как строку а не объект
  15. TopicStarter Overlay
    Anton_Davids
    Offline

    Anton_Davids

    Регистрация:
    5 дек 2010
    Сообщения:
    12
    Симпатии:
    0
    Баллы:
    1
    Извините, мой косяк( кавычки стояли(
    Код:
    Док  = СоздатьОбъект("Документ.Карточкаштат");
    УчетЗаСеместр= СоздатьОбъект("Документ.УчетЗаСеместршт");
    ТЗ   = СоздатьОбъект("ТаблицаЗначений");
    ТЗ1  = СоздатьОбъект("ТаблицаЗначений");
    ТЗ.Свернуть("Наименование","Лекции,Лабораторные,Консультации,Контрольные,Курсовые,Практика,Экзамены,Зачеты,Дипломники,ГосЭкзамены,Аспиранты,Контроль,ДрВидыРабот");	
    ТЗ.НоваяКолонка("Наименование");
    ТЗ.НоваяКолонка("Должность");
    ТЗ.НоваяКолонка("Лекции");
    ТЗ.НоваяКолонка("Лабораторные");
    ТЗ.НоваяКолонка("Практические");
    ТЗ.НоваяКолонка("Консультации");
    ТЗ.НоваяКолонка("Конртольные");
    ТЗ.НоваяКолонка("Курсовые");
    ТЗ.НоваяКолонка("Практика");
    ТЗ.НоваяКолонка("Экзамены");
    ТЗ.НоваяКолонка("Зачеты");
    ТЗ.НоваяКолонка("Дипломники");
    ТЗ.НоваяКолонка("Госэкзамены");
    ТЗ.НоваяКолонка("Аспиранты");
    ТЗ.НоваяКолонка("Контроль");
    ТЗ.НоваяКолонка("ДрВидыРабот");
    Док.ВыбратьДокументы('1.09.10','01.03.11');
    Пока Док.ПолучитьДокумент() = 1 Цикл
    Док.ВыгрузитьТабличнуюЧасть("ТЗ1","Наименование, Должность,Лекции,Лабораторные,Консультации,Контрольные,Курсовые,Практика,Экзамены,Зачеты,Дипломники,ГосЭкзамены,Аспиранты,Контроль,ДрВидыРабот");
    ТЗ1.ВыбратьСтроки();
    Пока ТЗ1.ПолучитьСтроку() = 1 Цикл
    ТЗ.НоваяСтрока();
    ТЗ.Лекции = ТЗ1.Лекции;
    ТЗ.Лабораторные = ТЗ1.Лабораторные;
    ТЗ.Практические = ТЗ1.Практические;
    ТЗ.Консультации = ТЗ1.Консультации;
    ТЗ.Контрольные = ТЗ1.Контрольные;
    ТЗ.Курсовые = ТЗ1.Курсовые;
    ТЗ.Практика = ТЗ1.Практика;
    ТЗ.Экзамены = ТЗ1.Экзамены;
    ТЗ.Зачеты = ТЗ1.Зачеты;
    ТЗ.Дипломники = ТЗ1.Дипломники;
    ТЗ.Госэкзамены = ТЗ1.Госэкзамены;
    ТЗ.Аспиранты = ТЗ1.Аспиранты;
    ТЗ.Контроль = ТЗ1.Контроль;
    ТЗ.ДрВидыРабот = ТЗ1.ДрВидыРабот;
    КонецЦикла; Состояние("!");
    КонецЦикла;
    ТЗ.Свернуть("Наименование","Лекции,Лабораторные,Консультации,Контрольные,Курсовые,Практика,Экзамены,Зачеты,Дипломники,ГосЭкзамены,Аспиранты,Контроль,ДрВидыРабот");	
    УчетЗаСеместр.Загрузитьтабличнуючасть("ТЗ");
    
    
  16. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Код:
    ...
    Док.ВыгрузитьТабличнуюЧасть("ТЗ1",".....");//кавычек ТЗ1 не должно быть!
    ...
    УчетЗаСеместр.Загрузитьтабличнуючасть("ТЗ");//и здесь тоже
    
    
  17. TopicStarter Overlay
    Anton_Davids
    Offline

    Anton_Davids

    Регистрация:
    5 дек 2010
    Сообщения:
    12
    Симпатии:
    0
    Баллы:
    1
    просто тупо вылетает 1С при нажатии на кнопку расчета

Поделиться этой страницей