|   |   | 
| 
 | v7: Док.НоваяСтрока() | ☑ | ||
|---|---|---|---|---|
| 0
    
        nacinayu1c 16.07.11✎ 16:17 | 
        дело в том что  если смотреть  отчет оборотно сальдовая ведомость по счету ОВ то в нем имеется несколько сотрудников но когда нажимаю кнопку заполнить заполняется только одна строка
  Процедура Заполнить() Кол = КоличествоСтрок(); Если Кол > 0 Тогда Если Вопрос("Вся введенная информация будет потеряна!" + РазделительСтрок + "Продолжить?", "Да+Нет") = "Нет" Тогда Возврат; КонецЕсли; КонецЕсли; УдалитьСтроки(); Если (Подразделение.Выбран() = 0) И (Группа.Выбран() = 0 ) Тогда Ит = СоздатьОбъект("БухгалтерскиеИтоги"); ит.ИСпользоватьсубконто(ВидыСубконто.Сотрудники); ТекДата = НачМесяца(ДатаДок); Ит.ВыполнитьЗапрос(ТекДата, КонМесяца(ДатаДок), "ОВ", , , , "Месяц"); Ит.ВыбратьСубконто(1); Если Ит.ПолучитьСубконто(1) = 1 Тогда Ит.ВыбратьПериоды(); Пока Ит.ПолучитьПериод() = 1 Цикл ТекДата = КонМесяца(Ит.НачДата); Если (Подразделение.Выбран() = 1) или (Группа.Выбран() = 1 ) Тогда Продолжить; Иначе НоваяСтрока(); Сотрудник = Ит.Субконто(1); Дней = Ит.ДО("К"); Часов = Ит.ДО("С"); КонецЕсли; КонецЦикла; КонецЕсли; ПриВыбореСотрудника(); ИначеЕсли (Подразделение.Выбран() = 1) И (Группа.Выбран() = 0 ) Тогда Ит = СоздатьОбъект("БухгалтерскиеИтоги"); ит.ИСпользоватьсубконто(ВидыСубконто.Сотрудники); ТекДата = НачМесяца(ДатаДок); Ит.ВыполнитьЗапрос(ТекДата, КонМесяца(ДатаДок), "ОВ", , , , "Месяц"); Ит.ВыбратьСубконто(1); Если Ит.ПолучитьСубконто(1) = 1 Тогда Ит.ВыбратьПериоды(); Пока Ит.ПолучитьПериод() = 1 Цикл ТекДата = КонМесяца(Ит.НачДата); Если (Подразделение.Выбран() = 0) И (Группа.Выбран() = 1 ) Тогда Продолжить; Иначе Если Ит.Субконто(ВидыСубконто.Сотрудники).Подразделение.Получить(ДатаДок) = Подразделение Тогда; НоваяСтрока(); Сотрудник = Ит.Субконто(1); Дней = Ит.ДО("К"); Часов = Ит.ДО("С"); ПриВыбореСотрудника(); Иначе Продолжить; КонецЕсли; КонецЕсли; КонецЦикла; КонецЕсли; ИначеЕсли (Подразделение.Выбран() = 0) И (Группа.Выбран() = 1 ) Тогда Ит = СоздатьОбъект("БухгалтерскиеИтоги"); ит.ИСпользоватьсубконто(ВидыСубконто.Сотрудники); ТекДата = НачМесяца(ДатаДок); Ит.ВыполнитьЗапрос(ТекДата, КонМесяца(ДатаДок), "ОВ", , , , "Месяц"); Ит.ВыбратьСубконто(1); Если Ит.ПолучитьСубконто(1) = 1 Тогда Ит.ВыбратьПериоды(); Пока Ит.ПолучитьПериод() = 1 Цикл ТекДата = КонМесяца(Ит.НачДата); Если (Подразделение.Выбран() = 1) или (Группа.Выбран() = 0 ) Тогда Продолжить; Иначе Если Ит.Субконто(ВидыСубконто.Сотрудники).ПринадлежитГруппе(Группа) = 0 Тогда Продолжить; Иначе НоваяСтрока(); Сотрудник = Ит.Субконто(1); Дней = Ит.ДО("К"); Часов = Ит.ДО("С"); ПриВыбореСотрудника(); КонецЕсли; КонецЕсли; КонецЦикла; КонецЕсли; КонецЕсли; КонецПроцедуры | |||
