Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Рассчитать число дней между двумя датами          
vadim007 Подменю пользователя
сообщение 19.09.11, 21:49
Сообщение #1

Почти крутой
Иконка группы
Группа: Местный
Сообщений: 1298
Из: Донецк
Спасибо сказали: 208 раз
Рейтинг: 0

Поделитесь пожалуйста текстом функции для расчета числа дней между двумя датами.
ps: функцию Дней(...) календаря не предлагать.
pps: поясню источник вопроса: в тексте отчета следующий код:
// Максимальная разница между датой платежного поручения и документом оплаты - 3 дня
Если ДокументОплаты.ДатаДок - ПП.ДатаДок <= 3 Тогда
   РеквизитыДокумента = "п/д від "+СокрЛП(ПП.ДатаДок)+" № "+СокрЛП(ПП.Номер)+", ";
КонецЕсли;

В отладчике четко видно, что условие выполняется:
ДокументОплаты.ДатаДок - ПП.ДатаДок = 3
ДокументПродажи = Банковская выписка ВВП-000003 (04.06.11)
ПП = Плат.пор. ВВП-000003 (01.06.11)
РеквизитыДокумента = ""
но на деле условие не выполняется.

Сделал следующим образом:
// Максимальная разница между датой платежного порочения и документом оплаты - 3 дня
Дней = ДокументОплаты.ДатаДок - ПП.ДатаДок;
Если Дней <= 3 Тогда
    РеквизитыДокумента = "п/д від "+СокрЛП(ПП.ДатаДок)+" № "+СокрЛП(ПП.Номер)+", ";
КонецЕсли;

и проблема исчезла. Чудеса...

Сообщение отредактировал vadim007 - 19.09.11, 21:49

Pudovan Подменю пользователя
сообщение 19.09.11, 22:57
Сообщение #2

Общительный
**
Группа: Пользователи
Сообщений: 25
Из: Vinnytsya
Спасибо сказали: 81 раз
Рейтинг: 0

Цитата(vadim007 @ 19.09.11, 22:49) *
// Максимальная разница между датой платежного поручения и документом оплаты - 3 дня
Если ДокументОплаты.ДатаДок - ПП.ДатаДок <= 3 Тогда
   РеквизитыДокумента = "п/д від "+СокрЛП(ПП.ДатаДок)+" № "+СокрЛП(ПП.Номер)+", ";
КонецЕсли;

и проблема исчезла. Чудеса...

Жодних див, а лише стандартна логіка роботи вансі. Просто в логічних вираз можна порівнювати співмірні величини, а от агрегатні об'єкти до них не відносяться.
Я би написав код так:
// Максимальная разница между датой платежного поручения и документом оплаты - 3 дня
Дата1=ДокументОплаты.ДатаДок;
Дата2=ПП.ДатаДок;
Если (Дата1-Дата2)<=3 Тогда
   РеквизитыДокумента = "п/д від "+СокрЛП(ПП.ДатаДок)+" № "+СокрЛП(ПП.Номер)+", ";
КонецЕсли;

Дуже часто, якщо змінна не була визначена явно, то щоб її віднести до певно типу, просто потрібно обнулити і тоді все стає гаразд...


Signature
Програміст 1С Вінниця. ФОП Програміст 1С Україна.Для зв'язку натисни тут! Тоді отримаєш послуги з програмування 1С та системного адміністрування, тощо.

Dimon_Energy Подменю пользователя
сообщение 20.09.11, 7:23
Сообщение #3

Молчаливый
*
Группа: Пользователи
Сообщений: 3
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(Pudovan @ 19.09.11, 23:57) *
Жодних див, а лише стандартна логіка роботи вансі. Просто в логічних вираз можна порівнювати співмірні величини, а от агрегатні об'єкти до них не відносяться.
Я би написав код так:
// Максимальная разница между датой платежного поручения и документом оплаты - 3 дня
Дата1=ДокументОплаты.ДатаДок;
Дата2=ПП.ДатаДок;
Если (Дата1-Дата2)<=3 Тогда
   РеквизитыДокумента = "п/д від "+СокрЛП(ПП.ДатаДок)+" № "+СокрЛП(ПП.Номер)+", ";
КонецЕсли;

Дуже часто, якщо змінна не була визначена явно, то щоб її віднести до певно типу, просто потрібно обнулити і тоді все стає гаразд...


Достатньо і так

// Максимальная разница между датой платежного поручения и документом оплаты - 3 дня
Если (ДокументОплаты.ДатаДок-ПП.ДатаДок)<=3 Тогда
   РеквизитыДокумента = "п/д від "+СокрЛП(ПП.ДатаДок)+" № "+СокрЛП(ПП.Номер)+", ";
КонецЕсли;

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 25.04.24, 15:06
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!