Форум программистов, компьютерный форум, киберфорум
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/61: Рейтинг темы: голосов - 61, средняя оценка - 4.92
1 / 1 / 0
Регистрация: 15.11.2009
Сообщений: 947
1

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

15.09.2010, 01:00. Показов 11400. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Вот сколько работаю, а жля меня время документа - какой-то зверь неукротимый.
Реализую принцип: каждому виду документа принудительно свое время. Приходным в 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
Помню, долго терзал эти строки, но раз так оставил, значит это единственный вариант, дающий результат.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.09.2010, 01:00
Ответы с готовыми решениями:

Как получить разницу между текущем временем и временем создания файла?
Пробую так #include <time.h> time_t timer; time(&timer); тут timer = 1418974297 милисекунд...

Вычислить промежуток времени между текущей датой/временем и временем, введенным пользователем
Создайте новое приложение. Пакет приложения назовите com.ВАШЕ_ИМьЯ.time_span. Функционал...

Определить интервал между текущим временем и временем до звонка
Написать программку отсчитывающую время от текущего времени до конца урока

А давайте сыграем?
Предлагаю вот что: каждый придумывает, что можно добавить полезного в код. Я вот закинул всё что...

4
1 / 1 / 0
Регистрация: 24.07.2008
Сообщений: 658
15.09.2010, 09:56 2
Цитата Сообщение от Дайнеко
1) первый док дня ложится как надо (17.00). А вот следующий этого вида прибавляет по 1 минутке. Ну, это не плохо, Но почему ОНА так игнорирует команду?
А у меня все на 17-00 ложатся



Цитата Сообщение от Дайнеко
2) и вот юзер вносит док, приписываемый к 9.00. Если дата у него вчерашняя и ранее - ложится нормально. А сегодняшний выдает жуткое 1С-кое окно: "Время док-та меньше ТА". Варианты: 1-провести задним числом, 2-изменить время. Меня бы устроил первый, но активным установлен второй (точечка на нем). Пользователь пошевелил губами, ничего не понял и нажал Enter. Док-т изменил время и лег в конец дня. Опять Ignore.
А вот тут не в совсем в конец дня, а на 1 секунду после последнего дока
0
0 / 0 / 0
Регистрация: 07.07.2008
Сообщений: 1,401
15.09.2010, 10:03 3
1)Ну раз первый док ложится как надо, для остальных можно попробовать СформироватьПозициюДокумента(). Насчет минуты - не знаю, по хорошему должны быть секунды.
2)Периодичность итогов день? Их реально так много? может месяца хватит?
3) Каждый час ночи пакетно и монопольно запускается 1с и сдвигает ТА на денек (или на дату последнего документа +1).Или УстановитьТАПо(). У меня таких проблем нет - так как периодичность итогов месяц. Только по первым числам.
4)См пункт 3

up.Что то не видно в помошнике как документу позицию присвоить, получить можно - присвоить неа.
0
0 / 0 / 1
Регистрация: 22.06.2013
Сообщений: 9
15.09.2010, 12:48 4
Цитата Сообщение от puh14
up.Что то не видно в помошнике как документу позицию присвоить, получить можно - присвоить неа.
СформироватьПозициюДокумента не поможет ?
0
1 / 1 / 0
Регистрация: 15.11.2009
Сообщений: 947
16.09.2010, 02:57 5
Цитата Сообщение от Hryv
А вот тут не в совсем в конец дня, а на 1 секунду после последнего дока
Спасибо за точность. Да Вы, батенька, педант. Категорически согласен, что именно так 1С и трактует понятие "конец дня". И я это имел ввиду.



Цитата Сообщение от puh14
1).. можно попробовать СформироватьПозициюДокумента().
Метод из числа дополнений в 7.7 и как-то не пробовал.



Цитата Сообщение от puh14
2)Периодичность итогов день? Их реально так много? может месяца хватит?
Не, я такого не писал. Периодичность - месяц. Просто в рамках 1 дня расставляю доки.



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


Ну, спасибо за соображения.
0
16.09.2010, 02:57
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.09.2010, 02:57
Помогаю со студенческими работами здесь

Давайте поищем
Есть вот такой код #include <stdio.h> #include <conio.h> #include <stdlib.h> void InputMatr(...

Давайте сыграем
http://www.game4seo.com/ - игра для оптимизаторов. Те же скачки. Создаете сайт - выигрываете...

Давайте пофантазируем
контент журналистам заказывали писать или с бору по сосенку?

А давайте повспоминаем!
А давайте повспоминаем- кто, как, начинал. Например я с 87 по 91 года учился в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru