7.7 Нужна помощь с ОТЧЕТОМ

Тема в разделе "Типовые решения "1С:Предприятие 7.7"", создана пользователем SnakeSolid, 5 май 2013.

  1. TopicStarter Overlay
    SnakeSolid
    Offline

    SnakeSolid

    Регистрация:
    2 май 2013
    Сообщения:
    26
    Симпатии:
    0
    Баллы:
    1
    Здравствуйте, стоит 1С предприятие 7.7 ЗиК релиз 770332, но редакция 2.3
    Я сам новичок в 1С, изучаю только с декабря, поэтому нужна помощь, т.к. поставили такую задачу, а я видимо не могу пока догнать :(

    В общем ситуация:
    Нужно сделать так, чтобы выводился следующий отчет [​IMG]
    Условие следующее:

    1) Ввести в справочник "Сотрудники" новый реквизит ".........."
    2) Доработать форму №...... , сделав возможность формировать списки сотрудников в соответствии с данным реквизитом из справочника "Сотрудники". В форме №..... в этом режиме должны выводиться итоги в виде таблицы "ТОЛЬКО ИТОГО ПО ПРЕДПРИЯТИЮ".

    Реквизит я ввел.
    Исходный код есть такой в программе:


    //******************************************************************************************************************************************************************************************************************
    ТаблГруппКатег.Свернуть (" КодНачисления,ГруппаКатегории","Сумма");
    ТаблГруппКатег.Сортировать("+КодНачисления");
    ТаблГрКатСкорр.Свернуть (" КодНачисления,ГруппаКатегории","Сумма");
    ТаблГрКатСкорр.Сортировать("+КодНачисления");
    ТаблГрКатИЗФМП.Свернуть (" КодНачисления,ГруппаКатегории","Сумма");
    ТаблГрКатИЗФМП.Сортировать("+КодНачисления");

    //ТаблГруппКатег.Свернуть (" ПромГруппа, КодНачисления,ГруппаКатегории","Сумма");
    //ТаблГруппКатег.Сортировать("+ПромГруппа,+КодНачисления");
    //ТаблГрКатСкорр.Свернуть (" ПромГруппа, КодНачисления,ГруппаКатегории","Сумма");
    //ТаблГрКатСкорр.Сортировать("+ПромГруппа,+КодНачисления");
    //ТаблГрКатИЗФМП.Свернуть (" ПромГруппа, КодНачисления,ГруппаКатегории","Сумма");
    //ТаблГрКатИЗФМП.Сортировать("+ПромГруппа,+КодНачисления");

    ПоЦеху = "ФОРМА №3П-НАУКА ЗА " + строка(ДатаМесяц(ДатаАктуальности)) + " МЕСЯЦ " + строка(ДатаГод(ДатаАктуальности)) + " Г." + " ИТОГО ПО ПРЕДПРИЯТИЮ ";
    ВыходнаяТаблица113V.ВывестиСекцию("КолонТитул");
    теккоднач = ТаблГруппКатег.КодНачисления;

    ГруппКат1 = 0;
    ГруппКат2 = 0;
    ГруппКат3 = 0;
    ГруппКат4 = 0;
    ГруппКат5 = 0;
    ГруппКат6 = 0;
    ГруппКат7 = 0;
    ГруппКат8 = 0;

    Для счета = 1 по 8 Цикл
    ИтГрупп[счета] = 0;
    СКРГрупп[счета] = 0;
    ИФМ[счета] = 0 ;
    КонецЦикла;

    ИтГрупп1 = 0;
    ИтГрупп2 = 0;
    ИтГрупп3 = 0;

    ВсегоГруппКат = 0;
    теккоднач = -1;
    текПодр = "-1";
    строк = 1;
    строкВтаблице = ТаблГруппКатег.КоличествоСтрок();

    флагПерв = 1;
    ТаблГруппКатег.ВыбратьСтроки();

    Пока ТаблГруппКатег.ПолучитьСтроку() = 1 Цикл
    Если флагПерв = 1 Тогда
    теккоднач = ТаблГруппКатег.КодНачисления;
    флагПерв = 2;
    КонецЕсли;

    //или промгруппа не та
    Если (теккоднач <> ТаблГруппКатег.КодНачисления) Тогда

    ВсегоГруппКат = ГруппКат1 + ГруппКат2 + ГруппКат3 + ГруппКат4 + ГруппКат5 + ГруппКат6 + ГруппКат7 + ГруппКат8;

    Если ВсегоГруппКат <> 0 Тогда
    ВыходнаяТаблица113V.ВывестиСекцию("Строка");
    КонецЕсли;

    теккоднач = ТаблГруппКатег.КодНачисления;

    ГруппКат1 = 0;
    ГруппКат2 = 0;
    ГруппКат3 = 0;
    ГруппКат4 = 0;
    ГруппКат5 = 0;
    ГруппКат6 = 0;
    ГруппКат7 = 0;
    ГруппКат8 = 0;
    ВсегоГруппКат = 0;

    КонецЕсли;

    Если ТаблГруппКатег.ГруппаКатегории = 1 Тогда

    ГруппКат1=ГруппКат1+ТаблГруппКатег.Сумма;
    ИтГрупп[ТаблГруппКатег.ГруппаКатегории]= ИтГрупп [ТаблГруппКатег.ГруппаКатегории]+ТаблГруппКатег.Сумма;
    ИначеЕсли ТаблГруппКатег.ГруппаКатегории=2 тогда

    ГруппКат2=ГруппКат2+ТаблГруппКатег.Сумма;
    ИтГрупп[ТаблГруппКатег.ГруппаКатегории]=ИтГрупп[ТаблГруппКатег.ГруппаКатегории]+ТаблГруппКатег.Сумма;

    ИначеЕсли ТаблГруппКатег.ГруппаКатегории=3 тогда
    ГруппКат3=ГруппКат3+ТаблГруппКатег.Сумма;
    ИтГрупп[ТаблГруппКатег.ГруппаКатегории]=ИтГрупп[ТаблГруппКатег.ГруппаКатегории]+ТаблГруппКатег.Сумма;
    ИначеЕсли ТаблГруппКатег.ГруппаКатегории=4 тогда
    ГруппКат4=ГруппКат4+ТаблГруппКатег.Сумма;

    ИтГрупп[ТаблГруппКатег.ГруппаКатегории]=ИтГрупп[ТаблГруппКатег.ГруппаКатегории]+ТаблГруппКатег.Сумма;

    ИначеЕсли ТаблГруппКатег.ГруппаКатегории=5 тогда
    ГруппКат5=ГруппКат5+ТаблГруппКатег.Сумма;

    ИтГрупп[ТаблГруппКатег.ГруппаКатегории]=ИтГрупп[ТаблГруппКатег.ГруппаКатегории]+ТаблГруппКатег.Сумма;

    ИначеЕсли ТаблГруппКатег.ГруппаКатегории=6 тогда
    ГруппКат6=ГруппКат6+ТаблГруппКатег.Сумма;


    ИтГрупп[ТаблГруппКатег.ГруппаКатегории]=ИтГрупп[ТаблГруппКатег.ГруппаКатегории]+ТаблГруппКатег.Сумма;
    //СКРГрупп[ТаблГруппКатег.ГруппаКатегории]=СКРГрупп[ТаблГруппКатег.ГруппаКатегории]+ТаблГруппКатег.Сумма;

    ИначеЕсли ТаблГруппКатег.ГруппаКатегории=7 тогда
    ГруппКат7=ГруппКат7+ТаблГруппКатег.Сумма;

    ИтГрупп[ТаблГруппКатег.ГруппаКатегории]=ИтГрупп[ТаблГруппКатег.ГруппаКатегории]+ТаблГруппКатег.Сумма;

    ИначеЕсли ТаблГруппКатег.ГруппаКатегории=8 тогда
    ГруппКат8=ГруппКат8+ТаблГруппКатег.Сумма; //прочие

    ИтГрупп[ТаблГруппКатег.ГруппаКатегории]=ИтГрупп[ТаблГруппКатег.ГруппаКатегории]+ТаблГруппКатег.Сумма;

    КонецЕсли;

    строк = строк + 1;
    КонецЦикла;


    ВсегоГруппКат=ГруппКат1+ГруппКат2+ГруппКат3+ГруппКат4+ГруппКат5+ГруппКат6+ГруппКат7+ГруппКат8;
    ВыходнаяТаблица113V.ВывестиСекцию("Строка");

    ///строки по ИФМ
    ТаблГрКатИЗФМП.Свернуть("КодНачисления,ГруппаКатегории","Сумма");

    ГруппКат1 = 0;
    ГруппКат2 = 0;
    ГруппКат3 = 0;
    ГруппКат4 = 0;
    ГруппКат5 = 0;
    ГруппКат6 = 0;
    ГруппКат7 = 0;
    ГруппКат8 = 0;
    ВсегоГруппКат = 0;

    флгИзфмп = 1;

    ТаблГрКатИЗФМП.ВыбратьСтроки();
    Пока ТаблГрКатИЗФМП.ПолучитьСтроку() = 1 Цикл
    Если флгИзфмп = 1 Тогда
    теккоднач = ТаблГрКатИЗФМП.КодНачисления;
    флгИзфмп=2;
    КонецЕсли;

    Если (теккоднач <> ТаблГрКатИЗФМП.КодНачисления) Тогда
    ВсегоГруппКат=ГруппКат1+ГруппКат2+ГруппКат3+ГруппКат4+ГруппКат5+ГруппКат6+ГруппКат7+ГруппКат8;
    Если ВсегоГруппКат <> 0 Тогда
    теккоднач = сокрЛП(строка(теккоднач))+"ИФМ";
    ВыходнаяТаблица113V.ВывестиСекцию("Строка");
    КонецЕсли ;
    теккоднач=ТаблГрКатИЗФМП.КодНачисления;
    ГруппКат1=0;
    ГруппКат2=0;
    ГруппКат3=0;
    ГруппКат4=0;
    ГруппКат5=0;
    ГруппКат6=0;
    ГруппКат7=0;
    ГруппКат8=0;
    ВсегоГруппКат=0;
    КонецЕсли;


    Если ТаблГрКатИЗФМП.ГруппаКатегории=1 тогда

    ГруппКат1=ГруппКат1+ТаблГрКатИЗФМП.Сумма;
    ИначеЕсли ТаблГрКатИЗФМП.ГруппаКатегории=2 тогда

    ГруппКат2=ГруппКат2+ТаблГрКатИЗФМП.Сумма;
    ИначеЕсли ТаблГрКатИЗФМП.ГруппаКатегории=3 тогда
    ГруппКат3=ГруппКат3+ТаблГрКатИЗФМП.Сумма;

    ИначеЕсли ТаблГрКатИЗФМП.ГруппаКатегории=4 тогда
    ГруппКат4=ГруппКат4+ТаблГрКатИЗФМП.Сумма;
    ИначеЕсли ТаблГрКатИЗФМП.ГруппаКатегории=5 тогда
    ГруппКат5=ГруппКат5+ТаблГрКатИЗФМП.Сумма;
    ИначеЕсли ТаблГрКатИЗФМП.ГруппаКатегории=6 тогда
    ГруппКат6=ГруппКат6+ТаблГрКатИЗФМП.Сумма;
    ИначеЕсли ТаблГрКатИЗФМП.ГруппаКатегории=7 тогда
    ГруппКат7=ГруппКат7+ТаблГрКатИЗФМП.Сумма;
    ИначеЕсли ТаблГрКатИЗФМП.ГруппаКатегории=8 тогда
    ГруппКат8=ГруппКат8+ТаблГрКатИЗФМП.Сумма;
    КонецЕсли;

    КонецЦикла;
    ВсегоГруппКат=ГруппКат1+ГруппКат2+ГруппКат3+ГруппКат4+ГруппКат5+ГруппКат6+ГруппКат7+ГруппКат8;
    Если ВсегоГруппКат<>0 тогда
    теккоднач=сокрЛП(строка(теккоднач))+"ИФМ";
    ВыходнаяТаблица113V.ВывестиСекцию("Строка");
    КонецЕсли ;
    теккоднач=ТаблГруппКатег.КодНачисления;

    ГруппКат1=0;
    ГруппКат2=0;
    ГруппКат3=0;
    ГруппКат4=0;
    ГруппКат5=0;
    ГруппКат6=0;
    ГруппКат7=0;
    ГруппКат8=0;
    ВсегоГруппКат=0;

    ///строки ИФМ



    ТаблГрКатСкорр.ВыбратьСтроки();
    Пока ТаблГрКатСкорр.ПолучитьСтроку() = 1 Цикл
    //Если ТаблГрКатСкорр.Подраздел =текПодр тогда
    СКРГрупп[ТаблГрКатСкорр.ГруппаКатегории]=СКРГрупп[ТаблГрКатСкорр.ГруппаКатегории]+ТаблГрКатСкорр.Сумма;
    //КонецЕсли;

    КонецЦикла;
    ТаблГрКатИЗФМП.ВыбратьСтроки();
    Пока ТаблГрКатИЗФМП.ПолучитьСтроку() = 1 Цикл
    //Если ТаблГрКатИЗФМП.Подраздел =текПодр тогда
    ИФМ[ТаблГрКатИЗФМП.ГруппаКатегории]=ИФМ[ТаблГрКатИЗФМП.ГруппаКатегории]+ТаблГрКатИЗФМП.Сумма;
    //КонецЕсли;
    КонецЦикла;

    Для счета=1 по 8 цикл
    ИтГрупп[счета]=0;
    КонецЦикла;
    Для счета=1 по 8 цикл
    ИтГрупп[счета]=СКРГрупп[счета]+ИФМ[счета] ;
    КонецЦикла;


    Для счета=1 по 8 цикл
    //ИтГрупп1= ИтГрупп1+ ИтГрупп[счета];
    ИтГрупп1= ИтГрупп1+ СКРГрупп[счета]+ИФМ[счета] ;
    ИтГрупп2= ИтГрупп2+ СКРГрупп[счета];
    ИтГрупп3= ИтГрупп3+ ИФМ[счета];
    КонецЦикла;

    //ВыходнаяТаблица113Vновая.ВывестиСекцию("Шапка");
    //ВыходнаяТаблица113Vновая.ВывестиСекцию("Строка1");
    //
    //ВыходнаяТаблица113Vновая.Опции(0,0,0,0, "Форма113Vновая");
    //ВыходнаяТаблица113Vновая.ТолькоПросмотр(1);
    //ВыходнаяТаблица113Vновая.Показать("Форма113Vновая",);

    ВыходнаяТаблица113V.ВывестиСекцию("Подвал");

    ВыходнаяТаблица113V.Опции(0,0,0,0, "Фома113V");
    ВыходнаяТаблица113V.ТолькоПросмотр(1);
    ВыходнаяТаблица113V.Показать("Фома113V",);

    //************************************************************************************************************************************************************************************************

    таблица есть такая вот:
    [​IMG]

    Вот и выходит что надо как-то данный код доработать или переработать, чтобы выводилось что-то наподобие той таблицы, что показана первой. Кстати саму таблицу даже не просят как таковую, но вот сам результат чтобы походил под нее, но с исходной таблицей.

    Помогите пожалуйста кто чем может. буду очень благодарен.

    Заранее всем спасибо.
  2. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Не пойму, зачем было возиться с массивами, когда все можно сделать одним запросом.
  3. TopicStarter Overlay
    SnakeSolid
    Offline

    SnakeSolid

    Регистрация:
    2 май 2013
    Сообщения:
    26
    Симпатии:
    0
    Баллы:
    1
    ну не я писал этот код, но я должен его исправить и дополнить, поэтому и обращаюсь за помощью, тот кто писал он написал вот так, без всякого одного запроса
  4. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Вы привели только кусок кода. Мало что понятно. Из самого кода и из скришотов.
    Общая концепция ясна - нужно как-то распределить начисленные суммы по категориям работников, а дальше - полный туман.
  5. TopicStarter Overlay
    SnakeSolid
    Offline

    SnakeSolid

    Регистрация:
    2 май 2013
    Сообщения:
    26
    Симпатии:
    0
    Баллы:
    1
    нужен весь код из 16000 строк именно этого ОТЧЕТА или что ? )
  6. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Для начала полное условие задачи
  7. TopicStarter Overlay
    SnakeSolid
    Offline

    SnakeSolid

    Регистрация:
    2 май 2013
    Сообщения:
    26
    Симпатии:
    0
    Баллы:
    1
    если это поможет, то [​IMG]

    но я вроде условие дал нормальное в начале ))
  8. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Нормально??????? Ну а теперь попробуйте представить что человек ни сном ни духом про форму 113.
    Думаете это аналог РСВ-1 про которую все в курсе)))))))

    1) Что относить?
    • Все начисления
    • Начисления, облагаемые НДФЛ
    • Начисления, облагаемые СЗВ
    • что-то специфическое (например начисления без учета р/к) или еще что
    2) С колонками понятно, а сторки?
    что такое СКР, ИТ, ИФМ? Строка1, Строка2. Прикажите угадывать?))))))))))

    3) Как суммировать начисления: по периоду действия или периоду регистрации?

    Думаю - пока достаточно.....
  9. TopicStarter Overlay
    SnakeSolid
    Offline

    SnakeSolid

    Регистрация:
    2 май 2013
    Сообщения:
    26
    Симпатии:
    0
    Баллы:
    1
    так отвечаю ))
    1) ВСЕ НАЧИСЛЕНИЯ
    2) строки такие как СКР, ИТ и ИФМ можно опустить - это у нас на предприятии внутреннее что-то, а вот что надо сделать, я показал в первой таблице - т.е. мягко говоря этих трех строк там нет и можно их убрать, они будут только в исходном нашем 113 отчете
    строки 1 и 2 как раз выводят коды категорий персонала с их начислениями
    3) суммировать по периоду действия

    а такой еще вопрос - вы попросили ПОЛНОЕ УСЛОВИЕ, вот сделал фото служебной записки как мне ее дали )) вот как такое МНЕ понимать ? скажите мне пожалуйста ))) начальство дало и сказало сделать ) все )
  10. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Нормальная ситуация. Вы же знакомы со своим отчетом и со спецификой предприятия.
    Завтра набросаю отчет.
  11. TopicStarter Overlay
    SnakeSolid
    Offline

    SnakeSolid

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

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Один ответ: опыт

    Вот примерный шаблон отчета.
    Нет вашего МДшника поэтому требуется доработка напильником.
    Все нужные места выделены комментариями.
    http://disk.tom.ru/x1yg4mz
  13. TopicStarter Overlay
    SnakeSolid
    Offline

    SnakeSolid

    Регистрация:
    2 май 2013
    Сообщения:
    26
    Симпатии:
    0
    Баллы:
    1
    спасибо скачал завтра на работе буду разбираться, если что еще напишу ) просто на работе нет еще и инета у нас ) приходится после 19 токо из дома заходить ((

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