Значение поля дата не может быть пустой датой 1с
Результат: если дата отсутствует, то она преобразовываетеся в нулевую и далее с ней производятся действия.
Требуется:
если дата ДатаПолученияДокументаКонтрагентом НУЛЛ то и результат этого запроса должен быть пустой
ИНАЧЕ производятся действия.
От усталости что ли не пойму никак как сделать))
Подскажите плиз!
Запрос с проверкой на 0
Подскажите плиз. "ВЫБРАТЬ | ВнешняяТаблица.Статус КАК Ссылка |ПОМЕСТИТЬ ВнешняяТаблица.
Запрос на добавление с проверкой даты
Здравствуйте. Имеются 2 таблицы "Таблица1" и ее копия "Архив" В Таблице1 есть различные поля +.
Перебор ячеек Excel с проверкой на пустоту
Перебор ячеек Excel с проверкой на пустоту, если ячейка пустая ее не надо добавлять в конечный.
Вечный календарь: неразбериха с проверкой введения даты
Ребята, вот кусок моего кода. Работает, но есть проблема с февралём до 12 года - вводишь 30 или 31.
ребуется:
если дата ДатаПолученияДокументаКонтрагентом НУЛЛ то и результат этого запроса должен быть пустой
ИНАЧЕ производятся действия.
по-моему, у Вас действия производятся в обоих случаях.
После первого ТОГДА надо присвоить что-то пустое? "0", например, если это число дней?
верно.. наврала малясь. просто что бы ошибки не было при обработке даты
Но если действие выполняется в ЛЮБОМ случае, то как сделать так, что бы ни какое действие не выполнялось если дата пустая?
Другими словами как преобразовать строчку
ВЫБОР
КОГДА ЕСТЬNULL(ВзаиморасчетыОстаткиИОбороты.ДокументРасчетовСКонтр агентом.ДатаПолученияДокументаКонтрагентом, ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)) = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
ТОГДА ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
ИНАЧЕ ВЫБОР
КОГДА ВзаиморасчетыОстаткиИОбороты.ДоговорКонтрагента.СпособКонтро ляДнейЗадолженности = ЗНАЧЕНИЕ(Перечисление.СпособыКонтроляДнейЗадолженности.ПоРаб очимДням)
ТОГДА ЕСТЬNULL(РабочаяДатаВзаиморасчетыОстаткиИОборотыДоп.ДатаКале ндаря, ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0))
ИНАЧЕ ДОБАВИТЬКДАТЕ(ВзаиморасчетыОстаткиИОбороты.ДокументРасчетовС Контрагентом.ДатаПолученияДокументаКонтрагентом, ДЕНЬ, ВзаиморасчетыОстаткиИОбороты.ДоговорКонтрагента.ДопустимоеЧи слоДнейЗадолженности)
КОНЕЦ
КОНЕЦ КАК ДатаВозникновенияЗадолженности
Вот блин в чем прикол. я нечто подобное рисовала рисовала. То КОНЕЦ ему не там, то ИНАЧЕ лишнее. а тут взял и все махом нарисовал) duk337, пасип.
Запрос проверкой
Добрый день помогите новичку с запросом. есть таблица "TARLON" и в ней следующие поля: NAMES -.
Запрос возвращает пустоту! НЕВОЗМОЖНо!
Привет ребят!) Подгрузил дома из ФИАС в табличку в своей бд. Все прошло без ошибок, смотрю через.
Запрос с проверкой пароля
Есть таблица "Пользователи" с полями; 1 код пользователя (счетчик), 2 Имя (текст), Пароль.
Запрос с проверкой диапазона
Здравствуйте! У меня в таблиц е есть 2 поля: я в форме поиска пишу число Подскажите, как мне.
17 правил для составления оптимального ЗАПРОСа к данным базы 1С 44
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ PostgreSQL: установка, настройка, обслуживание 11
PostgreSQL напрямую "из коробки" применяться для использования с 1С Предприятем не может. Необходима именно адаптированная версия от 1С, превращающая PostgreSQL в блокировочник, причем нужно понимать, что блокировки будут накладываться на всю таблиц Временные таблицы 0
Не помню уже с какого релиза в запросах стало можно использовать временные таблицы. Для этого используется объект «Менеджер временных таблиц». Фактически менеджер временных таблиц описывает пространство имен временных таблиц и отвечает за их создание Горячие клавиши 1С Разработчику [ Конфигуратор ] 128
Основные команды: Кодирование: Ctrl+Пробел - вызов подсказки Ctrl+Q - вызов шаблона Ctrl+F1 - поиск в синтакс-помощнике Ctrl + L - удалить текущую строку Alt+Shift+F - отформатировать код Исследование: F12 - ставим курсор на про Загрузить данные в 1с из текстового файла с разделителями 6
В этой статье я расскажу, как загружать данные в 1с 8 из простейших текстовых файлов с разделителями. Обычно они имеют расширение csv (Comma-Separated Values). Т. е. название подразумевает, что в каждой строке такого текстового файла значения разделе Посмотреть все результаты поиска похожих
Еще в этой же категории
Момент Времени и Граница, назначение, примеры использования 39
Момент времени: Фирма 1С описывает так: Предназначен для получения и хранения момента времени для объекта в базе данных. Содержит дату и время, а также ссылку на объект базы данных. Используется в качестве значений свойств и параметров методо Преобразование даты 1С в unixtime (Unix Time Stamp) 17
Как известно, unixtime содержит количество секунд, прошедших с 1 января 1970 года. Поэтому, для преобразования даты 1С в дату unixtime нам всего то нужно от нашей даты отнять дату 01.01.1970 и перевести получившееся значения в удобоваримый формат. Функция месяц прописью 11
// пример от glory01 А = Формат(20020820153309, " ДФ=ММММ" ) // А = " Август" А = Формат(ТекущаяДата(), " ДФ=ММММ" ) // А = " Март" Функция МесяцПрописью(НомерМесяца) Экспорт НомерМесяца=Число(НомерМесяца); Если НомерМесяца = 1 Тогда Воз Как вычислить разницу между двумя датами в месяцах 11
Функция РазницаДатВМесяцах(Дата1, Дата2) Экспорт ДатаНач = ?(Дата1 Дата2, Дата1, Дата2); ДатаКон = ?(Дата1 Дата2, Дата2, Дата1); Годы = Год( датаКон ) - Год( датаНач ); Месяцы = Месяц( датаКон ) - Месяц( датаНач ); Разность = месяцы + Как вычислить разницу между двумя датами в часах и минутах 10
Функция РазностьВремени(Время1, Время2); Разность = Время1 - Время2; Если Разность 0 Тогда Часов = Цел(Разность / 3600); Минут = Цел((Разность - Часов * 3600) / 60); Возврат Дата(1, 1, 1, Часов, Минут, 0); Иначе Возврат Дата(1,1,1,0,0,0); Посмотреть все в категории Работа с Датами (Временем)
В форме списка справочника у меня добавлена Табличное поле с колонками Улица, Дом, Квартира , я пытаюсь загрузить данные с формы документа ТЧ.
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ГрупповыеУлицы.НомерСтроки КАК Колонка4,
| ГрупповыеУлицы.Улица КАК Колонка1,
| ГрупповыеУлицы.Дом КАК Колонка2,
| ГрупповыеУлицы.Кв КАК Колонка3
|ИЗ
| Справочник.Групповые.Улицы КАК ГрупповыеУлицы";
Результат = Запрос.Выполнить().Выгрузить();
ЭлементыФормы.ТабличноеПоле1.Значение = Результат;
Я пытаюсь с Excel загрузить документ там есть колонка с датой, я пытаюсь загрузить в реквиз дата и он выдает ошибку
: Ошибка при вызове метода контекста (Записать)
Об.Записать();
по причине:
Значение поля "Дата" не может быть пустой датой
Процедура КнопкаВыполнитьНажатие(Кнопка)
//проверим что файл существует
ФайлНаДиске = Новый Файл(Файл);
Если Не ФайлНаДиске.Существует() Тогда
Предупреждение("Файл не найден!");
Возврат;
КонецЕсли;
Док = Документы.Заправка;
НС = 1;
Пока Истина Цикл
Об=Док.СоздатьДокумент();
Об.Дата = СокрЛП(Ex.Cells(НС,1).NumberFormat="ДД.ММ.ГГГГ");
Об.Улица = СокрЛП(Ex.Cells(НС,2).Value);
Об.Дом = СокрЛП(Ex.Cells(НС,3).Value);
Об.Кол = СокрЛП(Ex.Cells(НС,4).Value);
Об.РУ = СокрЛП(Ex.Cells(НС,5).Value);
Об.Записать();
Сообщить("-Создан элемент: "+Об.Улица);
//Если Об.Улица = "" Тогда
// Прервать;
// КонецЕсли;
У меня строчка такая
: Ошибка при вызове метода контекста (Записать)
Об.Записать();
по причине:
Значение поля "Дата" не может быть пустой датой
3. Ex.Cells(НС,1).Value - строка с Вашей датой, именно строка, и чтобы преобразовать её в дату надо функцию написать, например, я такую написал:
Код 1C v 8.х
: Преобразование значения к типу Дата не может быть выполнено
Возврат Дата(Число(ГодСтрокой),Число(Сред(ДатаСтрокой,4,2)),Число(Сред(ДатаСтрокой,1,2)));
Подскажите вот я закачиваю информацию в справочник, есть реквизит Тип Справочники.Имя я прописал
В разработке часто возникают ситуации, когда нужно провести какие-то манипуляции с пустой датой: сравнить является ли какая-либо дата пустой, записать в какой-то реквизит с типом Дата пустую дату, а также иногда необходимо использовать пустую дату в запросе. В этой статье разберем, как работает пустая дата в 1С.
Что такое пустая дата в 1С? Эта дата, которая соответствует дате григорианского календаря 1 января 1 года 0 часов, 0 минут и 0 секунд. Такая дата с таким временем в 1С считается пустой.
Задаем пустую дату
Задать пустую дату в модуле можно несколькими способами.
При помощи ординарных кавычек:
При помощи метода Дата:
В обоих случаях, переменная НашаПустаяДата будет иметь тип Дата, но являться пустой. Если мы посмотрим на значение переменной НашаПустаяДата в отладке, то увидим, что эта переменная имеет тип Дата, с датой, которая соответствует 1 января 1 года.
Сравниваем с пустой датой
Как в программном модуле проверить является ли какая-либо дата пустой? Сделать это можно двумя способами. В первом способе используется метод ЗначениеЗаполнено. Этот метод вернёт Истина, если дата не пустая, и Ложь, если дата пустая. Например, узнаем, является ли НашаПустаяДата пустой. Для этого будем использовать условие.
Если же мы проверим так не пустую дату.
Можно проверять, просто сравнивая какую-то переменную или реквизит с пустой датой. Например, в коде ниже проверяется, является ли реквизит формы ДатаЗаписиДокумента пустой датой.
Задаем пустую дату в запросе
Иногда, в запросе необходимо создать поле с пустой датой. Чтобы это сделать, необходимо использовать функцию ДатаВремя.
При помощи этой функции задаются даты и время в запросе. Но, если в качестве первых трёх параметров задать значение 1, то в поле выборки будет пустая дата.
Также, мы можем передать значение с пустой датой в запрос.
В поле ДатаПустая выборки, сформированной из запроса теперь всегда будет пустая дата (как для первого, так и для второго случая).
Сравниваем с пустой датой в запросе
Сравнить какое либо поле в запросе с пустой датой можно двумя способами: используя метод ДатаВремя и передавая пустую дату в запрос.
Используем метод ДатаВремя:
Передаем пустую дату в запрос:
В обоих случаях, будут выведены только те документы, у которых не пустая дата отгрузки.
Более подробно и основательно начальные вопросы программирования в 1С есть вы можете изучить в
Книга «Программировать в 1С за 11 шагов»
Изучайте программирование в 1С в месте с моей книгой «Программировать в 1С за 11 шагов»
Книга написана понятным и простым языком — для новичка.
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Научитесь понимать архитектуру 1С;
- Станете писать код на языке 1С;
- Освоите основные приемы программирования;
- Закрепите полученные знания при помощи задачника
О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»
Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.
- Очень доступный и понятный язык изложения
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Поймете идеологию управляемого приложения 1С
- Узнаете, как разрабатывать управляемое приложение;
- Научитесь разрабатывать управляемые формы 1С;
- Сможете работать с основными и нужными элементами управляемых форм
- Программирование под управляемым приложением станет понятным
Промо-код на скидку в 15% — 48PVXHeYu
Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog
Если Вам понравился этот урок, был полезен или помог решить какую-нибудь проблему, то Вы можете поддержать мой проект, перечислив любую сумму.
В этой статье научимся узнаем, как работают даты в 1С. Тип Дата — это один из примитивных типов 1С 8.3. При помощи этого типа в программе 1С можно задать дату (например, 10 ноября 2019 года), время (например, 12 часов 32 минуты 45 секунд), а также дату с временем (например, 10 ноября 2019 года 12 часов 32 минуты 45 секунд). В этой статье мы научимся создавать переменные с типом дата, создавать реквизиты объектов с типом дата и работать на форме с этим типом. А также научимся выполнять элементарные операции над датами.
Создаем программно даты в 1С
Научимся программным способом создать переменную с типом дата. Сделать это можно двумя вариантам. Первый, при помощи ординарных кавычек, в которых дата задается в следующем формате:
ГГГГ – цифры года даты,
ММ — цифры месяца даты
ДД – цифры дня даты
ЧЧ – цифры часа от 0 до 23
ММ – цифры минут от 0 до 59
СС – цифры секунд от 0 до 59
Причем, дату можно задать в полном формате с минутами и секундами, а также без указания минут и секунд. То есть, вот так:
В переменной с типом дата, можно хранить только время без даты. В этом случае нужно указать, что год, месяц и день равно 1, т.е. формат даты будет следующим.
Рассмотрим, примеры. Создадим дату со временем, дату без времени и время с пустой датой. И также все это выведем методом Сообщить. Хотя, метод Сообщить и принимает в качестве параметра тип строка, мы можем и передать в него дату, платформа 1С автоматически её конвертирует в строку.
И посмотрим, как это все вывелось.
Таким образом, в платформе 1С у нас хранится дата в полном размере (год, месяц, день, час, минута, секунда). Если нам нужна просто дата, то час, минута и секунда равны нулю (при программном создании дат их можно не задавать), а если нам нужно просто время без даты, то год, месяц и день равны 1 (при программном создании даты их следует указывать).
Разберем еще один способ создания переменной с типом дата, это использование метода Дата. Этот метод имеет два варианта синтаксис:
СтрокаДаты – строка, которая задаётся в уже знакомом нам формате «ГГГГММДДЧЧММСС», принципы задания строки аналогичны принципам задания даты в ординарных кавычках.
Год – цифра года даты,
Месяц – цифра месяца даты,
День – цифры дня даты,
Час – цифры часа
Минута – цифры минуты
Секунда – цифры секунды.
Первый три параметра являются обязательными.
Если нам нужно задать, просто дату (без времени), то будет следующий синтаксис.
А если нужно задать время, то года, месяц и день будут равны 1:
Переделаем предыдущий пример.
Здесь я использовал два синтаксиса метода Дата. Первый синтаксис, по сути, преобразует строку в дату (строка естественно должна быть задана по правилам). Второй синтаксис, позволяет задать дату при помощи типа число.
Реквизит с типом дата в объектах 1С
Для того, чтобы какой-то реквизит объекта 1С 8.3 был датой, достаточно указать ему соответствующий тип. Например, как мы это делаем со справочником.
Причем у любого реквизита с типом дата имеется состав даты. Это Дата, Время и Дата и время.
В зависимости от того, какой состав даты выбран, такой вид даты и можно будет указать в форме объекта.
Состав даты Дата.
Состав даты Время.
Состав даты Дата и время.
Причем, не имеет значения, какой состав даты выбран, дата запишется полностью в формате ГГГГММДДЧЧММСС. Просто в зависимости от состава даты, или время будет равняться нулю (если выбран состав даты Дата), или год, месяц, день будут равняться единицы.
Дата на управляемой форме 1С
На управляемую форме 1С можно поместить реквизит с типом дата, у которого, также, имеется возможность выбрать состав даты: Дата, Время, Дата и время.
Если мы поместим этот реквизит на форму, то он разместится в виде поля ввода.
Причем у этого поля ввода имеется справа кнопка, при нажатии на которую будет открыто окно выбора даты.
Это окно появляется в том случае, если состав даты реквизита или Дата, или Дата и время.
А отвечает за появление этой кнопки свойство поля ввода «Кнопка выбора».
Посмотрим, как записывается дата, в зависимости от значения состава даты.
Для этого у поля ввода я создам событие при изменении.
Посмотрим, что вернет этот метод, когда состав даты реквизита — Дата.
Когда состав даты реквизита — Время
Когда состав даты реквизита – Дата и время
Вы убедились наглядно, что независимо от состава даты, у нас дата всегда записывается в формате ГГГГММДДЧЧММСС.
Разность дат в 1С
В 1С 8.3 имеется возможность вычитать одну дату из другой, или получать разность дат. В этом случае разность будет равна количеству секунд между датами.
Например, создадим две даты разностью в минуту, вычтем одну из другой.
И посмотрим, какая разница.
Мы получили количество секунд разности между Дата2 и Дата1. Если мы вычтем наоборот.
То поскольку Дата2 раньше на временной оси, чем Дата1, то получим разность с отрицательным знаком.
Прибавить дату 1С
Мы также, можем прибавить к дате нужное количество секунда. Делается это просто: к определенной дате, прибавляется то количество секунд, которое нам нужно.
Например, прибавим к дате минуту, час, день.
Посмотрим на результат:
Также можно и вычесть дату.
Посмотрим на результат:
Этим способом рекомендую прибавлять к датам и вычитать из дат небольшие значения (до дня), для прибавления месяцев и выше, в платформе 1С имеется способ, который будет рассмотрен в следующей статье.
Другие статьи о примитивных типах:
Более подробно и основательно начальные вопросы программирования в 1С есть вы можете изучить в
Книга «Программировать в 1С за 11 шагов»
Изучайте программирование в 1С в месте с моей книгой «Программировать в 1С за 11 шагов»
Книга написана понятным и простым языком — для новичка.
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Научитесь понимать архитектуру 1С;
- Станете писать код на языке 1С;
- Освоите основные приемы программирования;
- Закрепите полученные знания при помощи задачника.
О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»
Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.
- Очень доступный и понятный язык изложения
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Поймете идеологию управляемого приложения 1С
- Узнаете, как разрабатывать управляемое приложение;
- Научитесь разрабатывать управляемые формы 1С;
- Сможете работать с основными и нужными элементами управляемых форм
- Программирование под управляемым приложением станет понятным
Промо-код на скидку в 15% — 48PVXHeYu
Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog
Если Вам понравился этот урок, был полезен или помог решить какую-нибудь проблему, то Вы можете поддержать мой проект, перечислив любую сумму.
Читайте также: