|
таблицаЗначений! | ☑ | ||
---|---|---|---|---|
0
uuu_ggg
08.03.12
✎
11:11
|
у меня есть таблица значений
тзДвиженийОсн = НЗОсн.Выгрузить(); далее цикл Для каждого рег из тзДвиженийОсн цикл .. .. .. тут я делаю что мне надо и потом одно из значений мне нужно заменить в этой ТЗ,подскажите как это сделать ? |
|||
1
uuu_ggg
08.03.12
✎
11:13
|
могу весь код добавить,он простой и маленький)
|
|||
2
Rie
08.03.12
✎
11:13
|
(0) Оператор присваивания - спасёт прогрессивное человечество.
В чём именно у Вас проблема? |
|||
3
uuu_ggg
08.03.12
✎
11:15
|
НЗОсн = РегистрыРасчета.ОсновныеНачисленияРаботниковОрганизаций.СоздатьНаборЗаписей();
Регистратор=Документы.ПереносДанных.НайтиПоНомеру("НЗР-0901"); ВидРасчета = ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.НайтиПоКоду("00001"); НЗОсн.Отбор.Регистратор.Установить(Регистратор); НЗОсн.Прочитать(); тзДвиженийОсн = НЗОсн.Выгрузить(); НЗДоп = РегистрыСведений.мойРегистр.СоздатьНаборЗаписей(); НЗДоп.Прочитать(); тзДвиженийДоп = НЗДоп.Выгрузить(); Для каждого рег из тзДвиженийОсн цикл Если рег.ВидРасчета = ВидРасчета тогда Отбор = Новый Структура(); Отбор.Вставить("Сотрудник", рег.Сотрудник); Отбор.Вставить("Дата", рег.ПериодРегистрации); НайденнаяСтрока = тзДвиженийДоп.НайтиСтроки(Отбор); Для НомерСтроки=0 по НайденнаяСтрока.Количество()-1 цикл Сообщить(НайденнаяСтрока[НомерСтроки].Сумма); если (НайденнаяСтрока[НомерСтроки].Сумма = 29.4 ) и ( День(рег.ПериодДействияКонец) = День(КонецМесяца(рег.ПериодДействияКонец)) ) Тогда Сообщить (рег.Сотрудник ) иначеесли НайденнаяСтрока[НомерСтроки].Сумма <> 29.4 тогда Дни = (НайденнаяСтрока[НомерСтроки].Сумма * День(КонецМесяца(рег.ПериодДействияКонец))/29.4); ДниРаб = Окр(Дни,0) ; год = Год (рег.ПериодДействияКонец); месяц =Месяц (рег.ПериодДействияКонец); рег.ПериодДействияКонец = Дата (год,месяц,ДниРаб,23,59,59); Сообщить ( Дата (год,месяц,ДниРаб,23,59,59)) ; конецесли КонецЦикла; конецесли; |
|||
4
ДенисЧ
08.03.12
✎
11:16
|
(2) а что, сразу не видно, где именно у него проблема?
|
|||
5
uuu_ggg
08.03.12
✎
11:16
|
тут мне нужно чтоб реквизит рег.ПериодДействияКонец,заменился на то значение которое я написала
рег.ПериодДействияКонец = Дата (год,месяц,ДниРаб,23,59,59); |
|||
6
Rie
08.03.12
✎
11:24
|
НайденнаяСтрока[НомерСтроки].ПериодДействияКонец = ЧегоТамВамНадо;
|
|||
7
uuu_ggg
08.03.12
✎
11:26
|
мне не туда надо)
а вот сюда рег.ПериодДействияКонец = Дата (год,месяц,ДниРаб,23,59,59); но он почему то не меняет,может еще что-то нужно написать... |
|||
8
ДенисЧ
08.03.12
✎
11:27
|
ой... А я таки был прав...
|
|||
9
uuu_ggg
08.03.12
✎
11:28
|
(8)и где?)
|
|||
10
ДенисЧ
08.03.12
✎
11:29
|
(9) there are many bugs in DNA...
|
|||
11
uuu_ggg
08.03.12
✎
11:30
|
что такое DNA..
|
|||
12
ДенисЧ
08.03.12
✎
11:31
|
ооооооо!!!...
Это Deoxyribonucleic acid... |
|||
13
uuu_ggg
08.03.12
✎
11:37
|
блин,подскажите лучше как сделать
|
|||
14
DrShad
08.03.12
✎
11:40
|
(13) в прошлой ветке я тебе уже писал про быдлокод, и теперь нет желания читать конструкции [ Для НомерСтроки=0 по НайденнаяСтрока.Количество()-1 цикл]
|
|||
15
uuu_ggg
08.03.12
✎
11:41
|
(14)да это я исправлю...
|
|||
16
DrShad
08.03.12
✎
11:42
|
и это [рег.ПериодДействияКонец = Дата (год,месяц,ДниРаб,23,59,59);] тоже
|
|||
17
uuu_ggg
08.03.12
✎
11:46
|
а тут я не знаю на что исправить...
|
|||
18
ОбычныйЧеловек
08.03.12
✎
11:53
|
(0)
ВидРасчета=ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.НайтиПоКоду("00001"); НЗОсн=РегистрыРасчета.ОсновныеНачисленияРаботниковОрганизаций.СоздатьНаборЗаписей(); НЗОсн.Отбор.Регистратор.Установить(Регистратор); НЗОсн.Прочитать(); тзДвиженийОсн=НЗОсн.Выгрузить(); НЗДоп=РегистрыСведений.мойРегистр.СоздатьНаборЗаписей(); НЗДоп.Прочитать(); Отбор=Новый Структура(); Для каждого рег из НЗДоп цикл Если рег.ВидРасчета = ВидРасчета тогда Отбор.Вставить("Сотрудник", рег.Сотрудник); Отбор.Вставить("Дата", рег.ПериодРегистрации); МассивСтрок=тзДвиженийДоп.НайтиСтроки(Отбор); Для Каждого СтрокаМассива Из МассивСтрок цикл текСумма=СтрокаМассива.Сумма; Сообщить(текСумма); Если текСумма=29.4 ) и (День(рег.ПериодДействияКонец)=День(КонецМесяца(рег.ПериодДействияКонец))) Тогда Сообщить (рег.Сотрудник ) иначеесли текСумма <> 29.4 тогда Дни = (текСумма * День(КонецМесяца(рег.ПериодДействияКонец))/29.4); ДниРаб = Окр(Дни,0) ; год = Год (рег.ПериодДействияКонец); месяц =Месяц (рег.ПериодДействияКонец); рег.ПериодДействияКонец = Дата (год,месяц,ДниРаб,23,59,59); Сообщить ( Дата (год,месяц,ДниРаб,23,59,59)) ; конецесли КонецЦикла; конецесли; КонецЦикла; НЗДоп.Записать(); |
|||
19
DrShad
08.03.12
✎
11:55
|
тогда уж и в первый цикл заменить на строки найденные по виду расчета
|
|||
20
ОбычныйЧеловек
08.03.12
✎
11:56
|
Регистратор=Документы.ПереносДанных.НайтиПоНомеру("НЗР-0901");
ВидРасчета=ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.НайтиПоКоду("00001"); НЗОсн=РегистрыРасчета.ОсновныеНачисленияРаботниковОрганизаций.СоздатьНаборЗаписей(); НЗОсн.Отбор.Регистратор.Установить(Регистратор); НЗОсн.Прочитать(); НЗДоп=РегистрыСведений.мойРегистр.СоздатьНаборЗаписей(); НЗДоп.Прочитать(); тзДвиженийДоп=НЗДоп.Выгрузить(); Отбор=Новый Структура(); Для каждого рег из НЗОсн цикл Если рег.ВидРасчета = ВидРасчета тогда Отбор.Вставить("Сотрудник", рег.Сотрудник); Отбор.Вставить("Дата", рег.ПериодРегистрации); МассивСтрок=тзДвиженийДоп.НайтиСтроки(Отбор); Для Каждого СтрокаМассива Из МассивСтрок цикл текСумма=СтрокаМассива.Сумма; Сообщить(текСумма); Если текСумма=29.4 ) и (День(рег.ПериодДействияКонец)=День(КонецМесяца(рег.ПериодДействияКонец))) Тогда Сообщить (рег.Сотрудник ) иначеесли текСумма <> 29.4 тогда Дни = (текСумма * День(КонецМесяца(рег.ПериодДействияКонец))/29.4); ДниРаб = Окр(Дни,0) ; год = Год (рег.ПериодДействияКонец); месяц =Месяц (рег.ПериодДействияКонец); рег.ПериодДействияКонец = Дата (год,месяц,ДниРаб,23,59,59); Сообщить ( Дата (год,месяц,ДниРаб,23,59,59)) ; конецесли КонецЦикла; конецесли; КонецЦикла; НЗОсн.Записать(); млин наплодил Осн\Доп...не запутаться не возможно :) код конечно из разряда "мама не горюй" |
|||
21
uuu_ggg
08.03.12
✎
11:58
|
а чем плохой код?)))
|
|||
22
ОбычныйЧеловек
08.03.12
✎
12:00
|
(21) сори, я не сразу заметил, что "пол=женский" - в данном случае тогда код пойдет :)
|
|||
23
uuu_ggg
08.03.12
✎
12:01
|
(22)
))))))))))))))) только он мне почему то всё равно в этом регистре расчета не заменяет значение....... блин |
|||
24
ОбычныйЧеловек
08.03.12
✎
12:03
|
(23) не верю (с)
|
|||
25
uuu_ggg
08.03.12
✎
12:05
|
ну а как я могу доказать?)
|
|||
26
ОбычныйЧеловек
08.03.12
✎
12:07
|
(25) аська+амми\тимвиер
|
|||
27
uuu_ggg
08.03.12
✎
12:08
|
о,вроде заменил
я закрыла документ потом зашла) спасибо.. ну все таки скажите,почему код плохой?) он же работает правильно,просто коряво написан? |
|||
28
ОбычныйЧеловек
08.03.12
✎
12:12
|
(27) >>он же работает правильно,просто коряво написан?
смотри какая маладец - ведь сама же все понимаешь :) |
|||
29
uuu_ggg
08.03.12
✎
12:21
|
а если мне не надо сохранять изменений,то мне надо
НЗОсн.Записать(); убрать?) |
|||
30
ОбычныйЧеловек
08.03.12
✎
12:23
|
(29) логично :)
|
|||
31
uuu_ggg
08.03.12
✎
13:13
|
а если мне надо в регистре ,у определенного вида расчета заменить дату
|
|||
32
uuu_ggg
08.03.12
✎
13:14
|
Регистратор=Документы.ПереносДанных.НайтиПоНомеру("СП000000023");
ВидРасчета=ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.НайтиПоКоду("10026"); НЗОсн=РегистрыРасчета.ОсновныеНачисленияРаботниковОрганизаций.СоздатьНаборЗаписей(); НЗОсн.Отбор.Регистратор.Установить(Регистратор); НЗОсн.Прочитать(); Для каждого рег из НЗОсн цикл Если (рег.ВидРасчета = ВидРасчета)и (рег.ПериодРегистрации = "01.01.2011 0:00:00") тогда День = День(НачалоМесяца(рег.ПериодДействияКонец)) ; год = Год (рег.ПериодДействияКонец); месяц =Месяц (рег.ПериодДействияКонец); рег.ПериодДействияКонец = Дата (год,месяц,День,00,00,00); Сообщить ( рег.Сотрудник) ; Сообщить (Дата (год,месяц,День,0,00,00)); конецесли КонецЦикла; НЗОсн.Записать(); |
|||
33
uuu_ggg
08.03.12
✎
13:14
|
так?)
|
|||
34
uuu_ggg
08.03.12
✎
13:16
|
не записывает почему то снова)
|
|||
35
ОбычныйЧеловек
08.03.12
✎
13:41
|
(32) в "рег.ПериодДействияКонец" Дата хранится или что? ты почему с ней как со строкой работаешь? там реально тип строка?
|
|||
36
uuu_ggg
08.03.12
✎
13:45
|
(35)уже исправила
там дата рег.ПериодРегистрации =Дата(2009,02,01,0,00,00 ) |
|||
37
medved_kot
08.03.12
✎
18:34
|
День = День(НачалоМесяца(рег.ПериодДействияКонец)) ;
Это разве не День = 1; |
|||
38
experimentator76
09.03.12
✎
11:46
|
(0) пешиесчо :))
|
|||
39
experimentator76
09.03.12
✎
11:48
|
некрасивый код по определению не будет корректно работать
некрасивый код - следствие каши в голове прога |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |