Имя: Пароль:
1C
1C 7.7
v7: Программное проведение документа
Ø (Злопчинский 20.02.2016 00:17)
0 EverGreenMouse
 
19.02.16
17:25
Есть такой код
    Документ.ДатаДок = ДатаДляДокумента;
        Документ.НомерДок = Строка(ДанныеНомер);
бла-бла-бла
    Документ.Записать();
    
        Документ.Провести();

Моя задача проста - из бэкапа самописной конфы 7.7 выгрузить пролюбленные документы в живую базу. Выгрузил все в XML, загружаю обратно, но документы проводятся текущей датой, а не датой, которую я программно присваиваю документу. В отладчике ДатаДок встает нормально и сваливается в текущую при проведении.

Куда покопать кроме синтаксис-помощника? :)
1 Масянька
 
19.02.16
17:34
(0) Покопать - отсюда и до обеда :)))
Не Документ.ДатаДок = ДатаДляДокумента;, а УстановитьДатуДокумента (смотри в СП).
2 Saval1986
 
19.02.16
17:40
(1) Что за метод такой? Не путаете 7-ку с 8-кой?

Попробуйте в модуле формы данного документа поискать метод: "ПроводитьПослеТА". Возможно он каким-то образом повлиял.
3 Злопчинский
 
19.02.16
20:59
(1)  что за извращения?
Нормально будет присвоить дату тупо и записать
Главное чтобы документ был непроведенным
4 EverGreenMouse
 
19.02.16
20:59
(2) Мне нужно проводить задними числами ))
5 EverGreenMouse
 
19.02.16
20:59
(3) В моей задаче нужно провести эти документы
6 Garykom
 
гуру
19.02.16
21:00
А с одинаковыми НомерДок в старом периоде траблы не бу?
7 EverGreenMouse
 
19.02.16
21:02
(6) не бу точно
8 Злопчинский
 
19.02.16
21:07
(5)  если новый док
То записал потм провел
9 EverGreenMouse
 
19.02.16
21:22
(8) Да: Док.Новый();
Но даже записывает только текущей датой
10 EverGreenMouse
 
19.02.16
21:25
(8) имеет ли смысл Записать(), потом открытьФорму, изменить Дату и провести?
11 Garykom
 
гуру
19.02.16
21:27
(9) попробовать Документ.ДатаДок = Дата(ДатаДляДокумента);
12 EverGreenMouse
 
19.02.16
21:29
(11) в отладчике объекту документ присваивается верная дата: проверял (( форматом ДД.ММ.ГГ
13 Mikeware
 
19.02.16
21:31
Документ.ДатаДок = ДатаДляДокумента;
        Документ.НомерДок = Строка(ДанныеНомер);
бла-бла-бла
    Документ.Записать();
сообщить("документу "+Документ+"присвоена дата"+Документ.ДатаДок);
14 bolder
 
19.02.16
21:31
(12) попробуй просто записать, без проведения.Скорее всего у тебя дописанная конфа.
15 Garykom
 
гуру
19.02.16
21:32
(14) кстати да, может там запрет проведения "задним числом"

тогда смена рабочей или текущей даты поможет :)
16 EverGreenMouse
 
19.02.16
21:35
(14) конфа самописная. Записывает также текущей датой
(15) у меня за год грузится по 5-7 документов в месяц
17 EverGreenMouse
 
19.02.16
21:38
(15) когда руками создаю документ, то он проводит указанной датой
18 bolder
 
19.02.16
21:42
(17) тогда нужно смотреть что с датой для записи.
Попробуй написать Документ.датаДок ='01.01.2015';
Куда будет писать?
19 EverGreenMouse
 
19.02.16
21:44
(18) мысль. щас попробую

Пояснялка: Я вообще восьмерошник, для меня понятие ТА вообще страшный темный лес, но волею судеб..)))
20 bolder
 
19.02.16
21:48
(19) ТА не может повлиять на дату документа.Может измениться только время, но в пределах даты.
21 Shved_72
 
19.02.16
21:48
Может сервис параметры проводить новые после та?
22 HawkEye
 
19.02.16
21:48
(1) мася... акстись...
(0) какие проблемы то?

бла-бла-бла
Сообщить("До: " + Документ.ДатаДОк);
    Документ.Записать();
Сообщить("После: " + Документ.ДатаДОк);    
        Документ.Провести();
Сообщить("Провести: " + Документ.ДатаДОк);
23 HawkEye
 
19.02.16
21:48
(19) ТА тут вообще не при чем....
24 HawkEye
 
19.02.16
21:50
(18) (19) пишешь же "В отладчике ДатаДок встает нормально"...

(21) часто код угадываешь?
25 bolder
 
19.02.16
21:50
(21) нет, у него и записывается все не так, до проведения.
26 EverGreenMouse
 
19.02.16
21:53
(18) Бинго! Пишет в 1 января 2015года. Теперь ищу, где накосячил в преобразовании даты
27 Shved_72
 
19.02.16
21:53
Тогда может в ПриЗаписи () есть нечто что меняет дату
28 HawkEye
 
19.02.16
21:54
(27) играл но не угадал ни одной буквы ))
29 HawkEye
 
19.02.16
21:55
(26) как же она у тебя в отладчике нормально показывалась? врешь форумачанам? )))
30 Shved_72
 
19.02.16
21:55
(24) :) бывает.  Помню что было что то такое.  Щас не у компа
31 Shved_72
 
19.02.16
21:58
ПриЗаписи не срабатывает программно. Тогда в ОбработкеПроведения ()
3 попытки кончились. Ухожу
32 Злопчинский
 
19.02.16
21:59
(19)  то естьввосьмерке итоги по регистру на сейчас и на середину прошлого месяца выдаются с одинаковой скоростью? Одинаково тормозно?
33 EverGreenMouse
 
19.02.16
22:00
(29) а вот хз. Из XML получаю дату строкой вида 2015-01-01: преобразовываю через Лев, Прав и Сред, получаю ДатаДляДокумента вида 01012015, преобразовываю как Дата(ДатаДляДокумента). То есть по сути делаю то же самое, что и написать руками '01.01.2015', и в отладчике она проставляется к документу
34 bolder
 
19.02.16
22:00
(31) Все проще оказалось - дата была неверная.
35 Злопчинский
 
19.02.16
22:01
Стучись в скайп zlopun
Ща поправим все оперативно
Проблема какаято надуманная
Причина митусня
36 bolder
 
19.02.16
22:01
(33) не, так не пойдет, конструктор даты там другой.
37 Злопчинский
 
19.02.16
22:03
(33)  ошибка
Должен быть правильный строковый формат даты
Ты передаешь неверный параметр в преобразование даты
38 Garykom
 
гуру
19.02.16
22:03
(33) о ёёё
39 Garykom
 
гуру
19.02.16
22:04
(38)+ походу СП в 77 недоступен резко стал
40 bolder
 
19.02.16
22:04
(36) дата(год,месяц,день);
Год, месяц,день- числа.
41 EverGreenMouse
 
19.02.16
22:21
(37) Все, разобрался. Преобразовал дату неправильно) только не понимаю: почему отладчик говорил, что все норм ему.. Ну, тем не менее, проблема решена, всем спасибо )
42 HawkEye
 
19.02.16
22:25
(36) наоборот надо...
Дата("12-12-2016") ну или Дата("12.12.2016")
43 EverGreenMouse
 
19.02.16
22:27
(42) через строковое представление я и победил эту бабарыку, с подсказки Злопчинского :)
44 Злопчинский
 
19.02.16
23:18
(43) чуть пораньше меня, на 2 мин. человек написал что конструктор даты другой
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший