|
v7: Редактирование элемента справочника в форме списка
| ☑ |
0
Old_Chroft
19.08.14
✎
14:15
|
Необходимо установить периодический реквизит элемента справочника на определенную дату. Сделал на форме списка выбор значения реквизита, даты и кнопку "Установить". Обработчик:
ТекЭлемент = ТекущийЭлемент();
ТекЭлемент.ОсобыйКалендарь.Установить(НачМесяца(ВыбДата), ВыбКалендарь);
Записать();
Сообщить("" + ТекЭлемент + ": календарь """ + ВыбКалендарь + """ установлен на дату " + ВыбДата);
При нажатии кнопки "Установить" ругается "Недопустимая операция". Если же вместо периодического пытаться записать простой реквизит - ошибок нет, но и не сохраняет данные. Подскажите, как добиться желаемого. (Открывать каждый элемент справочника в форме - не вариант, их слишком много, если редактировать в списке - не установится нужная дата)
|
|
1
Chum
19.08.14
✎
14:27
|
л_Спр = СоздатьОбъект("Справочник.ТвойСправочник");
л_Спр.НайтиЭлемент(ТекущийЭлемент());
л_Спр.ОсобыйКалендарь.Установить(НачМесяца(ВыбДата), ВыбКалендарь);
Записывать, кстати, не нужно.
В СП, если не ошибаюсь, сказано, что периодика работает для объектов, созданных при помощи СоздатьОбъект()
|
|
2
Chum
19.08.14
✎
14:29
|
Ну, или применить ИспользоватьДату, потом просто прописывать реквизит без метода "установить". Не помню точно.
|
|
3
mastodont
19.08.14
✎
14:30
|
(0) я давно с 7-кой не возился, но что у тебя записывается когда ты делаешь Записать();
разве не надо ТекЭлемент.Записать(); ?
Но это скорее к вопросу про обычный реквизит.
|
|
4
Chum
19.08.14
✎
14:32
|
(3) нет, для периодики не надо. Там отдельная таблица, в которую добавляется значение и дата сразу при выполнении метода. А записать действует на сам элемент.
|
|
5
Chum
19.08.14
✎
14:35
|
Можно вообще использовать объект "Периодический", установив отбор по текущему элементу.
|
|
6
Old_Chroft
19.08.14
✎
15:44
|
Спасибо, совет из первого ответа помог :)
А строка "Записать()" случайно осталась от моих экспериментов, забыл удалить. И что интересно - 1С-ка даже не матюкалась.
|
|