Разработка сайта для Вашего бизнеса. Веб дизайн. Дизайн логотипа, фирменного стиля, рекламная фотография . Комплексный рекламный креатив.

Ralex. We do the work.
На рынке с 1999го года. Средняя ценовая категория. Ориентация на эффективность решений.
Ознакомтесь с нашим портфолио
Узнайте больше о услугах
Свяжитесь с нами:
E-mail: [email protected]
Tel: (044) 587 - 84 - 78
Custom web design & дизайн и разработка сайта "под ключ"
Креативный, эффективный дизайн. Система управления сайтом (СУС).
Custom flexible разработка систем электронной коммерции
Система e-commerce разрабатывается под индивидуальные потребности. Гибкая функциональность.
Search Engine Optimzation & оптимизация под поисковые системы (SEO)
Постоянная оптимизация и мониторинг сайта в поисковых системах. Достигаем результата быстро и эффективно
Custom logo design & дизайн логотипа и фирменного стиля
Многолетний опыт. Огромное портфолио. Уникальное предложение и цена.
профессиональная рекламная фотография
креативно, смело, качественно
Custom logo design & рекламный креатив. дизайн рекламы
Многолетний опыт. Огромное портфолио. Уникальное предложение и цена.

Порожня дата в запиті 1С

  1. Що таке дата і як її визначити
  2. Перетворення до дати
  3. Особливості використання дати в запитах 1С
  4. Дата і межа часу

Наша взаимовыгодная связь https://banwar.org/

У всіх документів, що існують в конфігураціях 1С, а, отже, і практично у всіх регістрів обов'язково повинен бути хоча б один реквізит з типом Дата, саме тому кожному розробнику необхідно знати і розуміти:

  • Як виконувати перетворення параметрів інших типів до розглянутого типу;
  • Як визначити порожню дату в запиті 1С;
  • Чим відрізняється дата і межа часу.

Саме на ці питання ми і постараємося відповісти в нашій статті.

Що таке дата і як її визначити

Так як для прийняття більшості управлінських рішень і ведення обліку не потрібна точність часу, що перевищує 1 секунду, розробники платформи 1С вирішили, що саме ця величина буде граничним мінімумом в форматі дати. Таким чином, кожна реквізит, що описує час події в програмі повинен містити:

  • Рік, коли відбулася подія;
  • Місяць цієї події;
  • День.

Необов'язково вказувати: годину, хвилину і секунду. Якщо ці три параметри опущені і немає додаткових умов, програма автоматично встановлює час на початок дня.

Існуючі в світі формати дати мають суттєву різницю:

  1. У Росії ми звикли на перше місце ставити день, потім йде місяць події, в кінці - рік;
  2. Жителі США починають дату з місяця;
  3. Чехи, поляки і словенці записують період в форматі «Рік - Місяць - День».

Саме останній формат і використовує платформа 1С.

Перетворення до дати

Для того щоб з кількох значень або з рядка отримати параметр з типом Дата необхідно використовувати код, вказаний на Рис. 1

Мал Мал. 1

Як видно з наведеного рисунка, визначити дату можна як за допомогою одного рядка, так і з розбивкою цього рядка на складові частини за допомогою коми, результат від цього не зміниться.

Важливо розуміти, що рік дати повинен складатися з чотирьох цифр, включаючи тисячоліття і століття події, місяць, день, години і секунди - повинні мати довжину в два символи, включаючи лідируючі нулі.

Відлік часу в програмі йде від початку дні 1 січня 0001 року. Для наведеного вище коду це значення можна визначити одним із двох способів (Рис. 2).

Мал Мал. 2

У другому рядку ми опустили години, хвилини і секунди події, що анітрохи не вплинуло на працездатність нашого коду.

Особливості використання дати в запитах 1С

Для більшості типів даних, що використовуються платформою 1С, існують зумовлені значення порожнечі. Для чисел - це 0, для посилань можна визначити значення ПустаяСсилка (), для дати порожнім значенням прийнято вважати дату початку відліку, саме з нею необхідно порівнювати реквізити відповідного типу при установці параметрів запиту.

