Имя: Пароль:
1C
1C 7.7
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С-ка даже не матюкалась.
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.