| 1
    
        nacinayu1c 16.07.11✎ 16:17 | 
        не как не могу понять почему     | |||
| 2
    
        nacinayu1c 16.07.11✎ 16:21 | 
        Процедура ПриВыбореСотрудника() 
  Если ОбщийСчет.Выбран() = 0 Тогда Счет = Сотрудник.СчетЗатрат.Получить(КонМесяца(ДатаДок)); глПриВыбореСчета(Контекст, "Счет", , 0); Субконто1 = Сотрудник.Субконто1.Получить(КонМесяца(ДатаДок)); Субконто2 = Сотрудник.Субконто2.Получить(КонМесяца(ДатаДок)); Субконто3 = Сотрудник.Субконто3.Получить(КонМесяца(ДатаДок)); Иначе Счет = ОбщийСчет; глПриВыбореСчета(Контекст,"Счет",,0); Субконто1 = ОбщееСубконто1; Субконто2 = ОбщееСубконто2; Субконто3 = ОбщееСубконто3; КонецЕсли; КонецПроцедуры | |||
| 3
    
        1Сергей 16.07.11✎ 16:23 | 
        дык, засунь
  НоваяСтрока(); Сотрудник = Ит.Субконто(1); Дней = Ит.ДО("К"); Часов = Ит.ДО("С"); внутрь цикла | |||
| 4
    
        nacinayu1c 16.07.11✎ 16:24 | 
        поможете?     | |||
| 5
    
        nacinayu1c 16.07.11✎ 16:25 | 
        (3) не понял оно же в цикле     | |||
| 6
    
        Сияющий Асинхраль 16.07.11✎ 16:27 | 
        Тебе определенно бумаги не жалко, столько лишнего кода, что руки пообрубать хочется:
  Ит.ВыполнитьЗапрос(НачМесяца(ДатаДок), КонМесяца(ДатаДок), "ОВ", , , , "Период"); Ит.ВыбратьСубконто(1); Пока Ит.ПолучитьСубконто(1) = 1 Цикл НоваяСтрока(); Сотрудник = Ит.Субконто(1); Дней = Ит.ДО("К"); Часов = Ит.ДО("С"); КонецЕсли; ПриВыбореСотрудника(); | |||
| 7
    
        nacinayu1c 16.07.11✎ 16:30 | 
        (6) все равно тоже самое     | |||
| 8
    
        Сияющий Асинхраль 16.07.11✎ 16:30 | 
        ТекДата = НачМесяца(ДатаДок);    
  Ит.ВыполнитьЗапрос(ТекДата, КонМесяца(ДатаДок), "ОВ", , , , "Месяц"); Ит.ВыбратьСубконто(1); Если Ит.ПолучитьСубконто(1) = 1 Тогда // Зачем запрос по всем субконто, а выбирается единственное Ит.ВыбратьПериоды(); // Зачем выбирать периоды, если используется единственный период - месяц Пока Ит.ПолучитьПериод() = 1 Цикл // Зачем выбирать периоды, если используется единственный период - месяц ТекДата = КонМесяца(Ит.НачДата); // Зачем определять ТекДата, если она не используется Если (Подразделение.Выбран() = 1) или (Группа.Выбран() = 1 ) Тогда // Зачем это сравнение, если выше идет сравнение с нулевыми значениями того же самого Продолжить; Иначе НоваяСтрока(); Сотрудник = Ит.Субконто(1); Дней = Ит.ДО("К"); Часов = Ит.ДО("С"); КонецЕсли; КонецЦикла; КонецЕсли; ПриВыбореСотрудника(); | |||
| 9
    
        nacinayu1c 16.07.11✎ 16:33 | 
        (8) Виноват извиняюсь  голова уже думать не хочет спасибо всем     | |||
| 10
    
        Сияющий Асинхраль 16.07.11✎ 16:36 | 
        И сдается мне, что ПриВыбореСотрудника() тоже надо переставить:
  Пока Ит.ПолучитьСубконто(1) = 1 Цикл НоваяСтрока(); Сотрудник = Ит.Субконто(1); Дней = Ит.ДО("К"); Часов = Ит.ДО("С"); ПриВыбореСотрудника(); КонецЦикла; | |||
| 11
    
        nacinayu1c 16.07.11✎ 16:39 | 
        (10) подожди но ведь  
  Процедура ПриВыбореСотрудника() Если ОбщийСчет.Выбран() = 0 Тогда Счет = Сотрудник.СчетЗатрат.Получить(КонМесяца(ДатаДок)); глПриВыбореСчета(Контекст, "Счет", , 0); Субконто1 = Сотрудник.Субконто1.Получить(КонМесяца(ДатаДок)); Субконто2 = Сотрудник.Субконто2.Получить(КонМесяца(ДатаДок)); Субконто3 = Сотрудник.Субконто3.Получить(КонМесяца(ДатаДок)); Иначе Счет = ОбщийСчет; глПриВыбореСчета(Контекст,"Счет",,0); Субконто1 = ОбщееСубконто1; Субконто2 = ОбщееСубконто2; Субконто3 = ОбщееСубконто3; КонецЕсли; КонецПроцедуры мне нужна только чтоб заполнить реквизиты счет , Субконто1,2,3 | |||
| 12
    
        nacinayu1c 16.07.11✎ 16:45 | 
        (10) не поможешь мне еще с одной проблемой? теперь нужно поставить условие на то что если сотрудник уже заполнен тогда при нажатии кнопки  реквизит с сотрудником не заполнялся  а пеквизиты дни и часы  заполнялись  тоесть если сотрудника ввели ручками     | |||
| 13
    
        nacinayu1c 16.07.11✎ 16:50 | 
        все сделал спасибо всем  
  Процедура ПриВыбореСотрудника() Если Сотрудник.Выбран() = 1 Тогда Ит = СоздатьОбъект("БухгалтерскиеИтоги"); ит.ИСпользоватьсубконто(ВидыСубконто.Сотрудники,Сотрудник); ТекДата = НачМесяца(ДатаДок); Ит.ВыполнитьЗапрос(ТекДата, КонМесяца(ДатаДок), "ОВ", , , , "Месяц"); Ит.ВыбратьСубконто(1); Если Ит.ПолучитьСубконто(1,,Сотрудник) = 1 Тогда Ит.ВыбратьПериоды(); Пока Ит.ПолучитьПериод() = 1 Цикл ТекДата = КонМесяца(Ит.НачДата); Дней = Ит.ДО("К"); Часов = Ит.ДО("С"); КонецЦикла; КонецЕсли; КонецЕсли; Если ОбщийСчет.Выбран() = 0 Тогда Счет = Сотрудник.СчетЗатрат.Получить(КонМесяца(ДатаДок)); глПриВыбореСчета(Контекст, "Счет", , 0); Субконто1 = Сотрудник.Субконто1.Получить(КонМесяца(ДатаДок)); Субконто2 = Сотрудник.Субконто2.Получить(КонМесяца(ДатаДок)); Субконто3 = Сотрудник.Субконто3.Получить(КонМесяца(ДатаДок)); Иначе Счет = ОбщийСчет; глПриВыбореСчета(Контекст,"Счет",,0); Субконто1 = ОбщееСубконто1; Субконто2 = ОбщееСубконто2; Субконто3 = ОбщееСубконто3; КонецЕсли; КонецПроцедуры если ручками формировалось то и кнопочку заполнить жать не нужно | |||
| 14
    
        Сияющий Асинхраль 16.07.11✎ 17:00 | 
        ит.ИСпользоватьсубконто(ВидыСубконто.Сотрудники,Сотрудник,2); // Должно быть так
  Я тебе уже разок написал про периоды, учись программисть так, чтобы читающие после тебя не плевались изучая код, в котором более половины этого кода не используется... | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |