7.7 Создание документа через COM-объект из 1С 8

Тема в разделе "Общие вопросы "1С:Предприятие 7.7"", создана пользователем umah, 7 фев 2014.

  1. TopicStarter Overlay
    umah
    Offline

    umah

    Регистрация:
    24 ноя 2009
    Сообщения:
    30
    Симпатии:
    0
    Баллы:
    1
    У меня 1С 7.7 Комплексная (перелопаченная) и 1С 8.1 Розница 1.0. Через COM-объект из восьмерки в семерке создается документ, но время документа берется откуда то из "космоса" и не соответствует реальному. При создании документа в 7.7 вручную время проставляется текущее. Я попытался из восьмерки задать время документа,
    Код:
      Док1.Новый();
    Док1.ДатаДок = ТекущаяДата();
    Время = прав(ТекущаяДата(),8);
    Час = Число(Лев(Время,2));
    Минута = Число(Прав(Лев(Время,5),2));
    Сек = Число(Прав(Время,2));
    Док1.УстановитьВремя(Час,Минута,Сек);
    
    но 1С игнорит мой код и прописывает "космическое" время.


    Подкажите, что можно сделать со временем или может кто знает, откуда семерка это время может брать!
  2. TopicStarter Overlay
    umah
    Offline

    umah

    Регистрация:
    24 ноя 2009
    Сообщения:
    30
    Симпатии:
    0
    Баллы:
    1
    Решение найдено. Если кому понадобится: Чтобы установить время, процедуру УстановитьВремя() нужно ставить после записи документа.

    Код:
    Док.Новый();
    ...
    <заполнение документа>
    ...
    Док.Записать();
    Док.УстановитьВремя(ЧЧ,ММ,СС);
    Док.Провести();
  3. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Время можно менять только у существующего объекта. Т.е.
    1) Записать документ
    2) Установить время
    3) Снова записать
  4. TopicStarter Overlay
    umah
    Offline

    umah

    Регистрация:
    24 ноя 2009
    Сообщения:
    30
    Симпатии:
    0
    Баллы:
    1
    У меня время установилось без повторной записи.
  5. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    как вы проведете не записанный документ? Это я про ваш пример....
  6. TopicStarter Overlay
    umah
    Offline

    umah

    Регистрация:
    24 ноя 2009
    Сообщения:
    30
    Симпатии:
    0
    Баллы:
    1
    Будьте добры, измените заголовок на "Создание документа через COM-объект из 1С 8"

    Я понимаю, что изменения в документе надо сохранить, но я свой пример взял после проверки работоспособности кода.
  7. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Попробуйте не проводить и увидите что время не изменится))))
    Заголовок поправил по вашей просьбе
  8. TopicStarter Overlay
    umah
    Offline

    umah

    Регистрация:
    24 ноя 2009
    Сообщения:
    30
    Симпатии:
    0
    Баллы:
    1
    Если не провести, то да, время не сохранится. Но мне проводить обязательно нужно )))
  9. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    это понятно... Просто это к вашему сообщению №4.
    Или записать или провести... Эффект одинаковый
  10. TopicStarter Overlay
    umah
    Offline

    umah

    Регистрация:
    24 ноя 2009
    Сообщения:
    30
    Симпатии:
    0
    Баллы:
    1
    Мало ли кому пригодится, вот как я осуществил подключение к базе 7.7 и создание документа:
    Код:
    База77  = Новый COMObject("V77.Application");
    
    Открыта = База77.Initialize(База77.RMTrade,"/d" + ПутьКБазе77+" /N"+псЛогин+" /P"+псПароль,"NO_SPLASH_SHOW");
    
    Если Открыта = Ложь Тогда
    Предупреждение("Ошибка открытия информационной базы!");
    Иначе
    Док1 = База77.CreateObject("Документ.ПеремещениеТМЦ");
    ...
    <Заполнение>
    ...
    Док1.Записать();
    Док1.УстановитьВремя(ЧЧ,ММ,СС);
    Док1.Провести();
    КонецЕсли
  11. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104

Поделиться этой страницей