7.7 Расчетный листок

Тема в разделе "Отчеты и обработки для "1С:Предприятие 7.7"", создана пользователем Mitay_D, 5 авг 2010.

  1. TopicStarter Overlay
    Mitay_D
    Offline

    Mitay_D Опытный в 1С

    Регистрация:
    16 фев 2010
    Сообщения:
    314
    Симпатии:
    0
    Баллы:
    26
    ЗиК редакция 2.3 (7.70.299)
    Здравствуйте уважаемые программисты! Поставили задачу. чтобы в расчетном листке показывались дополнительные данные.
    [​IMG]

    на рисунке видно, что должно попадать в расчетный листок, при формировании по одному сотруднику, выдает все правильно, а вот при формировании по списку содержащему 2-х и более сотрудников выдает все не так как хотелось бы!
    [​IMG]

    подскажите как исправить данную ошибку! Предполагаю, что не в том месте стоит Таблица.ВывестиСекцию("Новая"). а что сделать понять вообще не могу. Спасибо!

    Вложения:

  2. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Просто добавьте условие на соответствие результата запроса текущему сотруднику...
    Код:
    Пока Запрос1.Группировка(4) = 1 Цикл
    Если Запрос1.Сотрудник = Сотрудник Тогда
    КонецЕсли;
    ...
    
    
  3. TopicStarter Overlay
    Mitay_D
    Offline

    Mitay_D Опытный в 1С

    Регистрация:
    16 фев 2010
    Сообщения:
    314
    Симпатии:
    0
    Баллы:
    26
    Добавил, присоединяет правильно - Спасибо! но все равно почему то через раз правильные значения выдает! цифры в некоторых случаях дублирует.
  4. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Особо не вникал. Да и отчет сам по себе довольно мудреный - приведите приме что не правильно
  5. TopicStarter Overlay
    Mitay_D
    Offline

    Mitay_D Опытный в 1С

    Регистрация:
    16 фев 2010
    Сообщения:
    314
    Симпатии:
    0
    Баллы:
    26
    Отчет мудреный это точно, так как добавился повторный запрос но с другими датами! а разница лишь в том, что показывает сумму, допустим. предприятие мне должно 8 500, а он показывает ее с минусом, т.е. -8500! формула в запросе ваще мудреная, скорее всего из-за нее, сейчас пытаюсь как то обойти другим способом! так что разница в знаке! Суммы и цифры по случайно выбранным сотрудникам правильные.
  6. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Там используется документ НакопленнаяЗадолженность. Так что ВСЕ ПРАВИЛЬНО. Не только предприятие может быть должно, но и вы предприятию. Поэтому и знак. Помимо этого ведь есть еще ВР "текущее начальное сальдо" про которое вы похоже забыли
  7. TopicStarter Overlay
    Mitay_D
    Offline

    Mitay_D Опытный в 1С

    Регистрация:
    16 фев 2010
    Сообщения:
    314
    Симпатии:
    0
    Баллы:
    26
    я тоже в начале так думал, но получается, что когда сотрудник один в выборке он показывает правильно, т.е. допустим 19 210.23, а при условии, когда в выборке участвуют несколько сотрудников, то она напротив того же сотрудника выдает туже сумму, но уже с минусом!
    вот пример:
    [​IMG]
    [​IMG]

    19 602,30 получается из 33 241,30 - 8 639 - 5 000!
  8. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Чего уж проще - выгрузите результат запроса в ТЗ и выведите. Вам станет все понятно
  9. TopicStarter Overlay
    Mitay_D
    Offline

    Mitay_D Опытный в 1С

    Регистрация:
    16 фев 2010
    Сообщения:
    314
    Симпатии:
    0
    Баллы:
    26
    Я делал так, но все равно не понял закономерность появления в большом списке с минусами. а по отдельности с плюсами
  10. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Смотрите здесь:
    Код:
    Если (ОтбиратьПоИФ = 0) и (ОтбиратьПоФКР = 0) и (ОтбиратьПоБД = 0) Тогда
    //ДолгНаКонецМесяца = Запрос.СуммаНачисления+Запрос.Долг-Запрос.СуммаУдержания-Запрос.ВозвратыНДФЛ-Запрос.СуммаВыплаты+Запрос.ВозвратВКассу;  
    ДолгНаНачалоМесяца = Запрос.Долг;
    ДолгНаКонецМесяца = Запрос.СуммаНачисления+ДолгНаНачалоМесяца-Запрос.СуммаУдержания-Запрос.СуммаВыплаты+Запрос.ВозвратВКассу;  
    Иначе // по ИФ
    ЗапросКДокументам.Получить(Сотрудник);
    ДолгНаНачалоМесяца = ЗапросКДокументам.НачальнаяЗадолженность;
    ДолгНаКонецМесяца = ИтогоСуммаНачисления+ДолгНаНачалоМесяца-ИтогоСуммаУдержания-ИтогоСуммаВыплаты+ИтогоВозвратВКассу;
    КонецЕсли;
    
    
    
  11. TopicStarter Overlay
    Mitay_D
    Offline

    Mitay_D Опытный в 1С

    Регистрация:
    16 фев 2010
    Сообщения:
    314
    Симпатии:
    0
    Баллы:
    26
    простите, а при чем здесь это, там же совсем другие и ненужные мне для использования цифры, или вывод итого мне нужно сюда вставить? я думаю, что вот здесь с математической формулой косяк, но как ее изменить не понимаю.
    Код:
    Пока Запрос1.Группировка(1) = 1 Цикл  
    Пока Запрос1.Группировка(2) = 1 Цикл
    Пока Запрос1.Группировка(3) = 1 Цикл       
    Если (Сводно = 1) и (ПоМесяцам = 1) Тогда
    Пока Запрос1.Группировка(4) = 1 Цикл
    Пока Запрос1.Группировка(5) = 1 Цикл
    ВыбраныйДокумент = Запрос1.ТекущийДокумент; 
    Если ((ВыбраныйДокумент.Вид() = "НакопленнаяЗадолженность") или (ВыбраныйДокумент.Вид() = "ВводНачальногоСальдо"))
    и (СписокДокНакЗадолж.Принадлежит(ВыбраныйДокумент) = 1)Тогда
    СписокДокНакЗадолж.ДобавитьЗначение(ВыбраныйДокумент);  
    КонецЕсли;
    КонецЦикла;
    КонецЦикла;
    Иначе
    Пока Запрос1.Группировка(4) = 1 Цикл  
    Если Запрос1.Сотрудник = Сотрудник Тогда 
    ТЗ.НоваяСтрока();
    ВыбраныйДокумент = Запрос1.ТекущийДокумент;
    Если ((ВыбраныйДокумент.Вид() = "НакопленнаяЗадолженность") или (ВыбраныйДокумент.Вид() = "ВводНачальногоСальдо"))
    и (СписокДокНакЗадолж.Принадлежит(ВыбраныйДокумент) = 1)Тогда
    СписокДокНакЗадолж.ДобавитьЗначение(ВыбраныйДокумент);   
    КонецЕсли;  
    ТЗ.Сотрудник = Запрос1.Сотрудник;
    ВыбраныйДокумент = Запрос1.ТекущийДокумент;  
    Зек = Запрос1.Результат; 
    НаименованиеДокумента = ВыбраныйДокумент;  
    ТЗ.НаименованиеДокумента = НаименованиеДокумента;   
    Сумма = Зек;   
    ТЗ.Сумма = Сумма;
    Сумма1 = Сумма1+Сумма;
    Таблица.ВывестиСекцию("Новая");  
    КонецЕсли;
    КонецЦикла;  
    КонецЕсли;   
    Сумма1 = (Сумма-Сумма1)-Сумма; 
    КонецЦикла;   
    КонецЦикла; 
    ТЗ.Итого =  Сумма1;
    КонецЦикла;   
    КонецЕсли;      
    
    
  12. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Причем здесь математика? Вы идите "об обратного" - смотрите какие перемнные содержат результат для вывода в макет
  13. TopicStarter Overlay
    Mitay_D
    Offline

    Mitay_D Опытный в 1С

    Регистрация:
    16 фев 2010
    Сообщения:
    314
    Симпатии:
    0
    Баллы:
    26
    таким образом запрос1 выполняется правильно и считает все правильно, но не правильно стоит код вывода данных в таблицу?
  14. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Совершенно верно. Переменные Сумма и Сумма1 НЕ ИСПОЛЬЗУЮТСЯ при выводе...
  15. TopicStarter Overlay
    Mitay_D
    Offline

    Mitay_D Опытный в 1С

    Регистрация:
    16 фев 2010
    Сообщения:
    314
    Симпатии:
    0
    Баллы:
    26
    я уже запутался, что чем вывожу! сейчас буду по отдельности делать, так как суммы он выводит то правильно (по отдельности)., а вот оперирует уже ими как попала, я удивляюсь почему оно ваще хоть что то правильно показывает!
  16. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Упс... Извиняюсь. Вы действительно выводите переменную Сумма в секции Новая. Думаю достаточно ОБНУЛИТЬ переменные перед циклом по группировке - попробуйте
  17. TopicStarter Overlay
    Mitay_D
    Offline

    Mitay_D Опытный в 1С

    Регистрация:
    16 фев 2010
    Сообщения:
    314
    Симпатии:
    0
    Баллы:
    26
    Обнулил, теперь
    Код:
    Сумма1 = (Сумма1-Сумма)-Сумма;
    
    
    Вот это думаю как изменит, чтобы считало :unsure:
  18. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Там есть условие по виду документа... Посмотрите если суммировать ВНЕ его
  19. TopicStarter Overlay
    Mitay_D
    Offline

    Mitay_D Опытный в 1С

    Регистрация:
    16 фев 2010
    Сообщения:
    314
    Симпатии:
    0
    Баллы:
    26
    Мне разница нужна этих данных, просто Обозвал "Суммой". из первого значения вычесть все остальные и получить то что надо
  20. Бухгалтерский угодник
    Offline

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

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

    типа:
    Код:
    н=0;
    Сумма=0;
    ... Цикл
    н=н+1;
    Если Н=1 Тогда
    Сумма1=ТЗ.Сумма;
    Иначе
    Сумма=Сумма+ТЗ.Сумма;
    КонецЕсли;
    
    
    

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