Имя: Пароль:
1C
1С v8
Подписка ПередЗаписью
0 Shooroopik111
 
26.07.14
14:02
Необходимо при проведении документа в подписке перед записью сделать изменение времени документа на 21 час. Что только не делал, выходит полное трололо.

Процедура ИзменениеВремени(Источник, Отказ, РежимЗаписи, РежимПроведения) Экспорт
    Если РежимЗаписи=РежимЗаписиДокумента.Проведение и не отказ тогда
        Если ТипЗнч(Источник)= Тип("ДокументОбъект.ПоступлениеТоваровУслуг") и
            Источник.Дата<>НачалоДня(Источник.Дата)+75600 тогда
            Источник.Дата=НачалоДня(Источник.Дата)+75600;
            Источник.Записать(РежимЗаписиДокумента.Проведение,РежимПроведенияДокумента.Неоперативный);
        КонецЕсли;    
    КонецЕсли;
КонецПроцедуры

В процедуру при записи все равно передается не 21 00.

Далее попробовал вот так:

Процедура ИзменениеВремени(Источник, Отказ, РежимЗаписи, РежимПроведения) Экспорт
Если РежимЗаписи=РежимЗаписиДокумента.Проведение и не отказ тогда
Если ТипЗнч(Источник)= Тип("ДокументОбъект.ПоступлениеТоваровУслуг") и  
Источник.Ссылка.Дата<>НачалоДня(Источник.Дата)+75600 тогда
ДокОбъект=Источник.Ссылка.ПолучитьОбъект();
ДокОбъект.Дата=НачалоДня(Источник.Дата)+75600;
ДокОбъект.Записать(РежимЗаписиДокумента.Проведение,РежимПроведенияДокумента.Неоперативный);
КонецЕсли;    
КонецПроцедуры

Не выходит. Прошу помощи!!!
1 Wobland
 
26.07.14
14:03
подписки работают хрен знает в каком порядке относительно при записи
2 Shooroopik111
 
26.07.14
14:06
(1)
Ну сначала отрабатывает обработчик перед записью
Потом моя подписка
Потом при записи.
К порядку вообще вопросов нет.
У меня же проблема в том что время не хрена не меняется у документа.
3 Shooroopik111
 
26.07.14
14:09
и в итоге при проведении так и остается автовремя. А я хочу чтобы было 21 час.
4 Wobland
 
26.07.14
14:09
(2) у меня есть вопросы к порядку: почему?
а что говорит откладчик?
5 Drac0
 
26.07.14
14:13
А можно ли в подписке менять данные объекта?.. Почему не в модуле объекта делаешь?
6 Wobland
 
26.07.14
14:14
(5) у пациента обновлефобия
7 Shooroopik111
 
26.07.14
14:15
(5) Нельзя изменять конфигурацию- поэтому подписка.
Не вижу причин почему нельзя менять объект в подписке ПередЗаписью.
(4) Отладчик говорит что Дата у объекта не изменилась.
8 Wobland
 
26.07.14
14:17
а мне нравится запись в подписке перед записью
9 Drac0
 
26.07.14
14:18
(7) "Не вижу причин почему нельзя менять объект в подписке ПередЗаписью.
(4) Отладчик говорит что Дата у объекта не изменилась."
Сам себе противоречишь :-) Нет под рукой 1с, но ограничение может быть искусственным.
10 Wobland
 
26.07.14
14:20
бегом в отладчик
http://i.imgur.com/qbkmPaZ.png
11 Drac0
 
26.07.14
14:25
(10) эх, всего лишь кривые руки оказались
12 Shooroopik111
 
26.07.14
14:27
(10) УПП 1.3 (1.3.54.2)
1С:Предприятие 8.3 (8.3.4.496)

НЕ РАБОТАЕТ!!!
13 Wobland
 
26.07.14
14:27
(12) сочувствую
14 Wobland
 
26.07.14
14:27
(13) не, не так. СОЧУВСТВУЮ
15 Shooroopik111
 
26.07.14
14:29
(14) Спасибо товарищ)))
Конкретно в УПП имею следующую нелепость:
Ошибка при выполнении обработчика - 'ПриЗаписи'
по причине:
{ОбщийМодуль.ПолныеПрава.Модуль(1394)}: Ошибка при вызове метода контекста (Записать)

по причине:
Запись с такими ключевыми полями существует! : ОбъектыДоступаДокументов: Поступление товаров и услуг 0000000*** от 26.07.2014 14:28:26, Склады, *** (Регистр сведений: Объекты доступа документов)
16 Wobland
 
26.07.14
14:30
(15) мы про подписку закончили?
17 Shooroopik111
 
26.07.14
14:32
(16) Нет. Эта сволочь не пашет в УПП. Как тока не крутил уже.
18 Wobland
 
26.07.14
14:34
(17) меняешь дату, запись не записывает, жалуешься, что время не меняется. я всё правильно понял?
19 Shooroopik111
 
26.07.14
14:35
1)В (15) написал результат нового создания документа и сразу нажатия кнопки ок.
2)При проведении уже проведенного документа отрабатывает на ура.
3)При проведении просто записанного документа не работает.
20 Wobland
 
26.07.14
14:37
отладчик, я так понимаю, больше не советовать? как насчёт дебаггера?
21 Shooroopik111
 
26.07.14
14:40
(20) я там круглосуточно сижу.
22 Wobland
 
26.07.14
14:41
(21) этого мало. им нужно пользоваться
23 Shooroopik111
 
26.07.14
14:41
(20) А вот нужные данные(время 21 00) в процедуры призаписи и обработкапроведения так и не передается в 2х случаях.
24 Wobland
 
26.07.14
14:43
(23) ну бедаа
http://i.imgur.com/d4f3bi6.png
25 Shooroopik111
 
26.07.14
14:46
(24) попробуй описанный мной первый этап.
26 Wobland
 
26.07.14
14:48
27 Shooroopik111
 
26.07.14
14:50
(26) Ошибка при выполнении обработчика - 'ПриЗаписи'  Вылазит?
28 Wobland
 
26.07.14
14:50
(27) нет
29 Shooroopik111
 
26.07.14
14:54
(28) и ВРемя в документе 21 ?
30 Wobland
 
26.07.14
14:59
(29) ты меня с отладчиков путаешь, похоже
31 Shooroopik111
 
26.07.14
14:59
(28) Спасибо огромное тебе за поддержку.
Переписал код до такого состояния.

Если РежимЗаписи=РежимЗаписиДокумента.Проведение и не отказ тогда
        РежимПроведения=РежимПроведенияДокумента.Неоперативный;
        Если ТипЗнч(Источник)= Тип("ДокументОбъект.ПоступлениеТоваровУслуг") и
            Источник.Дата<>НачалоДня(Источник.Дата)+75600 тогда
            Источник.Дата=НачалоДня(Источник.Дата)+75600;
        КонецЕсли;    
    КонецЕсли;    

Причина оказалась в банальном оперативном проведении.
Всем еще раз спасибо и удачных выходных!
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший