Установить значение реквизита

  • Автор темы Автор темы bremlin
  • Дата начала Дата начала
B

bremlin

Здравствуйте. Скорее неприятность чем беда.
Есть один самописный справочник для которого понадобилось написать одну приблуду с периодическими реквизитами. Всё работает, всё чудно, но при изменении этого реквизита 1С предлагает сохранить изменения только на текущую дату. А мне очень надо(бухгалтерия смотрит глазами кота из шрека) что бы при сохранении/закрытии элемента реквизиты сохранялись также как в справочнике Номенклатура например. Т.е. спрашивала бы на какую дату какие реквизиты сохранить.
И ещё, в текущем варианте при закрытии 1С выдаёт окошко "Изменение периодических реквизитов", а в той же Номенклатуре "Запись периодических реквизитов".
1С 7.7. Помогите пожалуйста, не могу что-то понять на что смотреть, куда копать.
 
Все дело в команде СохранениеПериодическихРеквизитов()
 
При сохранении элемента организуй диалог с получением нужной даты,
а в конце процедуры ПриЗаписи() поставь оператор :
ИспользоватьДату(НужнаяДата)
 
Попробовал СохранениеПериодическихРеквизитов(1, "*"); воткнуть в процедуры ПриЗакрытии() ПриЗаписи() и вешал на кнопку отдельную.
В итоге глухо - никакой реакции. При закрытии также вызывается окно с изменением на текущую дату.
Добавил на форму поле с датой, при сохранении также старое окно.
Я стесняюсь спросить,но у меня в принципе процедура ПриЗаписи() пустая была. Это нормально или там что-то должно быть? ;)
 
Я стесняюсь спросить,но у меня в принципе процедура ПриЗаписи() пустая была. Это нормально или там что-то должно быть?
А что стесняться - не знал, вот и спросил ;)
Если надо - ее следует описать в модуле. Если нет - ее может и не быть.
Обычно в ней, например, проверяется, заполнены ли основные реквизиты
 
Ну а вдруг бы после вопроса словил с десяток *facepalm*-ов :)
Её в принципе не было. сделал, добавил оба варианта по очереди и увы безрезультатно.

Процедура ПриЗаписи()
СохранениеПериодическихРеквизитов(1, "*");
КонецПроцедуры

также с (5) пробовал(
 
Вот 100% работающий кусок из реальной конфигурации :
(Одно отличие - ДатаДействия - реквизит справочника, Процент - периодический реквизит).
Procedure OnWrite()
if EmptyValue(Сотрудник) = 1 then
DoMessageBox("Не указан сотрудник!", 60);
Activate("Сотрудник");
ReturnStatus(0);
Return
endif;
if EmptyValue(ТипБонуса) = 1 then
DoMessageBox("Не указан Тип бонуса!", 60);
Activate("ТипБонуса");
ReturnStatus(0);
Return
endif;
if EmptyValue(Процент) = 1 then
DoMessageBox("Не указан процент!", 60);
Activate("Процент");
ReturnStatus(0);
Return
endif;
UseDate(ДатаДействия);
EndProcedure
 
СохранениеПериодическихРеквизитов(1, "*"); надо вызвать 1 раз при открытии формы. У меня она стоит в самом конце модуля. Можно в ПриОткрытии().
Смысл в том, что бы программа знала как себя вести к моменту записи.
 
СохранениеПериодическихРеквизитов(1, "*"); надо вызвать 1 раз при открытии формы. У меня она стоит в самом конце модуля. Можно в ПриОткрытии().
Смысл в том, что бы программа знала как себя вести к моменту записи.
Проверил свой кусок кода
1. СохранениеПериодическихРеквизитов можно вставить явно, можно и на вставлять - диалог все равно появляется
с предложением сохранить на Текущую дату
2. Вне зависимости от п.1 ИспользоватьДату(УстановленнаяДата) отрабатывает как надо, периодические значения устанавливаются
на нужную дату. Неаккуратненько выглядит, ... но работает
 
Здравствуйте!
Временно перекидывали на другие задачи, поэтому не получалось попробовать описанные варианты!
Сделал, всё получилось. Решил что было бы неправильно не закончить тему)

Помогло вот что:
Ставим кнопочку даты:
Код:
Процедура ВыборДаты()
глВвестиДатуПериодическихРеквизитов(Контекст,1);
КонецПроцедуры // ВыборДаты()

Процедура ПриЗаписи() 
СтатусВозврата(глБухЗаписьПериодическихРеквизитов(Контекст))
КонецПроцедуры // ПриЗаписи()

Правда теперь выдаёт обе формы сохранения реквизитом, сперва спрашивает какие реквизиты будем сохранять, а потом уже другая форма где и дату поменять можно(хотя она уже указывается кнопкой).

Спасибо вам большое.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!