Важливо зрозуміти, що навіть якщо в значенні реквізиту форми, що має розглянутий тип, не вказано жодних цифр, тобто вікно має вигляд (Рис. 3), це не означає що в ньому нічого не вказано, порівняння цього параметра з нового рядка не пройде.

Мал Мал. 3

Отримавши порожню дату, ми можемо вказати її в якості параметра до нашого запиту, тобто використовувати конструкцію (Рис. 4)

Мал Мал. 4

Однак, існують моменти, коли перевірку краще проводити всередині тексту запиту, не передаючи порожню дату в якості параметра. Для цього в коді запиту можна ввести відповідне умова (Рис. 5) і використовувати функцію запиту ДатаВремя ().

Мал Мал. 5

У наведеному тексті запиту ми опустили лідируючі нулі у року, місяця і дня, а так само не вказали годин, хвилин і секунд і програма, що називається, з'їла це припущення.

Дата і межа часу

Ще один цікавий факт, що стосується співвідношення запитів і дати - це використання поняття «момент часу» при зверненні до різних таблиць бази даних.

Точність «до мілісекунди», зазначена в технічній документації при описі примітивного типу Дата найяскравіше проявляється при вибірці записів з віртуальних таблиць регістра накопичення: якщо у регістру накопичення крім таблиці Обороти, існують таблиці Залишки і ОстаткіІОбороти, то вибірка по ним, здійснена на певний час , може дати різні результати.

Для того щоб зрозуміти, як і чому це відбувається, розглянемо простий приклад:

  1. До проведення о 12 годині 31 хвилину 36 секунд документа реалізації залишки по номенклатурі Цукор становили 30 кг;
  2. Документом в зазначений час було списано 10 кг;
  3. Звіт, що формується на дату документа на 12 годин 31 хвилину 36 секунд по таблиці Залишки, покаже залишок 30кг;
  4. Той же самий звіт по таблиці ОстаткіІОбороти на той же самий час покаже залишок в 20 кг.

У чому ж причина такої поведінки і як цього уникнути?

Проблема в тому, що в таблиці Залишки період задається відкритим відрізком, тобто, руху, здійснені на момент часу формування звіту не беруться в розрахунок, тобто час береться на початок зазначеної в параметрі секунди. У той же самий час, для таблиці Оборотов і для таблиці ОстаткіІОбороти кордону часу беруться в розрахунок тобто час береться на кінець зазначеної секунди.

Виходів з цієї ситуації кілька:

  1. При використанні таблиці Залишки, вказувати момент часу на 1 секунду більший, ніж заданий;
  2. Використовувати тільки таблицю ОстаткіІОбороти (не найоптимальніший з точки зору продуктивності варіант);
  3. Використовувати поняття Кордон.

Останній варіант можна уявити кодом, зазначеному на Рис. 6.

Мал Мал. 6

У першому параметрі нашого об'єкта ми вказуємо дату, на яку необхідно сформувати звіт, другий параметр визначає тип кордону. Так як для нас важливо, щоб руху на задану дату увійшли до вибірки ми повинні встановити цей параметр в положення «Включаючи».


У чому ж причина такої поведінки і як цього уникнути?
Категории
  • Биология
  • Математика
  • Краеведению
  • Лечебная
  • Наука
  • Физике
  • Природоведение
  • Информатика
  • Новости

  • Новости
    https://banwar.org/
    Наша взаимовыгодная связь https://banwar.org/. Запустив новый сайт, "Пари Матч" обещает своим клиентам незабываемый опыт и возможность выиграть крупные суммы.


    Наши клиенты
    Клиенты

    Быстрая связь

    Тел.: (044) 587-84-78
    E-mail: [email protected]

    Имя:
    E-mail:
    Телефон:
    Вопрос\Комментарий: