Давайте поборемся со временем док-та

Тема в разделе "1C и всё что с ней связано", создана пользователем Дайнеко, 16 сен 2010.

  1. Дайнеко

    Дайнеко Well-Known Member
    1C Team

    Регистрация:
    19 ноя 2009
    Сообщения:
    951
    Симпатии:
    0
    Вот сколько работаю, а жля меня время документа - какой-то зверь неукротимый.
    Реализую принцип: каждому виду документа принудительно свое время. Приходным в 9.00 Расходным к 17.00 и т.д.
    Для чего пишу:

    Код ( (Unknown Language)):
    Процедура ВводНового(Копирование)
    УстановитьВремя(17, 00, 00);

    Процедура ПриОткрытии()
    АвтоВремяОтключить();
    Все работает. Почти работает. Непонятность поведения вот в чем:

    1) первый док дня ложится как надо (17.00). А вот следующий этого вида прибавляет по 1 минутке. Ну, это не плохо, Но почему ОНА так игнорирует команду?

    2) и вот юзер вносит док, приписываемый к 9.00. Если дата у него вчерашняя и ранее - ложится нормально. А сегодняшний выдает жуткое 1С-кое окно: "Время док-та меньше ТА". Варианты: 1-провести задним числом, 2-изменить время. Меня бы устроил первый, но активным установлен второй (точечка на нем). Пользователь пошевелил губами, ничего не понял и нажал Enter. Док-т изменил время и лег в конец дня. Опять Ignore.

    3) третий зверь самый страшный. Это когда 1С пишет: "Существуют более ранние проведенные документы" (по памяти). Тут - все. Экспериментально лечится только одним - док закрыть, войти монопольно, сдвинуть ТА на 1-2 дня вперед.

    4) ну, напоследок, умиляет меня сообщение у пользователей по утрам: "ТА будет перенесена на новую дату". Я за долгие годы наконец придумал для них объяснение: "Это самый первый документ на сегодня. Она всегда так говорит."

    Я, вроде, все закоулки программы знаю. Но вдруг у кого есть рецепт, как эти дурацкие вопросы обойти, как железно добиться нужного времени на документе?

    Замечу напоследок:
    - что за многие годы не установил никакого влияния галочек в "Сервис/Параметры/Оперативный учет" равно как и не могу признаться в их ясном понимании.
    - до написания темы осмотрел форум и видел рекомендации устанавливать время ПриЗаписи(). Не помню почему, молодым экспериментировал, но не фурычит.
    - это я писал про док-ты, создаваемые руками. А нашел в своей программе вот такую ерунду при создании док-та программно:
    Код ( (Unknown Language)):
        ДокС.Новый();
    ДокС.ДатаДок = МояДата;
    ДокС.Записать(); // 1
    ДокС.УстановитьВремя(11,00,00);
    ДокС.Записать(); // 2
    Помню, долго терзал эти строки, но раз так оставил, значит это единственный вариант, дающий результат.
     
  2. Hryv

    Hryv Гость

    А у меня все на 17-00 ложатся

    А вот тут не в совсем в конец дня, а на 1 секунду после последнего дока
     
  3. puh14

    puh14 Well-Known Member
    1C Team

    Регистрация:
    11 июл 2008
    Сообщения:
    1.412
    Симпатии:
    0
    1)Ну раз первый док ложится как надо, для остальных можно попробовать СформироватьПозициюДокумента(). Насчет минуты - не знаю, по хорошему должны быть секунды.
    2)Периодичность итогов день? Их реально так много? может месяца хватит?
    3) Каждый час ночи пакетно и монопольно запускается 1с и сдвигает ТА на денек (или на дату последнего документа +1).Или УстановитьТАПо(). У меня таких проблем нет - так как периодичность итогов месяц. Только по первым числам.
    4)См пункт 3

    up.Что то не видно в помошнике как документу позицию присвоить, получить можно - присвоить неа.
     
  4. vbs

    vbs Well-Known Member

    Регистрация:
    18 фев 2007
    Сообщения:
    1.708
    Симпатии:
    3
    СформироватьПозициюДокумента не поможет ?
     
  5. Дайнеко

    Дайнеко Well-Known Member
    1C Team

    Регистрация:
    19 ноя 2009
    Сообщения:
    951
    Симпатии:
    0
    Спасибо за точность. Да Вы, батенька, педант. Категорически согласен, что именно так 1С и трактует понятие "конец дня". И я это имел ввиду.

    Метод из числа дополнений в 7.7 и как-то не пробовал.

    Не, я такого не писал. Периодичность - месяц. Просто в рамках 1 дня расставляю доки.

    Мысль неплоха - сделать в автомате. Иногда люди вручную задвигают ТА до конца месяца.
    Но вы же понимаете - время проведения чуть уменьшится.


    Ну, спасибо за соображения.
     
Загрузка...

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