Имя: Пароль:
1C
1С v8
условие выполнения в предопределенной процедуре
0 nAPACEHAK
 
26.09.17
10:25
Добра всем

обработкой заполняю реквизит регистра, но, в регистре, в модуле набора записей, в ПриЗаписи () - при сохранении заполняется еще один реквизит (текущая дата), который как бы и не надо заполнять на данном этапе.

вот можно как нибудь этот момент пропустить? :)
ну, например что то типа добавить дефолтный параметр в описание проц.ПриЗаписи (Отказ, Условие=Истина) что бы в обработке потом передать свой параметр?

просто с комментированием ненужных в данный момент строк - не очень вариант.
закомментирую, пока в хранилище, пока обновят, пока обработку запустят, потом снова из хранилища-в хранилище.... там пока без присмотра будет в базе, потом нужные элементы вылавливать придется, которые поназапишут в это время
1 Timon1405
 
26.09.17
10:26
РегистрСведенийНаборЗаписей.<Имя регистра сведений> (InformationRegisterRecordSet.<Имя регистра сведений>)
ДополнительныеСвойства (AdditionalProperties)
Использование:

Только чтение.
Описание:

Тип: Структура.
Может использоваться в тех случаях, когда необходимо хранить некоторые значения, связанные с объектом, на время выполнения некоторых операций, без изменения объекта. Например, при обработке событий в подписке на события.

Доступность:

Сервер, толстый клиент, внешнее соединение.
2 perester
 
26.09.17
10:27
а код заполнения регистра показать можешь?
3 Филиал-msk
 
26.09.17
10:28
Во-первых одна из черепашек гонит. ПриЗаписи что-либо заполнять в наборе уже поздно.
Во-вторых ОбменДанными.Загрузка
В-третьих ДополнительныеСвойства
4 nAPACEHAK
 
26.09.17
10:30
да код то простой, внешней обработкой (просто надо заполнить значения)

    Пока Рез.Следующий() Цикл
        Запись = РегистрыСведений.кфЛогТоваровНаПересохранение.СоздатьМенеджерЗаписи();
        ЗаполнитьЗначенияСвойств(Запись, Рез);
        Попытка
            Запись.Прочитать();
            Если ТипЗнч (Запись.Сохранено) = Тип ("Булево") Тогда
                Если Запись.Сохранено Тогда
                    Запись.Сохранено = ПредопределенноеЗначение("Перечисление.кфСохранение.Сохранено");   //ия.кфСохранение.Сохранено
                Иначе


только это поле надо заполнить.
но при Запись.Записать ();
я попадаю на это:

Процедура ПередЗаписью(Отказ, Замещение)
    Для каждого запись из этотОбъект цикл
        Если запись.Сохранено = Перечисления.кфСохранение.Сохранено
            и Запись.ДатаПересохранения = '00010101' Тогда
            Запись.ДатаПересохранения = ВремяСервера();    
        КонецЕсли;

а вот дату как раз и не хотелось бы трогать
Независимо от того, куда вы едете — это в гору и против ветра!