Подводные камни при работе в 1С c датами

Работа с датами в 1С

Работа с датой

Знал бы, где упасть – соломки бы подстелил

(Народная мудрость)

Довелось в практической деятельности разработчика в 1С столкнуться со следующим явлением. В базе было создано наперед несколько тысяч объектов справочника «Информационные карты» – для последующего занесения в них и хранения информации о постоянных покупателях торговой сети. Объектов было создано примерно 10 тысяч, на момент возникновения инцидента заполнено данными было около 7 тысяч карт. Каждое утро одно регламентное задание находило именинников среди клиентов сети (данные о которых были занесены в базу), а другое рассылало им поздравительные СМС с приглашениями получить подарок в любом удобном покупателю магазине. Запрос, который выбирал именинников из общей массы, имел приблизительно следующий вид:

На место параметров «День» и «Месяц» подставлялись соответствующие день и месяц текущего дня. Всё шло своим чередом, именинников в среднем находилось по 10-20 с периодическими всплесками до 30, но тут наступило 1е января. Регламент вдруг посчитал нужным поздравить почти 3 тысячи человек (к счастью, телефоны были указаны только у 300 из этого количества).

Анализ ситуации показал, что причиной такого поведения процедуры стало своеобразное понимание понятия NULL создателями среды 1С (а также нежелание привести это понимание к общему знаменателю с пониманием этого у авторов языка запросов SQL).

В данном конкретном случае дело было в следующем. Даже незаполненное данными поле типа ДАТА вовсе не равно NULL, как можно было бы подумать. Среда 1С в пустое поле ДАТА записывает значение Дата(“00010101”), то есть 1 января 0001-го года (видимо, нашей эры, хотя я не был бы столь уверен – имея опыт работы с 1С больше недели), при этом никак не отражая это на форме. В то же время – хотя какие-то данные в поле (и соответствующую ячейку памяти) записаны, функция ЗначениеЗаполнено(Дата) возвращает Ложь. Это обстоятельство стоит учитывать при разработке операций с датами (хотя тип ДАТА вовсе не единственный, где NULLи не заполненное значение вовсе не тождественны) – во избежание подобных затруднений.

Конкретно в данном случае можно либо при обработке результатов запроса проверять значение ДатаРожденияКлиента на заполненность (что менее производительно), либо задавать в запросе отбор еще и по году рождения клиента (например с 1800 – чтобы наверняка)

Автор: Виталий Моргун

Ключевые слова:

программирование +в 1с +за 21, программирование +в 1с +за 21 день, программирование 1с 8.3 торрент, 1с программирование скачать
торрент, 1с язык программирования скачать, 1с предприятие 8.3 версия +для обучения программированию, программирование отчетов 1с
, 1с предприятие 8 программирование, 1с предприятие 8.2 программирование, программирование +в 1с предприятие 8.3 скачать
, видеокурс программирование 1с, программирование 1с +с нуля скачать, азбука программирования +в 1с, программирование 1с
начало, 1с программирование форм, программирование 1с +с нуля самоучитель скачать, азбука программирования +в 1с предприятие
, программирование +в 1с 8.3 +за 21 день, азы программирования +в системе 1с, программирование 1с 8.3 самоучитель скачать
, азы программирования +в 1с предприятии, первый бит курсы 1с программирования, программирование 1с 8.3 +с нуля самоучитель
скачать, базовый курс программирования 1с, курс программирование 1с 8.2, программирование 1с +с +чего начать, самоучитель 1с
программирование +для начинающих, программа 1с программирование, гилев 1с программирование, онлайн курсы 1с
программирование, программирование 1с +для чайников, радченко 1с программирование, 1с программирование чистов, азы
программирования 1с 8.3, программирование 1с 8.3 самоучитель +для начинающих, программирование +в системе 1с предприятие скачать
, обучение программированию 1с скачать, азы программирования +в 1с предприятие 8.3, азы программирования +в системе 1с
предприятие 8.3, азбука программирования +в 1с предприятие 8.3, программирование 1с москва, 1с программирование работа,
практика 1с программирования, 1с программирование павел чистов, 1с битрикс программирование, 1с программирование обучение бесплатно
, 1с бухгалтерия программирование, программирование 1с видео уроки, программирование 1с 8 3, основы программирования 1с 8.

© 2017, https:. Все права защищены. Rudyuk Sergey. К2®

Leave a Comment

Ваша пошт@ не публікуватиметься. Обов’язкові поля позначені *

Можна використовувати XHTML теґи та атрибути: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

Shares
Translate »
Menu Title