|
v7: Сброс периодического реквизита при програмной записи. | ☑ | ||
|---|---|---|---|---|
|
0
Susirya
07.05.12
✎
23:55
|
В продолжение заархивированной v7: Изменение периодического реквизита из модуля формы элемента справочника
У меня точно такая же оказия произошла. Собственно код: ВыбСтатусыКлиентов - периодический реквизит (справочник) ПоКнОк()- процедура сохранения элемента с периодическим реквизитом <CODE>Процедура ПоКнОк() Если ВыбСтатусыКлиентов.Выбран()=0 Тогда Предупреждение("Не выбран статус!"); СтатусВозврата(0); Возврат; КонецЕсли; //!!! СпрКЛ=СоздатьОбъект("Справочник.Статусы_"); СпрКЛ.ПорядокКодов(); СпрКЛ.ВыбратьЭлементы(Код); Пока СпрКЛ.ПолучитьЭлемент()=1 Цикл // // тра-та-та с никак не связанная со значениями ТекущийЭлемемент() и ВыбСтатусыКлиентов // КонецЦикла; //!!! Если СтарСтатус <> ВыбСтатусыКлиентов Тогда Записать(); Периодический = СоздатьОбъект("Периодический"); Периодический.ИспользоватьОбъект(Метаданные.Справочник("Статусы_").Реквизит(3).Идентификатор, ТекущийЭлемент()); Периодический.Значение = ВыбСтатусыКлиентов; Периодический.ДатаЗнач = ТекущаяДата(); Периодический.Записать(); КонецЕсли; Записать(); Форма.Закрыть(); КонецПроцедуры</CODE> С проблемой столкнулся когда заметил что в одном месте кода значение реквизита сохраняется при записи ТекущегоЭлемента, а в другом месте (указанном выше и АБСОЛЮТНО аналогичном - нет). Последовал примеру ТС предыдущей ветки - закометнил участок с обращением к справочнику (между восклицательными знаками) и - О ЧУДО! значение точно также как и в другом месте кода начало сохранятся... При этом разкоментаривание участка между восклицательными знаками никак ничего не поменяло - значение нормально сохраняется... С чем связан глюк непонятно... Но глюк есть... Спасибо за внимание! |
|||
|
1
Susirya
08.05.12
✎
11:04
|
updt Проблема осталась, но в немного ином случае. Периодический реквизит тип Перечисление.
При Записать() элемента справочника в конце процедуры записи пропадает определенное и сохраненное на дату значение периодического реквизита. Реквизит также - реквизит диалога формы элемента справочника. В чем причина? Подскажите пожалуйста, кто сталкивался, где собака зарыта? |
|||
|
2
bodri
08.05.12
✎
11:40
|
Установить(<?>,);
Синтаксис: (1)Если я правильно понял вопрос, тогда побробуй убрать Если СтарСтатус <> ВыбСтатусыКлиентов Тогда Записать(); Периодический = СоздатьОбъект("Периодический"); Периодический.ИспользоватьОбъект(Метаданные.Справочник("Статусы_").Реквизит(3).Идентификатор, ТекущийЭлемент()); Периодический.Значение = ВыбСтатусыКлиентов; Периодический.ДатаЗнач = ТекущаяДата(); Периодический.Записать(); КонецЕсли; и воспользуйся этим Установить(<Дата>,<Значение>) Назначение: Установить значение периодического реквизита справочника на заданную дату. Параметры: <Дата> - выражение со значением требуемой даты; <Значение> - выражение, содержащее устанавливаемое значение периодического реквизита справочника. Замечание: Метод можно использовать только для периодических реквизитов справочника и если для справочника еще не применялся метод ИспользоватьДату. Метод можно использовать только для объектов-справочников, созданных функцией СоздатьОбъект. |
|||
|
3
Susirya
08.05.12
✎
12:17
|
(2) Сам элемент справочника создается
ОткрытьФормуМодально ("Элемент." + ВидСправочника) потому Установить(,) не получится использовать. Иначе придется кроить схему изменения элемента справочника (хотя это тож мысль.... ) |
|||
|
4
Susirya
08.05.12
✎
12:48
|
(2)(3) Приношу извинения - все получилось (через вспомогательную переменную-справочник того же типа).
Спасибо за подсказку! |
| Форум | Правила | Описание | Секции | Поиск |