|
v7: Справочник Найти по элементу | ☑ | ||
---|---|---|---|---|
0
work92
03.09.12
✎
16:37
|
Процедура Выполнить()
Если Вопрос("Чтобы продолжить нажмите <Да>, чтобы отменить нажмите <Нет>",4)=7 тогда Возврат; КонецЕсли; Сп=СоздатьОбъект("СписокЗначений"); СпрСотр=СоздатьОбъект("Справочник.Сотрудники"); СпрСостСемьи=СоздатьОбъект("Справочник.СоставСемьи"); СпрНалЛьготы=СоздатьОбъект("Справочник.НалоговыеЛьготы"); СпрТипЛьготы=СоздатьОбъект("Справочник.ЛьготыПоПодоходномуНалогу"); СпрТипЛьготы.НайтиПоНаименованию("На детей",0,1); ТипЛьготыНаДет=СпрТипЛьготы.ТекущийЭлемент(); СпрСотр.ВыбратьЭлементы(); Стр=""; Пока СпрСотр.ПолучитьЭлемент()=1 цикл Если СпрСотр.ЭтоГруппа()=0 тогда СпрНалЛьготы.ИспользоватьВладельца(СпрСотр.ТекущийЭлемент()); СпрНалЛьготы.ВыбратьЭлементы(); Пока СпрНалЛьготы.ПолучитьЭлемент()=1 цикл Если СпрНалЛьготы.ТипЛьготы=ТипЛьготыНаДет тогда ///СпрНалЛьготы.Удалить(); КонецЕсли; КонецЦикла; СпрСостСемьи.ИспользоватьВладельца(СпрСотр.ТекущийЭлемент()); СпрСостСемьи.ВыбратьЭлементы(); Сп.УдалитьВсе(); Пока СпрСостСемьи.ПолучитьЭлемент()=1 Цикл Если ((СпрСостСемьи.Родство=Перечисление.СтепениРодства.Сын)или (СпрСостСемьи.Родство=Перечисление.СтепениРодства.Дочь))и (СпрСостСемьи.ДеньРождения>Д)тогда Сп.ДобавитьЗначение(СпрСостСемьи.ТекущийЭлемент()); КонецЕсли; КонецЦикла; Если Сп.РазмерСписка()>=2 тогда Для н=1 по Сп.РазмерСписка() цикл СпрНалЛьготы.Новый()????????????????????????????????????????; СпрНалЛьготы.ТипЛьготы=ТипЛьготыНаДет; СпрНалЛьготы.Владелец=СпрСотр.ТекущийЭлемент(); СпрНалЛьготы.ДатаНачала=Сп.ПолучитьЗначение(н,).ДеньРождения; СпрНалЛьготы.ДатаОкончания=ДобавитьМесяц(Сп.ПолучитьЗначение(н,).ДеньРождения,216); СпрНалЛьготы.Сумма=2; СпрНалЛьготы.Записать(); КонецЦикла; ИначеЕсли Сп.РазмерСписка()=1 тогда Для н=1 по Сп.РазмерСписка() цикл СпрНалЛьготы.Новый???????????????????????????????????????????????(); СпрНалЛьготы.ТипЛьготы=ТипЛьготыНаДет; СпрНалЛьготы.Владелец=СпрСотр.ТекущийЭлемент(); СпрНалЛьготы.ДатаНачала=Сп.ПолучитьЗначение(н,).ДеньРождения; СпрНалЛьготы.ДатаОкончания=ДобавитьМесяц(Сп.ПолучитьЗначение(н,).ДеньРождения,216); СпрНалЛьготы.Записать(); КонецЦикла; КонецЕсли; КонецЕсли; КонецЦикла; Сообщить("льготы на детей удалены"); Сообщить(Стр); Сообщить("Выполнено"); |
|||
1
Boleev
03.09.12
✎
16:37
|
КонецПроцедуры
|
|||
2
work92
03.09.12
✎
16:39
|
подскажите что вписать в замен -----------СпрНалЛьготы.Новый()????????????????????????????????????????;
чтобы не создава новый элемент а изменял старый элемент |
|||
3
work92
03.09.12
✎
16:40
|
кто может кто знает
|
|||
4
Boleev
03.09.12
✎
16:40
|
(2) Выбирай!
СпрНалЛьготы.НайтиПоНаименованию() СпрНалЛьготы.НайтиПоКоду() СпрНалЛьготы.НайтиПоРеквизиту() |
|||
5
work92
03.09.12
✎
16:41
|
|
|||
6
work92
03.09.12
✎
16:42
|
Boleev если можешь напиши а то я писал найти по элементу у меня вылазит ошибка не выбран
|
|||
7
rutony
03.09.12
✎
16:44
|
||||
8
Boleev
03.09.12
✎
16:44
|
(6) а ты выбрал из (4)
|
|||
9
work92
03.09.12
✎
16:47
|
я писал
СПрНалЛьготы.НайтиЭлемент(На детей) СпрНалЛьготы.ТипЛьготы=ТипЛьготыНаДет; СпрНалЛьготы.Владелец=СпрСотр.ТекущийЭлемент(); СпрНалЛьготы.ДатаНачала=Сп.ПолучитьЗначение(н,).ДеньРождения; СпрНалЛьготы.ДатаОкончания=ДобавитьМесяц(Сп.ПолучитьЗначение(н,).ДеньРождения,216); СпрНалЛьготы.Сумма=2; СпрНалЛьготы.Записать(); правильно |
|||
10
work92
03.09.12
✎
16:48
|
забыл
СПрНалЛьготы.НайтиЭлемент("На детей") |
|||
11
Boleev
03.09.12
✎
16:48
|
(9) Если СПрНалЛьготы.НайтиПоНаименованию("На детей")=1 //нашли
|
|||
12
work92
03.09.12
✎
16:51
|
а для чего там если
|
|||
13
work92
03.09.12
✎
16:55
|
пишет
СпрНалЛьготы.ТипЛьготы=ТипЛьготыНаДет; {Обработка.новый1.Форма.Модуль(52)}: Не выбран элемент! |
|||
14
del123
03.09.12
✎
16:56
|
для этого там и было Если =)
|
|||
15
Budy
03.09.12
✎
16:58
|
(2) Может чего не понял.
СправочникСсылка.<Имя справочника> (CatalogRef.<Имя справочника>) ПолучитьОбъект (GetObject) Синтаксис: ПолучитьОбъект() Возвращаемое значение: Тип: СправочникОбъект; Неопределено. Неопределено - объекта в базе нет (например, при обмене данными или после непосредственного удаления объекта, на который есть ссылки). Описание: Получает по ссылке объект, предназначенный для чтения, изменения, добавления и удаления справочника. |
|||
16
del123
03.09.12
✎
17:08
|
(15) Ну во первых, тут семерка) А во вторых, что бы получить из чего то объект, надо сначала найти это самое что то :)
(13) Почитай в СП описание метода НайтиПоНаименованию(). Скорее всего наименование неверно указываешь, либо режим поиска неверный. попробуй НайтиПоНаименованию("На детей", 0, 0) и посмотри в отладчике какое значение туда попадает... |
|||
17
del123
03.09.12
✎
17:12
|
Кстати у тебя в примере есть уже поиск по наименованию в другом справочнике, чужой код правим?:)
|
|||
18
work92
03.09.12
✎
17:13
|
Процедура Выполнить()
Если Вопрос("Чтобы продолжить нажмите <Да>, чтобы отменить нажмите <Нет>",4)=7 тогда Возврат; КонецЕсли; Сп=СоздатьОбъект("СписокЗначений"); СпрСотр=СоздатьОбъект("Справочник.Сотрудники"); СпрСостСемьи=СоздатьОбъект("Справочник.СоставСемьи"); СпрНалЛьготы=СоздатьОбъект("Справочник.НалоговыеЛьготы"); СпрТипЛьготы=СоздатьОбъект("Справочник.ЛьготыПоПодоходномуНалогу"); СпрТипЛьготы.НайтиПоНаименованию("На детей",0,1); ТипЛьготыНаДет=СпрТипЛьготы.ТекущийЭлемент(); СпрСотр.ВыбратьЭлементы(); Стр=""; Пока СпрСотр.ПолучитьЭлемент()=1 цикл Если СпрСотр.ЭтоГруппа()=0 тогда СпрНалЛьготы.ИспользоватьВладельца(СпрСотр.ТекущийЭлемент()); СпрНалЛьготы.ВыбратьЭлементы(); Пока СпрНалЛьготы.ПолучитьЭлемент()=1 цикл Если СпрНалЛьготы.ТипЛьготы=ТипЛьготыНаДет тогда /// СпрНалЛьготы.Удалить(); КонецЕсли; КонецЦикла; СпрСостСемьи.ИспользоватьВладельца(СпрСотр.ТекущийЭлемент()); СпрСостСемьи.ВыбратьЭлементы(); Сп.УдалитьВсе(); Пока СпрСостСемьи.ПолучитьЭлемент()=1 Цикл Если ((СпрСостСемьи.Родство=Перечисление.СтепениРодства.Сын)или (СпрСостСемьи.Родство=Перечисление.СтепениРодства.Дочь))и (СпрСостСемьи.ДеньРождения>Д)тогда Сп.ДобавитьЗначение(СпрСостСемьи.ТекущийЭлемент()); КонецЕсли; КонецЦикла; Если Сп.РазмерСписка()>=2 тогда Для н=1 по Сп.РазмерСписка() цикл Если СПрНалЛьготы.НайтиПоНаименованию("На детей")=1 тогда СпрНалЛьготы.ТипЛьготы=ТипЛьготыНаДет; СпрНалЛьготы.Владелец=СпрСотр.ТекущийЭлемент(); СпрНалЛьготы.ДатаНачала=Сп.ПолучитьЗначение(н,).ДеньРождения; СпрНалЛьготы.ДатаОкончания=ДобавитьМесяц(Сп.ПолучитьЗначение(н,).ДеньРождения,216); СпрНалЛьготы.Сумма=2; СпрНалЛьготы.Записать(); конецЕсли; КонецЦикла; ИначеЕсли Сп.РазмерСписка()=1 тогда Для н=1 по Сп.РазмерСписка() цикл Если СПрНалЛьготы.НайтиПоНаименованию("На детей")=1 тогда СпрНалЛьготы.ТипЛьготы=ТипЛьготыНаДет; СпрНалЛьготы.Владелец=СпрСотр.ТекущийЭлемент(); СпрНалЛьготы.ДатаНачала=Сп.ПолучитьЗначение(н,).ДеньРождения; СпрНалЛьготы.ДатаОкончания=ДобавитьМесяц(Сп.ПолучитьЗначение(н,).ДеньРождения,216); СпрНалЛьготы.Сумма=27; СпрНалЛьготы.Записать(); конецЕсли; КонецЦикла; КонецЕсли; конецЕсли; КонецЦикла; Сообщить("льготы на детей удалены"); Сообщить(Стр); Сообщить("Выполнено"); КонецПроцедуры |
|||
19
work92
03.09.12
✎
17:15
|
гонит в пустую включаю сразу отключается гляньте плиз может где в коде ошибка
Если Сп.РазмерСписка()>=2 тогда Для н=1 по Сп.РазмерСписка() цикл Если СПрНалЛьготы.НайтиПоНаименованию("На детей")=1 тогда СпрНалЛьготы.ТипЛьготы=ТипЛьготыНаДет; СпрНалЛьготы.Владелец=СпрСотр.ТекущийЭлемент(); СпрНалЛьготы.ДатаНачала=Сп.ПолучитьЗначение(н,).ДеньРождения; СпрНалЛьготы.ДатаОкончания=ДобавитьМесяц(Сп.ПолучитьЗначение(н,).ДеньРождения,216); СпрНалЛьготы.Сумма=2; СпрНалЛьготы.Записать(); конецЕсли; КонецЦикла; ИначеЕсли Сп.РазмерСписка()=1 тогда Для н=1 по Сп.РазмерСписка() цикл Если СПрНалЛьготы.НайтиПоНаименованию("На детей")=1 тогда СпрНалЛьготы.ТипЛьготы=ТипЛьготыНаДет; СпрНалЛьготы.Владелец=СпрСотр.ТекущийЭлемент(); СпрНалЛьготы.ДатаНачала=Сп.ПолучитьЗначение(н,).ДеньРождения; СпрНалЛьготы.ДатаОкончания=ДобавитьМесяц(Сп.ПолучитьЗначение(н,).ДеньРождения,216); СпрНалЛьготы.Сумма=27; СпрНалЛьготы.Записать(); конецЕсли; КонецЦикла; КонецЕсли; |
|||
20
work92
03.09.12
✎
17:16
|
del123 можешь глянуть код если не занят
|
|||
21
del123
03.09.12
✎
17:17
|
какой элемент в Справочнике "налоговые льготы" ты хочешь найти?
|
|||
22
work92
03.09.12
✎
17:21
|
На детей
|
|||
23
del123
03.09.12
✎
17:24
|
Вобщем, на сколько я понял, тебе надо что то вроде такого:
Если СпрНалЛьготы.НайтиПоРеквизиту("ТипЛьготы", ТипЛьготыНаДет, 0) = 0 тогда СпрНалЛьготы.Новый(); СпрНалЛьготы.ТипЛьготы=ТипЛьготыНаДет; СпрНалЛьготы.Владелец=СпрСотр.ТекущийЭлемент(); КонецЕсли; СпрНалЛьготы.ДатаНачала=Сп.ПолучитьЗначение(н,).ДеньРождения; СпрНалЛьготы.ДатаОкончания=ДобавитьМесяц(Сп.ПолучитьЗначение(н,).ДеньРождения,216); СпрНалЛьготы.Сумма=27; СпрНалЛьготы.Записать(); |
|||
24
del123
03.09.12
✎
17:25
|
Оплату принимаю на карту :D
|
|||
25
work92
03.09.12
✎
17:27
|
да эта пригодится........
ты новый создаешь а как изменить который там есть |
|||
26
work92
03.09.12
✎
17:28
|
ты новый создаешь а как изменить который там уже есть del123
|
|||
27
del123
03.09.12
✎
17:29
|
я проверяю сначала. Если его там нет то создаю. Для этого там Если и стоит.
|
|||
28
work92
03.09.12
✎
17:31
|
а как изменить который там есть вот в чем главная проблема del123
|
|||
29
work92
03.09.12
✎
17:35
|
del123 ты в онлайне
|
|||
30
del123
03.09.12
✎
17:36
|
Может поучиться пойти?... Что такое Синтаксис помощник знаешь? Почитай там что делает функция НайтиПоРеквизиту()
|
|||
31
Budy
03.09.12
✎
17:43
|
(16) Да, согласен, я тот самый.
(0) Для начала вот это переписать надо СпрТипЛьготы.НайтиПоНаименованию("На детей",0,1); ТипЛьготыНаДет=СпрТипЛьготы.ТекущийЭлемент(); на Если СпрТипЛьготы.НайтиПоНаименованию("На детей",0,1) = 1 тогда ТипЛьготыНаДет=СпрТипЛьготы.ТекущийЭлемент(); Иначе Сообщить("Не найден ..."); возврат; КонецЕсли; |
|||
32
del123
03.09.12
✎
17:44
|
ну, если не нужно что бы создавало новый элемент, то можно сделать:
Если СпрНалЛьготы.НайтиПоРеквизиту("ТипЛьготы", ТипЛьготыНаДет, 0) = 0 тогда Сообщить("Элемент не найден, запись невозможна!!!"); продолжить; КонецЕсли; СпрНалЛьготы.ДатаНачала=Сп.ПолучитьЗначение(н,).ДеньРождения; СпрНалЛьготы.ДатаОкончания=ДобавитьМесяц(Сп.ПолучитьЗначение(н,).ДеньРождения,216); СпрНалЛьготы.Сумма=27; СпрНалЛьготы.Записать(); |
|||
33
del123
03.09.12
✎
17:45
|
(31) ну и это тоже не помешает..)
А кто это - тот самый?) |
|||
34
Budy
03.09.12
✎
17:46
|
(33) Не скажу ))) только жена знает
|
|||
35
del123
03.09.12
✎
17:48
|
:D
|
|||
36
Budy
03.09.12
✎
17:54
|
(13) (31) ну что этот элемент не выбран?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |