Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / [игнор отключен] [закрыт для гостей] / и еще про даты / 8 сообщений из 8, страница 1 из 1
05.05.2009, 14:03
    #35969255
Nata75
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
и еще про даты
и еще один вопрос с датами, что-то совсем не догоняю. В РегистрСведенй складываются данные про счетчики - Запрограммирован, Установлен, Снят, ОтправленВРемонт, Списан - это все разные документы и пользователи устанавлявают дату операции сами и она записывается в общий регистр в поле Период. Бывает так что в один день сразу несколько операций - Снят, ОтправленВРемонт, Списан, чтобы не нарушалась последовательность операций - функцией я проверяю последний период по счетчику и если он совпадает с указанной датой, то к указанной дате прибавляется 1 секунда, все замечательно работает если это не первая запись по данному счетчику в Регистре, иначе функция выбирает что данных нет и получается пустоту сравнивает с датой, понимаю что надо условием смотреть что Если функция вернула пустоту или дата в документе отличается от даты в функции, то берем дату из документа в противном случае к дате прибавляем 1, я просто как та собака - понимаю, а сказать не могу.
функция называется "получитьПериод"

вот правильно работающая версия:

если НачалоДня(ДатаЗапрограммирован)=НачалоДня(получитьПериод(ТекСтрокаСчетчики.Счетчик)) тогда
Движение.Период = получитьПериод(ТекСтрокаСчетчики.Счетчик)+1;
иначе
Движение.Период = ДатаЗапрограммирован;
КонецЕсли;

вот попытка модернизации:

если получитьПериод(ТекСтрокаСчетчики.Счетчик)= 0
тогда Движение.Период = ДатаЗапрограммирован;
Прервать;
ИначеЕсли
НачалоДня(ДатаЗапрограммирован)=НачалоДня(получитьПериод(ТекСтрокаСчетчики.Счетчик))
Тогда
Движение.Период = получитьПериод(ТекСтрокаСчетчики.Счетчик)+1;
иначе
Движение.Период = ДатаЗапрограммирован;
КонецЕсли;
Пишет ошибку преобразование значения к типу Дата не может быть выполнено. Помогите, пожалуйста!!!
...
Рейтинг: 0 / 0
06.05.2009, 13:09
    #35971712
bot67
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
и еще про даты
Я думаю, что здесь было бы вернее сделать регистр сведений с регистратором, и эти проверки делать при проведении документов. А так получается, что у документов может быть любая последовательность, а записи в регистре должны идти сторого по порядку.. не логично как-то..
...
Рейтинг: 0 / 0
06.05.2009, 16:44
    #35972483
Nata75
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
и еще про даты
bot67, я полностью с Вами согласна, и первоначально так и делалось, но жизнь вносит свои коррективы и иногда настолько вот такие, то есть счетчик может быть Установлен, а потом сразу Списан(если сгорел на месте или поврежден каким-либо другим способом) , а может быть Запрограммирован, а затем отправлен в Ремонт, а может быть Запрограммирован, Установлен, Снят, ОтправленВРемонт, Списан, а может абонент уже запрограммировал его в каком-либо другом сертифцированном месте и предоставил нам необходимую информацию для составления проекта и тогда счетчик попадет к нам уже на этапе Установлен, т.е. ситуаций множество и они требуют как раз вот такого подхода...
может как-то можно переделать мою версию чтобы она работала...
...
Рейтинг: 0 / 0
07.05.2009, 08:32
    #35973374
leaf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
и еще про даты
ПустаяДата=Дата(1,1,1);
...
Рейтинг: 0 / 0
07.05.2009, 08:34
    #35973378
leaf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
и еще про даты
соответственно
Число(ПустаяДата)<>1
...
Рейтинг: 0 / 0
07.05.2009, 08:38
    #35973388
leaf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
и еще про даты
извините
Код: plaintext
1.
соответственно
Число(ПустаяДата)<> 0 
...
Рейтинг: 0 / 0
07.05.2009, 09:50
    #35973515
bot67
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
и еще про даты
..Если последний период по счетчику совпадает с датой документа, то прибавляем секунду, иначе - берем дату из документа....
В соответствии с описаной логикой ваш первый вариант тоже должен нормально работать

Код: plaintext
1.
2.
3.
4.
5.
если НачалоДня(ДатаЗапрограммирован)=НачалоДня(получитьПериод(ТекСтрокаСчетчики.Счетчик)) тогда
     Движение.Период = получитьПериод(ТекСтрокаСчетчики.Счетчик)+ 1 ;
иначе
     Движение.Период = ДатаЗапрограммирован;
КонецЕсли;
...
Рейтинг: 0 / 0
07.05.2009, 11:49
    #35973928
Nata75
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
и еще про даты
bot67, leaf СПАСИБО ВАМ ОГРОМНОЕ!!! Инет только что заработал и только что увидела ответы.
bot67, мой вариант действительно работает только если это не первая запись в регистре сведений.
leaf, Ваш вариант работает!!! СПАСИБО ОГРОМНОЕ!!! :)
...
Рейтинг: 0 / 0
Форумы / [игнор отключен] [закрыт для гостей] / и еще про даты / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]