|
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); // Должно быть так
Я тебе уже разок написал про периоды, учись программисть так, чтобы читающие после тебя не плевались изучая код, в котором более половины этого кода не используется... |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |