|
v7: Изменение даты периодического реквизита
| ☑ |
0
__Se24
15.05.12
✎
11:31
|
Добрый день , уважаемые гуру !
столкнулся с такой проблемой , никак не могу понять ,почему так происходит :
В таблицу ТЗ предварительно загружаются все значения реквизита, при клике на колонку с датой вызывается этот обработчик :
дт=ТЗ.Дт;
рв=ВвестиДату(дт,"Введите новую дату",40);
Если рв=1 Тогда
ПерЗн=СоздатьОбъект("Периодический");
ПерЗн.ИспользоватьОбъект(Рекв,ТекущийЭлемент());
Если ПерЗн.НайтиЗначение(ТЗ.Дт,0)=1 Тогда
ПерЗн.ДатаЗнач=дт;
ПерЗн.Записать();
ЗаполнитьТЗ(ТЗ,Рекв);
КонецЕсли;
КонецЕсли;
в результате , обработчик делает копию значения в введенной дате , вместо изменения существующего значения ...
Подскажите , что я не так делаю ?
|
|
1
miki
15.05.12
✎
11:34
|
потому что
>>дт=ТЗ.Дт
|
|
2
__Se24
15.05.12
✎
11:48
|
Ну так это же инициализация переменной . При вводе в нового значения она заменится на дату , которую пользователь хочет переназначить
|
|
3
miki
15.05.12
✎
12:12
|
(2)
Ну не знаю. Новую дату точно меняют на другую?
Как вариант, присваивай и .Значение. Получишь дубль, старый .Удалить().
|
|
4
__Se24
15.05.12
✎
12:48
|
почему при аналогичном изменении значения этого реквизита все работает правильно ?
В помощнике 1С ничего не сказано насчет того , что при изменении даты , происходит дублирование значения ...
|
|
5
miki
15.05.12
✎
13:49
|
(4)ХЗ. Возможно, из-за особенностей хранения периодики в 77.
|
|
6
__Se24
15.05.12
✎
16:08
|
мда , вопрос решился так :
дт=ТЗ.Дт;
рв=ВвестиДату(дт,"Введите новую дату",40);
Если рв=1 Тогда
ПерЗн=СоздатьОбъект("Периодический");
ПерЗн.ИспользоватьОбъект(Рекв,ТекущийЭлемент());
Если ПерЗн.НайтиЗначение(ТЗ.Дт,0)=1 Тогда
ПерЗн.Удалить(); //!! предварительно удаление ...
ПерЗн.ДатаЗнач=дт;
ПерЗн.Значение=ТЗ.Знч;
ПерЗн.Записать();
ЗаполнитьТЗ(ТЗ,Рекв);
КонецЕсли;
КонецЕсли;
|
|
7
Азат
15.05.12
✎
16:11
|
(6) ток КонецЕсли надо на 4 строки вверх поднять... если в этот день нет значения, то ничего в итоге ты не получишь
|
|
8
__Se24
15.05.12
✎
16:13
|
(7) Проверка символическая , ибо в таблицу предварительно выгружаются все значения по датам , так что там 100% =1
(5) miki , спасибо за помощь :-)
|
|