|
v7: Обработка с выводом в таблицу | ☑ | ||
---|---|---|---|---|
0
SKOP
09.08.12
✎
11:27
|
Есть обработка каторая должна проверать льготу на детей есть им ли 18 лет если нету то должна закидывать в таблицу.проверку написал только возникла проблема с закидыванием фамилий в таблицу
Код Процедура ПриОткрытии() Д=ДобавитьМесяц(РабочаяДата(),-216); КонецПроцедуры //******************************************* Процедура Выполнить() Если Вопрос("<Налоговые льготы> будет заполнены новыми данными по всем сотрудникам. Данное действие является не обратимым. Чтобы продолжить нажмите <Да>, чтобы отменить нажмите <Нет>",4)=7 тогда Возврат; КонецЕсли; Сп=СоздатьОбъект("СписокЗначений"); СпрСотр=СоздатьОбъект("Справочник.Сотрудники"); СпрСостСемьи=СоздатьОбъект("Справочник.СоставСемьи"); СпрНалЛьготы=СоздатьОбъект("Справочник.НалоговыеЛьготы"); Таб=СоздатьОбъект("Таблица"); Таб.ИсходнаяТаблица("Таблица"); СпрТипЛьготы=СоздатьОбъект("Справочник.ЛьготыПоПодоходномуНалогу"); СпрТипЛьготы.НайтиПоНаименованию("На детей",0,1); ТипЛьготыНаДет=СпрТипЛьготы.ТекущийЭлемент(); СпрСотр.ВыбратьЭлементы(); Стр=""; Пока СпрСотр.ПолучитьЭлемент()=1 цикл Если СпрСотр.ЭтоГруппа()=0 тогда СпрНалЛьготы.ИспользоватьВладельца(СпрСотр.ТекущийЭлемент()); СпрНалЛьготы.ВыбратьЭлементы(); Пока СпрНалЛьготы.ПолучитьЭлемент()=1 цикл Если СпрНалЛьготы.ТипЛьготы=ТипЛьготыНаДет тогда СпрНалЛьготы.Удалить(); КонецЕсли; КонецЦикла; СпрСостСемьи.ИспользоватьВладельца(СпрСотр.ТекущийЭлемент()); СпрСостСемьи.ВыбратьЭлементы(); Сп.УдалитьВсе(); Пока СпрСостСемьи.ПолучитьЭлемент()=1 Цикл Если ((СпрСостСемьи.Родство=Перечисление.СтепениРодства.Сын)или (СпрСостСемьи.Родство=Перечисление.СтепениРодства.Дочь))и (СпрСостСемьи.ДеньРождения>Д)тогда //// Сп.ДобавитьЗначение(СпрСостСемьи.ТекущийЭлемент()); КонецЕсли; КонецЦикла; КонецЕсли; КонецЦикла; Сообщить("льготы на детей удалены"); Сообщить(Стр); Сообщить("Выполнено"); КонецПроцедуры |
|||
1
SKOP
09.08.12
✎
11:34
|
gizmoz если можешь дополни код
|
|||
2
Simod
09.08.12
✎
11:47
|
Я конечно понимаю, что новичок и все такое, но вопрос то можно грамотно, с использованием знаков препинания, сформулировать?
|
|||
3
1Сергей
09.08.12
✎
11:47
|
не вижу в чем проблема
|
|||
4
SKOP
09.08.12
✎
11:57
|
Нужно в таблицу вывести Наименование
Процедура ПриОткрытии() Д=ДобавитьМесяц(РабочаяДата(),-216); КонецПроцедуры //******************************************* Процедура Выполнить() Если Вопрос("<Налоговые льготы> будет заполнены новыми данными по всем сотрудникам. Данное действие является не обратимым. Чтобы продолжить нажмите <Да>, чтобы отменить нажмите <Нет>",4)=7 тогда Возврат; КонецЕсли; Сп=СоздатьОбъект("СписокЗначений"); СпрСотр=СоздатьОбъект("Справочник.Сотрудники"); СпрСостСемьи=СоздатьОбъект("Справочник.СоставСемьи"); СпрНалЛьготы=СоздатьОбъект("Справочник.НалоговыеЛьготы"); Таб=СоздатьОбъект("Таблица"); Таб.ИсходнаяТаблица("Таблица"); СпрТипЛьготы=СоздатьОбъект("Справочник.ЛьготыПоПодоходномуНалогу"); СпрТипЛьготы.НайтиПоНаименованию("На детей",0,1); ТипЛьготыНаДет=СпрТипЛьготы.ТекущийЭлемент(); СпрСотр.ВыбратьЭлементы(); Стр=""; Пока СпрСотр.ПолучитьЭлемент()=1 цикл Если СпрСотр.ЭтоГруппа()=0 тогда СпрНалЛьготы.ИспользоватьВладельца(СпрСотр.ТекущийЭлемент()); СпрНалЛьготы.ВыбратьЭлементы(); Пока СпрНалЛьготы.ПолучитьЭлемент()=1 цикл Если СпрНалЛьготы.ТипЛьготы=ТипЛьготыНаДет тогда СпрНалЛьготы.Удалить(); КонецЕсли; КонецЦикла; СпрСостСемьи.ИспользоватьВладельца(СпрСотр.ТекущийЭлемент()); СпрСостСемьи.ВыбратьЭлементы(); Сп.УдалитьВсе(); Пока СпрСостСемьи.ПолучитьЭлемент()=1 Цикл Если ((СпрСостСемьи.Родство=Перечисление.СтепениРодства.Сын)или (СпрСостСемьи.Родство=Перечисление.СтепениРодства.Дочь))и (СпрСостСемьи.ДеньРождения>Д)тогда //// Сп.ДобавитьЗначение(СпрСостСемьи.ТекущийЭлемент()); КонецЕсли; КонецЦикла; Наименование=????????????????????????вывести фамилию Таб.ВывестиСекцию("Шапка"); Таб.ВывестисекциЮ("Строка"); КонецЕсли; КонецЦикла; Сообщить("льготы на детей удалены"); Сообщить(Стр); Сообщить("Выполнено"); КонецПроцедуры |
|||
5
zladenuw
09.08.12
✎
11:59
|
ну так в макете поставь выражение на поле где наименование
|
|||
6
SKOP
09.08.12
✎
12:00
|
напишите примером
|
|||
7
SKOP
09.08.12
✎
12:01
|
в коде
|
|||
8
zladenuw
09.08.12
✎
12:01
|
рад бы. но это в макете выставляешь.
|
|||
9
zladenuw
09.08.12
✎
12:04
|
у тебя должна быть переменная и выражение в макете. иметь одинаковое имя. тогда тебе достаточно будет Таб.ВывестисекциЮ("Строка"); а вообще смотри в типовых.
|
|||
10
SKOP
09.08.12
✎
12:07
|
Пока СпрСостСемьи.ПолучитьЭлемент()=1 Цикл
Если ((СпрСостСемьи.Родство=Перечисление.СтепениРодства.Сын)или (СпрСостСемьи.Родство=Перечисление.СтепениРодства.Дочь))и (СпрСостСемьи.ДеньРождения>Д)тогда //// Сп.ДобавитьЗначение(СпрСостСемьи.ТекущийЭлемент()); как к этому коду привязатся наименование У меня вопрос мне нужно чтоб в таблицу выбелисть только те кому до 18 лет |
|||
11
Simod
09.08.12
✎
12:09
|
Открой любой отчет из типовой конфигурации и посмотри как там сделано.
Я так понимаю, что фамилия должна быть в "СпрСотр". |
|||
12
zladenuw
09.08.12
✎
12:10
|
Пока СпрСотр.ПолучитьЭлемент()=1 цикл
Если СпрСотр.ЭтоГруппа()=0 тогда СпрНалЛьготы.ИспользоватьВладельца(СпрСотр.ТекущийЭлемент()); СпрНалЛьготы.ВыбратьЭлементы(); Пока СпрНалЛьготы.ПолучитьЭлемент()=1 цикл Если СпрНалЛьготы.ТипЛьготы=ТипЛьготыНаДет тогда СпрНалЛьготы.Удалить(); КонецЕсли; КонецЦикла; СпрСостСемьи.ИспользоватьВладельца(СпрСотр.ТекущийЭлемент()); СпрСостСемьи.ВыбратьЭлементы(); Сп.УдалитьВсе(); Таб.ВывестиСекцию("Шапка"); Пока СпрСостСемьи.ПолучитьЭлемент()=1 Цикл Если ((СпрСостСемьи.Родство=Перечисление.СтепениРодства.Сын)или (СпрСостСемьи.Родство=Перечисление.СтепениРодства.Дочь))и (СпрСостСемьи.ДеньРождения>Д)тогда //// Сп.ДобавитьЗначение(СпрСостСемьи.ТекущийЭлемент()); Наименование=????????????????????????вывести фамилию Таб.ВывестисекциЮ("Строка"); КонецЕсли; КонецЦикла; КонецЕсли; КонецЦикла; Так понятно, а дальше думаешь о (9) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |