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

30.06.09

Разработка - Универсальные функции

Маленькое наблюдение, облегчающее программную расстановку документов по оси времени.
Финт с чебурашечными ушами будет показан на примере. Простая задача: расставить документы ''накладная'' и ''счет-фактура'' на оси времени с интервалом в полторы минуты. Делаем примерно так:
//получаем исходное время
ЧЧ=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: если эта статья помогла вам узнать нечто новое - плюсуй рейтинг! Не ленись...

См. также

Расширение: Быстрые отборы через буфер [Alt+C] Копировать список, [Alt+V] Вставить список, [Ctrl+C] Копировать из файлов

Инструментарий разработчика Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 1С:Розница 2 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x Абонемент ($m)

Копирует в буфер значения из списков, из ячеек отчетов, таблиц, настроек списков, других отборов и вставляет в выбранную настройку отбора. Работает с Объект не найден. Работает как в одной так и между разными базами 1С. Использует комбинации [Alt+C] Копировать список, [Alt+V] Вставить список. Также для копирования данных используется стандартная [Ctrl+C] (например из открытого xls, mxl, doc и т.п. файла скопировать список наименований)

1 стартмани

13.10.2022    16445    144    sapervodichka    112    

130

Система контроля ведения учета [БСП]

Универсальные функции Механизмы типовых конфигураций БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

В данном материале рассмотрим типовой алгоритм подсистемы контроля учета БСП в конфигурациях на примерах.

18.07.2022    7395    quazare    8    

110

Хитрости СКД. Часть 3

СКД Универсальные функции Платформа 1С v8.3 Система компоновки данных Конфигурации 1cv8 Бесплатно (free)

Столкнулся с тем, что мне приходится писать гору отчетов. Во многих приходится использовать повторяющиеся приемы. Решил написать шпаргалку, которая, надеюсь пригодится не только мне. В этой статье: Объединение ячеек в отчете только на определенном уровне иерархии, Постобработка итогов в табличном документе, Скрытие колонок в зависимости от количества месяцев в периоде.

28.05.2022    9447    milkers    11    

94

Базовые принципы работы с регламентными заданиями подсистем БСП

Универсальные функции БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

В очередной публикации рассмотрим некоторые базовые приемы работы с регламентными заданиями в рамках библиотеки стандартных подсистем

22.05.2022    19583    quazare    27    

62

Модули общего назначения - готовые полезные функции и процедуры конфигураций на БСП

Универсальные функции БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

В данной статье я рассматриваю несколько полезных "классических" функций и процедур для работы с данными, которые уже встроены в БСП и готовы к использованию.

25.04.2022    15461    quazare    11    

138

Полезный код для программистов 1С (часть 3). Подготовка печатных форм + подсистема Управление печатью (БСП)

БСП (Библиотека стандартных подсистем) Универсальные функции Платформа 1С v8.3 Бесплатно (free)

Мы все любим 1С, не так ли? Вот дает 1С прекрасный механизм возможности модификации макетов печатных форм в БСП. А из всех рекомендаций это получение макета и заполнение параметров областей. И вы спросите: "А что не так... ты печатные формы накодить не можешь без указаний сверху?". Да вот в том то и дело, что я могу все. А вот пользователям от такого механизма пользы 0, если из всех доступных изменений остаются только шрифты, да текст произвольный накинуть. А ведь можно больше, надо только соблюдать несколько правил при подготовке печатных форм...

07.03.2022    15188    vandalsvq    0    

68

Конвертируем печатную форму pdf в картинку (jpg, gif, png и прочие) на сервере

Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Была поставлена интересная задача конвертировать печатную форму в файл картинку. По условию задачи клиенту на почту нужно присылать только файл картинку (jpg, gif).

22.12.2021    9250    John_d    26    

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

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

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