Д
Дайнеко
Вот сколько работаю, а жля меня время документа - какой-то зверь неукротимый.
Реализую принцип: каждому виду документа принудительно свое время. Приходным в 9.00 Расходным к 17.00 и т.д.
Для чего пишу:
Все работает. Почти работает. Непонятность поведения вот в чем:
1) первый док дня ложится как надо (17.00). А вот следующий этого вида прибавляет по 1 минутке. Ну, это не плохо, Но почему ОНА так игнорирует команду?
2) и вот юзер вносит док, приписываемый к 9.00. Если дата у него вчерашняя и ранее - ложится нормально. А сегодняшний выдает жуткое 1С-кое окно: "Время док-та меньше ТА". Варианты: 1-провести задним числом, 2-изменить время. Меня бы устроил первый, но активным установлен второй (точечка на нем). Пользователь пошевелил губами, ничего не понял и нажал Enter. Док-т изменил время и лег в конец дня. Опять Ignore.
3) третий зверь самый страшный. Это когда 1С пишет: "Существуют более ранние проведенные документы" (по памяти). Тут - все. Экспериментально лечится только одним - док закрыть, войти монопольно, сдвинуть ТА на 1-2 дня вперед.
4) ну, напоследок, умиляет меня сообщение у пользователей по утрам: "ТА будет перенесена на новую дату". Я за долгие годы наконец придумал для них объяснение: "Это самый первый документ на сегодня. Она всегда так говорит."
Я, вроде, все закоулки программы знаю. Но вдруг у кого есть рецепт, как эти дурацкие вопросы обойти, как железно добиться нужного времени на документе?
Замечу напоследок:
- что за многие годы не установил никакого влияния галочек в "Сервис/Параметры/Оперативный учет" равно как и не могу признаться в их ясном понимании.
- до написания темы осмотрел форум и видел рекомендации устанавливать время ПриЗаписи(). Не помню почему, молодым экспериментировал, но не фурычит.
- это я писал про док-ты, создаваемые руками. А нашел в своей программе вот такую ерунду при создании док-та программно:
Помню, долго терзал эти строки, но раз так оставил, значит это единственный вариант, дающий результат.
Реализую принцип: каждому виду документа принудительно свое время. Приходным в 9.00 Расходным к 17.00 и т.д.
Для чего пишу:
Код:
Процедура ВводНового(Копирование)
УстановитьВремя(17, 00, 00);
Процедура ПриОткрытии()
АвтоВремяОтключить();
Все работает. Почти работает. Непонятность поведения вот в чем:
1) первый док дня ложится как надо (17.00). А вот следующий этого вида прибавляет по 1 минутке. Ну, это не плохо, Но почему ОНА так игнорирует команду?
2) и вот юзер вносит док, приписываемый к 9.00. Если дата у него вчерашняя и ранее - ложится нормально. А сегодняшний выдает жуткое 1С-кое окно: "Время док-та меньше ТА". Варианты: 1-провести задним числом, 2-изменить время. Меня бы устроил первый, но активным установлен второй (точечка на нем). Пользователь пошевелил губами, ничего не понял и нажал Enter. Док-т изменил время и лег в конец дня. Опять Ignore.
3) третий зверь самый страшный. Это когда 1С пишет: "Существуют более ранние проведенные документы" (по памяти). Тут - все. Экспериментально лечится только одним - док закрыть, войти монопольно, сдвинуть ТА на 1-2 дня вперед.
4) ну, напоследок, умиляет меня сообщение у пользователей по утрам: "ТА будет перенесена на новую дату". Я за долгие годы наконец придумал для них объяснение: "Это самый первый документ на сегодня. Она всегда так говорит."
Я, вроде, все закоулки программы знаю. Но вдруг у кого есть рецепт, как эти дурацкие вопросы обойти, как железно добиться нужного времени на документе?
Замечу напоследок:
- что за многие годы не установил никакого влияния галочек в "Сервис/Параметры/Оперативный учет" равно как и не могу признаться в их ясном понимании.
- до написания темы осмотрел форум и видел рекомендации устанавливать время ПриЗаписи(). Не помню почему, молодым экспериментировал, но не фурычит.
- это я писал про док-ты, создаваемые руками. А нашел в своей программе вот такую ерунду при создании док-та программно:
Код:
ДокС.Новый();
ДокС.ДатаДок = МояДата;
ДокС.Записать(); // 1
ДокС.УстановитьВремя(11,00,00);
ДокС.Записать(); // 2