Имя: Пароль:
1C
1С v8
Как получить свободный отрезок в 5 сек на оси времени?
0 suvolod
 
27.10.12
17:54
Есть несколько взаимосвязанных документов. Все данные этих документов (в том числе время) заполняются, изменяются, перезаполняются через спец. обработку. Мне хотелось бы расположить их как можно более кучно на оси времени. Во первых, для целей партионного учета (документы должны строго идти друг за другом), во вторых - для удобства их поиска и просмотра в общем журнале.
Для этих целей хочу получить незанятый отрезов времени в пять секунд, и расположить их на этом отрезке. Конечно, гарантии того, что в этот отрезок времени не залезет какой-нибудь "левый" документ, у меня нет. Но мне этих гарантий и не надо - достаточно будет того, что писать эти документы я буду, например, в промежуток времени с 3 до 5 часов утра, так-что если кто-то из юзеров и запишет случайно в это же время свои документы, вероятность этого будет очень мала и общей "картинке" не помешает.

Поделитесь идеей, как это проще/правильнее сделать :)?
1 Steel_Wheel
 
27.10.12
18:09
Я бы последовательностит посмотрел
2 suvolod
 
27.10.12
18:13
не совсем понимаю, как поможет последовательность, но дело даже не в этом - хочется обойтись вообще без создания объектов под такое дело.

У меня уже была мысль создать независимый регистр сведений с условным измерением День и ресурсом ПоследнееЗанятоеВремя (с отсчетом начиная с 3-00). Но добавлять ради такой мелочи в конфигурацию отдельный объект - как-то некашерно.
3 Живой Ископаемый
 
27.10.12
18:14
блин, это глупость... лучше использовать критерий отбора. все пять будут иметь общий признак, по которому их можно будет быстро отобрать
4 suvolod
 
27.10.12
18:19
Может и глупость.. но юзерам так удобнее. У нас в одной базе УТ 10.3 работают одновременно 7 магазинов. Со стандартными журналами они вообще не работают - там натуральная каша из документов разных магазинов. Но есть специальный общий журнал с отбором по пользователям одной группы (одного магазина). Так вот, им удобно, зайдя в этот журнал, и выставив нужную дату просмотра, в самом верху отобранных документов увидеть именно те наборы взаимоувязанных документов
5 Живой Ископаемый
 
27.10.12
18:27
ну... чтож... есть функция запроса РАЗНОСТЬДАТ, может получить разность дат в секундах.
6 suvolod
 
27.10.12
18:28
Точно! Можно попробовать. Спасибо
7 suvolod
 
27.10.12
18:30
Хотя сама разность дат не подойдет, наверное.. ведь мне нужно искать разность дат между двумя документа (предыдущим и текущим) одной выборки
Короче, придется видимо выбирать документы за нужный период, в цикле их перебирать, приводить дату док к Секунда, и искать период, где разница между Секунда предыдущего документа и текущего больше или равна 5
8 Живой Ископаемый
 
27.10.12
18:35
(7) что? это трудно выбрать несколько видов документов в запросе, а разность дат подсчитать во внешнем?
9 suvolod
 
27.10.12
18:43
поясни, догнать не могу..
в идеале мне нужно выбрать все документы за заданный период. И во внешнем запросе тоже. При этом сопоставить их со смещением на 1 документ.
10 suvolod
 
27.10.12
19:01
ап
11 Живой Ископаемый
 
27.10.12
19:31
ВложенныйЗапрос.Дата,
   НАЧАЛОПЕРИОДА(ВложенныйЗапрос.Дата, ДЕНЬ) КАК НачалоДня,
   РАЗНОСТЬДАТ(НАЧАЛОПЕРИОДА(ВложенныйЗапрос.Дата, ДЕНЬ), ВложенныйЗапрос.Дата, СЕКУНДА) КАК СекундСначалаДня,
   РАЗНОСТЬДАТ(НАЧАЛОПЕРИОДА(ВложенныйЗапрос.Дата, ДЕНЬ), ВложенныйЗапрос.Дата, СЕКУНДА)/5 КАК ПятьСекундСначалаДняДляДвухВидовДокументов
ИЗ
   (ВЫБРАТЬ
       ПлатежноеПоручениеВходящее.Дата КАК Дата
   ИЗ
       Документ.ПлатежноеПоручениеВходящее КАК ПлатежноеПоручениеВходящее
   ГДЕ
       ПлатежноеПоручениеВходящее.Дата МЕЖДУ &ДатаНач И &ДатаКон
   
   ОБЪЕДИНИТЬ ВСЕ
   
   ВЫБРАТЬ
       ПлатежноеПоручениеИсходящее.Дата
   ИЗ
       Документ.ПлатежноеПоручениеИсходящее КАК ПлатежноеПоручениеИсходящее
   ГДЕ
       ПлатежноеПоручениеИсходящее.Дата МЕЖДУ &ДатаНач И &ДатаКон) КАК ВложенныйЗапрос


http://screencast.com/t/KI6WhV6zf6Mv
Только чур уже группируй сам.
12 Живой Ископаемый
 
27.10.12
19:35
ну и объединить не два а все виды документов тоже можно. тыщиразобсосаннаятема
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.