[ОБУЧАЛОВКА] Финт ушами с временем документа.

Публикация № 13835

Разработка - Практика программирования

Маленькое наблюдение, облегчающее программную расстановку документов по оси времени.
Финт с чебурашечными ушами будет показан на примере. Простая задача: расставить документы ''накладная'' и ''счет-фактура'' на оси времени с интервалом в полторы минуты. Делаем примерно так:
//получаем исходное время
ЧЧ=0;
ММ=0;
СС=0;
ДокРН.ПолучитьВремя(ЧЧ,ММ,СС);
//формируем новое время
СС=СС+90;
ДокСФ.УстановитьВремя(ЧЧ,ММ,СС);
ДокСФ.Записать();

Как видно из примера, наращиваем только счетчик секунд, при записи документа движок 1С сам произведет ''адекватный'' пересчет секунд, минут, часов. Такаим образом можно наращивать любой из счетчиков времени в приведенном выше примере, наращивание производится должно в единицах увеличиваемого счетчика. Т.е. ничто не мешает для сдвига на 1 час написать
 CC=CC+60*60; 

или
 ММ=ММ+60; 

или
 ЧЧ=ЧЧ+1; 

Описанным выше способом можно двигать счетчики и вперед по (+), и назад по (-). Такой нехитрый прием существенно облегчает оперирование со временем документа.
При этом надо учитывать только то, что сдвижка производится только в пределах одних суток! Т.е. макисмально позднее(раннее) время, которое получится у документа: 23:59:59 (00:00:01) - прибавив к 23:59:10 больше 50 секунд в другой день ''перескочить'' не удастся ;-).
В этом случае надо действовать уже в зависимости от лично ваших нужд, как пример - можно так:
//формируем новое время
СС=СС+90;
ДокСФ.УстановитьВремя(ЧЧ,ММ,СС);
ДокСФ.Записать();
Если СтрЗаменить(ДокСФ.ПолучитьВремя(),'':'','''')=''235959'' Тогда
//тут обрабатываем ''исключительную ситуацию''
    //перехода на новую дату
ДокСФ.ДатаДок = ДокСФ.ДатаДок+1;
   ДокСФ.УстановитьВремя(00,00,01);
   ДокСФ.Записать();
КонецЕсли;


Вот такие вот чебурашки.

Разведал эту шнягу, когда забодался плюсовать секунды-минуты-секунды - неэстетично это, однозначно! А если попробовать прибавить много секунд - что будет? Попробовал - получилось...

PS: если эта статья помогла вам узнать нечто новое - плюсуй рейтинг! Не ленись...

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
1. АЛьФ 12.07.06 11:59 Сейчас в теме
Прикольно.
dreadlord; san4o; andrey_k65; ineoosaki; +4 Ответить
2. vasilykushnir 12.07.06 12:16 Сейчас в теме
Плюсую. Буду пробовать поюзать. Идейка весьма интересная.
3. GROOVY 2540 12.07.06 14:15 Сейчас в теме
Документы располагать относительно друг друга надо не изменением времени а правильным созданием и записью самих документов. только в этом случае мы избежим ограничения 86400 документов в сутки!
4. CheBurator 12.07.06 22:26 Сейчас в теме
Согласен.
Данный код - и служит целям "правильного" программного создания/модификации документов. ;-)
А про то, что документы интерактивно нужно правильно создавать/модифицировать - это да, возражений нет.
Если знаешь как программно создать и расположить реализацию после заявки не оперируя временем документа - поделись, будет интересно не только мне...
5. GROOVY 2540 13.07.06 00:32 Сейчас в теме
6. vasilykushnir 14.07.06 11:35 Сейчас в теме
>GROOVY
>Ок. Скоро будет!

Будем ждать...
В дополнение к замечанию Сhe: расхождение по времени с заявкой и расходной еще пол-беды. У нас цепочка из трех документов ЗаявкаПокупателя-Отборочная-Расходная. Если с заявкой и расходной все понятно, то чуть уточню, что за зверь Отборочная. Этот документ представляет собой обычное перемещение с отдела хранения в отдел экспедиции, где на их основании создается расходная. При этом не обязательно все товары из заявки попадают в отборочные и расходные, ну это к делу не относится. Так вот временная последовательность должна четко соблюдатся для пары Отборочная-Расходная - ну не может экспедиция выписать товар, который еще не поступил со складов. Но наши крендели умудряются иногда шурануть расходную более ранним временем (а иногда и датой!), чем отборочная. Так что если у GROOVY есть идеи как это блокировать на этапе создания расходной - воздадим хвалу этому достойному человеку!
7. CheBurator 14.07.06 19:39 Сейчас в теме
Не к теме публикации, а по обсуждению... у меня еще лучше... у меня из неподтвержденки дерево документов может быть листов на 8-10 (неподтвержденка-заявки-заказы-поступления-расходы)
8. O-Planet 6896 14.07.06 22:33 Сейчас в теме
Надо воспользоваться этим, чтобы рейтинг выпрашивать :)
Токо где финт-то? Обычное преобразование типов...
9. CheBurator 14.07.06 23:41 Сейчас в теме
Просвети, плиз, неграмотного - где здесь преобразование типов?
10. O-Planet 6896 15.07.06 02:25 Сейчас в теме
Да все просто. Для тебя время - это минуты, секунды и часы, а во внутреннем представлении 1С - это число типа long. Поэтому, ты мог с таким же успехом не секунды прибавлять, а, скажем, минуты. Она все равно бы преобразовала бы все к формату времени.

Кстати, если хошь знать, какими бывают финты, то читай мою статью последнюю :)
11. CheBurator 15.07.06 15:15 Сейчас в теме
будь спок. минуты тоже прибавляем... ;-)
статью - ща посмотрим...
12. Mey 29.08.06 07:53 Сейчас в теме
13. 01.09.06 15:44 Сейчас в теме
Спасибо, открыл для себя: движок 1С сам произведет ''адекватный'' пересчет секунд, минут, часов. А то я совсем недавно решал такую проблему, так накрутил там пересчеты все самостоятельно :-). Оказывается можно было не заморачиваться.
14. d.snissarenko 06.09.06 18:18 Сейчас в теме
15. CheBurator 07.09.06 01:07 Сейчас в теме
А чего пробовать? Юзать надо ;-)
17. CheBurator 27.11.06 11:43 Сейчас в теме
Может кто еще знает некоторые неочевидные хитрости?
18. item 01.12.06 12:05 Сейчас в теме
Была такая фишка до 14-го релиза:
для дополнительных числовых реквизитов проводки
(напр. "количество2" с конф."Сельхоз.предприятие" от Рарус)
v77 поддерживала функции ДО() и КО() в запросе.
Жаль, что эту вещь выкосили в поздних релизах.
19. Плюшкин_ 217 01.12.06 20:36 Сейчас в теме
у меня(как у пита) такое давно реализовано:)Правда не мучался,сразу получилось.Это когда из ТиС в Бухию переброску и если изменения,то меняем и в бухии.Соотв. и время нужно точно расставить.
20. CheBurator 11.12.06 16:15 Сейчас в теме
Boj мелкая хитрость: бывает надо на экран вывести ТЗ (типа в отладочных целях), причем с нумерацией строк. Чтобы не заморачиваться, пишем: [code]
ТЗ.ВидимостьКолонки("НомерСтроки",1);
ТЗ.ВыбратьСтроку(," типа отладка");
Zab; Altez; Pari; mishau; +4 Ответить
21. CheBurator 29.03.07 01:03 Сейчас в теме
Не понял.. читать - читаем, ума-разума набираемся.. а кто рейтинг статьи плюсовать будет, а???
22. das 232 22.09.07 04:51 Сейчас в теме
Бесценный опыт - в нашу копилку ;-)))
23. Voldemar 1 15.10.07 07:53 Сейчас в теме
Не так давно была задача "раскидать" по дню загруженные документы, так тщательно прописывал ЧЧ,ММ,СС. А оказывается, можно было всё гораздо проще сделать. Спасибо за ценный опыт.
24. CheBurator 16.10.07 12:35 Сейчас в теме
Пожалуйста! Приходите и читатйе другие мои "жизненные" статьи!
25. Вадимко 207 24.11.07 03:41 Сейчас в теме
Позволю себе дополнить...
Управлять временем можно гораздо точнее нежели в переделах секунды... мы-то с вами знаем :)
86400 - это для пионэров
Есть у меня два документа с одинаковым временем 12.00.01
Если я поменяю время документа с '757H1S' на '757H1T', то документы что сделают?
Правильно, поменяются местами в журнале
А время какое мы продолжаем видеть в 1С? Правильно, 12.00.01 :)
ЗЫ. Чучундеру ПЛЮС за упорство в написании полезных программ и статей
26. CheBurator 25.11.07 00:26 Сейчас в теме
(25) И вот сколько документов "влазит" в одну секунду - это и определяется "емкостью" приведенного ниже идентификатора...
27. valent 72 03.08.08 06:35 Сейчас в теме
Бывает нелишним перед всем этим вставить "АвтоВремяОтключить()"
+
alevnev; Svopper; hate; +3 Ответить
28. hate 16.08.08 13:06 Сейчас в теме
конечно не решило всех проблем, но все равно спасибо, подталкнуло в нужном направлении, поэтому однозначно +!
29. nickkey 29.09.11 05:18 Сейчас в теме
согласен все гениальное просто спасибо за идею :)
30. juraua 08.11.17 11:03 Сейчас в теме
Спасибо за решение, очень помогло!
31. CheBurator 3421 09.11.17 02:12 Сейчас в теме
32. ZloyProger 8 06.08.19 16:28 Сейчас в теме
(31) Ещё живее) Подскажите пожалуйста, не вижу ни ПолучитьВремя(), ни УстановитьВремя() (точнее функция есть - параметры другие).. Видимо с очередными версиями платформы (или это вообще для 7.7? к сожалению нет под рукой, а так давно не пользовался не помню уже) вырезали, теперь только свою проверку городить при добавлении? Или всё же есть какая-нибудь уловка?)
33. CheBurator 3421 06.08.19 22:24 Сейчас в теме
(32) пример рассмотрен для 7.7.
используются только штатные возможности.
.
вполне возможно, что такой подход (с поправкой на особенности 8-ки для задания датавремя документа) будет работать и на 1С 8.
Оставьте свое сообщение

См. также

3 онлайн-курса по 1С-программированию: обмен данными, расчетные задачи и бухгалтерские задачи с 12 мая по 8 июля 2020 г. Промо

Практика программирования v8 Бесплатно (free)

Пакет из 3-х курсов по 1С-программированию. Основная цель - сформировать у слушателей практические навыки, связанные с реализацией задач обмена для прикладных решений, работающих на платформе “1С:Предприятие”, а также с разработкой прикладных решений, предназначенных для автоматизации расчета заработной платы и задач бухгалтерского учета.

22.04.2020    4437    23    Infostart    2    

Не спеша, эффективно и правильно – путь разработки. Часть 3. Практика

Практика программирования Бесплатно (free)

Черновой вариант книги Никиты Зайцева, a.k.a.WildHare. Разработкой на платформе 1С автор занимается с 1996-го года, специализация — большие и по-хорошему страшные системы. Квалификация “Эксперт”, несколько успешных проектов класса “сверхтяжелая”. Успешные проекты ЦКТП. Четыре года работал в самой “1С”, из них два с половиной архитектором и ведущим разработчиком облачной Технологии 1cFresh. Ну — и так далее. Не хвастовства ради, а понимания для. Текст написан не фантазером-теоретиком, а экспертом, у которого за плечами почти двадцать три года инженерной практики на больших проектах.

29.06.2020    3730    0    WildHare    23    

Не спеша, эффективно и правильно – путь разработки. Часть 2. Теория

Практика программирования Бесплатно (free)

Черновой вариант книги Никиты Зайцева, a.k.a.WildHare. Разработкой на платформе 1С автор занимается с 1996-го года, специализация — большие и по-хорошему страшные системы. Квалификация “Эксперт”, несколько успешных проектов класса “сверхтяжелая”. Успешные проекты ЦКТП. Четыре года работал в самой “1С”, из них два с половиной архитектором и ведущим разработчиком облачной Технологии 1cFresh. Ну — и так далее. Не хвастовства ради, а понимания для. Текст написан не фантазером-теоретиком, а экспертом, у которого за плечами почти двадцать три года инженерной практики на больших проектах.

22.06.2020    5963    0    WildHare    22    

Не спеша, эффективно и правильно – путь разработки. Часть 1. Парадигма

Практика программирования Бесплатно (free)

Черновой вариант книги Никиты Зайцева, a.k.a.WildHare. Разработкой на платформе 1С автор занимается с 1996-го года, специализация — большие и по-хорошему страшные системы. Квалификация “Эксперт”, несколько успешных проектов класса “сверхтяжелая”. Успешные проекты ЦКТП. Четыре года работал в самой “1С”, из них два с половиной архитектором и ведущим разработчиком облачной Технологии 1cFresh. Ну — и так далее. Не хвастовства ради, а понимания для. Текст написан не фантазером-теоретиком, а экспертом, у которого за плечами почти двадцать три года инженерной практики на больших проектах.

15.06.2020    9338    0    WildHare    34    

Использование программных перечислений, ч.1: строковые константы Промо

Практика программирования v8 1cv8.cf Бесплатно (free)

Часто ли у вас возникает необходимость в коде выполнять сравнение на строку?

10.12.2016    35374    0    unichkin    45    

JSON в запросах DaJet QL

Практика программирования Бесплатно (free)

Практические примеры работы с JSON непосредственно в языке запросов. Перенос курсов валют между УТ и БП. Требуется SQL Server 2016 и выше.

24.04.2020    3299    0    zhichkin    6    

Визионное программирование

Практика программирования Бесплатно (free)

Новый способ программирования и его практическая демонстрация.

22.04.2020    3997    0    mkalimulin    111    

Использование машинного обучения для решения инцидентов. Практическое применение

Практика программирования Бесплатно (free)

Продолжаю (и заканчиваю) тему с автоматическим решением инцидентов. Перейдем от теории к практике.

25.02.2020    3712    0    Repich    9    

Вспомогательные инструкции в коде 1С Промо

Практика программирования v8 1cv8.cf Бесплатно (free)

Помогаем редактору кода 1С помогать нам писать и анализировать код.

15.10.2018    27755    0    tormozit    100    

Использование машинного обучения для решения инцидентов

Практика программирования Бесплатно (free)

История о том, как я с помощью машинного обучения сокращал затраты на техподдержку.

18.02.2020    6122    0    Repich    17    

Часовой на страже логов

Практика программирования Инструментарий разработчика Бесплатно (free)

При поддержке решений, которые установлены у большого количества пользователей на различных системах, очень важно вовремя получать подробную информацию о возникших проблемах. О том, как собирать логи и анализировать полученные данные в трекере ошибок Sentry на конференции Infostart Event 2019 Inception рассказал Андрей Крапивин.

13.01.2020    5662    0    Scorpion4eg    6    

Приватный блокчейн и 1С популярно

Практика программирования Блокчейн Бесплатно (free)

Две предыдущие публикации на эту тему были сфокусированы преимущественно на технической стороне вопроса. Кроме того, их содержание оказалось понятным не каждому специалисту. В этой статье я постараюсь обяснить для всех и, что говорится, «на пальцах»: что такое приватный блокчейн, когда и зачем его следует применять и на что обратить внимание при использовании этой технологии в 1С.

02.09.2019    5540    0    mkalimulin    140    

Оформление и рефакторинг сложных логических выражений Промо

Практика программирования v8 Россия Бесплатно (free)

В сложных логических выражениях нередко самому автору спустя какое-то время тяжело разобраться, не говоря уже о других программистах. Предлагаемая методика позволяет повысить наглядность таких выражений путем оформления в виде И-ИЛИ дерева и одновременно выполнять их рефакторинг.

20.09.2012    75279    0    tormozit    129    

Кодогенерация и метагенерация в 1С

Практика программирования Инструментарий разработчика Бесплатно (free)

В своем докладе на конференции INFOSTART EVENT 2018 EDUCATION Дмитрий Белозеров рассказал о разработке инструмента, позволяющего программно работать с метаданными 1С и писать скрипты для выполнения тех же действий, которые выполняет разработчик в конфигураторе –  с какими сложностями и нюансами пришлось столкнуться, и что получилось в итоге.

26.08.2019    8345    0    kirovsbis    28    

Интеграция сценарного тестирования в процесс разработки

Практика программирования Инструментарий разработчика Бесплатно (free)

Разработчик системы «Тестер» Дмитрий Решитко в своем докладе на конференции INFOSTART EVENT 2018 EDUCATION показывает, что процесс тестирования можно очень плотно интегрировать в процесс разработки, что внедрение тестирования – это возможность развития программиста как такового, позволяющая ему упорядочивать ход мыслей и оставаться «в фокусе». Навыки построения процесса кодирования на стыке с тестированием сокращают время на концентрацию, освобождают от страха перед изменениями и улучшают память разработчика.

08.07.2019    8663    0    grumagargler    7    

Управляй качеством кода 1С с помощью SonarQube

Практика программирования Россия Бесплатно (free)

Управляй техническом долгом проектов 1С с помощью SonarQube. В статье рассматривается пример применения SonarQube при разработке.

07.07.2019    35457    0    olegtymko    230    

Запись значения в поле ввода/формы со срабатыванием события ПриИзменении Промо

Практика программирования v8 1cv8.cf Россия Бесплатно (free)

Иногда возникает необходимость после записи значения в какое либо поле ввода/формы вызвать для него обработчик события ПриИзменении, а о вызове самого события приходится только мечтать. В этой статье приводится программный способ вызова этого события.

11.07.2007    46173    0    tormozit    38    

Выгрузка документа по условию

Практика программирования Разработка v8 Бесплатно (free)

Что делать, если документы нужно выгружать не все подряд, а по какому-то фильтру: статусу, дате, набору условий... А что если он соответствовал этим условиям, а потом перестал? А если потом опять начал? Такие ситуации заставили попотеть не одного программиста.

25.04.2019    15296    0    m-rv    2    

Как прикрутить ГУИД к регистру сведений

Практика программирования Перенос данных из 1C8 в 1C8 Разработка v8 Бесплатно (free)

... и немного теории обмена данными. В частности, разберем боль всех, кто пишет небанальные обмены данными: как набору записей регистра сведений назначить гуид и далее использовать его в обмене для идентификации этого набора.

16.04.2019    19022    0    m-rv    17    

О времени и 1С

Практика программирования Разработка Бесплатно (free)

Основы и особенности работы со временем в 1С. Как избавиться от боли при работе в разных часовых поясах. Что такое момент времени. И другое.

01.04.2019    31094    0    YPermitin    60    

Как сделать из &НаКлиентеНаСервереБезКонтекста почти &НаКлиентеНаСервере Промо

Практика программирования v8 1cv8.cf Россия Бесплатно (free)

Как сделать метод формы, доступный на клиенте и на сервере одновременно, и сохранить при этом удобство разработки

10.09.2017    42145    0    tormozit    74    

Пример создания bridge (http api - tcp) для ККТ "Касса №1" ("К1-Ф")

Практика программирования ККМ Кассовые операции Кассовые операции Разработка Россия Бесплатно (free)

Пример создания bridge (http api - tcp) для ККТ "Касса №1" ("К1-Ф"). Данная статья будет полезна интеграторам, программистам, тем кто работает (интегрирует, разрабатывает) различное ТО либо железки. Версия и релиз технологической платформы не имеет значения.

17.03.2019    6172    0    dmarenin    1    

Быстрее чем INSERT! BULK-операции и примеры использования

Производительность и оптимизация (HighLoad) Практика программирования Внешние источники данных Перенос данных из 1C8 в 1C8 Разработка Бесплатно (free)

Microsoft SQL Server поддерживает так называемые BULK-операции, используемые для быстрого изменения больших объемов данных в базе. В статье пойдет речь о практических примерах их использования. Все примеры сделаны в контексте платформы 1С (а как иначе).

09.03.2019    21604    0    YPermitin    40    

Развитие 1С программиста Промо

Практика программирования Личная эффективность Бесплатно (free)

Делюсь своим опытом и видением развития 1С программиста.

17.10.2018    18976    0    pashamak    62    

Как писать понятные коммиты

Практика программирования Разработка Россия Бесплатно (free)

Как писать сообщения коммитов так, чтобы потом не было мучительно больно.

06.03.2019    12010    0    Scorpion4eg    35    

Подготовка ребёнка к ЕГЭ по информатике. Часть шестнадцатая

Практика программирования Разработка Бесплатно (free)

Поиск выигрышной стратегии, завершающая статья.

22.02.2019    5363    0    vasilev2015    0    

Как сделать запрос на изменение данных Промо

Практика программирования v8 v8::Запросы 1cv8.cf Бесплатно (free)

В статье приведены особенности внутренней архитектуры и примеры работы с расширением языка запросов 1С.

01.06.2018    28685    0    m-rv    21    

Подготовка ребёнка к ЕГЭ по информатике. Часть тринадцатая

Практика программирования Разработка Бесплатно (free)

Исправление ошибок в программе, часть вторая.

20.02.2019    5402    0    vasilev2015    3    

Метод формирования движений в типовых регистрах нетиповыми регистраторами Промо

Практика программирования v8 1cv8.cf Бесплатно (free)

Вариант решения задач с проведением по типовым регистрам нетиповыми регистраторами. Зачем - чтобы при сравнении конфигурации не обращать внимание на свойства регистров и исключить вероятность допущения горькой оплошности при обновлении информационных баз, заменив типы регистраторов основной конфигурации типами конфигурации поставщика. Для программных продуктов, имеющих в своем составе метаданных документ "Корректировка регистров"("Корректировка записей регистров").

05.12.2017    26725    0    itriot11    34    

Использование классов .Net в 1С для новичков Промо

Практика программирования Разработка внешних компонент Универсальные функции v7.7 v8 Бесплатно (free)

Руководство для новичков. Написав статью http://infostart.ru/public/238584/, я понял, что многие не понимают того, что написано. Поэтому в этой статье постараюсь более подробно остановиться на азах и без кода на вражеском языке (C#)

27.01.2016    73210    0    Serginio    108    

Подготовка ребёнка к ЕГЭ по информатике. Часть восьмая

Практика программирования Разработка Бесплатно (free)

Шифрование и дешифрование информации. Закон Фано

05.02.2019    5364    0    vasilev2015    1    

Автоматические и управляемые блокировки применительно к типовым конфигурациям 1С Промо

Математика и алгоритмы Практика программирования v8 v8::blocking 1cv8.cf Бесплатно (free)

Основные принципы работы с режимами автоматических и управляемых блокировок в 1С Предприятие 8. Теория и применение в типовых конфигурациях: БП, УТ, ЕРП

10.11.2018    32221    0    ids79    40    

Расширяем свой багаж

Практика программирования Разработка Бесплатно (free)

Алгоритм решения возможной нетиповой задачи на собеседовании.

29.01.2019    6098    0    scientes    15    

Подготовка ребёнка* к ЕГЭ по информатике. Часть пятая

Практика программирования Разработка Бесплатно (free)

Маршрутизация. Протокол IPv4 для ЕГЭ.

27.01.2019    5591    0    vasilev2015    5    

Подготовка ребёнка* к ЕГЭ по информатике. Часть четвертая

Практика программирования Разработка Бесплатно (free)

Решение систем логических уравнений повышенного уровня сложности.

25.01.2019    5823    0    vasilev2015    0    

Подготовка ребенка* к ЕГЭ по информатике. Часть третья

Практика программирования Разработка Бесплатно (free)

Алгоритмы рекурсии, логические задачи. Подготовка к ЕГЭ.

22.01.2019    7241    0    vasilev2015    0    

Разработка и сценарное тестирование с Vanessa-ADD. Установка инструментов. Запись действий пользователя и выполнение сценариев

Практика программирования Vanessa Automation Бесплатно (free)

Вторая часть цикла публикаций, посвященных Vanessa-ADD и автоматизации тестирования.

21.01.2019    30350    0    Vladimir Litvinenko    96    

Подготовка ребенка* к ЕГЭ по информатике. Часть вторая

Практика программирования Бесплатно (free)

Примеры на Паскале. Если сам родитель* - поддержи ! Если сам водила - посигналь !

19.01.2019    5637    0    vasilev2015    0    

Подготовка к ЕГЭ сына - школьника (по информатике)

Практика программирования Бесплатно (free)

Примеры на Паскале. Если сам отец - поддержи ! Если сам водила - посигналь !

17.01.2019    6345    0    vasilev2015    50    

Быстрая отладка экранных форм документов и справочников

Практика программирования Бесплатно (free)

Трюк элементарный и я думаю, что большинство моих коллег владеет им, но для тех, кто не знает, он может сэкономить большое количество времени.

18.12.2018    6773    0    milkers    19