7.7 Суммирование

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

  1. TopicStarter Overlay
    Dem0lisher
    Offline

    Dem0lisher Профессионал в 1С

    Регистрация:
    4 авг 2009
    Сообщения:
    1.023
    Симпатии:
    51
    Баллы:
    54
    Здравствуйте!
    Есть документ Штатное расписание(Отдел,должность,кол-во штатных единиц в этой должности)
    и справочник "Сотрудники". Щелчком по кнопке заполнить из справочника в документ заносятся все сотрудники, но как сделать, чтобы в графе "кол-во штатных единиц в этой долж-ти" суммировалось количество сотрудников из справочника? (Справочник без групп)??
    Подойдет ли тут оператор Свернуть? и как его лучше применить?
  2. Time dont wait
    Offline

    Time dont wait Опытный в 1С

    Регистрация:
    20 окт 2009
    Сообщения:
    192
    Симпатии:
    0
    Баллы:
    26
    Тоесть ты хочеш перегнеать сотрудников, а гр.КолДолж. в шапке документа, или :
    Долж1 колсотр
    Долж2 колсотр
    ...
  3. TopicStarter Overlay
    Dem0lisher
    Offline

    Dem0lisher Профессионал в 1С

    Регистрация:
    4 авг 2009
    Сообщения:
    1.023
    Симпатии:
    51
    Баллы:
    54
    Да вы меня правильно поняли-это все-реквизиты табличной части документа, т.е например:

    1. склады сбыта-грузчик-5 чел.
    2.отдел сбыта-зав складом-1 чел.
    3. Отдел кадров-менеджер покадрам-2 чел
    и т.д.
    Надо чтобы в графе документа каждой должности высвечивалась цифра, которая означает общее кол-во человек занятых на этой должности, (я думаю тут без перебора справочника сотрудников не обойтись)
  4. Time dont wait
    Offline

    Time dont wait Опытный в 1С

    Регистрация:
    20 окт 2009
    Сообщения:
    192
    Симпатии:
    0
    Баллы:
    26
    да , попробуй сделать перебор,
    н=0;//н - переменная присвоенная реквизиту КолШтЕдиниц
    пока перебор
    НайтиПоНаименованию("грузчик")
    н=н+1
    ..
    что-то подобное
  5. dianofob
    Offline

    dianofob (-_-)y-.o0O

    Регистрация:
    3 июл 2009
    Сообщения:
    711
    Симпатии:
    0
    Баллы:
    26
    подойдет.. что-то типа:
    Код:
    //При подборе КолвоСотр = 1;
    oVT = CreateObject("ValueTable");
    UnloadTable(oVT);
    oVT.GroupBy("Должность","КолвоСотр");
    SelectLines();
    While GetLine() = 1 Do
    nStr = 0;
    oVT.FindValue(Должность,nStr,"Должность");
    КолвоСотр = oVT.GetValue(nStr,"КолвоСотр");
    EndDo;
    
    
  6. TopicStarter Overlay
    Dem0lisher
    Offline

    Dem0lisher Профессионал в 1С

    Регистрация:
    4 авг 2009
    Сообщения:
    1.023
    Симпатии:
    51
    Баллы:
    54
    Так.. тут использую вот что:

    Код:
    Процедура Заполнить()
    СпрСотр=СоздатьОбъект("Справочник.Сотрудники");
    ТЗ=СоздатьОбъект("ТаблицаЗначений");
    ТЗ.НоваяКолонка("ФИО");
    ТЗ.НоваяКолонка("Отдел");
    ТЗ.НоваяКолонка("Должность");
    ТЗ.НоваяКолонка("Оклад");
    ТЗ.НоваяКолонка("Штат");
    Кво=0;
    СпрСотр.ВыбратьЭлементы();
    Пока СпрСотр.ПолучитьЭлемент()=1 Цикл
    ТЗ.НоваяСтрока();
    ТЗ.ФИО=СпрСотр.ТекущийЭлемент().Наименование;
    ТЗ.Отдел=СпрСотр.ТекущийЭлемент().Отдел;
    ТЗ.Должность=СпрСотр.ТекущийЭлемент().Должность;
    ТЗ.Оклад=СпрСотр.ТекущийЭлемент().Оклад;
    ТЗ.Штат=1;
    КонецЦикла;
    ТЗ.Свернуть("Должность","Штат");
    ТЗ.ВыбратьСтроки();
    Пока ТЗ.ПолучитьСтроку()=1 Цикл
    НоваяСтрока();
    ////////	Отдел=ТЗ.Отдел;
    Должность=ТЗ.Должность;
    Штат=ТЗ.Штат;
    КонецЦикла;
    КонецПроцедуры
    Процедура Очистить()
    УдалитьСтроки();
    КонецПроцедуры
    
    
    Теперь работает почти все,Но
    Закоментарил //////// Отдел=ТЗ.Отдел; ибо почему-то на эту строчку ругается :


    Отдел=ТЗ.Отдел;
    {Документ.ШтатноеРасписание.Форма.Модуль(23)}: Поле агрегатного объекта не обнаружено (Отдел)
    Помогите корректно вывести еще и отдел
  7. dianofob
    Offline

    dianofob (-_-)y-.o0O

    Регистрация:
    3 июл 2009
    Сообщения:
    711
    Симпатии:
    0
    Баллы:
    26
    Код:
    ТЗ.Свернуть("Должность, Отдел","Штат");
    
    
    
    нет отдела в группировке
  8. TopicStarter Overlay
    Dem0lisher
    Offline

    Dem0lisher Профессионал в 1С

    Регистрация:
    4 авг 2009
    Сообщения:
    1.023
    Симпатии:
    51
    Баллы:
    54
    Отлично! Добавил в метод "Свернуть" атрибут "Отдел" и раскоментарил строку Отдел=ТЗ.Отдел; Все работает! Спасибо всем огромное на сегодня думаю вопросов с меня хватит.. А то глаза вылезут

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